万链之家-DAG也许是真正的区块链3.0

访客 科技探索 2018-03-15 398 0

从15年开始,区块链概念被单拎出来,这之前区块链还只是比特币技术里的一个数据结构,中本聪白皮书里把block和chain连一起的时候也只是a chain of blocks 。随着以太坊去中心化计算机的概念提出来,很多人开始把以太坊称作区块链2.0,而比特币被归到了区块链1.0。至于区块链3.0,市场上为了抢夺区块链3.0的冠名权打的不可开交,没准会是DAG。

DAG(Directed acyclic graph),有向无环图,是计算机领域一个常用的数据结构,因为独特的拓扑结构所带来的一些特性,经常被用到处理动态规划,导航中寻求最短路径,数据压缩等场景中。

第一次提出DAG跟区块链结合是在Nxt社区,可以发现DAG最初出现就是为了解决区块链的效率问题。比特币的效率一直比较低,基于工作量证明共识下的出块机制是一个原因,由于链式的存储结构,整个网络中同时只能有一条链,导致出块无法并发执行。社区有人提出DAG的拓扑结构来存储区块,这个时候更多还是类似侧链的解决思路,不同的链条存储不同类型的交易,这样降低出现双花的可能,在之后某个节点需要合并的时候,几个分支再归并到一个区块。

简单介绍下,目前比特币区块链存储结构如下,每个区块存储着当前时间段所有的交易,矿工一直在拼命争夺某个时段交易的打包权利,把当前时间段所有的交易打成一个区块。目前比特币网络平均出块时间在10分钟。

而Nxt社区提出,改变区块的链式存储结构,变成区块DAG。在区块打包时间不变的情况下,网络中可以并行的打包N个     区块,网络中的交易就可以容纳N倍。

发现这个时候DAG跟区块链的结合还是停留在侧链的思路,不同类型的交易可以并行在不同的链条进行,达到提升性能的目的。这时候的DAG还是有区块的概念。

我们发现不管是最近异军突起的ITC,风头正盛的IOTA,还是备受瞩目的Byteball,都提出了blockless无区块的概念。不管是比特币还是以太坊,我们总会提到出块速度这样的概念,比特币每十分钟才出一个块,6个出块确认就要一个小时,以太坊好很多,但是出块速度也要十几秒。为什么一定需要区块呢?

15年社区有提出DAGCoin的概念,DagCoin: a cryptocurrency without blocks。这里把区块和交易融合到了一起。我们回想下比特币网络中区块和交易的概念,很多笔交易先打包到区块中,区块和区块之间通过prehash来维护全网的交易顺序。而DAGCoin的思路,让每一笔交易直接参与维护全网的交易顺序。这样交易被发起后直接跳过打包区块的阶段,直接融入全网,如此达到所谓的blockless效果。这样确实连打包交易出块的时间都省去了,如前文提到的,DAG最初跟区块链的结合就是为了解决效率问题,现在不用打包确认,交易发起后直接进入确认网络,理论上效率自然提高很多。#p#分页标题#e#

自此,以blockless独树一帜的DAG区块链雏形基本形成。又以IOTA和Byteball在市场上的表现最为耀眼,而近期最吸睛的,无疑是以黑马之姿亮相市场的ITC。


版权声明:1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充

分享:

扫一扫在手机阅读、分享本文

评论