火星链 火星链
Ctrl+D收藏火星链
首页 > Gate.io > 正文

以太坊:V神详述:如何实现99%的容错共识

作者:

时间:1900/1/1 0:00:00

很长一段时间以来,我们一直听说在同步网络中,实现50%容错的共识是有可能的。在同步网络中,任何可信节点广播的消息都可以保证在某个已知时间段内被所有其它可信节点接收。

如果攻击者超过50%,他们就可以执行“51%攻击”,对于区块链上同类型的任何算法都有可能出现类似的情况。

我们也一直听过这样的说法:如果你想放松同步假设,并且拥有一种“异步下安全”的算法,最大可达到的容错率可下降到33% (PBFT、Casper FFG等都属于此类)。

然而,如果添加更多假设(具体来说,你不仅需要观察者来关注那些不积极参与共识但关心其输出的用户,也要积极地关注共识,而不仅仅是在结果出现后下载其输出),这样可以把容错率一路提高到99%吗?

事实上,这一点 早已人尽皆知。莱斯利·兰伯特(Leslie Lamport)1982年在著名的谈及“拜占庭一般问题”的论文中包含了对算法的描述。下面我将尝试用简化的形式重新来描述和表述这个算法。

假设有N个参与共识的节点,每个人都提前同意这些节点代表谁(根据上下文,它们可以由可信方选择,或者如果需要更强的去中心化程度,可以通过一些工作证明或利害关系进行证明)。

V神已铸造可兑换帕劳共和国数字身份的NFT“Voyager Pass 1430”:10月20日消息,以太坊创始人V神(Vitalik Buterin)钱包近日发生异动,于10月17日与Voyager Pass合约地址发生交互,铸造了可用于兑换帕劳共和国数字身份的NFT“ Voyager Pass 1430”,成为该NFT目前拥有1269个独立持有者。

此前消息,帕劳共和国总统于去年12月22日签署了《数字居住法》,该国于今年1月份与Cryptic Labs合作启动RNS数字居住计划,数字身份持有者将获取一张实体的身份证,可用于身份认证用途,如酒店登记入住,登机,会员注册等。[2022/10/20 16:31:34]

我们把这些节点标记为0…N-1。另外,还假设网络延迟和时钟差异上有一个已知的限制D。(例如,D = 8秒)。每个节点都有能力在T时刻发布值(恶意节点当然可以早于T或晚于T地发布值)。

所有节点等待(N - 1)?D秒,运行如下进程。定义x: i为“节点i签名的值x”,x: i: j为“节点i签名的值x,并且x与j一起签名”,等等。在第一阶段发表的提案将采用v的形式: i的形式为一些v和i,其中包括提出该提案的节点的签名。

V神:跨链桥存在“基本安全限制”:金色财经报道,1月8日,以太坊联合创始人兼核心开发人员 Vitalik Buterin 今天在推特上转发了一个 Reddit 帖子链接,其中他讨论了对多链未来的信念,但对跨链生态系统表示怀疑。Vitalik Buterin认为“跨链桥存在基本安全限制”并解释说,他不同意当区块链遭受 51% 攻击时所有安全机制都会失败的想法,51% 攻击的目标是通过控制超过 50% 的网络挖矿哈希率或计算能力来操纵在区块链中注册的交易的完整性。

Vitalik Buterin表示,在 51% 攻击的情况下,攻击者不能提出一个带走某人 ETH 的区块,因为这样的区块会违反共识规则,因此会被网络拒绝。换句话说,他认为,即使 99% 的算力被用于非法拿走另一个钱包的 ETH,节点也会简单地遵循剩余 1% 的链,因为它是唯一遵循协议规则的区块集,因此“诚实”的区块将始终保持状态的一致性。Vitalik Buterin认为,当用户将资产从他们的本地区块链连接到非本地区块链时,问题就会出现,他写道:““如果以太坊受到 51% 的攻击并恢复,Arbitrum 和 Optimism 也会恢复,因此即使以太坊受到 51% 的攻击,在 Arbitrum 和 Optimism 上保持状态的“cross-rollup”应用也可以保证保持一致。如果以太坊没有受到 51% 攻击,那么 51% 攻击就无法分别攻击 Arbitrum 和 Optimism。”

Vitalik Buterin总结称,他并不认为这些问题会立即出现,但随着跨链桥中持有的加密货币数量的增加,攻击它们的动机也会增加。[2022/1/8 8:34:18]

如果一个验证器i收到一些消息v: i:…: i[k], 其中 i:…:i[k]是已经按顺序对消息进行了签名的索引列表(只是v本身会算作k = 0,而v:i则为k = 1),那么验证程序检查(i)的时间将小于T + k?D,同时他们尚未看到包含以下内容的有效消息;如果两项检查均通过了,则会发布v: i:…: i[k]: i。

V神确认参加Polygon ZK day:12月3日消息,据Polygon Chinese发布推特称,Vitalik确认参加Polygon ZK day,V神将与Polygon的粉丝一起分享关于SNARKs,STARKs 以及关于零知识证明的应用。[2021/12/3 12:48:59]

在T + (N - 1)?D时,节点停止监听。此时,就可以保证所有的可信节点都“有效地看到了”相同的一组值。

如果问题要求选择一个值,则可以使用一些“选择”函数从他们看到的值中选择一个值(例如采用哈希值最低的值)。然后节点可以就该值达成共识。

现在,让我们来探究一下为什么这种方式有效。我们需要证明的是,如果一个诚实节点(有效地)看到了特定的值,然后其它的诚实节点也看到该值(如果我们证明了这一点,那么我们知道所有诚实节点都看到了同一组值,因此如果所有诚实节点都运行相同的选择功能,他们会选择相同的值)。

假设任何诚实节点收到一条消息v: i:…i[k],他们认为是有效的。在时间T + k?D之前到达),假设x是另一个诚实节点的索引。x要么是i的一部分:…要么不是。

V神:解决以太坊扩容问题比以太坊2.0更紧迫:2月28日消息,在今晚的社区问答中,对于以太坊2.0为什么不快点推出的问题,V神表示:现在要解决的是扩展的问题,现在不需要以太坊2.0,而需要Rollups。有了Rollups后,以太坊交易量就可以提高100倍。当然长期分片也需要,但现在这一问题并不紧迫。以太坊2.0现在的价值主要是迁移到Pos,计划是先变成一条链,然后再考虑分片。[2021/2/28 18:01:25]

在第一种情况下(对于此消息,x=i[j]),我们知道诚实节点x已经广播该消息,他们这样做是为了响应他们在时间T+(j - 1)·D之前收到的带有j-1签名的消息。此时他们广播了他们的消息,那么所有诚实节点一定都会在时间T + j?D前收到消息。

在第二种情况下,由于诚实节点在时间T + k?D之前看到消息,那么它们就会用自己的签名传播消息,并保证包括x在内的所有人都会在时间T + (k + 1)?D之前看到它。

注意,该算法使用添加自己签名的行为作为消息超时的一种“碰撞”。正是这种能力保证了一个诚实的节点如果及时看到了消息,那它们也可以确保其它所有节点也能及时看到消息,因为“准时”的定义增加的时间超过了每添加一个签名的网络延迟。

动态 | V神可能在2017年6月至2018年2月期间兑现了4000万美元ETH:据CCN报道,根据Etherscan的说法,自2015年以来,以太坊联合创始人V神(Vitalik Buterin)已将544998枚ETH转换为法币,相当于近4900万美元。其中价值4000万美元的ETH据称是在2017年6月至2018年2月期间转移的。Tetras Capital联合创始人Alex Sunnarborg发推文称,目前V神使用的主要地址中的余额为5000万美元,但在2017年12月以太坊超过1300美元时,其钱包地址的净值达到了5亿美元。[2019/3/22]

在一个节点是诚实的情况下,我们能否保证被动的观察者(比如关心结果的非共识参与节点)也可以看到结果。

按照计划,存在一个问题。假设一个指挥官和k(恶意)验证器的某个子集生成一条消息v: i:…i[k],并且在T + k?D前广播给一些受害者,受害者认为消息是“准时”,但当他们转发时,消息只会在T + k?D之后达到所有的已经协商一致的诚实节点,而所有协商一致的诚实节点将会拒绝它。

但我们可以堵住这个洞,提出一个新的约束:要求D在两倍的网络延迟加上时间差。然后我们给观察者一个不同的超时:观察者接受v: i:…i[k]必须在 T + (k - 0.5)?D之前。

现在,假设观察者看到一条消息并接受了它。他们能够在时间T + k?D之前将其广播到一个诚实节点,并且诚实节点将发布带有签名的消息,该消息将在T + D (k + 0.5)之前到达所有其它观察者,同时带有k + 1个签名的消息将会超时。

改进其它共识算法

理论上讲,上述算法可以作为独立的共识算法使用,甚至可以用于运行权益证明的区块链。

第N + 1轮共识的验证器集合本身可以在第N轮共识中被决定(例如,每轮共识也可以接受“存款”和“取款”交易,如果接受并正确签名,将添加或删除验证器后进入下一轮)。

需要添加的主要额外成分是另一种机制,用于决定允许提议区块的提名者(例如。每轮可以有一个指定的提名者)。它也可以被修改为用作工作证明的区块链,允许参与共识的节点通过公钥发布工作解决方案的证明,同时通过签名实时地“声明自己”。

然而,同步假设是非常强大的,所以我们希望在不需要超过33%或50%容错的情况下,无需同步假设也能工作。有一种方法可以做到这一点。

假设我们有一些其它的共识算法(例如,PBFT, Casper FFG,基于链的PoS),其输出可以被偶尔在线的观察者看到(我们称之为阈值依赖的共识算法,而上文所述的算法我们称之为延迟依赖的共识算法)。

假设阈值依赖的共识算法持续运行,在一种模式下,它将不断地“确定”新的区块到链上。例如:每一个最终值都将指向一个“父”;如果有一个指针序列a→…→B,我们称A为B的后裔。

我们可以在这种结构上改进依赖于延迟的算法,让总是在线的观察者能够访问检查点上的一种“有可能结果”,容错性约为95%(也可以通过添加更多的验证器和要求使用花费更长时间的过程来将容错性推进至100%)。

每当时间达到4096秒的倍数时,我们就运行依赖于延迟的算法,选择512个随机节点来参与算法。

一个有效的建议是由阈值相关算法最终确定的任何有效的值链。如果一个节点在时间T + k?D (D = 8秒)之前看到有k个签名的某个最终值,则接受该链进入它的已知链集中,并添加自己的签名进行重新广播它;观察者像以前一样使用T + (k - 0.5)?D的阈值。

最后使用的“选择”函数很简单:

忽略不是在前一轮中已经商定的最终确定值的后代的值

忽略最终的无效值

在两个有效的最终值中进行选择时,选择哈希值较低的那个

如果5%的验证器是诚实的,那么随机选择的 512 个节点中,只有大约 1 万亿分之一的机会是诚实的,因此当上述算法工作,将会协调得出单一最终值的节点。

如果阈值依赖的共识算法的容错性被满足(通常50%或67%的节点是诚实的),那么阈值依赖的共识算法将不会确定任何新的检查点,或者它将确定最终彼此兼容的新检查点(例如,每个检查点都指向前一个检查点作为父检查点)。

因此,参与依赖于延迟的算法的节点不会同意它们接受的值,它们接受的值仍然保持为同一链的一部分,不存在没有实际的分歧。一旦延迟在未来的某个回合恢复正常,依赖于延迟的共识将恢复“同步”。

如果依赖阈值和依赖延迟的共识算法的假设同时被打破(或在连续的两轮中被打破),那么算法就会分解。例如,假设在一轮中,阈值依赖共识最终确定Z→X→Y,而延迟以来共识在X,Y之间意见不一,那么共识将会在不达成协议情况下结束。下一轮阈值依赖共识将会在最终确定W不源于 X,且X不源于Y的情况下结束;在依赖延迟的共识中,同意Y的节点不会接受W,而同意X的节点会。然而,这是不可避免的;异步下的安全共识是不可能的。

容错是拜占庭容错理论中一个众所周知的结论,就像很多的不可能事件一样,容错甚至在观察器离线情况下允许同步假设。

作者:Vitalik Buterin(V神)

翻译 | Katie 责编 | 晋兆雨

原文链接:

https://hackernoon.com/how-to-achieve-99percent-fault-tolerant-consensus-n25b31m

标签:以太坊ITATALVITsol币会是下一个以太坊吗VITA价格Oort Digitalvite币还能起来吗

Gate.io热门资讯
EFI:金色DeFi日报 | SIL.Finance合约出现高危漏洞

DeFi数据1.DeFi总市值:937.44亿美元 市值前十币种排名数据来源DeFiboxDeFi总市值数据来源:Coingecko2.过去24小时去中心化交易所的交易量:23.

1900/1/1 0:00:00
区块链:如何彻底革命社交媒体、实现去中心化?丝绸之路创始人在狱中提出了构想

社交媒体网络的中心化已经给社交媒体平台及其用户带来一堆问题。其中包括侵犯隐私权,并造就了审核数十亿用户内容等不可能完成的任务.

1900/1/1 0:00:00
加密货币:金色观察 | 黑客想要盗取你的NFT

如今NFT盗取事件频发,应如何做好充分安全措施?NFT生态系统快速发展,拥有许多才华横溢的创作者,NFT也变得越来越流行.

1900/1/1 0:00:00
IGN:4.5亿天价NFT作品背后:竟是关联交易+“割韭菜”局?

4.5亿NFT购买者多次发币,作品创作者也是该币的持有者,天价NFT作品拍卖结束后,公募价为0.36美元的B20一度涨到了25美元.

1900/1/1 0:00:00
以太坊:“柏林” 升级 我们该做什么?

原文标题:引介 | “柏林” 升级内容概览 继 “缪尔冰川” 升级之后,以太坊区块链计划实施 “柏林” 升级.

1900/1/1 0:00:00
BTC:7年巨亏逾120亿:盈利模式单一的美图斥资5.8亿豪加密货币

条条道路皆不畅的时候,美图打量起币圈,分别于3月7日和17日分两批购买了4000万美元和5000万美元的虚拟加密数字货币.

1900/1/1 0:00:00