被称为区块链3.0的DAG到底是什么?
如若用一句话来形容区块链的弊端,那就是无法在保证安全性和高度去中心化的前提下,大幅度提升可扩展性,导致无法大规模商用。为了提高可扩展性,出现了分片、跨链、闪电网络等手段,这些方法都没有改变区块链同步写入的单链数据结构。DAG(有向无环图)是计算机领域常用的一种数据结构,它取消了“block”这个概念,进而也没有了“矿工”、“挖矿”这些。将组成单元从“block”变成一笔一笔的“transaction”,如果用户想要发起一笔transaction,必须验证前面几笔交易(具体验证几笔要看实际的规则,类似IOTA就仅需要验证之前的两笔交易),交易几乎被瞬间验证,提高了交易验证的速率。同时通过这种验证手段,DAG实现了异步并发写入,形成一个树状拓扑结构,达到提高可扩展性的目的。
如果,来一个形象的比喻的话,blockchain是一个单核单线程的CPU;DAG则是一个多核多线程的CPU。
DAG有什么优势让它能够成为blockchain3.0呢?
- 交易速度快,这是最重要的优势!各个节点发出的交易,无需等待同步其它节点的数据,就能通过验证之前的几笔交易的正确性来加入网络。适用于小额交易;而在传统的blockchain中,节点发出交易后,要等待所有节点同步交易信息,确认交易后,还要等待所有节点同步确认信息。不仅交易速度慢而且对小额交易不友好。
- 可扩展性强,传统的blockchain采用的是同步通讯机制,各节点间同步写入区块信息,可能会造成网络的阻塞;DAG则支持异步通讯机制,允许并发写入无需明确的先后顺序,提高了网络的可扩展性。
- 作恶成本高,DAG有多个出度、多个入度。若是有作恶节点更改信息,要将多个出入度都更改。
既然DAG有这么多好处,为什么还不能完全取代blockchain呢?
- 交易时长不确定,在异步通讯系统中,如何达成一致性是个问题。
- 不能很好地处理double spanding
- 当攻击者构建足够多的交易后,可能会造成影子链攻击(欺诈性分支)