56、Simplex共识协议:简单快速的共识解决方案

Simplex共识协议:简单快速的共识解决方案

在分布式系统中,共识协议是确保多个节点就某个值达成一致的关键机制。今天,我们来深入探讨Simplex共识协议,它以其简单性和高效性在众多共识协议中脱颖而出。

1. Simplex协议的活性分析

在分析Simplex协议的活性时,我们假设系统(A, Z)是δ - 有界部分同步的,其中δ < Δ,且协议由Δ参数化。当我们说“一个诚实的进程在时间t进入迭代h”,意味着该进程在某个时间t′ ≤ t时进入了迭代h,当时间t到来时,该进程可能已经处于更大的迭代h′ > h。

1.1 同步迭代引理

引理4表明,如果某个诚实的进程在时间t进入迭代h,那么每个诚实的进程都会在时间max(GST, t + δ)进入迭代h。这是因为当一个诚实进程p在时间t进入迭代h时,它必然在时间t或之前看到了高度为h - 1的公证区块链。根据协议设计,p在进入迭代h之前会立即多播其对该公证区块链的视图。随后,每个诚实的进程都会在时间max(GST, t + δ)看到高度为h - 1的公证区块链,从而也看到每个高度h′ ≤ h - 1的公证区块链。因此,到时间max(GST, t + δ),每个尚未处于迭代≥ h的诚实进程都会将其迭代号递增,直到进入迭代h。

1.2 诚实领导者的影响

引理5指出,对于任何具有诚实领导者Lh的迭代h,假设Lh在某个时间t > GST进入迭代h,那么除了极小的概率外,每个诚实的进程都会在时间t + 2δ进入迭代h + 1,并且每个诚实的进程都会在时间t + 3δ看到由Lh提出的高度为h的最终确定块。
- 子声明1 :除了极小的概率外,每个诚实的玩家都会在时间t + 2δ看到高度为h的公证区块链,从而进入迭代h + 1。因为Lh在时间t进入迭代h,所以它必须在时间t多播一个新的非虚拟块bh的提案。到时间t + δ,每个诚实的进程都必须看到来自领导者的关于bh的有效提案。这里有两种情况:
- 情况1 :每个诚实的进程p在时间t + δ投下投票⟨vote, h, bh⟩p。随后,每个诚实的进程都会在时间t + 2δ看到bh的公证,从而看到高度为h的公证区块链,并进入迭代h + 1。
- 情况2 :有某个诚实的进程p在时间t + δ没有多播投票⟨vote, h, bh⟩p。但根据引理4,每个诚实的进程应该在时间t + δ进入迭代h,所以这种情况发生的唯一方式是p在时间t + δ之前进入了迭代h + 1。再次根据引理4,每个诚实的进程都会在时间t + 2δ进入迭代h + 1。
- 子声明2 :除了极小的概率外,每个诚实的玩家p都会在时间t + 2δ多播⟨finalize, h⟩p,从而在时间t + 3δ看到高度为h的最终确定块。由子声明1可知,每个诚实的玩家在时间t + 2δ看到高度为h的公证区块链,从而完成迭代h。我们可以证明,没有诚实玩家的迭代h计时器会在时间≤ t + 2δ触发。当每个诚实的玩家p完成迭代h时,由于其计时器尚未触发,他们必须多播⟨finalize, h⟩p消息。
- 完成引理5的证明 :还需要证明这个最终确定块是由领导者提出的。根据子声明2,每个诚实的玩家p都会在时间t + 3δ看到高度为h的最终确定块bh。应用引理3可知,bh ≠ ⊥h。因此,bh必须是由Lh提出的,因为要使其被公证,必须有某个诚实的玩家对其进行了投票。

1.3 乐观确认时间定理

定理3表明,Simplex的乐观确认时间为5δ。假设在时间t(t > GST),每个诚实玩家的视图中都有一组交易txs,且txs尚未出现在任何诚实玩家的输出中。设h是任何诚实玩家在时间t所处的最高迭代。有两种情况:
- 如果Lh在时间t尚未进入迭代h,那么根据引理4,它将在时间t + δ进入迭代h,此时它会提出一个包含txs的区块链,然后应用引理5即可完成证明。
- 如果在时间t,Lh已经开始迭代h,根据引理5,每个诚实的进程都会在时间t + 2δ处于迭代h + 1,并在时间t + 5δ看到来自Lh + 1的最终确定块。

2. 最坏情况确认时间分析

现在我们来考虑最坏情况确认时间。

2.1 故障领导者的影响

引理6指出,如果每个诚实的进程在时间t(t > GST)进入迭代h,那么每个诚实的进程都会在时间t + 3Δ + δ进入迭代h + 1。这里有两种情况:
- 如果每个诚实进程的迭代h计时器都触发,那么每个诚实进程p都会在某个时间≤ t + 3Δ投下投票⟨vote, h, ⊥h⟩p,随后这个投票会在时间max(GST, t + 3Δ + δ) = t + 3Δ + δ出现在每个诚实进程的视图中。这些投票构成了对⊥h的公证,因此每个诚实的进程都会在时间t + 3Δ + δ看到高度为h的公证区块链,并进入迭代h + 1。
- 如果某个诚实进程p的迭代h计时器没有触发,那么它必然在其计时器触发之前(即时间t + 3Δ之前)进入了迭代h + 1,应用引理4即可得出结论。

2.2 最坏情况确认时间定理

定理4表明,Simplex的最坏情况确认时间为(4δ + ω(log λ) · (3Δ + δ))。假设在时间t(t > GST),每个诚实玩家的视图中都有一组交易txs,且txs尚未出现在任何诚实玩家的输出中。设h是任何诚实玩家在时间t所处的最高迭代。如果至少有一个迭代i ∈ {h + 1, …, h + k}有一个诚实的领导者Li,那么应用引理5和引理6,每个诚实的进程都会在时间t + 4δ + k(3Δ + δ)看到包含txs的最终确定块。

为了分析在随机执行中,连续k个迭代h, h + 1, …, h + k - 1中每个领导者Lh + i - 1都是腐败的概率,我们观察到攻击者和环境是PPT的,因此存在一个多项式函数m(·),使得协议在安全参数1λ上的任何执行最多包含m(λ)个迭代。对于所有i ∈ [m(λ)],领导者Li是使用随机预言机选择的,因此腐败的独立概率f/n ≤ 1/3。通过分析m(λ)次无偏硬币翻转中至少有k个连续反面的概率,我们可以得出连续k个腐败领导者的概率小于(m(λ) - k + 1) / 2k。当k = ω(log λ)时,(m(λ) - k + 1) / 2k是关于λ的可忽略函数,从而证明了定理。

3. 预期视图基活性

定理5表明,Simplex的预期视图基活性为3.5δ + 1.5Δ。对于任何迭代h,假设在每个诚实玩家进入迭代h之前,他们的视图中都有一组交易txs,并且每个诚实玩家在某个时间t > GST进入迭代h。对于每个迭代i,领导者Li := H∗(i) mod n,其中H∗是随机预言机。因此,每个i ∈ N的Li是诚实玩家的独立概率为(n - f) / n ≥ 2/3。设X是使得Lh + X是诚实的,但当X > 0时,对于所有h ≤ i < h + X,Li是故障的数量。这里X是一个随机变量,且E[X] ≤ 3/2 - 1 = 1/2。重要的是,Lh + X会提出一个包含txs的区块链。

根据引理6,每个诚实的进程都会在时间t + X · (3Δ + δ)进入迭代h + X。应用引理5,我们可以得出每个诚实的进程都会在时间t + 3δ + (X) · (3Δ + δ)看到由Lh + X提出的最终确定块。如果txs尚未包含在之前的块中,那么这个块将包含txs。对自时间t以来经过的时间取期望,即可得到定理的结论。

4. 通信复杂度分析

Simplex协议的每次迭代(不进行子采样)需要O(n)次多播。与其他多播模型中的协议(如Streamlet、Algorand Agreement、PaLa)不同,我们不做任何额外的“中继规则假设”。

4.1 每次迭代的消息多播数量

引理7指出,在每次迭代h中,每个诚实的进程最多多播4条消息:最多一条提案消息、最多一条针对非⊥块的投票消息、最多一条⟨vote, h, ⊥h⟩p和⟨finalize, h⟩p中的消息,以及最多一次对高度为h的公证区块链视图的中继。

4.2 消息大小和总多播位数

每条消息的大小最多为O(λε · n),因为一个公证包含最多n个大小为O(λε)的签名,其中0 < ε ≤ 1。因此,在每次迭代中,整个系统中最多多播O(λε · n2)位。这与基础Algorand协议的多播位复杂度相匹配。通过使用标准技术,我们可以通过对投票委员会进行子采样将多播位复杂度降低到O(λε · polylog(λ))。假设OWF具有次指数安全性,那么签名的长度可以变为O(polylog(λ)),从而得到总多播位复杂度为O(polylog(λ))。

4.3 不同网络中的实现

在点对点网络中,每次多播都涉及将消息发送给其他每个玩家,因此我们的协议(不进行子采样)在点对点设置中的总位复杂度为O(λε · n3)。然而,在现代点对点网络或八卦网络中,节点不需要直接与其他每个节点通信。通过让每个节点与O(polylog(n))个其他节点通信(如果选择得当),可以模拟全对全通信,从而将总通信量减少到O(λε · n2) · polylog(n)位(假设玩家在八卦消息时不会两次中继相同的消息)。通过子采样(再次遵循Algorand中的技术),这一通信量可能会进一步减少。

5. 与其他流行共识协议的比较

为了更好地了解Simplex协议的性能,我们将其与其他流行的共识协议进行比较,如下表所示:
| 协议名称 | 提案确认时间 | 乐观块时间 | 预期视图基活性(γ := n / (n - f)) |
| — | — | — | — |
| Simplex | 3δ | 2δ | 3δ + (γ - 1) · (3Δ + δ) |
| Algorand*† | 3δ | 3δ | 3δ + (γ - 1) · (4Δ + 2δ) |
| ICC | 3δ | 2δ | 3δ + (γ - 1) · (γ · (2Δ + 2δ) + 2δ) |
| PaLa | 4δ | 2δ | 4δ + (γ2 - 1) · (5Δ + δ) + (γ - 1) · 2δ + γ · 2Δ |
| Pipelined Fast - Hotstuffˆ
Jolteonˆ | 5δ | 2δ | 5δ + (γ3 - 1) · (4Δ + δ) + (γ2 + γ - 2) · 2δ |
| Chained Hotstuff(v6)ˆ | 7δ | 2δ | 7δ + (γ4 - 1) · (3Δ + δ) + (γ3 + γ2 + γ - 3) · 2δ |
| Streamlet | 6Δ | 2Δ | 6Δ + (γ5 + γ4 + γ3 + γ2 + γ - 5) · 2Δ |
| P - Sync Bullshark‡ | 6δ | 3δ | 6δ + (γ - 1) · 18Δ |
| Hotstuff(v1)ˆ
Casper FFGˆ
Chained Tendermintˆ | 5δ | 2δ | 5δ + (γ3 - 1) · (5Δ + δ) + γ2 · 2Δ |

从表中可以看出,Simplex在提案确认时间和乐观块时间方面表现出色,其预期视图基活性也具有竞争力。

6. 相关工作回顾

共识研究在许可和部分同步设置中的根源可以追溯到早期的开创性论文。经典的Paxos和PBFT方法成为主流,并在后续的研究中得到进一步发展。这些协议通常采用昂贵或复杂的“视图更改”阶段来替换故障领导者,主要是为稳定领导者设置而构建的,其中单个领导者可以连续提出多个块而不放弃其领导权。

近年来,区块链应用(特别是权益证明系统)的兴起推动了构建更公平、更简单的共识协议的新研究方向。例如,Casper FFG、Hotstuff(v1)、Tendermint和PaLa引入了一种新的“简化”方法,通过一次对多个流水线块达成共识,在很大程度上避免了专用视图更改子例程的复杂性。然而,这些协议在论证活性时存在一些复杂性,例如“隐藏锁问题”,而Simplex协议则避免了这种复杂性。

另外,Streamlet实现了简单的协议描述,但乐观和悲观活性较差。PBFT在领导者诚实的情况下仍然是最快的协议,只需要3δ个时间步来确认交易,但我们更关注具有旋转/随机领导者的设置,以解决公平性问题。许多工作已经将PBFT适应到具有旋转领导者的设置,如Algorand、Fast - Hotstuff和Jolteon,但它们在块时间等方面存在一些不足。

在通信复杂度方面,现代共识协议设计的一个主要关注点是降低通信复杂度,以实现可扩展性。Algorand展示了一种优雅的方法,通过对投票委员会进行子采样来实现polylog(λ)次多播。Hotstuff及其后续工作试图通过将所有消息通过领导者进行汇聚以及使用阈值签名来减少证书大小,从而降低通信复杂度,但阈值签名需要更强的私有设置,我们希望避免这种设置。

综上所述,Simplex共识协议以其简单性、高效性和较低的通信复杂度,在分布式系统的共识领域中具有很大的优势。它在乐观确认时间、最坏情况确认时间和预期视图基活性等方面都表现出色,同时避免了一些其他协议的复杂性问题。通过与其他流行共识协议的比较,我们可以更清晰地看到Simplex的优势所在。在未来的分布式系统设计中,Simplex有望成为一种具有竞争力的共识解决方案。

下面是Simplex协议在诚实领导者情况下的事件时间线流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A([时间t]):::startend --> B(领导者Lh进入迭代h):::process
    B --> C(领导者Lh多播新非虚拟块bh提案):::process
    C --> D{t + δ}:::process
    D -->|情况1| E(每个诚实进程p投下投票⟨vote, h, bh⟩p):::process
    E --> F{t + 2δ}:::process
    F --> G(每个诚实进程看到bh的公证,进入迭代h + 1):::process
    D -->|情况2| H(有诚实进程p未多播投票⟨vote, h, bh⟩p):::process
    H --> I(根据引理4,p在t + δ前进入迭代h + 1):::process
    I --> J{t + 2δ}:::process
    J --> K(每个诚实进程进入迭代h + 1):::process
    G --> L{t + 3δ}:::process
    K --> L
    L --> M(每个诚实进程看到高度为h的最终确定块):::process

这个流程图展示了在诚实领导者情况下,从领导者进入迭代h到最终确定块被所有诚实进程看到的整个过程,清晰地呈现了各个事件的时间顺序和不同情况的处理方式。

通过对Simplex共识协议的深入分析,我们可以看到它在分布式系统中的巨大潜力。无论是在活性、确认时间还是通信复杂度方面,它都提供了一种高效且可靠的解决方案。在未来的研究和应用中,我们可以进一步探索Simplex协议的优化和扩展,以满足不同场景的需求。

Simplex共识协议:简单快速的共识解决方案

7. 技术细节分析

为了更深入理解Simplex协议的优势,我们进一步剖析其一些关键技术细节。

7.1 领导者选举机制

Simplex协议的领导者选举使用随机预言机,如$L_i := H^ (i) \mod n$或$L_i := H^ (\sigma_i) \mod n$,其中$H^*$是随机预言机,$\sigma_i$是唯一阈值签名。这种机制使得每个进程成为领导者的概率独立且公平,降低了领导者腐败的风险。随机预言机的使用保证了领导者选择的随机性,避免了攻击者对领导者选举的控制。

7.2 公证机制

公证是Simplex协议中确保块有效性的重要环节。一个块被公证意味着有足够多的诚实玩家对其进行了投票。公证包含最多$n$个大小为$O(\lambda^{\varepsilon})$的签名,其中$0 < \varepsilon \leq 1$。这种设计保证了公证的安全性和可靠性,同时也限制了消息的大小,从而控制了通信复杂度。

7.3 计时器机制

计时器在Simplex协议中起到了重要的作用。诚实玩家的计时器用于控制投票和最终确定块的时间。例如,在迭代$h$中,计时器的触发时间与迭代的进展和领导者的行为相关。通过合理设置计时器的时间,可以确保协议的活性和安全性。

8. 优化建议

虽然Simplex协议已经具有很多优势,但我们仍然可以提出一些优化建议,以进一步提高其性能。

8.1 子采样优化

通过对投票委员会进行子采样,可以显著降低通信复杂度。如前文所述,Algorand展示了一种优雅的子采样方法,将多播位复杂度降低到$O(\lambda^{\varepsilon} \cdot polylog(\lambda))$。Simplex协议可以借鉴这种方法,在不影响协议安全性的前提下,提高系统的可扩展性。

8.2 签名优化

假设OWF具有次指数安全性,签名的长度可以变为$O(polylog(\lambda))$,从而进一步降低总多播位复杂度。这种优化可以减少消息的大小,提高通信效率。

8.3 并行处理优化

在Simplex协议中,可以考虑引入并行处理机制。例如,多个迭代可以同时进行,以提高系统的吞吐量。通过合理设计并行处理的规则,可以在不影响协议活性和安全性的前提下,加快共识的达成。

9. 应用场景分析

Simplex协议的特性使其适用于多种应用场景。

9.1 区块链系统

在区块链系统中,Simplex协议的乐观确认时间和较低的通信复杂度使其成为一个有吸引力的选择。特别是在权益证明(PoS)系统中,每个领导者通常只提出一个块,Simplex协议的简单性和高效性可以更好地满足系统的需求。

9.2 分布式数据库

在分布式数据库中,快速的共识协议可以提高数据的一致性和可用性。Simplex协议的活性和确认时间特性可以确保数据的及时更新和同步,从而提高数据库的性能。

9.3 云计算环境

在云计算环境中,多个节点需要快速达成共识以处理用户请求。Simplex协议的低通信复杂度和高效性可以减少节点之间的通信开销,提高系统的响应速度。

10. 总结与展望

Simplex共识协议是一种简单、快速且高效的共识解决方案。通过对其活性、确认时间、通信复杂度等方面的分析,我们可以看到它在分布式系统中的巨大潜力。与其他流行的共识协议相比,Simplex在多个方面表现出色,同时避免了一些复杂的问题。

在未来的研究和应用中,我们可以进一步探索Simplex协议的优化和扩展。例如,通过引入更先进的子采样和签名技术,进一步降低通信复杂度;通过并行处理和优化算法,提高系统的吞吐量和响应速度。此外,我们还可以将Simplex协议应用到更多的领域,如物联网、人工智能等,以满足不同场景的需求。

下面是Simplex协议在故障领导者情况下的事件时间线流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A([时间t]):::startend --> B(所有诚实进程进入迭代h):::process
    B --> C{迭代h计时器情况}:::process
    C -->|所有触发| D(每个诚实进程p投下投票⟨vote, h, ⊥h⟩p):::process
    D --> E{t + 3Δ + δ}:::process
    E --> F(每个诚实进程看到高度为h的公证区块链,进入迭代h + 1):::process
    C -->|有未触发| G(某个诚实进程p在t + 3Δ前进入迭代h + 1):::process
    G --> H(根据引理4,所有诚实进程进入迭代h + 1):::process
    H --> I{t + 3Δ + δ}:::process
    I --> F

这个流程图展示了在故障领导者情况下,从所有诚实进程进入迭代$h$到进入迭代$h + 1$的整个过程,清晰地呈现了不同情况的处理方式和时间顺序。

总之,Simplex共识协议为分布式系统的共识问题提供了一个有竞争力的解决方案。随着技术的不断发展和应用场景的不断扩展,Simplex协议有望在未来发挥更大的作用。

以下是一个总结Simplex协议优势和适用场景的表格:
| 优势 | 适用场景 |
| — | — |
| 乐观确认时间短(5δ) | 区块链系统,需要快速确认交易 |
| 通信复杂度低,可通过子采样进一步降低 | 分布式数据库,减少节点通信开销 |
| 避免了一些复杂问题,如“隐藏锁问题” | 云计算环境,提高系统响应速度 |
| 简单高效,易于实现和维护 | 物联网、人工智能等新兴领域 |

通过这个表格,我们可以更直观地看到Simplex协议的优势和适用场景之间的对应关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值