区块链3.0 DAG,一文详解Starcoin创新的FlexiDAG!

区块链作为独立技术的概念在2015年开始普及。在此之前,它就是众所周知的比特币技术的数据结构。随着比特币的流行,我们将比特币里面用到技术和概念分类为区块链1.0。随着以太坊作为分布式应用程序的平台运行,人们开始将以太坊分类为区块链2.0。现在市场正在争夺谁来命名区块链3.0,而很多人认为DAG技术是区块链3.0的最佳选择 !那到底什么是DAG技术?与传统区块链相比其有具有什么优势?

一、DAG是什么?

DAG(Directional Acyclic Graph ),一般译为有向无环图,或定向非循环图。其是计算机领域一个常用的数据结构,因为独特的拓扑结构所带来的一些特性,经常被用到处理动态规划,导航中寻求最短路径,数据压缩等场景中。

相对于链式结构来说,DAG具备安全、高效等优势:

安全

相比于链式结构,在DAG中恶意修改的难度会大很多,因为DAG拥有着很多的出度和入度,假如要修改某一个节点,那么对应的出入度都要进行修改。DAG钱包发起交易时不需要等待自己之前有多少交易,只需要经历局部校验、全网广播、其他局部校验,相当于是把交易确认分散化,每一个节点都在做类似于拼图的工作,把自己的和别人确认的交易拼接起来。

高效

DAG实现的局部处理和并行结算可以使得交易速度大幅度提升。无论是比特币还是以太坊,其转账速度一直饱受诟病,这也已经成为了目前区块链应用落地的最大障碍。与区块链技术不同,DAG技术最大的特点是没有区块,系统不需要定时出块,这也就明显的加快了交易速度,也实现了同时容纳海量并发交易。并且,在DAG中参与交易的人越多,交易确认的速度也就越快,这个独特优势对于DAG的后续快速发展是非常有利的。

如今DAG技术已经在众多区块链网络中应用,并且为网络的安全性和高效带来了显著的提升,其中Starcoin在原生的DAG技术上创新推出了FlexiDAG,为网络安全带来了重大保障,并且使BPS和TPS都有10倍以上的提升。

二、FlexiDAG:兼顾并行处理和安全性

在Starcoin 2.0中,通过引入有向无环图(DAG)结构,并结合 Starcoin 1.0 中对 POW 的研究,有效地提升了 Starcoin 在性能方面的表现,增强了整个系统的效率和可用性,可以最大限度利用网络,减少用户等待时间。此外,FlexiDAG还提供了区块链的动态调整能力,一些关键参数通过链上治理机制来实现配置修改。

中本聪共识最早由比特币采用,也是区块链早期广泛使用的一种共识方法。目前为止中本聪共识是容错能力最好的公有链共识机制,其设计简单,通讯开销低,经过了数十年的验证。但是其吞吐能力较低,出块时间过长,用户体验较差。因此,我们选择了对中本聪共识进行加强,使得 Starcoin 具备以下的特性:

  • 并行出块的能力,网络中多个不同的矿工可以同时产出可以被主网络确认的区块,而不再是被作为叔块或者孤块被丢弃。
  • 动态调整出块速度以及区块大小,在安全,网络吞吐,用户体验之间寻求平衡。
  • 共识相关的参数可通过社区治理,经合约升级。

为了实现Nakamoto共识的并行化,Starcoin 2.0 中, 会将所有符合区块创建规则的叔块同时添加到区块链中。这意味着叔块也是经过共识确认的有效区块,不需要重新加入交易池。

如果可以在某个时间点基础上同时创建多个有效区块,那么每个新区块可以被看作是最近创建的若干区块的子区块,它们指向这些区块。基于这一点,区块链的拓扑结构将从链变为有向无环图(DAG)。

实施这一方法需要解决的问题是 如如何区分恶意或非法区块、如何抵御51%攻击,以及如何确认DAG中区块的顺序。

因此,传统的Nakamoto共识中根据累积的计算工作量来确定构建后续区块的链所构造出的区块集合,是为最长链。而 FlexiDAG 共识的设计核心是标识出一个良好连接的子图,其中后续区块可以基于累积计算工作量进行建。这个子图应该表现出强大的连接性,具有最少的孤立区块以及节点之间紧密的连接,这将构成添加到区块链的已确认区块集,成为 “最长链”。

三、FlexiDAG 共识的过程

1. 构造新区块:创建一个新的区块,指向DAG中符合条件的叶子节点,即尚未被其他区块引用的节点。

2. 最优父节点的选取:在所有直接父节点中计算并选择具有最高工作量证明(Proof of Work)的节点作为最优父节点,并加入到待确定的区块集合中。

3. 共识选举:考察最优父节点的反锥节点(那些与最优父节点不直接相关联但可达的节点)。从这些节点中选择符合特定条件的节点,确保它们的加入不会破坏整个DAG的连通性,然后将这些节点加入到待确定区块的集合中,扩展候选区块的范围。

4. 节点排序和应用:将选中的节点集合按照工作量排序,并串行地应用(添加)到最优父节点之后,确定最终的区块序列。

5. 链的最终确定状态更新:从分叉链中选出具有最长链的序列,确定最新的区块头,维护区块链的完整性。

6. 保证限制的遵守:在选举成功的区块加入时,确保已确认区块集合的反锥集合与已确认区块集合的交集数量不超过给定的限制大小个数,从而确保解决方案的有效性和共识规则的遵守。

这个过程体现了 FlexiDag 在区块链共识机制中的创新,通过结合DAG结构和工作量证明来提高系统的安全性和扩展性。

四、FlexiDag 安全性分析

1. 双重支出攻击 (Double Spending)

攻击描述: 双重支出是指恶意用户试图在区块链上同时使用相同的资金进行两次或多次支付。

FlexiDag 中通过对其确认的 Blocks 和 transactions 进行排序。从而确认整个 DAG 的执行状态, 事务一旦被包含在足够数量的被确认区块中,它们将被视为最终确定,从而减少了双重支付的可能性。

2. 自私挖矿 (Selfish Mining)  or 长程攻击 (Long-Range Attacks)

攻击描述: 自私挖矿是指矿工故意不广播新发现的块,以获得竞争优势。

FlexiDag 中由于块是基于 DAG 结构形成的,每个区块都将引用其所有合法的父节点,如果有矿工尝试隐藏块,其他矿工将继续在已知的最新块上挖矿, 同时由于区块通过其在 DAG 中的位置来积累共识,这样随着时间的推移,因此重写历史需要巨大的计算力,攻击成本将会越来越高。

3. Sybil攻击

攻击描述: 在Sybil攻击中,攻击者创建大量虚假身份来获得网络中不成比例的影响力。

FlexiDag 是基于工作量证明的,因此攻击者需要控制大量的计算资源来有效地执行Sybil攻击。这种攻击的成本和复杂性使其成为不切实际的选项。

4. 拒绝服务攻击 (Denial of Service - DoS)

攻击描述: DoS攻击是指通过大量无效交易或请求来淹没网络,使其无法处理合法的交易。

FlexiDag 的 DAG 结构允许并行处理和更快的块确认,从而提高了网络的整体吞吐量和抗攻击能力。

目前FlexiDAG已经在Starcoin2.0中部署及应用,网络BPS(区块生成时间)提升10倍,网络TPS(交易次数)提升17倍,整体网络性能提升超过100倍,并且在高压力测试环境下表现稳定,这也为区块链的大规模应用释放了一个有利的信号!

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值