【自己翻译自https://xrpl.org/consensus-protections.html】
看完之后觉得还是记下来,翻译有误的地方还望指正
XRP共识是一种拜占庭容错共识机制,这就意味着xrp共识可以在以下所有出错的情况下正常运行:
参与者依靠一个不被信任的开放网络进行通信;一些恶意参与方可能在任意时间企图控制或者中断正在运行的xrp共识网络;除此之外,在xrp共识协议的网络中,参与者集合可能是事先不知道并且随时可能发生变化。
首先,XRP共识网络有一些基本的重要属性特点,他们分别是:
- 每一个使用XRP网络的人对网络的最后状态,以及何种交易以何种顺序发生都是同意的;
- 所有有效的交易不需要中心式的操作及单点故障;
- 即使存在一些参与者的加入、离开或者不正常的行为,都不能影响XRP正常的生成区块;
- 如果存在大量的节点无法访问或者行为异常,XRP网络应该处于不能正常生成区块的状态,而不是出现分叉或者将无效交易包含在区块中;
- 不像其他区块链网络,XRP网络对交易的确认无需进行资源的竞争,也不会出现资源的浪费。
维持一个拥有以上属性的区块链网络,又需要确保交易能够及时的进行共识确认,是一个综合性的挑战,或者说建立一个完美的共识系统是不可能的。设计XRP共识网络是希望它能在大多数它可以工作的时候正常工作,在一些不能正常运转的情况下能够优雅的停止工作。
下面的文章将要描述XRP区块链网络在运行过程中会遇到的各种问题以及如何应对处理。
独立验证节点的不正常行为
验证节点的工作就是积极的参与到新区块的共识生成过程中。某个验证节点只会影响到那些在配置文件中信任它的一些节点,或者说间接的信任它的节点。共识过程可以正常进行,及时一些验证节点出现不正常的行为,包括下面这些场景:
- 验证节点无效或者过载了,诸如因为运行的机器性能等各种原因,导致的宕机等;
- 对网络中的部分其他节点无法连通,它们的信息只能在一个很小的参与者子集中快速的传播;
- 故意欺诈其他节点或者试图停止网络;
- 由于外界因素的压力而表现出的恶意行为,比如来自管理方的压迫威胁;
- 因为一些程序错误或者程序版本过低而意外的发送一些错误的或者不完整的信息;
通常,共识可以正常的进行,及时在信任的验证节点中有很少比例(少于20%)的节点出现不正常行为。
如果超过20%的信任的验证节点不可访问或者行为异常,那么共识网络就无法进行,进入停滞状态。
在停滞状态,新发送的交易可以暂时进行处理,但是新的区块无法进行有效性判断,所以这些交易的最终结果是不确定的。在这种情景下,可以很直接的观察到XRP网络是不健康的,希望那些可以决定继续等待还是重新配置信任节点的人类参与者进行借入。
无效的交易能够被确认落入区块的唯一办法是至少有80%的信任的节点能够证明这个无效交易并且同意它的结果。(无效的交易是指已经消费的钱进行再次消费或者违反网络规则的交易。)换句话说,就是必须有大量的信任节点进行串通勾结。但是这是非常困难的一件事,因为这些信任节点可能是在世界的各个地区,由不许许多多不同的人或者企业所运行。
节点程序本身的问题
和任何软件系统一样,在XRP区块共识协议、部署的软件包或者他们的依赖中,bugs(软件缺陷)都必须严肃认真对待。即便是一个经过仔细编写的输入导致节点程序崩溃的bug也会被加以滥用,导致网络的中断。瑞波有一系列措施来应对防范这些威胁,包括:
- 一个开源代码库,任何人都可以审查,编译,独立的测试这些相关软件程序;
- 对XRP区块链官方代码的修改,有一个彻底的健壮的审查过程;
- 对所有正式官方的软件包都有来自瑞波官方的数字签名;
- 定期委托专业人员对安全漏洞和不安全因素进行审查。
- 一个漏洞奖励程序,奖励负责揭露漏洞的安全研究人员。
女巫攻击
女巫攻击是企图利用大量的假的网络身份去控制整个网络的攻击方式,在XRP网络中,女巫攻击会通过运行大量的验证节点,并使其他节点去信任这些验证节点的方式来执行。这种攻击在理论上是可行的。但是却很难完成,因为实施攻击者必须要获得对方节点运行者的信任,才能成为对方节点的信任节点。
不管潜在攻击者运行了多少验证节点服务,这些验证节点服务器对现有参与者认为已验证的内容没有发言权,除非这些现有参与者选择信任攻击者的验证节点。服务器只是监听它所配置的信任节点,其他的未在信任列表的节点消息不会进行处理。
这些信任关系不是自动发生的,所以执行一次成功的女巫攻击需要使目标节点的管理者或者企业信任并重新配置这些目标节点,已实现信任女巫节点,这是非常困难的工作。
即便在这个场景下有一个人愚蠢的这么做了,那么对其他人的正常节点及整个网络影响是非常小的。
51%攻击
51%攻击是指区块链系统中一个团体控制了整个挖矿或者投票者的50%以上的攻击方式。XRP区块链网络是不易受到51%攻击的,因为它不是一个以挖矿为共识机制的网络,与之相近的一种攻击方式是女巫攻击,也是非常难以实施的。
验证节点重合相似需求
为了让XRP区块链网络中的所有参与者就他们认为已验证的内容达成一致,他们必须首先选择一组可信的验证节点,这些验节点与其他人所选择的验证节点非常相似。最坏的情况下,只要少于90%的相似度,就有可能导致与其他参与者的共识分叉。因此,瑞波公布了一个拥有官方数字签名的验证节点列表,包括由一些公司、企业或者团体运行的可被信任的、运行良好的节点。
默认情况下,XRP区块服务器都会配置一个由瑞波维护并定期更新的信任列表网站(也被称为唯一节点列表UNL)。以这种方式配置的服务器信任这个网站公布的最新的信任列表,这样就能保证与同时配置使用这个列表的其他服务器有100%一致的信任列表。默认的配置包含了一个公钥用来验证网址内容。如果网站宕机,XRP Ledger的点对点网络中的服务器可以在彼此之间直接转发签过名的更新到列表中。
技术上来说,如果你运行一个节点,你可以配置你自己的网址列表或者精确的选择一些验证节点去信任,但是瑞波不推荐这样。如果你选择的验证节点集与他人的重合相似度不高,你的节点就有可能分叉,而且基于分叉网络,你在原本网络中的钱有可能丢失。
允许更多样的验证节点列表的共识协议正在研究过程中。