何如搪塞51%挫折是曩昔十年来究诘好多话题,在斯坦福区块链大会上,以太坊引诱创举东谈主V神发表了题为《越过51%挫折》的演讲,他当先先容了不同类型的51 %挫折,举例最常见的回滚贸易挫折,此外还有审查挫折、轻客户端挫折、规劝挫折,以及最严重的覆巢式挫折,他以为这对责任量诠释注解(PoW)加密货币仍是一个很大威迫。而99%容错共鸣、实时性检测器(TD)等期间来检测挫折链以及审查挫折,不错使权柄诠释注解(PoS)货币基本摒除51%挫折带来的威迫。他还称,「与其让挫折者针对PoW,咱们的主见是让链转向PoS。」
2 月19 日到21 日,由高性能诡秘区块链Findora 团队成员、应用加密学小组(Applied Crypto Group) 成员、Bulltetproofs 诠释注解机制淡漠者Dan Boneh 与Benedikt Bünz 联席举办,邀请了包括Vitalik Buterin、 Ben Fisch 等来自闻明好意思国院校,以及Facebook、瑞波、Visa 等机构的行业闻明东谈主物。
以下是V神演讲实录,由巴比特编译。
51% 挫折能作念什么?51% 挫折有不同的种类,它们不错对不同的应用实践不同的操作,并产生不同的收尾和后果。你可能练习的一种51% 挫折是回滚区块。你进行了一笔贸易,把钱发送到了一家贸易所,然后用这些币换取了另一个币,你提走这些换得的币,然后进行一次51% 挫折,收复你的进款贸易……
这等于曩昔10 年来,咱们一直在究诘的主要的51% 挫折类型,亦然咱们议论最多的一类。
本色上,贸易审查亦然另一种51% 挫折!鉴于layer 2 公约和DeFi 都是最近的大趋势,贸易审查变得尤其危急。在好多layer 2 公约的环境中(包括plasma、通谈、通用情状通谈、闪电网罗、Optimistic Rollup、交互计算、TruBit 等),审查就意味着盗窃!
因此,淌若你能够审查挑战贸易,那么你就不错从东谈主们那儿偷到钱。这不适用于zk Rollup,但这种挫折照实适用于东谈主们目下正在议论的绝大多数公约。在DeFi 的布景下,审查尤其危急,因为它是一种用具,你不错通过它主管市集,然后获取价值。
淌若你能审查每一笔交游Uniswap 的以太坊区块链贸易,然后恭候一天,那么以太币的价钱可能会有点波动,我就能从此次挫折中索求出无数的套利价值。
不错说,审查是危急的,在DeFi 公约和layer 2 公约中,贸易审查也不错被视为与盗窃超越。
好多东谈主都在运行轻客户端,淌若你运行的是轻客户端,那么51% 挫折可能会导致这些轻客户端接纳包含皆备无效贸易区块的链。子虚的签名、口头子虚的贸易、未经授权的签名(从一个账户中窃取资金并将其转机到其他帐户)bitkeep钱包最新版,他们不错得到网罗接纳的可用区块。
这里谁练习数据可用性问题?好吧,固然不是整个东谈主,但有好多东谈主了解了它。这里的想法是,你不错在发布区块头(block header)的所在创建一条链。轻客户端不错看到这条链,但弗成在区块体(block bodies)中发布部分或全部数据。这是晦气的,原因是,淌若数据莫得发布,那么它可能是正确的,也可能不是,而且又莫得想法生成凭据向其他东谈主诠释注解它可能是正确的,况且你终止了东谈主们可能要创建改日贸易的信息。也等于说,不可用的区块亦然很危急的。
规劝挫折(Discouragement attack)是一个术语,它指坏心破损其他参与者,导致其他参与者失去收入,并驱使他们与你同谋,或者被动退出。1/3 以上算力的自利挖矿等于这么的一个例子。也等于说,51% 挫折也长短常刚劲的规劝挫折。
是以说,51% 挫折长短常刚劲的,这类挫折对于区块链的不可批改性而言是个威迫。
谁还铭刻这个?一家贸易所被盗走了一堆钱,他们议论推进比特币区块链为期一天的逆转,以便拿回这些钱。淌若这么的事情是可能的,那么区块链里面的东西就可能被还原,区块链就失去了其成为区块链的要道属性,这是可怕的。
另外,51% 挫折不是民主的,它们是富豪管辖的,是以当作一种民主要领,对他们而言是莫得什么克己的。
在践诺当中,51% 挫折是不错完成的,这是一张来自2015 年香港比特币扩容大会的像片。在这张像片当中,掌控比特币90% 算力的一些东谈主坐在了整个,摆出了一副“我领有权力” 的姿态,哈哈。
51% 挫折是不错完成的,举例ETC、Bitcoin Gold 等都遇到过51% 挫折,我确信我漏说了1-2 个,这些挫折都是如故发生的。
本色是,咱们目下所看到的51% 挫折,并不是最晦气的。对于这类挫折来说,覆巢式挫折(Spawn camp attack)是最晦气的恶梦场景。基本上,你需要取得弥散的硬件来挫折一条链,等它收复之后,然后再次进行挫折,因为你仍然捏有这些硬件。终末,社区会受够了这种折磨,他们会更换责任量诠释注解(PoW)算法,由于在短时候内他们莫得想法构建ASIC,是以你只需要租用无数的CPU 和GPU 算力连续挫折, 然后,这条链就死了,除非他们切换到权柄诠释注解(PoS) 或者皆备造成中心化的东西。
这是我在2016 年写的一篇博文,我试图描写什么是权柄诠释注解(PoS) 背后的形而上学,以及为什么这是咱们应该期待存在的,它为什么是一件专门旨的事情。权柄诠释注解(PoS) 中存在一种分歧称性,它与责任量诠释注解(PoW)是不同的,在责任量诠释注解(PoW)中,你只须奖励,因此你对参与挫折或者不参与挫折的处分,只须区块奖励这部分。而在权柄诠释注解(PoS) 系统中bitkeep钱包最新版,你的挫折是不错被检测到的,你失去的进款远高大于你不错被罚没的质押金。
它们被放入Casper CBC 和一系列其他基于安全进款和罚没的权柄诠释注解(PoS) 算法中。从表面上来讲,这种联想的主见是使51% 挫折变得极其费力。基本上,你要挫折一条PoS 链,你需要购买一堆的币,你需要搁置系统中跨越50% 以上的币,然后当你被收拢要挫折时,你就会遇到罚没,淌若你想再次发动挫折,你必须购买更多的币,因为你一直在购买,那么抑遏高潮的币价,最终会导致你歇业,因此,从这个角度来看,与其让挫折者针对PoW,咱们的主见是让链转向PoS。
目下咱们来究诘第一个问题,PoS 何如处理其它类型的挫折呢?到目下为止,咱们一直在温煦结尾性逆转。这在拜占庭的容错共鸣表面中是相配渊博的。基本念念想是,淌若2/3 的一方站在一边,另外1/3 站在另一边…1/3 的考证者必须发出两条相互矛盾的音书,你不错检测到并处分它们。不外,这是对于逆转的挫折。
数据无效、数据不可用、审查以及坏心破损?
让咱们极少极少处理,咱们不会珍爱数据的灵验性,咱们将防护到,淌若你稀有据可用性的保证,况且保证淌若一个区块是区块链的一部分,那么该区块中的所稀有据都不错由网罗中的一个节点下载。淌若你有审查阻力,你发布了一个区块,那么它最终会被包含在内,从这两件事中,你得到了灵验性。原因是交互计算、 Rollup 和这些现存公约。基本上,对于Rollup,你在链上发布所稀有据,然后链保证其可用性,你有一些讹诈诠释注解,并保证淌若某些计算无效,那么你不错发布一个不可审查的讹诈诠释注解,并得到链上处理。是以数据的灵验性并不是那么遑急的,因为第一层(layer 1)和第二层(layer 2)的讹诈诠释注解不错处理这个问题。
淌若你弗成审查别东谈主的区块,那么你就弗成贫窭它们被纳入区块链。因此,只须激发步调的处分是灵验搁置的,那么坏心破损(Griefing) 也不会是什么大问题。
咱们不错归结为两件事:数据可用性挫折和审查挫折。
这是我在2017 年和musalbas 等东谈主共同撰写的一篇论文,我在其中描写了一种基本上允许区块链客户端作假际下载所稀有据的情况下,考证区块链数据可用性的决议。
这个决议的浅显稻草东谈主版块是这么的:查验一个区块是否可用最愚蠢的要领等于下载完整的东西。但在这里,咱们假定一个可膨胀的、可能是分片的区块链,其中有跨越2 MB/秒的数据会被上传到链上,而客户端将无法下载整个的内容。对于一个想要查验数据可用性的客户端,咱们要作念的等于立地抽样测试。它会立地取舍一些数据片断,比如30 个片断、40 个片断、80 个片断……它会立地取舍位置,条目提供这些位置的merkle 诠释注解,只须你收到你接纳的整个位置的灵验讲演,那你就会接纳该区块,将其视为灵验的。
淌若你接纳使用此决议的区块,那么你很可能知谈该区块是灵验的。淌若只须不到50% 的数据可用bitkeep钱包最新版,比如这里左边的所稀有据都可用,这里右边的所稀有据都可用,那么至少有一个查验将很有可能是失败的。
通过这种决议,挫折者就能够糊弄少数特定的客户端。可是,淌若挫折者糊弄了弥散多的客户端,甚至于它们下载的子叶数据占到了总和据的一半,那么这些客户端就不错连续从那儿重建数据。
这并弗成诠释注解区块是皆备可用的,它可能穷乏了一部分,但它照实诠释注解至少有一半的区块是可用的。淌若咱们有一些期间不错从50% 的数据中收复整个数据块,那就太好了。
这等于擦除编码的用武之地,是以咱们要取数据,假定它是一个多项式求值,咱们将在更多的点上求值沟通的多项式,目下,任何50% 的数据都足以收复所稀有据。有了这个决议之后,你就不错考证区块是有用的,况且区块是潜在超越大的尺寸下是可用的,同期个东谈主要下载20-200 KB 的数据。
这是第一部分。这包括数据可用性挫折,它是以太坊2.0 分片处理决议的一部分,这至少允许咱们赋予分片区块链一样的可用性保证。
那何如诠释注解一个根(root)是此擦除编码的根呢?你何如诠释注解我方莫得把垃圾数据卡在里面?你不错使用讹诈诠释注解,举例这个2D 的,淌若你编码子虚,然后有东谈主不错作念一个节略的讹诈诠释注解,你不错将它播送到网罗,然后网罗就不错终止该区块。这个2D 决议是在2017 年头始磋商的。最近则有一些对于编码merkle 树的东西,你在merkle 树中编码每一个level ,这有很好的特质。也有一些要领不依赖于讹诈诠释注解,比如使用STARK 或SNARK 来诠释注解merkle 根的计算是正确的,而另一种可能则触及多项式承诺—— 你会得到你的数据,你会把它解释为多项式的求值,你司帐算出多项式,然后你在一大堆点上作念一大堆多项式承诺的opening(启齿),你的数据可用性查验将是条目80 个位置而不是80 个opening(启齿),或者淌若你使用机灵的代数得到某种多启齿(multi-opening),你就不错取得更高的效果。
这些决议的克己是,它们不依赖于讹诈诠释注解,因此用于考证区块数据的决议已被发表了,它们不再有任何独特的内置蔓延假定。
目下存在的分片区块链,每每会依赖于委员会,其想法是,你有一大堆节点,你立地抽取一些节点,你需要其中的大多数或绝大多数节点在某个区块上签名,以便网罗接纳该区块是灵验的。
问题是,任何一种基于委员会的决议,都将受到跨越某个阈值不良举止者的审查。淌若咱们要指摘抵抗51% 挫折,那么咱们就要指摘一个系统,在这个系统中,即使大多数东谈主初始挫折,那么少数东谈主应该能够连续操作系统自己。
固定阈值的分片决议,并弗成果然匡助到你。是以这里的处理决议是bitkeep钱包最新版,公约需要更充分地依赖一组数据可用性查验决议,而不是依赖于委员会。
在场的诸位,有哪些东谈主想贫窭审查呢?不错,有好多东谈主,是以,近况不是很好。这是nrryuya 的一篇著作,他在口头化考证以太坊方面作念了一些责任,他写了一篇著作说,在目下的以太坊2.0 联想中,有一些计谋不错让大多数东谈主审查区块,这种审查与单区块蔓延是不可分别的,很难去笃定谁该认真。
这里的挫折是相配卑劣的,挫折者挫折一些考证者,并使它们为另一个区块投票,使用其他考证者为我方的区块投票,该区块本色上包含了要审查的内容… 但他们我方的选票不及以跨越51%,是以他们试图审查的内容,本色上长久不会被包含在内。这是多端倪的曲折作用。在以太坊1.0 和以太坊2.0 中,一个进行51% 挫折的坏心方不错进行审查,而当审查力度弥散大时,就很难笃定是否需要对此遴荐步调。
Alice虽然可以透过截图或公开自己的资讯向Booking.com的房东证明自己拥有这些好评,但这样Alice的隐私或许会被泄漏,例如Alice不想让Booking.com的房东知道自己去过哪些地方、住过哪些民宿;或者Alice有可能伪造截图,或者伪造评价,那Booking.com的房东要如何相信Alice所提供的证明文件是真的来自Airbnb的房东?除此之外有没有更弹性的方式,Alice可以选择性地向Booking.com的房东证明,自己至少有10个好评,但不透露自己总共有多少好评?
在 Web 2 时代,互联网企业的「算法」利用用户的数据创造了巨额广告收入,但收入大多流入了平台而不是用户,用户的数据也面临被平台删禁的情况,总而言之,用户数据的主权掌握在平台手中而不是在用户自己手中。
这是咱们目下能作念的最基本的事情:纳入叔块。这里的想法是,在以太坊1.0 中,不属于区块链的区块不错稍后被包含进来,而新的决议则是,咱们添加了公约章程,该章程示意叔块中的贸易也会被处理。
是以,你就有了这么一条区块链,其中,叔块也被纳入在里面。
想像一下,淌若咱们至少不错有在线的客户端,那么在网罗上的客户端不错下载东西,并按时与其它客户端通讯。让它们查验是否看到一个区块准时到达。
淌若它们看到某个区块是按时到达的,况且它们看到该区块在很长一段时候内莫得被某条流畅受,那么该区块将自动被取消经验。淌若一个区块莫得准时到达,那么你不错用它来进行51% 回滚挫折。
它的念念路是,客户端在腹地检测到某个区块是否在它应该到达的时候到达,并将其用作笃定要谨守链的信息。
不是每个节点都能谨守公约的,因为离线节点也会存在。除非51% 挫折正在进行中,不然淌若莫得挫折发生,那么生效的区块链将是一条好的链,淌若挫折正在发生,而你又处于离线情状,那么你果然必须查验外交层,望望发生了什么,但只须少数参与者会这么作念,其他东谈主会有一个相配明确的共鸣。
淌若你生成一个区块,不管该区块的界说是什么,它都能准时到达,一些节点将看到它在不同的时候到达。因此,节点可能不甘愿一个区块“是否被审查太久”,以及一个区块“是否按时发布”,它们可能不甘愿这些时候参数。
而挫折者不错欺骗这极少,导致其他东谈主在挫折是否发生的问题上,产孕育期的分歧,并带来好多管制问题。是以,这就条目咱们有更好的实时性检测器(TD)。
咱们回到拜占庭将军问题,回到1982 年由莱斯利·兰伯特(Leslie Lamport) 撰写的论文。事实诠释注解,这篇论文包含了一个算法,而东谈主们并莫得果然去指摘这个算法,但他们可能应该多谈一些。它把这句话用不可伪造的书面信息(指数字签名)抽像地荫藏起来。兰伯特宣称,他有一个共鸣算法,不错容忍高达99% 的子虚挫折者(即99% 容错共鸣)。
这个算法是灵验的,它的优点是,只须你有同步性假定,它就不错责任,不仅是在作念共鸣的矿工和考证者之间,而且是在矿工和客户端之间,以及客户端和其它客户端之间。它对谁应该在线有一个更强的假定,其使用这个假定来取得更高经过的容错,但它是一个超越危急的假定,咱们不肯意我方去作念。
我将描写单个诠释注解者的版块。在这里,假定一个诠释注解者是淳厚的,然后一共有n 个诠释注解者,咱们就只需要1/n 的诠释注解者是淳厚的。
这里的想法是,假定一个区块被发布,然后客户端和诠释注解者有一个期限,他们需要在这个期限之前接纳该区块,以便以为该区块是准时的。对于客户端来说,终末期限是t,对于诠释注解者来说,终末期限则是t+δ。是以这里的提议者将发布一个区块b,咱们假定提议者有点狰狞,其试图进行旯旮挫折,节点1 在截止日历之前看到它,节点2 也在截止日历之前看到它。诠释注解者发送了该区块,可是由于网罗同步性假定,淌若有一个节点接纳了该区块,那么这意味着诠释注解者保证在他们的截止日历之前接纳该区块,因为区块不错被发送给诠释注解者。淌若哪怕一个客户端以为某个区块是实时的,那么诠释注解者也会保证在他们的截止日历之前看到它,因此诠释注解者会添加他们我方的签名,况且由于网罗同步性,另一个客户端将在一个签名区块的截止日历之前,看到该区块加上一个签名。
将其膨胀到多个诠释注解者的要领是浅显的,你有好多诠释注解者,客户端将是t+δ*k。我在eth.research 上有一篇著作是专门讲这方面的磋商的,是以淌若你想了解更多的细节,请随时放哨。讲讲粗疏的想法,你有一组挫折者,每个挫折者都不错将截止日历蔓延极少,因此淌若一个挫折者接纳到一个区块,那么只须网罗蔓延低于你的δ参数,它就会将一个区块的实时性传播到网罗的其余部分。
淌若你有这种实时性检测器,你会按照自声明的时候规章处理整个实时区块,等于这么。独一的问题是,它需要很长的区块时候,淌若你想处理考证者的进款、取款和罚没,那这可能是一个道理的公约,但它不是运行区块链的最好公约。
更好的说法是,你不错使用实时性检测器检测挫折链以及审查挫折。
反审查期间不如其他期间完满,因为它照实依赖于网罗和客户端之间的同步假定,你不错将此捏续时候诱导为你想要的任何时候,但它与你惬心容忍的审查级别接洽。你不错保证在线节点集之间的一致性,在发生挫折的情况下,你不错就“一条链是否是挫折链”,以过火他整个事情杀青共鸣。你不错将此当作部分社会共鸣的初始,以笃定收复的面容,这有助于你为挫折者分派更强经过的处分,因为你不错更可靠地笃定挫折者是谁。
一般来说,淌若挫折者发布了一条不可用的链,那么数据可用性查验将拿获它,淌若其发布了无效区块,那么讹诈诠释注解不错拿获它,淌若你对区块进行永劫候的审查,那么这条链将自动被网罗忽略。淌若你审查了一个中等时候的区块,那么你不错使用实时性检测器来干净地处理它,淌若挫折者试图不参与或破损委员会,则相应就不使用委员会。
好了bitkeep钱包最新版,咱们有了一系列的用具,它们基本上不错大大镌汰咱们对51% 挫折的恐惧感,或者能够忽略它们,或者从中收复过来。谢谢人人。