很长一段时间以来,我们一直听说在同步网络中,实现50%容错的共识是有可能的。在同步网络中,任何可信节点广播的消息都可以保证在某个已知时间段内被所有其它可信节点接收。
如果攻击者超过50%,他们就可以执行“51%攻击”,对于区块链上同类型的任何算法都有可能出现类似的情况。
我们也一直听过这样的说法:如果你想放松同步假设,并且拥有一种“异步下安全”的算法,最大可达到的容错率可下降到33%(PBFT、CasperFFG等都属于此类)。
然而,如果添加更多假设(具体来说,你不仅需要观察者来关注那些不积极参与共识但关心其输出的用户,也要积极地关注共识,而不仅仅是在结果出现后下载其输出),这样可以把容错率一路提高到99%吗?
事实上,这一点早已人尽皆知。莱斯利·兰伯特1982年在著名的谈及“拜占庭一般问题”的论文中包含了对算法的描述。下面我将尝试用简化的形式重新来描述和表述这个算法。
假设有N个参与共识的节点,每个人都提前同意这些节点代表谁(根据上下文,它们可以由可信方选择,或者如果需要更强的去中心化程度,可以通过一些工作证明或利害关系进行证明)。
V神:Rollups预计在短期和中长期成为以太坊扩容的基石:以太坊创始人V神发布《不完全的Rollups指南》一文,其中介绍了Rollups技术、原理及其发展。他在最后说道:Rollups是强大的二层扩容范例,预计在短期和中期(也可能是长期)将成为以太坊扩容的基石。
Rollups已经看到了以太坊社区的巨大热情,因为与之前的二层扩容尝试不同,Rollups可以支持通用EVM代码,允许现有的应用程序轻松迁移。为了做到这一点,Rollups做出了一个关键的妥协:不尝试完全脱离链,而是把每个交易的少量数据留在链上。有很多类型的Rollup,在设计空间中也有很多选择。
他指出Rollups仍处于发展早期,开发仍在快速进行中,但确实有效,其中一些(特别是Loopring、ZKSync和DeversiFi)已经运行了几个月。在未来的几年里,Rollup领域将会出现更多令人兴奋的工作。[2021/1/5 16:27:16]
我们把这些节点标记为0…N-1。另外,还假设网络延迟和时钟差异上有一个已知的限制D。(例如,D=8秒)。每个节点都有能力在T时刻发布值(恶意节点当然可以早于T或晚于T地发布值)。
V神:加密投票系统安全级别高于邮寄投票:金色财经报道,以太坊创始人V神(Vitalik Buterin)今日在推特回复网友称:“建立安全的加密投票系统所面临的技术挑战是巨大的(而且经常被低估),但我认为这是100%正确的。现有加密方法的安全级别明显高于通过邮寄投票获得的安全性,但确实低于现场投票。尽管如此,抗压迫性远非唯一的目标。例如,线上投票可能会带来更高的投票率。”[2020/11/6 11:46:14]
所有节点等待(N-1)?D秒,运行如下进程。定义x:i为“节点i签名的值x”,x:i:j为“节点i签名的值x,并且x与j一起签名”,等等。在第一阶段发表的提案将采用v的形式:i的形式为一些v和i,其中包括提出该提案的节点的签名。
如果一个验证器i收到一些消息v:i:…:i,其中?i:…:i是已经按顺序对消息进行了签名的索引列表(只是v本身会算作k=0,而v:i则为k=1),那么验证程序检查(i)的时间将小于T+k?D,同时他们尚未看到包含以下内容的有效消息;如果两项检查均通过了,则会发布v:i:…:i:i。
V神提出改进以太坊隐私性计划 实现地址隐藏:4月1日,以太坊创始人V神发推文称,改进以太坊隐私的下一步(除了正在进行的tornado改进之外,现金以及类似的东西):一些简单、易于使用的、类似隐私地址的计划。即把代币发送一个拥有ENS(以太坊域名系统)名称的地址,而不向公布具体是谁得到了币。对此,V神解释其计划工作原理称 ,实现隐私地址很简单:ENS的名称持有者发布该有私钥的公钥P。代币发送者生成随机的r,并将其发送到地址r*P(这是椭圆曲线乘法)。ENS名称持有者可以用r*p消费这些代币。发送者只需以某种方式发送r到姓名持有者。此外,V神还提到另一个方法。他称,使用带有加密r的公钥P并将其发布到链上。但这需要接收方扫描所有的私有发送交易,因此长期来看运行非常昂贵。可以分割成T段存储,将扫描时间减少T倍,但也将匿名性减少了T倍,因此需要权衡。[2020/4/1]
在T+(N-1)?D时,节点停止监听。此时,就可以保证所有的可信节点都“有效地看到了”相同的一组值。
如果问题要求选择一个值,则可以使用一些“选择”函数从他们看到的值中选择一个值。然后节点可以就该值达成共识。
声音 | V神:支持旨在提高操作码gas成本的EIP 1884,但仍需进一步讨论:V神在推特表示支持EIP 1884(并希望重新定价更高),但这仍然需要进一步探讨。据Odaily星球日报此前消息,以太坊开发人员日前已就伊斯坦布尔升级中的6个改进协议达成共识,但对EIP-1884的实施存在担忧(该EIP建议对某些操作码重新定价)。为了在燃料(gas)支出和资源消耗之间取得良好的平衡,EIP-1884建议提高这些操作码的燃料成本。注:V神此前建议在伊斯坦布尔硬分叉时提高gas limit。[2019/9/1]
现在,让我们来探究一下为什么这种方式有效。我们需要证明的是,如果一个诚实节点看到了特定的值,然后其它的诚实节点也看到该值(如果我们证明了这一点,那么我们知道所有诚实节点都看到了同一组值,因此如果所有诚实节点都运行相同的选择功能,他们会选择相同的值)。
假设任何诚实节点收到一条消息v:i:…i,他们认为是有效的。在时间T+k?D之前到达),假设x是另一个诚实节点的索引。x要么是i的一部分:…要么不是。
动态 | V神转发论文 论述“工作证明”替代方案“股权证明”:据bitcoinmagazine消息,V神重新转发论文《什么是股权证明,为什么它很重要》。论文中V神论述了一种替代“工作证明”的“股权证明”PPCoin,它由Sunny King创建的。PPCoin的股权证明算法工作如下。在创建一个股权证明块时,矿商需要构建一个“币币”交易,将自己拥有的钱以及预先设定的奖励(比如利率,类似于比特币的25比特币块奖励)发送给自己。SHA256散列仅根据事务输入、一些额外的固定数据和当前时间(以整数表示自1970年1月1日以来的秒数)计算。然后根据工作需求的证明来检查这个散列,就像比特币一样,只不过难度与交易输入的“硬币年龄”成反比。硬币时代定义为交易输入的大小,以PPcoins为单位,乘以输入存在的时间。由于散列仅基于时间和静态数据,因此无法通过执行更多的工作来快速生成散列;每秒钟,每个PPCoin事务输出都有一定的机会生成一个与它的时间和包含PPCoin数量成比例的有效作品,就是这样。从本质上说,每个PPCoin都可以充当“模拟采矿平台”,有趣的是,它的采矿能力随着时间线性增长,但每次找到一个有效的区块,它的采矿能力就会重置为零。[2019/1/24]
在第一种情况下(对于此消息,x=i),我们知道诚实节点x已经广播该消息,他们这样做是为了响应他们在时间T+·D之前收到的带有j-1签名的消息。此时他们广播了他们的消息,那么所有诚实节点一定都会在时间T+j?D前收到消息。
在第二种情况下,由于诚实节点在时间T+k?D之前看到消息,那么它们就会用自己的签名传播消息,并保证包括x在内的所有人都会在时间T+(k+1)?D之前看到它。
注意,该算法使用添加自己签名的行为作为消息超时的一种“碰撞”。正是这种能力保证了一个诚实的节点如果及时看到了消息,那它们也可以确保其它所有节点也能及时看到消息,因为“准时”的定义增加的时间超过了每添加一个签名的网络延迟。
在一个节点是诚实的情况下,我们能否保证被动的观察者(比如关心结果的非共识参与节点)也可以看到结果。
按照计划,存在一个问题。假设一个指挥官和k(恶意)验证器的某个子集生成一条消息v:i:…i,并且在T+k?D前广播给一些受害者,受害者认为消息是“准时”,但当他们转发时,消息只会在T+k?D之后达到所有的已经协商一致的诚实节点,而所有协商一致的诚实节点将会拒绝它。
但我们可以堵住这个洞,提出一个新的约束:要求D在两倍的网络延迟加上时间差。然后我们给观察者一个不同的超时:观察者接受v:i:…i必须在T+(k-0.5)?D之前。
现在,假设观察者看到一条消息并接受了它。他们能够在时间T+k?D之前将其广播到一个诚实节点,并且诚实节点将发布带有签名的消息,该消息将在T+D(k+0.5)之前到达所有其它观察者,同时带有k+1个签名的消息将会超时。
改进其它共识算法
理论上讲,上述算法可以作为独立的共识算法使用,甚至可以用于运行权益证明的区块链。
第N+1轮共识的验证器集合本身可以在第N轮共识中被决定(例如,每轮共识也可以接受“存款”和“取款”交易,如果接受并正确签名,将添加或删除验证器后进入下一轮)。
需要添加的主要额外成分是另一种机制,用于决定允许提议区块的提名者(例如。每轮可以有一个指定的提名者)。它也可以被修改为用作工作证明的区块链,允许参与共识的节点通过公钥发布工作解决方案的证明,同时通过签名实时地“声明自己”。
然而,同步假设是非常强大的,所以我们希望在不需要超过33%或50%容错的情况下,无需同步假设也能工作。有一种方法可以做到这一点。
假设我们有一些其它的共识算法(例如,PBFT,CasperFFG,基于链的PoS),其输出可以被偶尔在线的观察者看到(我们称之为阈值依赖的共识算法,而上文所述的算法我们称之为延迟依赖的共识算法)。
假设阈值依赖的共识算法持续运行,在一种模式下,它将不断地“确定”新的区块到链上。例如:每一个最终值都将指向一个“父”;如果有一个指针序列a→…→B,我们称A为B的后裔。
我们可以在这种结构上改进依赖于延迟的算法,让总是在线的观察者能够访问检查点上的一种“有可能结果”,容错性约为95%。
每当时间达到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的节点会。然而,这是不可避免的;异步下的安全共识是不可能的。
容错是拜占庭容错理论中一个众所周知的结论,就像很多的不可能事件一样,容错甚至在观察器离线情况下允许同步假设。
作者:VitalikButerin
翻译|Katie责编|晋兆雨
原文链接:
https://hackernoon.com/how-to-achieve-99percent-fault-tolerant-consensus-n25b31m
就在过去几个月,GBTC一直显示负溢价,而比特币下跌的幅度并没有很深,USDT一直在超发,说明亚洲的买盘接住了西方市场的抛压。现在来看,短期内比特币大暴跌的概率已经不高了.
1900/1/1 0:00:00来源:券商中国作者:王君晖原标题:《比特币真要"转正"了?!Visa接受加密货币支付,BTC又飙了!特斯拉也能用比特币买了》3月29日,经过多日拉锯战后,比特币再次向上突破57000美元/枚.
1900/1/1 0:00:00原文标题:比特币本轮牛市的思考本文不作为投资建议或推荐,投资有风险,投资应该考虑个人风险承受能力。 美国十年期国债最高都已经超过1.7%了,这件事情在过去一个月已经刷屏了朋友圈.
1900/1/1 0:00:00NFT还没有完全席卷中国市场,但这股热潮正在蔓延。本周,区块链新闻网站Decrypt记者DaBing探寻了中国NFT市场状况,以及加密艺术世界里的各种碰撞.
1900/1/1 0:00:00央行数字货币的发展将经历一个漫长的过程。各经济体将央行数字货币主要定位于维护和加固现行货币金融体系,是对传统物理现金的补充,以实现和维持金融普惠目的.
1900/1/1 0:00:00原定于3月向公众开放的以太坊Layer2扩容方案Optimism今日宣布,将延迟公共主网上线时间,预计今年7月份上线,以确保整个社区能协调上线.
1900/1/1 0:00:00