6月17日分享:瑞波&恒星共识机制

The Ripple Protocol Consensus Algorithm
&
Stellar Consensus Protocol

分享者:Michael

Link to Ripple paper - by Ripple Labs Inc, 2014

Link to Stellar paper - by David Mazières, SDF 2015

瑞波共识算法 RPCA

解决的三个问题

  1. Correctness: 是否是有效的transaction。
  2. Agreement: 统一的global truth,防止双花。
  3. Utility: 高可用性,包括latency,电力消耗,易接入性。

构建步骤

  1. 每个server选一个UNL(unique node list)
  2. 每个节点建立candidate set
  3. 从UNL中,合并candidate set,并在本地进行验证。
  4. 上一轮pass的transaction,发给UNL节点。
  5. 拿到80% vote的transaction,放进最终的last-closed ledger中

2个前提

  1. 任何一个server都可以broadcast交易,但是只需要依赖UNL来做consensus
  2. 验证结果是time-bound & binary的。

达到共识的定义

  1. 所有正义节点都在finite时间内作出判决。
  2. 所有正义节点达成的判决是一致的。
  3. 最终的判决不论是0还是1,都是有效的共识。

这个算法的BFT是抵御 <20%的非正义节点。

RPCA 证明

证明correctness

如果一个节点非正义的概率是Pc,那么

这个这个公式可视化之后,节点数和Pc之间的关系就是:

当Pc = 15% N = 200时,p* = 97.8%

证明 agreement

系统存在fork的风险,也就是2个小系统,相互无法交换共识信息。

当UNL的size < 0.2*n时,fork是可能发生的。

看下面这两个 cliques(小帮派)的fork情况:

证明 utility

skip

恒星公式机制

Stellar Consensus Protocol 讲述了联邦拜占庭一致性(FBA)算法。我这里会粗略解释。

FBA于传统Byzantine Agreement的区别在于,无需所有节点都被验证,因为FBA中,每个节点自己选择quoram节点对象。

定义

Slice:Q(v)是一个node的slice。

Quoram:法定体。能满足达成一致协议的节点集合。

Tiered Quoram概念

Tiered Quoram就是分级的法定体。

在top tier不止一个qouram。

比如大商业银行是一个quoram,同时worker union和audit组织成为一个quoram。这样大大保证了top tier的可信度。

总结

联邦拜占庭一致性(FBA)无法挖矿,无验证奖励机制。高可用性,每5s出一个区块,同时耗费的算力极低。

这个算法是为分布式交易所,跨货币资产转移而存在的。