基于区块的区块链结构只是分布式共识协议实现的第一次尝试,新的优秀的共识协议会继续出现,而DAG,就是一个非常值得尝试的方向。

可能因为IOTA和byteball的原因,一提到DAG,很多人就会担心DAG可能有中心化的问题。包括iota依赖validator节点,byteball依赖witness节点。这篇文章尝试为iota和byteball正名,更重要的,介绍一个让我很兴奋的东西,hashgraph。

什么是区块链的共识

谈到区块链,共识是个绕不开的话题。到底共识在解决什么问题呢?

用户A在银行账户里有100块,这100块A只能使用一次,在A转给B 100块后就没办法再给C转100块。这看起来是个再自然不过的逻辑,实际上依赖了银行这个中央数据库在帮你记账,银行在维护所有交易的顺序,银行在维护所有参与者的共识。

而在区块链中,没有中央数据库来统一记账,A转给B 100块的同时也跟C转100块,如果没有全局认可的交易顺序,B跟C有可能都以为自己收到了来自A的转账交易,就有可能造成双花(Double Spend)问题。所以共识机制的作用,就是维护一个大家都认可的交易顺序。

而中本聪在比特币网络中设计了POW(Proof Of Work)工作量证明机制,矿工通过竞争一个时间段内的交易打包权利,获胜的矿工根据手续费高低挑选这个时间段内发生的交易的交易顺序,并且把这些交易打包到一个区块中,区块跟区块之间链接完成这个网络的交易时间顺序,完成比特币网络的共识。

不管是POW、POS还是DPOS,这些共识算法通过竞争获得产生区块的方法确实解决了共识问题,却不能称得上优雅,每一个区块的形成过程似乎都是在把大部分交易拒之门外,留下一些满足矿工口味的交易打包到区块中。

基于区块的共识有哪些问题不够快*

矿工之间通过竞争一段时间的交易打包权获得激励,每笔交易被确认,首先需要足够幸运或者花足够多手续费才有可能被矿工选中。交易即使被矿工选中,还是需要等待一个出块时间。在付出足够多手续费之后,比特币要十分钟才可以被打包到区块,以太坊也要十几秒才被得到确认。不管是比特币还是以太坊,性能上讲都离大规模商用有很远距离,完全不能满足类似visa的使用场景。

不公平

矿工到底在扮演什么样的角色?中本聪白皮书中,通过经济模型刺激,矿工为了获得coinbase激励和交易手续费,会拼命破解算力难题不会作恶。然而事实上矿工已经在利用自己的出块权,一些矿工组成了联盟,收“交易加速费”,把钱直接交给联盟,这笔交易就可以快速获得确认。这还算说的过去,反正普通用户要么提高手续费,要么直接用钱贿赂矿工。更严重的例子,在一些吸引眼球的ICO项目火爆的募集资金过程中,某些矿场会优先确认自己的交易,即使普通参与者设置的手续费更高,网速更快,矿工压根无视你的交易,当然与投资机会无缘。最终,优质ICO项目居然都被矿工抢走。矿工,宁有种乎?

DAG是不是为了性能牺牲了安全

之前文章提到过,DAG跟区块链的结合,从开始出现就是为了解决区块链的性能问题,从结合block和DAG做侧链思路,到摒弃block概念的DAGCoin,再到已经取得一定成功的iota和bytebal。不少人在质疑这些DAG应用的安全性,是不是还满足去中心化的的共识。包括iota是不是过多依赖还没开源的validator,byteball的witness节点有没有作恶空间。

这里推荐看一下byteball创始人Tony在一个bar里的访谈,https://www.youtube.com/watch?v=M-gmFnh24Lc 。我们发现在以区块组织交易结构的共识中,打包交易的矿工是拥有相对很大的操作空间的,矿工可以选择哪些交易进入区块,哪些交易不被处理,甚至可以只转发满足自己利益的交易,因为在一个很长的出块时间里,矿工有足够空间从几万币交易中选择自己看中的交易来组合打包,因为只要自己获得了出块权利,这个时间段的交易哪些被确认就是自己说了算。而在byteball的witness节点中,witness节点能做的事情很有限,收到一笔交易后,能做的只是记录交易的时间戳,因为没有出块时间留出来的时间空挡,需要马上处理下一笔交易。所以byteball创始人一直强调不要把witness跟矿工混淆,witness扮演的更多的是一个checkpoint的角色,只是帮系统记录交易发生的先后顺序,没有留出作恶的空间。

更进一步的,为了让见证人节点更加安全去中心化,也有不少团队提出了自己的方案,包括信源链考虑见证人节点之间通过挖矿保证安全,万物链ITC提出在见证人节点之间通过PBFT公式保证见证人节点的安全。

hashgraph,让DAG至少跟比特币一样安全

0_wx_fmt_jpeg

hashgraph

如果还是不能打消对DAG的疑虑,hashgraph至少让DAG跟比特币一样安全,而且更加公平。

hashgraph是Swirds公司抱有专利的一种分布式账本共识,也没有区块概念,交易跟交易直接组成DAG。目前Swirds公司没有做关于ICO的打算,目前更多在以技术服务商的身份在供应链和物联网方向做应用落地。Swirds CTO Leemon Baird是个非常有魅力的演讲者,推荐Leemon在HBS的演讲,https://www.youtube.com/watch?v=pOc23lJw7ls

hashgraph通过gossip of gossip协议,让每个节点都维护着所有节点跟其他节点的通信历史,每个节点在完成拜占庭协议时,居然不需要经过网络多轮通讯,节点本地环境就可以直接模拟拜占庭决议。

性能角度,目前hashgraph共识已经满足了几十万的并发,性能瓶颈已经不是协议本身,而是到了网络IO层。

安全角度,hashgraph的数学上可以证明满足异步拜占庭容错,至少跟比特币一样安全。

公平角度,没有矿工这种超级权利的角色存在。

Leemon Baird有提到,hashgraph的共识也很适合构建公有链。关于hashgraph共识的详细内容,可以关注作者后续文章。

写在文末

hashgraph的出现,证明DAG在安全性上已经不需担心,至少跟比特币一样安全,而DAG的性能更是卓越。基于区块的区块链结构只是分布式共识协议实现的第一次尝试,新的优秀的共识协议会继续出现,而DAG,就是一个非常值得尝试的方向。

最近在做区块链方面的创业项目,在找各种技术栈的小伙伴一起搞事情。也欢迎大家加微信交流沟通 qqwww5最近在做一个区块链技术相关的公众号,欢迎大家关注 JustBurning技术相关的公众号,欢迎大家关注 JustBurning知识星球是个沉淀内容的地方,星球有不少对dag理解深刻的朋友

0_wx_fmt_jpeg 1