DAG全称Directed Acyclic Graph, 中文译作“有向无环图”。它原本是计算机领域里一种数据结构,为了解决比特币交易速度慢的问题,它作为一种底层账本结构被重新提了出来。在大部分的介绍中都把DAG和区块链作为两种独立的底层账本结构区别对待,更有甚者仅仅把DAG看做一种共识机制。笔者认为这两种观点都过于片面了,都是因为缺乏对DAG的正确认知。
要认识DAG首先需要明确两个概念:账本结构和共识机制。DAG作为一种底层账本结构有适合自己结构的共识机制。区块链也是一种底层账本结构,但它其实是一种特殊的、简化的DAG,其对应的共识机制也是DAG共识的简化版。
本篇文章作为系列的第一篇将着通过梳理我们熟知的比特币和以太坊的工作原理提炼出账本结构和共识机制这两个概念,来帮助我们后续系统的理解DAG。
1 比特币的工作原理
比特币的记账过程:矿工节点把交易打包在区块里,通过对区块做POW(工作量证明)使这个区块成为候选区块(出块过程);候选区块被全网广播等待其他矿工确认,该候选区块通过确认后会被添加到最长的链上。
在理想状态下要等前一个区块被全网确认加到链上以后,下一个区块才能被打包成候选区块广播。如果出块速度太快,广播的速度跟不上出块速度;将会导致一个区块在被全网确认以前新的区块又被挖出来广播了,这就是分叉。分叉会降低网络的安全性(具体分析可以参看《