本报告由火币区块链研究院出品,作者:袁煜明、胡智威。原文地址
相关报告:
【超越白皮书2】EOS主网上线前夕的实测分析与技术建议
【超越白皮书1】EOSIO程序实测分析与技术建议
火币区块链应用研究院从技术角度对基于有向无环图(DAG)数据结构的分布式账本技术进行研究,并通过对典型代表项目IOTA的具体技术测试,主要得到以下研究结果:
- DAG技术与狭义的区块链技术相比,有其创新之处,理论上在不考虑作恶情况下可实现高可扩展性和高去中心化,因此存在一些安全隐患。
- DAG项目往往以偏中心化的方式来实际运行,即降低去中心化程度来提高安全度,但同时其交易速率并没有接近理论上限。
- 采用基于VPS(CPU进行PoW)的40个节点网络对代表性项目IOTA进行交易压力测试,可发现TPS很低:可达到的最优结果为4.19。
- 经分析,其性能瓶颈目前主要还在于硬件的算法实现本身。如果采用FPGA等其他方式来实现,应可进一步挖掘出DAG的性能潜力。
- 同时,为保持良好的交易处理能力,应建立足够规模的节点网络。
1. 引言
区块链是一种分布式账本技术,而分布式账本技术却不局限于“区块链”这一种技术形式。在数字经济发展的浪潮中,为了改进原有技术、满足更多的实际业务应用场景,更多的分布式账本技术正在被探索和应用当中。有向无环图(Directed Acylic Graph,以下简称“DAG”)是其中的代表之一。
DAG技术以及它背后的设计思想是什么?实际应用效果如何?我们尝试通过对DAG技术进行深层解析以及对代表性项目IOTA的实际测试运行获得分析结论。
另外需要注意的是:测试得到的指标数据结果不是也不应被视为是对IOTA平台或项目最终效果的证明或确认。特此声明。
2.主要结论
经过研究与测试分析,我们得到以下主要结论及技术建议:
- DAG技术与狭义的区块链技术相比,有其创新之处,理论上在不考虑作恶情况下可实现高可扩展性和高去中心化,因此存在一些安全隐患。
- DAG项目往往以偏中心化的方式来实际运行,即降低去中心化程度来提高安全度,但同时其交易速率并没有接近理论上限。
- 采用基于VPS(CPU进行PoW)的40个节点网络对代表性项目IOTA进行交易压力测试,可发现TPS很低:可达到的最优结果为4.19。
- 经分析,其性能瓶颈目前主要还在于硬件的算法实现本身。如果采用FPGA等其他方式来实现,应可进一步挖掘出DAG的性能潜力。
- 同时,为保持良好的交易处理能力,应建立足够规模的节点网络。
3. DAG介绍
3.1. DAG原理简介
DAG(Directed Acyclic Graph,有向无环图)是一种数据结构,表示的是一张有向图,并且在这个图中,从任意顶点出发都无法回到该点(无环),如图所示:
基于DAG技术的分布式账本(以下简称DAG)技术在近年来被提出后,被很多人认为有希望替代狭义上的区块链技术。因为DAG在设计时的目标就是保留区块链的优点并且改进区块链的缺点。
和传统线性区块链结构不同,以IOTA为代表的分布式账本平台的交易记录之间形成的是一个有向无环图的关系结构,如下图所示。
3.2. DAG特性
由于采用了不同于以往块链式的数据结构,基于DAG的分布式账本技术,拥有高可扩展、高并发等特性并适用于物联网场景。
3.2.1. 高可扩展性、高并发性
传统线性区块链(如以太坊)的数据同步机制是同步的,这可能造成网络的拥堵。DAG 网络采用异步通讯机制,允许并发写入,多个节点可以按照不同的节奏同时交易,而不必有明确的先后顺序,因此同一时刻网络的数据可能不一致,但最终会是同步的。
3.2.2. 适用于物联网场景
在传统的区块链网络中,每个区块中有很多笔交易,矿工打包好后统一发送,涉及到多个用户;而在 DAG 网络中并没有“区块”的概念,网络的最小单元是“交易”,每笔新的交易需要验证前面两笔交易才能进行,这样DAG网络并不需要矿工传递信任,转账无需手续费,这使得 DAG 技术适用于小额支付。
4. 技术思路分析
不可能三角(trilemma),或被称为“三难困境”,是指在特定的情形下,只能选择三个有利选项中的两个或者是在三个不利选择中必须选择一个。这一类选择困境在宗教、法律、哲学、经济学、企业管理等多种领域均有相关案例。区块链也不例外。区块链中的不可能三角为:可扩展性(Scalability)、去中心化(Decentralization)、安全性(Security)这三者中只能选择其中两个。
如果按照这种思路来分析DAG技术,根据前文介绍,那么无疑DAG已占据了去中心化、可扩展性这两个方面。DAG的去中心化和可扩展性可认为是一体两面的,因为基于DAG数据结构带来的异步记账特性,同时实现了高度的参与网络节点的去中心化和交易的可扩展性。
5. 存在问题
既然是数据结构上的特性同时带来了去中心化和可扩展性,所以按照不可能三角的理论来推测,安全性会是一个隐患。但由于DAG是一个比较创新、特殊的结构,是否也可比较完美的实现安全性?目