DAG最初出现是为了解决区块链的效率问题。比特币的效率一直比较低,基于工作量证明共识下的出块机制是一个原因,由于链式的存储结构,整个网络中同时只能有一条链,导致出块无法并发执行。
针对此问题,Nxt社区提出改变区块的链式存储结构,变成区块DAG。在区块打包时间不变的情况下,网络中可以并行打包N个区块,网络中的交易就可以容纳N倍。但此种方式仍停留在类似侧链的解决思路,不同的链存储不同类型的交易,这样降低出现双花的可能,在之后某个节点需要合并的时候,几个分支再归并到一个区块。
换一种思路,上述方案都属于有区块的情况,无论是在比特币还是以太坊中,我们都会提到出块速度这样的概念,比特币每十分钟出一个块,6 个出块确认需要一个小时,以太坊好很多,但是出块速度也要十几秒。能否舍弃区块的概念呢? 2015年社区提出DAGCoin的概念,把区块和交易融合到了一起。回想下比特币网络中区块和交易的概念,很多笔交易先打包到区块中,区块和区块之间通过 PreHash 来维护全网的交易顺序。而 DAGCoin 的思路是让每一笔交易直接参与维护全网的交易顺序。这样交易被发起后直接跳过打包区