Conflux采用有向无环图结构组织区块 能够在分钟级别的延时内确认交易

投稿人/来源:区块网 | 2019-11-28 15:40:10 |

• 现状:只有极少数的区块链交易会产生冲突

• Conflux将大幅提高并发块的的处理效率

· 利用乐观处理并发区块的想法,采用有向无环图结构组织区块

· 利用对主链的共识来帮助对有向无环图中所有区块的一致排序

• Conflux能将公链系统的吞吐率提升到每秒上千次交易,且能够在分钟级别的延时内确认交易

• Conflux将打破共识机制的性能瓶颈

Conflux的整体运行架构

1. 区块链目前所面临的问题

区块链行业的问题之一(1/2)比特币无并发处理能力

在比特币生成区块时,矿工就要确定一个严格的交易顺序:

区块链行业的问题之一(2/2)比特币无并发处理能力

区块链交易仅极少产生冲突,那么如何提升交易处理的效率?

区块链交易之间极少产生冲突的情况。没有冲突的交易之间可以按任何顺序排序;对于所有在并发的区块中的交易,如果它们之间没有冲突,为什么不都执行呢?

在 Conflux 中,所有区块构成一个有向无环图结构

2. 有向无环图的设计与解释

如何在有向无环图中确认一个区块的排序(1/2)

每个区块有一个“父边”,指向它的父亲区块;所有的区块和它们的父边构成一棵树

如何在有向无环图中确认一个区块的排序(2/2)

这个引用边主要是记录和表达哪些区块的生成早于当前的区块

如何将一条链对区块的全序达成共识 (1/2)

根据主链,通过一个确定性的规则,决定一个一致的区块的全序

如何将一条链对区块的全序达成共识 (2/2)

有向无环图中产生一个新区块的规则

如何在有向无环图中对区块的全序达成共识 (1/3)

全序达成共识的规则:

1. 在主链上的每一个区块就确定了一个Epoch

2. 在分叉上的区块属于哪个Epoch,是由第一个产生在它之后的主链区块所在的Epoch决定的

如何在有向无环图中对区块的全序达成共识 (2/3)

全序达成共识的规则:

1. 首先按照Epoch的顺序来给区块排个序

2. 再按照拓扑排序来确定区块的顺序

3. 根据区块头哈希值来打破平局

如何在有向无环图中对区块的全序达成共识 (3/3)

3. 为什么Conflux可以防止双花攻击

为什么Conflux的设计能够成功地防止双花攻击?

声明1:除非攻击者能够改变主链,否则无法完成逆转交易(1/2)

• 若攻击者想成功对交易2(在区块2中)发起双花攻击,它需要将创世区块作为父亲,并且寄希望于各个节点对排序达成的共识中,恶意的区块在区块 B 前面。

声明1:除非攻击者能够改变主链,否则无法完成逆转交易(2/2)

• 然而,只要主链未发生变化,则不良/恶意区块一定被列于较后的epoch;所以攻击者无法对较早的epoch中的交易完成双花攻击

声明2:若攻击者未超过50%的算力,则无法改变主链

• 改变主链中老区块的理论分析

假定要转换主链上的区块A

那么所有攻击者产生的块都会在A’的子树下面,然而所有诚实的节点所产生的块都会在A的子树;攻击者则需要超过50%的算力才能让A’的子树超过A的子树。

为什么需要50%的算力来改变主链

有向环形图的确认机制

Conflux确认机制的设计基于大量且精准的安全性分析

• 用户假设:

攻击者的算力 -- q

交易被逆转所承受的风险率 -- r

• Conflux首先找到这个交易所属的Epoch

• 然后找到和这个Epoch相应的主链区块

• 最后再检查这个主链区块被逆转的概率是否小于用户所能承受的风险

4.Conflux的研究评估

测试Conflux的实验环境

• 我们搭建了Conflux的一个原型系统,并在Amazom EC2上运行1万个Conflux节点来做实验

• 为了模拟公网上真实网络环境,我们限制每个节点的网络带宽是20Mbps

• 实验中我们调整不同的区块大小和出块率:

区块大小范围: 1MB ~ 8MB

出块率速度范围: 5s ~ 80s

• 对实验已达成的结果进行测算,并确认递延时间

• 与其他协议的实验表现进行对比,包括比特币、Ghost协议

Conflux的实验成果 – 现阶段成果

• Conflux 可达 2.88G/小时 处理 每5秒产生4MB大小区块的内部环境下,在每5秒产生4MB大小区块的实验参数下,可以每小时处理 2.88G 的交易数据量~3200 TPS

• 在一致环境下,效率为Algorand 的3.7倍

• 效率为比特币/GHOST的12.5倍

Conflux的实验成果 – 区块的使用率

• 更高的出块速度和更大的区块大小 à在比特币/GHOST中有效区块的比例更低

• 在处理4MB+5s的设定下,比特币仅有 8% 的区块被保留,其他区块作为孤块被丢弃

• 相对而言,Conflux中的所有区块都能出块

可信交易的确认时间(1/2)

• 高效出块

- 区块之间会快速建立联系

- 快速及时的确认

• 在每5秒产生4MB大小的区块的实验参数下,确认时间平均约 10 分钟

• 比特币无法在高出块率/大区块下保证安全

可信交易的确认时间(2/2)

• 假设攻击者算力增加,则用户需要等待确认的时间会更长

• 用户等待确认时间越长,则交易被逆转的几率会呈指数下降

Conflux带宽的延展性

• Conflux在带宽为20Mbps时无法处理每2.5秒4MB的区块

• 而网络带宽为整个系统吞吐率的瓶颈

• 如果将网络带宽假设提高到——40Mbps

• 10000 个 Conflux 节点在 40Mbps 的带宽下,可以成功对每2.5秒4MB的实验设定下达成共识

· 达到5.76GM/小时的吞吐

· 最高达6400笔交易每秒 (比特币的交易规模)

• 在6.3分钟的延迟时间内确认交易

在更多全节点情况下的延展性 (4MB+5s)

• Conflux 能扩展至20,000个全节点

• 全节点的数量成倍增加时,网络传播延迟时间 d 将呈线性增长(考拉)

相关研究