恒星共识协议白皮书概论

2023-12-25 04:58

本文主要是介绍恒星共识协议白皮书概论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当前的金融基础设施是一堆杂乱封闭的系统,这些封闭系统之间存在着的鸿沟,意味着交易需要花费很高的成本,资本突破政治和地理界限进行转移是非常缓慢的。这些障碍都拖慢了金融服务的成长,数十亿人无法得到金融服务。
解决此类问题,我们能否建立一个这样金融基础系统,以支持在互联网所见到的一些有机的成长与创新,还能确保金融交易被正确地记录?一个非中心化的全球金融网络可清除金融接入的藩篱,允许拥有适度金融和计算资源的新入者、创新参与者成为基础设施的一部分,将金融入口延伸至尚未接受服务的社区。
这种低门槛的网络将会刺激有机的增长,但这也意味着不再仅仅依靠现有的金融机构准确记录交易。相反地,所有的参与者都会协定一笔交易的有效性来确保精确记录。这一协定取决于一种达成全球共识的机制。
我们引入了恒星共识协议(Stellar Consensus Protocol-abbr:SCP),这是一个适用于全球共识的模型。SCP是第一个可证的安全共识机制,同时拥有四大关键属性:分散控制、灵活信任、低延迟、渐进安全。
\上图中一些主流的共识方法最多仅拥有FBA四大关键属性中的三个属性。( FBA:federated Byzantine agreement.联邦拜占庭协议)
模型:联邦拜占庭协议(Federated Byzantine Agreement)
SCP是建立在联邦拜占庭协议(Federated Byzantine Agreement)之上的成果,是一种新的共识方法。
什么是分布式共识?
在分布式系统里面,所有的节点必须定期地更新他们之间不断复制的情况——如一笔交易分类账。我们通过独特的槽位来识别每一个更新;共识协议将确保所有节点达成槽位上内容一致。
当所有节点更新了它们的分类帐并呈现相同的值时,共识即达成。
当节点们决定某个更新可以被安全地使用时,它们会将协商一致的声明具体化并发布至它们的分类账副本去。
拜占庭容错
即使个别节点任意妄为时我们也要确保达成共识,该行为即拜占庭错误。为了容忍拜占庭错误,SCP被设计成不需要完整节点集合的全体一致同意,整个系统便可达成一致协定,并且能够允许一些节点的欺诈或向系统发送错误的信息。
法定体丛群:引入联邦
在一个分布式系统里面,法定体是指能满足达成一致协议的节点集合。联邦拜占庭协议引入了一个法定体丛的概念,一个法定体子集能够说服特定节点达成一致。

\
在传统的非联邦拜占庭协议和联邦拜占庭协议之间存在几个重要的区别。尽管有导致拜占庭错误的搅局者,拜占庭协议仍然能保证达成分布式共识。然而它需要系统成员中所有的参与者全体达成一致。所有网络中的节点必须是已知的并且是提前认证的节点。
FBA带来了开放的成员和拜占庭协议的非中心化控制。拜占庭协议系统和联邦拜占庭协议系统关键的区别在于FBA中每个节点选择各自的法定体丛群,整个系统的法定体结果由单个节点做出的决定所致。
FBA里,没有守门员,没有集权者,单个节点自己决定它们该信任哪些参与者的信息。节点们能选择多个群,并且这些单个的节点做出的选择可能依赖系统外部的标准。例如,某一特定的银行被视为信誉良好的,造成其它节点所有交易需要它的认可;某个公司与一家信用社已经保持有一种金融关系,要确保这种关系,双方同时签署所有的交易。
好的法定体共享着它们的节点,致使不同法定体之间有了节点重叠。我们把这种重叠称之为法定体交集。当法定体间没有交集时,我们得到的是不相交法定体。假如法定体不相交,例如,法定体A,可能认可了一披萨订单的声明,同时法定体B认可的是一汉堡订单的声明。因它们能够独立地认可相矛盾的声明,所以不相交的法定体会破坏共识。

\
做出较好的选择
每个节点都有责任确保所选择的法定体丛不违背法定体交集。做出负责任的选择,通常归结于确认法定体丛群足够大,且丛群所含节点足够重要而不会欺骗或为不同的人产生不一样的信息而危害自身的信誉。
协定方式存在的问题
在丛的选择上,节点需要在安全性和活跃度上保持一个平衡。我们希望系统能反应灵敏而不失正确性。
当节点协定方式上被阻断节点缺少活跃度而拖慢系统反应。
当节点具体化声明产生的值不同于其它节点,破坏了整个系统的协议,节点因而缺少安全性。这种节点是 有分歧的。
一个 分歧情况产生于不同节点保持的分类账存储着矛盾不可调和的因素。一个封闭的系统也没有分叉的系统那么危险。
联邦投票表决:接受,确认。
联邦拜占庭协议系统(FBAS)中的节点使用一种联邦投票表决技术来实现本协议。

\
联邦投票表决技术引导FBAS,或一群共同协作的人们,达成一致。
午餐共识
为更为详细地描述一个节点投票和最终接受某一声明同时允许系统达成一致的过程,我们举一个许多人都熟悉的例子。来聊聊一群人为午餐吃什么进行的投票。在本例中,人们的名字就是节点,所有食物选项就是节点需参考的声明。
瓦内萨(Vanessa)在某公用办公场所工作,在那里一大群人预订午餐是很随意的。那有大量选项,而且不是每个人都会作出选择;当确定好足够的人数后,他们就下个订单。
瓦内萨(Vanessa)和工作同伴决定使用SCP(恒星共识协议)处理这个问题。
初始投票
我们假设,瓦内萨想要披萨,但仍需保持开放的思想准备,以免本组很大一部分的人选择了披萨外的其它选项。
投票是准备工作并且仅发生在节点阶段。在联邦选举过程的第一步中,瓦内萨声明披萨是有效的,且允诺没有也不会分别为任何与披萨相左的选项投票。除非足够多工作同伴为披萨投了票,否则她或许得到结果是接受非披萨选项。(同伴的压力山大!)
接纳
幸亏有法定体交集,体群能影响另外的节点。想象一下另一路径(在图中“voted hamburger”的指示),在那瓦内萨投票了汉堡。但请记住,投票仅仅是准备工作。
温妮(Winnie)、安德鲁(Andrew)、及伊娃( Eva)都同瓦内萨在法定体群里,他们能够阻止接受汉堡的过程。一个v-blocking(v形限制)的节点集合至少包含有一个来自瓦内萨所有体群的节点,并能阻止所有包含瓦内萨的法定体里的行为,致使瓦内萨接受披萨。
下面情况瓦内萨实际上都接受了披萨:
她从没接受过与披萨相左的声明。
每个v形限制集合中的成员都声明接受披萨,或者每个包含瓦内萨的法定体成员也投票披萨或声明接受披萨。
正式认可
当每一个法定体成员都投票披萨时,我们说这个法定体认可披萨。一个节点不需要再亲自认可声明。
例如,斯科特(Scott)常常信赖安德鲁和爱丽丝(Iris )决定自己吃什么。他们就是斯科特的法定体。假如他们三者都投票披萨,法定体就认可了披萨。
一个工作同伴可以投票一份午餐选项,之后接受与其投票相左的午餐。投票披萨不用坚持披萨作午餐——披萨仅当被认可后才被接受为午餐。
确认报文
确认是选举过程的最后一步,并会实现整个系统的一致协定。
为确保协商一致,节点会相互交换确认报文。系统同意某个声明;一旦充足的报文被分发及处理,不管其后发生什么事件,每一可响应的、无误的节点都将接受该声明。
例如,伊娃声明她接受披萨并发送确认报文,“accept(pizza).”,这报文是“I have accepted pizza.”的简写。
当伊娃发送确认报文后,温妮、安德鲁、格雷顿(Graydon)、及伊娃法定体中的其他人都广播“accept(pizza).”
这些报文能说服另外的人接受披萨,在上例的接受中,假如瓦内萨投票与披萨相左,如汉堡,如果v型限制集合接受披萨那么瓦内萨还是接受披萨。这些其他人尽可能多的说服更多人,一直广播 “accept(pizza)” 直到每一个人能够接受披萨。
随后确认报文的法定体允许瓦内萨确认披萨,并实现系统达成一致。公司定购披萨,皆大欢喜。
协议:SCP
SCP分布式共识呈现最主要的挑战是:系统达成一致声明时不能规避被阻断和失去活跃度的风险。
在系统达成一致前,一份声明有可能在长期不确定状态中停滞。SCP的目标就是使得这些阻碍和分支的潜因降至最少。该协议因此精心包装了声明,如果这些声明在选举过程中停滞,就会中立化这些被阻断的声明——所有的魔力都被深植于针对该问题的基于选票策略里。
一份选票就是代表自身份额的一份公投表决,例如,“我们投票份额是多少?”,基于选票策略意味着,节点须提交选票以表明它的份额,才能使一份选票额度最终能被具体化。
提交或者中断
每个节点要么提交选票,要么中止选票。回到预订午餐按例,这群工作同伴可能因为不能达成一致协定而停滞下订单。这就需要一种方法去中立化某一选择——如,汉堡(如果该组因汉堡而停滞下订单,),只有中立化汉堡的选择,他们才能前进并最终下订单。
为了使汉堡选项中立化,工作同伴都接受“中止汉堡”,汉堡就变成了无关的选项。团队开始转移为其它午餐选项进行投票。
另一方面,工作同伴们认可“提交披萨”的声明,该组便将达成一致的披萨选票份额。“提交披萨”的声明是有效的,也只有当所有不相同的选票少于已被中止的披萨选票时,声明因此才有理由出现在投票中。
在一个存在法定体交集的SCP系统里,完好的节点不会有被封堵的状态,通过一系列的事件,完好的节点就可以达成一致协定并提交选票份额。
如果节点过于倚重恶意节点,这样的节点称为堕坏(befouled)。在FBAS中,堕坏的节点形成一组可忽略的集合,这意味着完好的节点不需要堕坏节点的合作便可以认可声明,而且堕坏的节点不能破坏完好节点间的协定。如没有完好节点投票提交任何选票,他们就可以转向任一高于其已承诺中止的选票。堕坏节点的响应并不会阻止完好节点汇集法定体及其前进的步伐。
该协议证明我们能达成一致协定并预订午餐,但是当一群人投票不一样的东西且没有法定体认可任和选择时,此时会发生什么?这个问题——投票分裂——严格地讲便是我们为什么需要将每个午餐投票选项联系起来。投票的过程,包括如何处理好分裂投票类似的情况,其过程错综复杂并且包含这里没有谈到的细节。更完整的版本,还有定理及证明,请参考白皮书。

博主QQ: 122209017

这篇关于恒星共识协议白皮书概论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/534320

相关文章

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

xml概论

以下内容摘录自W3School 一、XML的特性 xml是用来传输和存储数据的,本身对数据没有任何操作。在这里要区别一下html,html是用来显示数据的。xml的焦点是数据内容,html的焦点是数据外观。 下面是xml的定义: •XML 指可扩展标记语言(EXtensible Markup Language) •XML 是一种标记语言,很类似 HTML

网络原理之TCP协议(万字详解!!!)

目录 前言 TCP协议段格式 TCP协议相关特性 1.确认应答 2.超时重传 3.连接管理(三次握手、四次挥手) 三次握手(建立TCP连接) 四次挥手(断开连接)  4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答  9.基于字节流 10.异常情况的处理 小结  前言 在前面,我们已经讲解了有关UDP协议的相关知识,但是在传输层,还有

DNS协议基础笔记

1.定义 DNS(Domain Name System,域名系统)是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 2.域名解析过程 当用户在浏览器中输入一个域名,浏览器首先会检查自己的缓存中是否有该域名对应的 IP 地址。本地 DNS 服务器收到查询请求后,首先会检查自己的缓存中是否有该域名对应的 IP 地址。根域名服务器收到查询请

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

HTTP协议 HTTPS协议 MQTT协议介绍

目录 一.HTTP协议 1. HTTP 协议介绍 基本介绍: 协议:  注意: 2. HTTP 协议的工作过程 基础术语: 客户端: 主动发起网络请求的一端 服务器: 被动接收网络请求的一端 请求: 客户端给服务器发送的数据 响应: 服务器给客户端返回的数据 HTTP 协议的重要特点: 一发一收,一问一答 注意: 网络编程中,除了一发一收之外,还有其它的模式 二.HTT