1SMARTX技术白皮书21项目介绍.
31.
1关于SmartX.
31.
2项目概览.
31.
3系统结构.
31.
4交易验证和确认.
41.
5块图技术和区块动态扩容.
52SmartX的DAG结构.
52.
1DAG结构.
52.
2简单区块结构.
62.
3账户模型.
72.
4引用关系.
73SmartX共识.
83.
1PoW-PoS双层共识.
83.
2最大权重链.
83.
3双花排除.
93.
4Merkle哈希.
103.
5检查点和数据裁剪.
104SmartX市场和挖矿.
104.
1抵押挖矿.
104.
2智能合约.
105SmartX安全性.
115.
1分叉链攻击和解决.
115.
2时间戳.
115.
3女巫攻击.
116SmartX实验性功能.
126.
1用惩罚块增加黑名单机制.
126.
2SmartX应用商店.
126.
3动态PoW哈希算法.
126.
4加密消息分发.
127项目路线图.
128团队介绍.
139代币分配.
1310参考资料.
1331项目介绍1.
1关于SmartXSAT(Smartx智图)是由Smartx社区团队研发的区块链技术公链,是一个去中心化、支持Pow挖矿、"基于交易DAG"结构的BlockDAG项目,可实现性能无限扩展,本质上等同于平行扩展的传统区块链系统,可以无限平行扩展.
基于Smatx平台可以将区块链技术服务于去中心化金融Defi,去中心化交易所,去中心化社交,私密通讯,游戏支付等产品.
通过区块链网络连接全球服务商与用户,以去中心化金融Defi和社交娱乐为切入口构建基于可信任并且安全的区块链生态.
未来的Smartx平台是一个资金流、信息流、价值流多重平台,在Smartx构建的信任价值体系中,各式各样的人或物将自我价值通过区块链网络进行传递,形成丰富的价值互联网络生态,这最终将极大地提升社会生产效率.
1.
2项目概览区块链系统发展到如今,交易速度成为了区块链产业化如DAPP、物链网、可信任数据交换等进一步发展的瓶颈.
BTC/BCH等纯粹通过增大区块大小而达到扩展目标,此方法手段不可取.
另外通过BTC/ETH子网络的方式如闪电网络,跨链等技术其实是在牺牲安全性的前提下提高TPS,同时必须具备更多的附带条件(如交易双方必须同时在线,需要抵押等)才能交易.
那么就产生了另一种技术解决方案就是BlockDAG方案.
从最早的IOTA到近期的Conflux项目,还有就是本团队的Smartx项目.
Smartx有一个自己的原创性,具备创新性且全新的DAG结构性算法---分片出块懒融合算法(B-DAG算法),可以把全世界节点产生交易分片融合起来,而跟目前主流BTC/BCH,Ethereum等主流PoW币区块必须同一时间Pending住交易然后挨个打包,不同节点打包交易区块互斥(虽然Ethereum有GHOST和UncleBlock机制,但远远不够)所有不同.
相当于高速公路只有一条出口,不管道路有多少条,行驶车辆有多少,最终只有一条出口.
而出口速度决定了车流量,后面只能排队.
Smartx相当于开辟了无限个高速公路让车流量可以无限扩展.
通过Epoch周期产生一个稳定主单元MC,按照B-DAG算法线性链接在一起,从主单元角度形成类似比特币链式结构.
但整个视图是交易DAG结构,可以分成独立Partition,互不干扰产生交易而后进行交易块融合,能够无限扩展性能.
在这个结构中,双花检测迟早能成功,在全局角度算法是稳定一致的.
一旦一个节点可以看到某个Epoch的全局数据,加上一个稳定一致排序算法(B-DAG算法)那么双花检测就会成功.
1.
3系统结构中心化系统好比集中式教堂一样,必存在一单点故障,如果单点崩溃则系统崩溃.
区块链系统则类集市,多个中心,人员嘈杂且有统一之市场规则.
完全去中心化则意味着没有4Owner,没有中心化利益方.
优点避免中心化带来之单点作恶和单点崩溃现象.
缺点是付出极大能源消耗和资源浪费.
若做一笔交易,在中心化云服务器如微信支付,不到一秒时间,消耗磁盘和网络带宽资源不过1k字节,能源消耗可以忽略不计.
但是在ETH系统中,按1万个节点计,其硬件资源消耗则相应是1万倍,能源消耗可能百万千万倍.
在Smartx中,我们采用教堂和集市部分优点.
系统架构按联邦模式运作.
主网络由多个质押代币的PoW主节点和多个质押代币的PoS裁决投票节点组成.
PoS节点由社区有声望之组织竞选加入.
PoW主节点通过抵押一定量的代币自由加入和退出.
PoW主节点相当于矿池节点,可以接受矿机各种算力提交,交易,账本下载等服务.
外围是普通节点,用户可以加入普通节点或者使用轻钱包,RPC脚本,SDKAPI,或者APPStore上的应用接入到主网中使用Smartx服务.
1.
4交易验证和确认一个交易TX首先会发往距离它最近的一个主节点NodeA的内存池中,且在某个T周期中,NodeA会产生一个主单元M主动去引用交易TX,同时会把主单元M和交易单元TX组成的一个大块M-muster,广播到所有主节点.
其他主节点同时也会做类似的操作,最后只有一个工作量证明最大的M主单元,成为胜出主块MC.
跟BTC/ETH等BlockChain技术不同,其他低工作量证明的主单元M不会失效,他们将会被胜出主单元MC直接或者间接引用,形成了一个B-DAG的树图结构.
当T周期的MC块确定时,所有被MC块直接或者间接引用的M块和TX块则被确认.
5在选MC的过程中是一个典型的PoW过程.
PoS共识则是一个3F+1的一个选举人网络,难度最大的M单元在成为胜出MC时,须得到PoS选举人网络的裁决确认.
B-DAG的树图结构因为有了PoW的链上共识,可独立运行,Smartx在PoW共识下运行,跟IOTA等DAG项目没什么不同.
为了加速B-DAG结构的收敛(如多网络下的分叉融合),Smartx引入PoW/PoS双层共识,PoS层相当于一个网络加速器.
对PoW共识做加速确认.
PoS投票层的引入不仅可以对B-DAG动态结构进行收敛,同时也可对其他链上共识进行投票如余额快照,做数据裁剪,不可逆节点,时间共识,节点QoS服务等.
为了奖励PoS节点对主网的服务,每产出一个奖励块时,PoS也会分到固定的奖励.
采用PoW/PoS联合共识优点在于,能让DAG网络在保证去中心化,不丧失安全性和高TPS前提下,处理实际业务问题.
1.
5块图技术和区块动态扩容由于Smartx主节点并发出块,每个主节点MC会主动引用所有本节点所产生之交易,理论上各个主节点都可以独立出块(MC-Muster),该块为单MC引用之所有MC和TX的集合MC-Muster,受限于和计算机内存和网络宽带,理论上MC-Muster伸缩性极强.
小至一笔交易,大至几千几万笔交易皆可打包至一个MC-Muster里.
因此B-DAG技术方案亦可作为传统BTC链式结构区块链的一种动态扩容方案之一.
高TPS已然成为区块链发展之最大瓶颈.
类似Fomo3D游戏,或高频链上抢红包游戏皆需要高频TPS,Smartx尝试通过B-DAG技术解决此类问题.
2SmartX的DAG结构2.
1DAG结构与传统BTC链式区块链不同,Smartx区块Block即交易TX,交易TX即区块Block.
除TX交易单元外,Smartx系统还存在MC主单元,MC主单元根据一定周期Epoch随机产生用于引用之前产生的所未引用有交易.
虽然直观看,MC和TX组成DAG结构,单从每个Epoch看,随着时间流逝,如果只保留SAT主链引用(后面有介绍),其他MC引用线去掉,则接近于打散了交易的BTC链式结构.
该结构结合BlockChain和DAG技术部分优点.
本文称之为B-DAG技术.
跟大部分区块链系统类似,通过手续费来杜绝DDOS攻击.
由于B-DAG技术模型不需要全网Pending打包一大区块,即无法控制交易量,交易量到达巨高点而引发雪崩.
解决此类问题方法即把控制交易量阀门交给主节点手里.
主节点根据自身节点性能指标去动态设置阀门而从达到动态扩容的目标.
主节点:即网络出块打包的挖矿节点.
此节点跟BTC/ETH矿池节点类似,但必须通过抵押一定数量的SAT币即可加入网络.
一个典型的B-DAG结构如下:62.
2简单区块结构主块M引用了两笔交易TX1和TX2,并且经过PoS节点A,B,C,D签名确认.
如果我们使用Json格式来描述一个简单主块引用且经过了PoS节点签名的结构则:{"hash":"THISHASH","time":"2019-08-0619:10:18","type":"1","diff":"THISdiff","owner":"OWNERADRORPUBKEY","nonce":"5CC911F3B8434911B691B6CF7A361333","flds":[{"type":"SAT_FIELD_OUT","hash":"A","time":"2019-08-0621:21:19"7},{"type":"SAT_FIELD_OUT","hash":"B","time":"2019-08-0621:21:19"}],"Signers":["A","B","C","D"],"Signinfo":"SIGNCONTENT","sign":"THISECDSASIGN"}2.
3账户模型跟传统交易系统一样,Smartx使用余额账户模型.
每一个Epoch共识周期处理发现某个TXBlock之OUTPUT账户不存在,则全网创建此账户.
并将INPUT的Amount转入此账户中,而INPUT需存在且余额足够.
每个账户余额由交易单元INPUT和OUTPUT之差决定.
在某个Epoch中,从创世块至该时刻,账户余额Balance=All(INPUT)–All(OUTPUT.
每个交易单元由INPUT方用ECDSA私钥签名,用INPUT公钥进行验证块合法性.
系统保证每笔Transcation(后面称TX)经状态机处理为幂等性,即交易TX执行一次和执行多次最后结果都为一样.
修改余额时需并发加锁,系统每个过程和函数都需具备可重入性.
于是乎,账户余额修改跟状态机一样,不管流入多少笔交易,又或者多少次重复交易,其最终结果都为一致.
判断是否为重复交易即根据交易TX之随机数Nonce值,除了Nonce一样,整包hash值一样称之为重入成功,反之称为重入失败,系统对这两种情况分别处理.
同时账户表中,每个账户会有一个Nonce字段,用于检测每个转出交易的重复交易,但如果重复交易在不同池子中,经过稳定排序,优先高的块先执行,优先低的块不存储实际块,只存储哈希.
后续更新块时,先更新优先级高的块,只有哈希没有实际块的交易,之前一定会存在重复交易,要检查这种情况.
2.
4引用关系全网主节点按一定的Epoch并发产生主单元MC,及该Epoch下所产生所有交易单元TX,所有MC和TX按约定规则进行互相引用,总规则如下:约定规则1:主节点自身产生主单元可以引用其他广播过来主单元,但广播主单元不能引用目标主单元.
约定规则2:主单元可以引用交易单元,交易单元被某个主单元引用后不能再被其他主单元所引用.
约定规则3:主单元之间不能循环引用.
自身主块:在某个主节点中按一定Epoch产生之主块,并且主块主动搜索内存池中所有未被引用广播主块和交易块.
8广播主块:目标主单元产生并且完成引用操作后,广播给连接节点后该主单元变成广播主单元.
如图所示,Smartx采用向前引用的规则,通过周期来区分是否引用其他矿池广播过来的主块:如果广播主块和当前主块处于同一周期或者当前主块周期之后,则暂时不引用,而是等到下个周期再引用广播主块如果广播过来的主块在当前主节点之前,如符合引用条件,则引用该主块所有M块(包括胜出MC块)必须引用上一次Epoch周期裁决MC块上一个Epoch周期不被MC块直接或者间接引用的主块会会被主网抛弃3SmartX共识3.
1PoW-PoS双层共识在Smartx中,采用的是PoW联合PoS的双层共识.
PoW的链上共识,每个时间片决胜一个MC块即工作量证明难度最大的主块为胜出主块.
PoS层是一个3F+1的BFT共识网络.
难度最大的MC块同时也是PoS选举人投票出来的胜出主块,PoS层类似一个加速器,可以加速交易的确认.
PoS层除此之外还可处理不可逆节点,全网余额快照,PoS服务,惩罚交易,时间校对等各种类型的全网共识投票.
在孤立网络分裂时,主网有PoW/PoS双层保护.
3.
2最大权重链在Smartx中,每过一定Epoch周期产生一堆MC块,MC块之间互相引用.
由于可以通过PoS/PoW协议在一堆MC块中挑选出一个最大权重的MC块(正常来说都是PoW工作量9最大的主块),称之为胜出MC(主MC),主MC根据Epoch周期在整个DAG结构中连成一条特殊的线,该线称为MC主链.
根据SAT主链可以排出所有交易TX序号(根据拓扑关系,时间和哈希值关系),根据此序号排除双花.
3.
3双花排除在图中,Epoch3出现了两笔双花交易TX2-1和TX2-2,由于SAT主链已确定MC1<-MC2<-MC3,因此通过MC3通过拓扑排序可以判断M1序号优于M2,从而TX2-1序号优于TX2-2,到此TX2-2交易被排除,双花检测成功,双花检测排序规则如下:能被MC块直接可达块,可通过块跟主MC拓扑序来排序如果跟MC块没有通路,则通过最短路径排序即达到创世区块最近之路径如上无法判断,通过块hash和时间来排序103.
4Merkle哈希Smartx每一个MC之当前merkle_hash=hash(MC_hash+Pre-merkle_hash),即自身哈希加上MC引用所有Block的哈希再哈希结果.
跟BTC等链式区块链不同,Smartx不存在一个单向可回溯merkle哈希.
但每一个Epoch周期回头看Epoch-N周期时,每个MC的merkle哈希都必须保持一致,SAT据此哈希来保证所有节点某一刻数据最终一致性.
3.
5检查点和数据裁剪随着时间流逝,区块链系统数据会膨胀到普通节点无法承担之重,鉴于此,理论上只要在某个检查点之前数据做一个快照,只要保留账户余额表和部分Merkle哈希用于校验.
系统仍可以参与挖矿和交易,对于普通节点而言,这将大大减轻存储压力.
4SmartX市场和挖矿4.
1抵押挖矿Smartx谨慎设计经济模型.
谨慎设计PoW挖矿和PoS挖矿奖励,以期在Smartx市值和PoW/PoS市场抛压中取得一个平衡.
Smartx的默认初始化的几个PoW创世节点和默认抵押币100万个(PoS抵押数更多),为了让运行意愿更强的参与者来参与到Smartx的节点运行,Smartx支持挖矿节点的随时加入和随时退出,这样做的目的是为了更好的筛选出参与意愿更强的节点.
Smartx的抵押挖矿会经过如下几个阶段:初始化阶段默认初始化几个创世主节点和默认抵押币100万个.
检测在抵押表中是否有抵押标记,若无抵押则拒绝接收该主块新节点加入发起一笔抵押交易,内容:抵押币数,公钥,私钥签名,时间.
经过大部分节点接收该块时,节点把信息写入到抵押表中.
经过2分钟后(经验值),该普通节点可以参与挖矿.
如抵押交易没有被某个主节点接收到则该节点产生之主块会被拒绝.
节点退出发起一笔反抵押交易,经过大部分主节点接收后,则抵押表抵押标记会被置空,表示该抵押币已被取出.
该节点可以如期把抵押币转走,如果其他主节点发现抵押标记已经被清空或者不存在,则允许该节点余额被转走.
4.
2智能合约智能合约开发的DApp极大丰富了公链的生态环境,Smartx将支持智能合约,暂时使用EVM虚拟机,支持智能合约开发工作会放到测试网上线后期再开发.
115SmartX安全性5.
1分叉链攻击和解决存在两条分叉链,主链,G<-MC1<-MC2<-MC3<-MC4<-MC5和私挖分叉链,G<-M2<-M3,其中M3的难度比MC5的累积难度高,在普通的DAG网络中M3会生成胜出MC,MC5这条主链将会被主网回滚,M3链会成为真正的主链.
BTC同样可能出现类似问题,这就是51%攻击,一旦某个节点算力成为大算力,那么则存在逆转交易的可能.
在Smartx这里,一旦检测到这种这种情况出现,Smartx裁决层3F+1节点将介入处理.
即不会让M3胜出.
5.
2时间戳跟大多数区块链系统一样,Smartx系统有一个默认提前,大多数主节点时间戳基本一致.
如果主节点时间跟NTP时间相差甚远,挖矿线程会被停止,且某主节点收到来自临近节点块时间超过NTP时间一定时间,块会被拒绝.
如果节点时间误差在可容忍范围之内,被认为是网络异常导致延迟.
时间切片按"格林威治"时间戳每固定T周期做一个切片,所有根据当前时间戳产生主块映射到格林时间的时间切片中,如果都一致,则认为大家时间戳一致.
BTC式区块链可能存在时间戳攻击缺陷.
即下一个难度调整值等过去若干个块总难度除以头尾时间之差.
由于时间戳不可控,攻击者可以通过伪造时间戳造成时间戳波动过大,导致难度调整巨幅波动,直接后果即网络无法出块有或是出块过快,变相增产.
Smartx设计会避免此类情况,即周期律动出块,不调整难度.
随着时间流逝最新MC难度等于创世快以来难度之和,通过比较总难度来确定主MC.
5.
3女巫攻击女巫攻击(SybilAttack)是2002年由JohnR.
Douceur提出的,它是作用于对等(Peer-to-Peer,简称P2P)网络中的一种攻击形式:攻击者利用单个节点来伪造多个身份存在于P2P网络中,从而达到削弱网络的冗余性,降低网络健壮性,监视或干扰网络正常活动等目的.
12在Smartx网络中,为了解决来自恶意节点或者节点失效带来的安全威胁,每个消息都会要求消息发送者使用自己的私钥对消息进行签名,其中验证签名的参数包括消息内容message,块高度height以及当前块所处于的epoch,每个公钥在一个出块周期只能提交一次块,如果重复提交则以最早收到的块为准,其他块则忽略.
如果验签失败,则抛弃该公钥所发出的块.
6SmartX实验性功能说明:实验性功能属于探索性质,暂时还不确定发布时间.
6.
1用惩罚块增加黑名单机制增加一种交易类型,叫惩罚交易.
当全网共识满足一定的条件,由PoS决策节点动态投票发送,经过N个块高度后,交易生效.
惩罚块交易主要用于惩罚恶意攻击,黑客,不诚实节点,惩罚内容包括限制N个时间内不允许交易,扣除或者取消手续费等.
6.
2SmartX应用商店除了EVM虚拟机和智能合约之外,Smartx将引入一个RPC脚本语言,用于丰富Smartx的开发生态.
在此基础上引入一个类似AppleAppStore一样的官方smartx脚本语言程序集散的平台smartxstore.
6.
3动态PoW哈希算法使用smartJS等脚本语言来实现工作量证明的哈希函数,由PoS决策节点发起一笔更新算法交易,把算法脚本内容放到交易块中,过程跟动态抵押加入主节点类似.
经过一定周期后,新算法生效.
6.
4加密消息分发Smartx的P2P网络可以通过节点之间互相协商通密钥,让数据可以在被加密后传输.
此外可以通过支持去中心化的存储系统swarm和shh实现去加密且去中心化的社交应用,而smartx的高性能则为社交应用的体验提供了最可靠的网络保障.
7项目路线图2019/07完成Smartx基础框架和基本交易2019/09完善Smartx之选举人投票PoW混合共识机制2020/02上线Smartx智图测试网138团队介绍Frank前腾讯微信支付高级工程师,财付通、微信红包、理财通的早期支付系统核心开发,申请过微信支付两项专利,重构过XDAG代码,前以太零DAG区块链项目首席工程师.
Mark前深圳网阡技术有限公司CTO,精通Neo和XDAG代码,对比特币和以太坊代码有深刻的研究,对DAG技术研究颇深.
LiZhao(技术顾问)前腾讯微信支付高级工程师,财付通/腾讯移动支付早期核心开发,12年支付平台经验,精通BlockDAG算法,重构过XDAG代码.
Jessy美国斯坦福大学市场营销硕士、美国旧金山艺术大学网页和新媒体设计硕士,拥有丰富的视觉和UI设计和产品营销能力.
JunQ资深运营经理,曾就职于腾讯/乐逗游戏,拥有丰富的团队运营管理经验.
昨天晚上有收到VULTR服务商的邮件,如果我们有清楚的朋友应该知道VULTR对于新注册用户已经这两年的促销活动是有赠送100美元最高余额,不过这个余额有效期是30天,如果我们到期未使用完的话也会失效的。但是对于我们一般用户来说,这个活动还是不错的,只需要注册新账户充值10美金激活账户就可以。而且我们自己充值的余额还是可以继续使用且无有效期的。如果我们有需要申请的话可以参考"2021年最新可用Vul...
Contabo自4月份在新加坡增设数据中心以后,这才短短的过去不到3个月,现在同时新增了美国纽约和西雅图数据中心。可见Contabo加速了全球布局,目前可选的数据中心包括:德国本土、美国东部(纽约)、美国西部(西雅图)、美国中部(圣路易斯)和亚洲的新加坡数据中心。为了庆祝美国独立日和新增数据中心,自7月4日开始,购买美国地区的VPS、VDS和独立服务器均免设置费。Contabo是德国的老牌服务商,...
RAKsmart怎么样?RAKsmart香港机房新增了付费的DDoS高防保护服务,香港服务器默认接入20Mbps的大陆优化带宽(电信走CN2、联通和移动走BGP)。高防服务器需要在下单页面的IP Addresses Option里面选择购买,分:40Gbps大陆优化高防IP-$461/月、100Gbps国际BGP高防IP-$692/月,有兴趣的可以根据自己的需求来选择!点击进入:RAKsmart官...