XRP共识算法

共识协议属性

XRP Ledger使用的共识协议不同于之前的任何区块链。该协议称为XRP Ledger共识协议,旨在具有以下重要属性:

  • 使用XRP Ledger服务的每个人都可以就最新状态达成一致,且交易都是按顺序执行。
  • 单个节点或者管理员无法操作所有有效的交易
  • 即使某些节点的加入, 离开,或者其他原因,整个服务也不会瘫痪。
  • 如果太多参与者无法访问或作恶,则交易无效
  • 与大多数其他区块链系统不同,确认交易不需要浪费资源

账本历史

XRP Ledger处理区块中的交易称为账本版本或简称账本, 每个账本 包含三个部分:

  • 存储在账本中账户的所有余额和当前状态
  • 已应用于前一个账本来产生此账本的一组交易
  • 有关当前账本的元数据,如其账本的索引,唯一标识的Hash值,以及有关用作构建此账本的基础的父账本的信息。

每一个账本都使用账本索引进行编号, 并构建在前一个的账本之上, 账本的索引起始值为1 , 由当前的账本的索引可以一直追溯到第一个账本. 如同Bitcoin 和Eth一样, 使得所有的交易及结果都记录在链上并完全公开 . 与许多区块链技术不同,XRP Ledger中的每个新“块” 都包含整个当前状态 , 所以你不需要收集整个历史( 区块)就知道现在发生了什么 .

XRP Ledger Consensus Protocol的主要工作是将前一个账本的一组交易达成共识 , 以明确定义他们的执行顺序,确认每个人都得到相同的结果 . 如果成功发生这种情况,则认为账本已经过验证 . 然后 ,该过程将继续构建下一个分类帐版本

信任的验证

XRP Ledger共识机制背后的核心原则是,一点点信任都有很长的路要走。p2p 网络中的每个参与者都选择一组( 专门配置为积极参与共识的服务器)validators, 更重要的是,所选择的验证者(节点)不应该相互串通,以完全相同的方式打破做虚假验证 。 此列表有时称为唯一节点列表(Unique Node List)或UNL .

随着网络的发展,每个节点都会监听其可信任的节点 , 只要有足够的比例同意一组交易并且结果是指定的账本,节点服务器就会宣布达成共识。 如果他们不同意,验证人会修改他们的提案,以便与他们信任的其他验证人,重复这一过程,直到他们达成共识

只要可信任的节点出现故障的比率没有超过20%, 整个网络依然可以共识 , 也就是说若想确认一笔无效的交易, 需要全网80%以上的信任节点达成共识 . 如果超过20%但不到80%的可信节点(验证人)出现故障,网络就会停止进展。

关于更多共识安全参考 : Consensus Protections Against Attacks and Failure Modes.

原文地址:https://www.cnblogs.com/failymao/p/10261412.html