区块链是一个去中心化的数据库,但是去中心化的数据库却不仅仅指区块链,因为还有一种技术叫做DAG,它也是分布式账本技术。
1:什么是DAG
DAG(Directed Acyclic Graph),中文名"有向无环图"。"有向"指的是有方向,准确的说应该是同一个方向,"无环"则指够不成闭环。在DAG中,没有区块的概念,他的组成单元是一笔笔的交易,每个单元记录的是单个用户的交易,这样就省去了打包出块的时间。验证手段则依赖于后一笔交易对前一笔交易的验证,换句话说,你要想进行一笔交易,就必须要验证前面的交易,具体验证几个交易,根据不同的规则来进行。这种验证手段,使得DAG可以异步并发的写入很多交易,并最终构成一种拓扑的树状结构,能够极大地提高扩展性。
上面这张图是区块链,其中黑色的是最长链,也是全网的唯一主链。紫色的是分叉链,随着出块数量的增多,由于没有得到认可,最终被抛弃。
上图左右这两张图都是DAG。但他们是不一样的。左边这张图是IOTA的"缠结Tangle",使用者每发起一笔交易,需要验证前面两笔交易,后面这张图是普通的DAG,对验证次数没有限制。
2:DAG与区块链相比的优缺点
DAG系的区块链有些概念很有趣,了解这些概念更容易理解DAG技术。
1从概率的角度来看双花问题。
在比特币网络中,通过UTXO模型,一个用户对自己可以解锁的UTXO只能发起一次转账,如此解决双花问题。比特币白皮书中也有提到,有可能多个矿工会同时解决哈希难题,获得同一时间段的交易打包权就是出块权,会有临时分叉的可能性。从这个角度来看,比特币网络中所谓的"global ledger state"也是一个不确定的状态。某一笔交易状态的确认是由其后挂靠交易的数量决定的,其后挂靠的交易越多,交易状态回滚的概率越低,这笔交易越安全。
2网络宽度
iota的tangle网络
DAG网络一个重要的问题就是解决网络宽度,DAG网络中,每笔交易被确认,需要链接到已经在网络中存在的并且比较新的交易,如果都选择网络中比较早的交易,会导致网络宽度过宽,新的交易难以得到确认。理想的状态是,新的交易发起时,选择网络中已经存在的并且比较新的交易做链接确认,这样网络的宽度保持在一定范围,能让新的交易有足够快的确认时间。在IOTA中,tangle也提出了自己控制交易宽度的算法,有兴趣可以参考tangle白皮书。
那么DAG究竟有哪些特点,居然让iota市值一度排到了虚拟货币第四的位置。
1交易速度快
如上文提到,由于DAG摒弃了区块概念,交易直接进入全网中(需要指出,iota网络中每发起一笔交易,会类似hashcash一样的机制做简单的pow证明),所以交易速度预期比基于pow和pos的需要出块的区块链会快不少。
2无需挖矿
DAG把交易确认的环境直接下放给交易本身,无需由矿工打包成区块后同意交易顺序。所以DAG网络中没有矿工的角色。
3无手续费
iota的tangle网路中,交易发起只需要做简单的POW工作量证明,整个网络中的POW都是发起交易者自己做的,而不是交给矿工。发起交易无需手续费。
4智能合约支持
目前iota还不支持智能合约,但是官方roadmap中有计划在18年开始实现对智能合约的支持。而byteball也还不支持智能合约。
5需要见证节点
不管是iota还是byteball,目前的网络结构中,还是需要见证人机制的存在。这一部分不管是DPOS、POS、PBFT,大家最终都会在效率、安全性上寻求一种平衡。
市场上iota和byteball的市值已经引起了很多关注,相信对DAG的技术讨论也会变多。从技术角度来看,DAG给我们提供了完全不一样的区块链实现,高性能和无手续费这些点确实引人注目。随着社区对DAG技术的进一步完善和发展,也许,DAG会是真正的区块链3.0呢。
区块链目前有什么问题呢,说白了就是一句话,在保证去中心化和安全性的前提下无法大幅度的提高扩展性,导致难以商业化运用。而DAG,理论状态下是去中心化的、如果网络足够强大,安全性也可以保证,更重要的是能够大幅度的提高扩展性,采用DAG技术的分布式数据库,起步就可以把TPS做到10万+,还能把交易费用做到极低。
既然DAG这么完美,是不是就可以完全替代区块链呢?当然不是,事实上,DAG也有自身的缺陷性。
1:交易时长不可控。DAG的验证规则是后面的交易验证前面的交易,这就很容易出现最后的交易迟迟无法被验证的情况,尤其是在整个网络发展的初期节点数量比较少的情况下,造成交易时长无法预测。当然,解决方法也是有的,但是不管是见证人还是其他超级节点机制,都在一定程度上违背了去中心化。
2:不支持强一致性。DAG作为一种谣言传播算法,其异步通讯机制在提高了扩展性的同时也带来了一致性的不可控问题。区块链是同步操作的验证机制,能够保证较高的一致性。但是DAG作为异步操作,它不存在一个全局的排序机制,在运行智能合约时,这就很可能会出现节点间所存储的数据在运行一段时间以后出现偏差的情况。
3:安全性还没有得到大规模的验证。DAG技术并不新鲜,但是应用到去中心化账本领域确是近几年的事情。他没有像比特币那般经历过长达10年的安全验证。这是他目前大规模的部署DAPP的最大障碍。
DAG技术作为区块链的一个有益补充,其异步通讯机制在提高扩展性、缩短确认时间和降低支付费用方面优势明显,未来在去中心化技术领域将来也会有一席之地。但其安全性和一致性的问题也亟待解决。相信随着以后技术的发展,这些问题也会得到逐步改善。老马也比较看着这方面的发展。
<li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true"> <use xlink:href="#csdnc-thumbsup"></use> </svg><span class="name">点赞</span> <span class="count"></span> </a></li> <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{"mod":"popu_824"}"><svg class="icon" aria-hidden="true"> <use xlink:href="#icon-csdnc-Collection-G"></use> </svg><span class="name">收藏</span></a></li> <li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{"mod":"1582594662_002"}"><svg class="icon" aria-hidden="true"> <use xlink:href="#icon-csdnc-fenxiang"></use> </svg>分享</a></li> <!--打赏开始--> <!--打赏结束--> <li class="tool-item tool-more"> <a> <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg> </a> <ul class="more-box"> <li class="item"><a class="article-report">文章举报</a></li> </ul> </li> </ul> </div> </div> <div class="person-messagebox"> <div class="left-message"><a href="https://blog.csdn.net/yhc166188"> <img src="https://profile.csdnimg.cn/C/A/C/3_yhc166188" class="avatar_pic" username="yhc166188"> <img src="https://g.csdnimg.cn/static/user-reg-year/2x/5.png" class="user-years"> </a></div> <div class="middle-message"> <div class="title"><span class="tit"><a href="https://blog.csdn.net/yhc166188" data-report-click="{"mod":"popu_379"}" target="_blank">yhc166188</a></span> </div> <div class="text"><span>发布了196 篇原创文章</span> · <span>获赞 53</span> · <span>访问量 16万+</span></div> </div> <div class="right-message"> <a href="https://im.csdn.net/im/main.html?userName=yhc166188" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信 </a> <a class="btn btn-sm bt-button personal-watch" data-report-click="{"mod":"popu_379"}">关注</a> </div> </div> </div>