跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
精密电阻捷比信 · 专业器件主题站

基于支持分布式分类帐同步的联合拜占庭协议系统FBAS的介绍

加密货币是分散式的,因此有很多参与者(或节点,验证者)来验证交易。将由总交易额组成的分类帐复制到所有参与节点。但是他们如何达成协议以及发生了哪些交易?在比特币中,这取决于计算能力,但是诸如Stellar Consensus Protocol(SCP)之类的共识协议也可以用于实现同一目标。本文解释了SCP的基本构建块,联邦拜占庭协议系统(FBAS)或“联邦投票”,以支持分布式分类帐的同步。拜占庭协议在共识协议中,目标是使所有节点就某些事实达成共识。拜占庭协议还允许节点就一个事实达成协议,但是对于大量拜占庭参与者而言,该协议是可靠的。拜占庭的参与者是该协议的参与者。如果他们不遵守协议,甚至会表现出恶意行为,它们将失败。在加密货币中,这可能导致故意阻止交易,以启用双花攻击。联邦拜占庭协议系统(FBAS)FBAS的设计方式是,即使节点加入或离开,该协议仍然可以达成共识。如果该协议基于多数协议,那么任何节点都会加入该协议,因为攻击者可能会使用大量节点来影响一致性。如果爱丽丝(Alice),鲍勃(Bob)和卡罗尔(Carol)以相同的方式定义分片,则您将开始对某个主题进行投票,而第五人马文(Marvin)想恶意影响您的共识,那么他可以使用任意数量的节点加入该协议。只要Marvin没有出现在您或您的朋友的任何仲裁电影中,他就不会影响任何事情。一个示例实现我们构建了一个基本示例,该示例实现FBAS,并提供一个用于选择分片和保存投票的UI。您可以在github上找到(并运行)代码。下面的示例将说明原型中的一些简单情况:我们的节点称为苏格兰威士忌,锯,培根和公牛。切片的配置与前面的示例相似,定义了每个节点,任何其他两个节点足以说服该节点。节点“苏格兰威士忌”(scotch)正在为所有4个节点设置其仲裁片。现在是开始达成共识的时候了。在第一个示例中,每个人都会投票赞成。节点“苏格兰威士忌”(scotch)在“交易A”上启动FBAS。节点“锯”到一个节点。为“交易A”投票。在所有节点都投票赞成后,所有节点都将找到一个仲裁件并最终确认投票。确认的“交易A”已被确认。在节点“苏格兰”。当节点看到节点的法定人数并为主题投票或接受“是”时,它将接受主题的“是”。如果看到对象的节点接受“是”,则返回“否”。仲裁,它将移动以确认“是”的主题。仲裁是一组节点,所有节点都对自己充满信心。法定人数可能只是一小部分,但也可能更大。在此示例中,找到的第一个仲裁是包含“苏格兰”字样的仲裁。 (本身),“看见”和“培根”。 “ saw”由“苏格兰威士忌”和“熏肉”说服,“ bacon”由“苏格兰威士忌”和“ saw”说服。在此示例中,任何三个节点都可以在没有第四个节点的情况下找到仲裁。注意,仅在该示例中,由于仲裁片的配置,并不总是这种情况。让我们再举一个例子,但是这次有一个节点投了反对票。 “苏格兰威士忌”开始为这项交易投票,而“培根”则对此交易投了赞成票。 “锯”投票反对(请参阅gif)(未达到法定人数)。对“公牛”投了反对票,对投了赞成票。最后一个节点“ Bull”为“ Bull”。投票赞成并找到法定人数,即“公牛”,“苏格兰人”。和“培根”。他们不在乎“锯”字样。投票“否”因为其他3个节点中的2个足以说服“公牛”。但是“锯”发生了什么事?现在?如您所见,“ saw”-“ saw”的最终状态为“ saw”-“ saw”。投票反对,但被接受并确认为“是”,但是为什么呢?这是由于第二种情况引起的,它可能导致节点接受某些东西,这称为阻塞集。这意味着在每个分片中,至少一个节点已接受另一个值。通过这种方式,该节点知道将永远不会对其投票的值进行仲裁,因此它接受另一个值。在此示例中,培根和公牛都投了赞成票,这将导致支离破碎。注意:FBAS明确允许对一件事进行投票,然后接受另一件事,但是没有正确的节点可以确认它与接受的事物不同。这些只是一些基本示例。我们可以做更多的例子,但这对本文来说太多了。如果您有兴趣,请给我们有关我们电报小组的反馈意见