区块链分布式账本DAG具备哪些优点
扫描二维码
随时随地手机看文章
当有人问什么是区块链技术时,大部分的回答是“区块链技术就是一个分布式的账本”,但是,如果你把这句话反过来说—“分布式账本就是区块链技术”,可能会有很多人替DAG鸣不平。
分布式账本也称“分布式分类账”,是一个由多个节点组成的网络,可进行数据的存储和处理。在这种网络中,没有控制数据处理的中央实体,而是靠共识来建立信任和联系。
区块链是分布式分类账的一种实现的方式,同样,DAG也是。不同的是,“区块+链”式结构的瓶颈日益明显,而DAG的优势日益突出。
DAG(Direct Acyclic Gragh),也叫有向无环图,“有向”指有方向,“无环”指不能形成闭环,即它由有限个顶点和有向边组成,每一条边都从一个顶点指向另一个顶点,从任意一个顶点出发都不能通过这些有向边回到原来的顶点。
在DAG网络中,交易由自己创建并发布,不需要等待其它节点的数据同步,就可以处理新的交易。所以系统可以同时处理多笔交易,大大提高了系统的交易处理能力。
DAG没有区块的概念,也没有打包区块的操作。
DAG中的每个新单元会验证并确认其父辈单元,父辈单元的父辈单元,可达创世单元,并将父辈单元的哈希包含到自己的单元里面。相比于单一的“链式”结构,篡改“网状”的DAG网络中任一数据的难度会变得更高。
DAG具备了交易速度快,吞吐量高的优点,但同时也存在一些问题。所幸,Nerthus找到了对应的解决办法。
影子链攻击--见证人机制
在DAG网络中,由于可并行处理交易,攻击者可能暗中生成一条影子链,并且时不时地将影子链跟主链进行对接以逃避检测算法。
极端情况下,影子链可能代替主链成为全网共识。针对这种情况,Nerthus采用了见证人机制。交易单元经过见证人的见证并发布见证单元后,就是最终确定的状态,无法推翻,可以有效避免影子链的存在。
状态不一致--抽象的地址链
当不同的用户在同一时间调用同一个智能合约时,会造成智能合约状态不一致,从而产生混乱。
在Nerthus系统中,所有的地址,包括智能合约地址的交易与执行,都由他们的见证人发出的见证单元进行确认。每个用户的见证单元都有前后包括关系,并抽象出一个该地址的链。
同一个智能合约在同一时间被不同的用户调用时,该智能合约的见证人会把它们做先后串行处理,并形成一条该智能合约前后包含的见证链,从而确保状态的一致性。
双花问题--单元引用法则和见证人机制
DAG异步处理数据的特征导致攻击者可以利用单元间的信息差进行双花。Nerthus系统以大量复盘论证的单元引用关系法则(用户级主链)和见证逻辑,可预防双花攻击,同时也不会形成孤链、分叉链。
如今,“新星”DAG已经在分布式分类账的世界里崭露头角,这无疑是一个好消息,但也许更大的惊喜藏在Nerthus中。