随着区块链技术的快速发展,去中心化、高速传输、不可篡改、共识算法成为构建未来网络空间的关键技术。DAG(有向无环图)是不同于主流区块链的一种分布式账本技术,是区块链行业的一次较大的创新,DAG技术给高并发的交易提供了最具前景的解决方案,把区块链二维的模式提升到三维,把同步记账提升为异步记账。2017年12月28日,由澳大利亚TrustNote基金会发起的“全球DAG区块链技术联盟”筹备会在北京成功召开并圆满落幕。
论坛上,TrustNote创始人Jeff Zhou发表主题演讲“DAG-高速异步区块链技术”,表达了高速区块链公有链项目的未来价值不可估量,TrustNote是使用最新DAG技术,同时支持PoW挖矿的高速公有链,具有创新的双层共识机制,面向游戏娱乐、数字通证发行和社交媒体等场景。TrustNote宗旨是“极轻、极速、极趣”,围绕这一目标构建完善的技术架构和生态体系,让新奇特的想法在TrustNote上流畅运行,不仅能提供安全保障还具备可玩性,让使用TrustNote成为一种生活方式。基于DAG技术的TrustNote,或将成为2018年区块链行业一匹黑马!
DAG区块链技术 或将给各行业带来变革
Peer reference confirmation, get partial order
DAG全称是“有向无环图”,没有区块概念,不是把所有数据打包成区块,再用区块链接区块,而是每个用户都可以提交一个数据单元,这个数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成具有半序关系的DAG(有向无环图)。DAG的特点是把数据单元的写入操作异步化,大量的钱包客户端可以自主异步地把交易数据写入DAG,从而可以支持极大的并发量和极高的速度。同时,使用DAG技术的TrustNote还支持声明式智能合约,声明式的智能合约要表达的意思是可以直接按照用户想要的结果去写、去描述,以很简单的语言,让大家都能看懂的语言去描述他要干的事情。
截止到2017年年底,“高流量应用”越来越多,除了主流电商平台外,还有直播平台、P2P理财、今日头条、陌陌等崭露头角,如果“高流量应用”与DAG区块链技术结合,将会给行业带来哪些变革呢?除区块链自身的特点去中心化、分布式账本、不可篡改之外,DAG区块链技术不但可以支持高并发,结合双层共识机制,使用工作量证明共识算法,还能够防止“双花”问题。
那么,DAG如何支持高并发的呢?第一,数据不像比特币和以太坊一样强同步,而是弱同步,允许节点在同一时刻数据不一样,数据可以有一些微小的差别。第二,可以通过数据单元之间的引用来完成交易的确认,就是后面发生的单元去引用前面的单元,这样不需要我们把数据传给矿工,整个过程都是由自己去完成的,这个过程很快。DAG是解决高并发比较优美的方法,比起之前的闪电网络,还有其他一些方面,DAG有其先天优势。SelectMainChain, get total order
再来看看DAG是如何防止“双花”?在有向图里如果能选出一个MainChain,这个时候会发现所有图里面的节点都可以用一种方法来给它做排序,把这个序号连接起来在一排,这张图将会变成跟区块链一样的序列结构,就是排完序的节点,而且每个节点是一个交易,而不是一个区块。所以,确定了主链,通过主链,可以形成全序。最后达到的结局就是在某一个逻辑状态里,交易还是被排序了,这是DAG最关键核心的部分。
“高流量应用”是随着节点数和交易数的增加平滑扩展,当这个节点数超过1亿或交易数超过并发100万时,DAG的特性刚好是交易越多越快,节点越多越快。
典型区块链软件栈结构 无法解决“阻塞”问题在传统的区块链里,问题在于做共识时,需要一个区块一个区块的往上垒,在生成这个区块之前,需要给所有的交易做一个交易池,也就是说需要做一个Transaction Pool,由矿工在里面挑出要打包哪些交易,才能作出一个区块来,然后再把它放到这个链里。当在Transaction pool里用Transactions生成Block时,如果没有挖到新的Block,没有被广播出去,这个Transaction是属于不定态的,是没有被确认的。这实际上是一个阻塞了数据的排队写入,即为阻塞问题。
以交易为单位的异步写入区块链 高速畅通
我们来看看DAG是如何解决“阻塞”问题的。第一,记帐的单位变得颗粒化更细了,记帐单位不是区块,而是Transaction。如果Transaction一发生,马上就会写入,比传统的跟其他交易一起等这个块完成了再写的模式要快。第二,DAG发挥了钱包客户端里面点对点互相校验的能力,这个校验是并行的,假设在这个世界上同时有1万笔Transaction发生,1万笔Transaction相互之间是可以通过Transaction的关系并行校验,如果这个数正在产生分叉,同时会在这个世界上有不同的钱包往不同的叉上记帐不同的Transaction。这实际上导致一个问题,它只能partial order,不能排出总序。要排出总序需要确定主链,目前DAG里面,比如IOTA和Byteball,通过各自不同的方式选出主链。所以DAG记账就是先把数据记下来,而不检查双花,其实在记帐里会知道有一定的比例,比如1%的人在double spending,忍受double spending存在2-3秒,接下来选择MainChain的时候,MainChain确立了,就可以把双花检测出来剔除。在确定MainChain以前它是一个并行验证的操作,而且是并行往数据结构上放,然后再回溯去检查数据结构,去挑出坏的交易。所以DAG是以交易为单位的异步写入区块链。
另外,DAG还有一个特点,因为它是靠节点相互间参考关系来加速验证的,如果在整个网络当中交易数量越多,钱包数量越多,能支撑的变化量越大。所以,它是随着节点数量增长而增加。针对IOTA和Byteball存在的问题 TrustNote的优势
选“主链”时,不仅需要速度,还需要公平。因为partial order是通过P2P之间的信任为参考。total order不行,它是由一个孤立于大众的一些服务节点去做的,所以MainChain的选择一定要回溯区块链的架构,这时需要使用共识算法,通过可信的机器去选。在现实生活中,大多数交易实际上是自动的互相间检查一下,可以把主链的任务想象成为“抓窃贼”。
IOTA和Byteball在共识上存在一些中心化或弱中心化的现象。首先IOTA现在市值100多亿,但是看它的白皮书也好、看它的实践方案也好,其实就是一个中心化的东西,用协调者来确定数据单元的最终顺序,而协调者目前还没有开放。Byteball用了12名公证人去选择MainChain定序,公证人的确定是靠人工设定的。
TrustNote针对于Byteball和IOTA存在的问题做了一些优化。首先加入了TrustME共识,目前设计两个版本,一个是PoW版本,一个是拜占廷协商版本,然后用TrustME共识可以从一些超级节点里面选出公证节点,是用PoW方式来选择的。带来的好处是可以把公证人彻底的去中心化,让生态更加健壮。TrustNote节点分为四个类型,在全节点之上又添加了一个超级节点,超级节点就是具备了挖矿的能力,可以帮助TrustNote去维护DAG。轻节点跟其他方案是一样的,只关心它自己的交易。微节点可以放在物联网里面,如传感器,可以委托超级节点去完成交易。TrustNote对声明式智能合约进行了改进,在声明式智能合约里添加数学运算命令,让表达能力更加丰富。DAG区块链扩容 以无数侧链围绕主链
目前几乎所有的区块链扩容方案都是在主链基础上搭建侧链。比如LightningNetwork或Rootstock等。LightningNetwork如果不考虑到跨侧链交易,勉强可以接受,如考虑到Lightning Network跨侧链交易时,Lightning Network实际上是不能够达到目前想要扩容的结果。反过来讲,如果侧链的技术能在以太坊和比特币上扩容成功,其实最后达到的结果一定是类似于DAG的数据结构,就是无数侧链围着主链。
最后,TrustNote创始人Jeff Zhou指出,DAG区块链技术以独特的技术属性和价值,让区块链高速运转起来,所到之处,欣欣向荣。 这是目前“高并发应用”的真切需求,被DAG区块链技术全然满足,信任的机器也成为区块链的代名词。DAG区块链技术有潜力为各行业的经济活动和价值交易带来全新的技术革新与升级,弥补不同交易主体之间的信任鸿沟,通过时间戳、不可逆性、可追溯性等特点,从而降低交易成本。实现具有更强表达力的智能合约,更快的交易确认,更广泛的应用场景,更强的安全性和隐私保护,我想这是我们接下来一起努力的方向。