去中心化的共识机制

76 阅读2分钟

拜占庭容错系统研究中的三个重要理论:CAP、FLP 和 DLS。

  • CAP 理论 - “在网络发生阻断(partition)时,你只能选择数据的一致性(consistency)或可用性(availability),无法两者兼得”。论点比较直观:如果网络因阻断而分隔为二,在其中一边我送出一笔交易:“将我的十元给 A”;在另一半我送出另一笔交易:“将我的十元给 B ”。此时系统要么是,a)无可用性,即这两笔交易至少会有一笔交易不会被接受;要么就是,b)无一致性,一半看到的是 A 多了十元而另一半则看到 B 多了十元。要注意的是,CAP 理论和扩展性(scalability)是无关的,在分片(sharded)或非分片的系统皆适用。
  • FLP impossibility- 在异步环境中,如果节点间的网络延迟没有上限,只要有一个恶意节点存在,就没有算法能在有限的时间内达成共识。但值得注意的是, “Las Vegas” algorithms(这个算法又叫撞大运算法,其保证结果正确,只是在运算时所用资源上进行赌博。一个简单的例子是随机快速排序,它的 pivot 是随机选的,但排序结果永远一致)在每一轮皆有一定机率达成共识,随着时间增加,机率会越趋近于 1。而这也是许多成功的共识演算法会采用的解决办法。
  • 容错的上限 - 由DLS 论文我们可以得到以下结论。
  • 在部分同步(partially synchronous)的网络环境中(即网络延迟有一定的上限,但我们无法事先知道上限是多少),协议可以容忍最多 1/3 的拜占庭故障(Byzantine fault)。
  • 在异步(asynchronous)网络环境中,具确定性质的协议无法容忍任何错误,但这篇论文并没有提及 randomized algorithms 在这种情况可以容忍最多 1/3 的拜占庭故障。
  • 在同步(synchronous)网络环境中(网络延迟有上限且上限是已知的),协议可以容忍 100% 的拜占庭故障。但当超过 1/2 的节点为恶意节点时,会有一些限制条件。要注意的是,我们考虑的是“具认证特性的拜占庭模型(authenticated Byzantine)”,而不是“一般的拜占庭模型”。具认证特性指的是将如今已经过大量研究且成本低廉的公私钥加密机制应用在我们的算法中。

此文章为4月Day13学习笔记,内容来源于极客时间《左耳听风》,强烈推荐该课程!