区块链安全理论与实践(Blockchain for Distributed Systems Security)阅读笔记D3

BFT共识

我们约定记号 C 1 , C 2 , . . . . C N C_1,C_2,....C_N C1,C2,....CN代表系统中的N个组件。 x i x_i xi代表第 i i i个组件的输入。我们将第一轮协议执行完后的输出记为 y i 1 y_i^1 yi1,组件通过通信链路相互连接,将输出消息发送到全网。
共识目标

  • 可终止(Termination)——每个无故障组件均可决定一个输出
  • 一致性(Agreement)——所有无故障组件最终决定相同的输出y
  • 有效性(Validity)——如果所有组件都已相同的输入x开始,则y=x
  • 完整性(Integrity)——每个无故障组件的决策和最终的y必须由某个无故障组件提出。

** 完整性**条件主要保证的是共识结果不来自敌对者,在这个场景下,我们把被敌对者攻击的组件视作故障组件,并不是说组件能够运行就不是故障组件。
有效性是指整个系统的输出y是共识过程的合法结果,即是可以通过协议输出出来的。个人的理解是,假设我们要求每个输出y都是正整数,而此时受到攻击之后输出了-1,那么我们就认为这个输出是无效的。
一致性是指,这个输出可以得到系统中大部分组件的认可,在区块链场景中,组件就是各个参与方。

在BFT共识算法中要求系统中有超过 2 3 \frac{2}{3} 32的组件是无故障的。那么在更加精确的数学描述中,前一句话被表示成:
在有 n n n个组件的消息传递系统中,如果 f f f个组件发生拜占庭故障且 n ≤ 3 f n\leq3f n3f则系统不可能达到共识目标。
证明略。反证法非常好证,真的,或者自己举个例子然后按照四个性质依次操作就行。

猜你喜欢

转载自blog.csdn.net/qq_40941932/article/details/127785796