零基础一文读懂分布式系统(12)

\n

而不管是 FLP 不可能原理 , 还是 CAP 不可能定理 , 它们不是在告诉我们:这条路很难走通 , 你如果突破就是了不起的创新;它们告诉我们的是:这条路走不通 , 你要做的是根据需求来做权衡和选择 。

\n

\n

使用同步性假设的共识算法在前文已经详细地介绍过了 , 它们通过引入超时概念忽略出现问题的计算机 , 从而达成共识 。

\n

使用非确定性机制的中本聪共识描述起来也很简单:如果你看到某提议的区块拥有最多的工作量证明 , 就接受该区块 , 这也被称作最长链规则 。 它的具体实现过程大家都很熟悉 , 本文就不再赘述了 。

\n

现在 , 让我们看看使用同步性假设的系统(Finality , PoS 中使用较多)和使用非确定性机制的系统(Liveness , PoW 中使用较多)有什么不同 。 但需要提醒的是 , 并非所有的 PoS 都是 Finality 路线 , 比如 Casper FFG 就不是;而 PoW 也不是只能走 Liveness 路线 , 虽然并没有人设计 PoW 上的 Finality 共识 。

\n

PoW 和 PoS 的不同在于一个是 Work , 一个是 Stake 。 之所以需要强调这一点 , 是因为在关于 PoW 和 PoS 的讨论中 , 我们往往不是在讨论 Work 机制与 Stake 机制的不同 , 而是在比较 Finality 系统与 Liveness 系统的不同 。 比如「无需许可」性 , 它基本是一个 Finality 系统与 Liveness 系统的话题 , 而不是 Work 与 Stake 的争论点 。

推荐阅读