Ripple共识算法

1.Ripple的网络结构

Ripple(瑞波)是一种基于互联网的开源支付协议,可以实现去中心化的货币兑换、
支付与清算功能。在Ripple的网络中,交易由客户端(应用)发起,经过追踪节点
(tracking node)或验证节点(validating node)把交易广播到整个网络中。追踪节点的主
要功能是分发交易信息以及响应客户端的账本请求。验证节点除包含追踪节点的所有功能
外,还能够通过共识协议,在账本中增加新的账本实例数据。如图5-5所示是Ripple的共识

过程中节点交互示意图。

2.Ripple共识算法

Ripple的共识达成发生在验证节点之间,每个验证节点都预先配置了一份可信任节点
名单,称为UNL(Unique Node List)。在名单上的节点可对交易达成进行投票。每隔几
秒,Ripple网络将进行如下共识过程:
1)每个验证节点会不断收到从网络发送过来的交易,通过与本地账本数据验证后,
不合法的交易直接丢弃,合法的交易将汇总成交易候选集(candidate set)。交易候选集
里面还包括之前共识过程无法确认而遗留下来的交易。
2)每个验证节点把自己的交易候选集作为提案发送给其他验证节点。
3)验证节点在收到其他节点发来的提案后,如果不是来自UNL上的节点,则忽略该
提案;如果是来自UNL上的节点,就会对比提案中的交易和本地的交易候选集,如果有
相同的交易,该交易就获得一票。在一定时间内,当交易获得超过50%的票数时,则该交
易进入下一轮。没有超过50%的交易,将留待下一次共识过程去确认。
4)验证节点把超过50%票数的交易作为提案发给其他节点,同时提高所需票数的阈
值到60%,重复步骤3)、步骤4),直到阈值达到80%。
5)验证节点把经过80%UNL节点确认的交易正式写入本地的账本数据中,称为最后

关闭账本(Last Closed Ledger),即账本最后(最新)的状态。


在Ripple的共识算法中,参与投票节点的身份是事先知道的,因此,算法的效率比
PoW等匿名共识算法要高效,交易的确认时间只需几秒钟。当然,这点也决定了该共识算
法只适合于权限链(Permissioned chain)的场景。Ripple共识算法的拜占庭容错(BFT)
能力为(n-1)/5,即可以容忍整个网络中20%的节点出现拜占庭错误而不影响正确的共
识。

猜你喜欢

转载自blog.csdn.net/dhd040805/article/details/79899986