【前言】
这两周看的东西有点儿杂,同时感觉深入点不够,姑且先记录一下心得,本篇以DAG与传统区块链技术的对比。
【“区块链”的两大主流技术】
比特币、以太坊等区块链的扩容问题一直是当前区块链技术发展的重要议题,并出现了分片、侧链、闪电网络、隔离见证等各种扩容解决方案。
扩容提升TPS
一派专业人士从传统的区块链技术去深入研究试图找到一种解决办法,分生出链上和链下扩容方案,而还有一派专业人士试图使用新的技术来实现分布式功能,其中热门的一个就是DAG有向无环图。
分布式技术
综合概括,传统区块链技术是一种链式数据库结构,每个区块就像铁链一样,环环相扣。
传统区块链
而DAG将最长链共识改成多条链互证共识,它没有区块概念,不是把所有数据打包成区块,再用区块链接区块,而是每个用户都可以提交一个数据单元,这个数据单元里只有交易,数据单元间通过引用关系链接起来,从而形成具有半序关系的DAG。
DAG
传统区块链上,新发布的区块会加入到原先的最长链之上,并且以所有节点都认为最长的链为准,依次无限蔓延。而DAG中,一个网络节点要发起一笔新的交易时,需要在网络中找2笔其他交易去验证,并且将自己新发起的交易指向这两笔交易,整个网络就是这样一点一点扩大出去的。正因为这样的设计,整个网络中验证交易的责任从传统的矿工转移到了每个网络的使用者身上——你想要发起一笔交易,就必须帮着一起验证网络中的其他交易。
说了那么多绕口的概念,记住两种记住本质特点区别就是:
1.传统区块链最小单元是区块(Block),块里面有很多交易,涉及众多用户; DAG最小单元却是直接采用单笔交易(Transaction),只涉及单个用户;
2.传统区块链技术是区块组成的单链——最长链,即区块链;DAG是多链盘绕网络,相互验证,用有向无环图描述很贴切;
3.传统区块链技术是同步验证,一个块打包出来全网络节点同步,块与块是依照时间有先后顺序的,可以类比成单核单线程CPU;而DAG是由交易单元组成的网络,可以异步并发写入交易,它允许节点在同一时刻数据不一样,数据可以有一些微小的差别,但最终是同步的,可以类比成多核多线程CPU;
Blockchain vs DAG
当然讲到这里,需要提醒一点的是,传统区块链技术已经是得到了充分验证的技术,如BTC是有严格的数学证明的,而且简单易懂,符合简单最伟大原则;而DAG做为一个新的方向,虽然有IOTA等这种落地项目的时间验证,但是毕竟复杂程度升级了不少,也是目前很多人看不懂、无法理解的技术,加上异步性能和验证方式的不一样,导致了双花问题、女巫攻击都会更加复杂(如IOTA需要验证你交易的其他交易越多,则你的交易的确定性越高。当达到一个阈值时,就认为这个交易被确定了。假设当前一共有100个tips,其中有90个tips间接确认了你的交易,那你的这条交易就是90%确认。如果能造出100个新的tips使得这100个tips都不间接确认你的交易,那么现在你的交易就变成只有45%确认了,这是异步的主要问题),所以即使像上面说的DAG是多链盘绕网络,但是实际项目设计时也得设计主链原则(或者重链原则,gossip协议等)来防范这些问题,安全性稳定性仍然是一直热议的话题,所以IOTA至今也仍然不敢轻易移除其中心化协调者,导致一直被诟病不是真的分布式项目。
TrustNode列举的横向对比(未论证,直接摘取)
DAG作为传统区块链技术上的一个新的尝试方向,而且落地项目和热门度也越来越高,新一代的改进版也有将传统区块链和DAG的杂交模式的项目,如将DAG中的最小单位(Transaction)改进成区块(Block),采用DAG的混链模式,但是依照权重或者特性算法还是定义出一条主链同时引入公证人机制等;甚至是进一步改进的Hedera hashgraph以及tolar hashnet,都是值得关注的。
DAG主流家谱
【附录】
IOTA交易描述(IOTA中国社区 | IOTAChina | 埃欧塔):
2
3
4
5
6
7
8
9
10
简书地址:https://www.jianshu.com/u/0b4c8940c6c5
(简书中的链接可以直接点击,公众号外部链接会无效)
公众号信息可能会看得不及时,超过48小时就不能回复,大家可以选择留言,谢谢!
欢迎ERC20系列币打赏:
0xe7F9D2D4B6D3d8535Da330041aE7Ce814C35622B
领取专属 10元无门槛券
私享最新 技术干货