Vitalik Buterin:技能解析分片的特定特点与权衡

Vitalik Buterin:技能解析分片的特定特点与权衡

「分片」是以太坊完结可扩展性未来的要害,但也是最简略遭到误解的概念之一。…比特币,以太坊,PoS,分片,DeFi,Layer2,DPoS,ZK-SNARKs,吞吐量,TPS,BLS 比特币 以太坊 PoS 分片 DeFi Layer2 DPoS ZK-SNARKs 吞吐量 TPS BLSVitalik Buterin 图标 LogoVitalik Buterin区块链作者,团队,专栏,大众号,头条· ·阅览约 16 分钟

「分片」是以太坊完结可扩展性未来的要害,但也是最简略遭到误解的概念之一。

原文标题:《Vitalik:从技能视点揭秘「分片」的优势》
撰文:Vitalik Buterin,以太坊一起创办人
翻译:Eth 中文站

分片是以太坊可扩展性的未来,是让以太坊生态体系完结每秒数千笔买卖的要害,这样大部分人才干以担负得起运用本钱,成为该以太坊的用户。可是,在以太坊生态体系中,分片是简略遭到误解的概念之一,在更广泛的区块链生态体系中也是如此。它指的是一组十分特定的概念,这些概念都具有自己的特质,但人们常常将前者与一些技能相提并论,后者的安全特性更弱,且与前者不同。本篇文章的意图是介绍分片的特定特点,并与其他非分片技能加以差异,且为了完结这些特点,分片体系需求做出哪些献身。

Vitalik Buterin:技能解析分片的特定特点与权衡_图注:以太坊分片体系,原图来自 Hsiao-wei Wang,由 Quantstamp 规划 _

扩展性不或许三角

要介绍分片,最佳办法是从描绘一个问题开端,即扩展性不或许三角,这个问题促成了该处理计划的诞生。

Vitalik Buterin:技能解析分片的特定特点与权衡

依据扩展性不或许三角,一个区块链想要完结三个特性,若运用简略技能手法,只能完结三个特性中的两个。这三个特性如下:

可扩展性:该区块链可以处理和验证的买卖比单个一般节点更多,例如一台消费级笔记本电脑。去中心化:该区块链的运转可以不依靠于由大型中心化参加者组成的小集体。这一般了解为即便是大多数节点都是诚笃的,也不应该信赖不能用消费级笔记本电脑接入的节点群。安全性:该区块链可以抵挡许多企图进犯的节点,抱负状况下,要抵挡 50% 的节点,一般状况下,要抵挡超越 25% 的节点,但只是抵挡 5% 的节点不可以确保安全性。

以下是三种不同类型的「简略处理计划」,可是这些处理计划只能完结三个特性中的两个。

传统区块链:包括比特币、完结 PoS/ 分片之前的以太坊、莱特币及其他相似区块链。这些区块链依靠于每个参加者运转全节点来验证每笔买卖,因而确保了去中心化和安全性,但没有完结扩展性。高 TPS 区块链:包括 DPoS 链,但也包括许多其他区块链。这种区块链依靠于少数节点坚持一致,数量一般介于 10-100 个,用户有必要信赖大多数节点。依据上文的界说,该处理计划完结了扩展性和安全性,但没有完结去中心化。多链生态体系:一般指让区块链「向外扩展」,即让各种运用程序在不同的链上布置,并运用跨链通讯协议进行通讯。这完结了去中心化和扩展性,但并不安全,由于进犯者只需求操控其间一个链的大多数一致节点 (一般数量小于整个生态体系 1% 的节点数) 就可以形成损坏,还或许引起连锁反应,对在其他链中的运用程序形成巨大危害。

分片技能可以一起完结上文提及的三个特性。一个分片型区块链具有以下特征:

可拓展性:其处理的买卖量远高于单一节点。去中心化:可以彻底依据消费级笔记本电脑运转,无需依靠超级节点等。安全性:进犯者无法经过少数资源对体系主张部分进犯,只能测验操控整个体系,以进行进犯。

本文接下来的部分将评论分片型区块链怎么完结这些优势。

随机抽样分片

最简略了解的分片版本是经过随机抽样进行分片。与以太坊生态体系中构建的分片办法比较,随机抽样分片的信赖特点更弱,但以太坊分片运用的技能更简略。

下文论述了分片的中心思维。假定有一个 PoS 区块链,其验证者数量十分多,例如 10000 位验证者,而且需求验证区块的数量十分巨大,比方 100 个区块。鄙人一组区块产生之前,没有一台核算机可以验证这 100 个区块。

为了处理这个问题,咱们需求以随机的办法,分配验证作业。咱们对验证者名单进行随机混洗,然后选取名单中前 100 个验证者来验证第一个区块,第二组 100 位验证者来验证第二个区块,以此类推。随机抽样分片经过这种办法来验证区块或履行其他使命,这些随机选出的验证者称委员会 (committee)。

Vitalik Buterin:技能解析分片的特定特点与权衡

验证者验证一个区块后,会经过发布一个签名来证明。其他悉数节点都只需求验证 10000 个签名,而不是验证 100 个完好区块,这样会削减许多作业量,特别是运用了 BLS 签名聚合技能之后。每个区块的播送无需经过同一个 P2P 网络,而是经过不同子网,节点只需参加自己担任或其他想要验证的区块相对应的子网。

幻想一下,假如每个节点的算力添加 2 倍,会产生什么效果。关于每个节点,现在可以安全验证签名的数量添加了 2 倍,那么可以减低最小质押数量,让验证者的数量添加 2 倍,这样就可以产生 200 个委员会,而不是 100 个。所以,每个时隙的区块验证数量可以到达 200 个,而不是 100 个。此外,每个区块容量可以扩展 2 倍。因而,全体区块链容量会添加 4 倍。

咱们可以经过数学术语来解说其背面的原理。依据大 O 符号 (Big O notation),咱们用 「O(C)」表明单个节点的算力。O(C) 代表传统区块链可以处理的区块巨细。如上所述,分片链可以并行处理巨细为 O(C) 的区块 (请记住,每个节点来验证每个区块的间接本钱为 O(1),由于每个节点只需求验证固定数量的签名)。因而,每个区块容量为 O(C),分片链总容量是 O(C^2)。这便是为什么这种类型的分片称为二次方分片 (quadratic sharding),依据二次方分片的要害效果,咱们以为从长远来看,分片是扩展区块链的最佳办法。

人们常常会问这样一个问题:「随机组成 100 个委员会与分裂为 100 条独立区块链有什么不同?」

其不同之处首要在于以下两个方面:

随机抽样能防止进犯者将算力集中于某个分片中。在一个 100 条区块链组成的多链生态体系中,进犯者只需具有总质押量的 0.5% 就可以形成损坏,意味着可以针对其间一个区块链主张 51% 进犯。在一个分片链中,进犯者有必要具有总质押量的 30-40%,才干到达相同方针,换言之,该链的安全功能同享给分片。当然,进犯者可以比及命运好的时分,偶然在单个分片中获得 51% 的算力,尽管具有的质押量不到 50%,但关于质押量远远低于 51% 的进犯者来说,主张进犯的难度呈指数型上升。假如质押量少于 30%,简直不或许主张进犯。若有一个分片呈现了坏块,整个链会重组,以防止承受该区块,这称为严密耦合性。依据社会契约,即便单个分片中呈现了一个坏块,也不能被主链承受,一旦发现坏块,分片会被回绝,本文后边章节将介绍一些从技能上强制履行社会契约的办法。有了这一机制,从运用程序的视点来看,分片链享有完美安全性,合约 A 可以信赖合约 B,即便由于区块链遭到进犯,合约 B 呈现毛病,而且回滚了整个前史,其间也包括合约 A 中由于合约 B 呈现问题而遭到影响的买卖。

这两种差异确保分片为运用创立了一个环境,该环境保存了单链条件下的要害安全特点,而多链生态体系则无法完结这一点。

经过更好的安全模型改进分片

我彻底同意比特币社区中的一种遍及观念,那便是像比特币(或以太坊)等区块链并不彻底依靠「诚笃的大多数」假定。假如对这些区块链打开 51%进犯,则进犯者可以做一些具有损坏力的坏事,例如回滚或查看买卖,但不能刺进无效的买卖。而且即便他这么做了,运转惯例节点的用户也可以轻松检测到这种行为,因而,社区若希望经过分叉来掠夺进犯者的力气,以和谐的办法抵挡进犯,可以敏捷采纳举动。

关于更为中心化的高 TPS 链,它们的首要缺陷是缺少这种额定安全性。这种区块链没有,也不或许具有让一般用户运转节点的文明,因而首要节点和生态体系参加者可以更轻松地聚在一起,强制施行一项协议更改,即便社区十分不喜欢这个改动。更糟糕的是,在默许状况下,用户的节点会承受这项改动。一段时刻后,用户会察觉到,但比及那时,这个更改现已成为既成事实,意味着其间首要的和谐担负,即回绝更改,将由用户承当,而且不得不做出苦楚的决议,回滚一天或更多的买卖记载,而其他用户都以为这些记载现已得到了终究承认。

抱负状况下,咱们希望选用一种分片办法,其验证办法能防止上文说到的 51% 信赖假定,并保存传统区块链的高安全性,这种安全性只要在经过彻底验证的状况下才干完结。而这正是咱们曩昔几年的大部分研究成果。

可扩展核算验证

咱们可以将可以抵挡 51% 进犯的可扩展验证问题分为两种状况:

验证核算:查看某些核算是否正确完结,并假定你具有完结该核算的悉数输入数据验证数据的可用性:查看核算自身输入的数据是否以某种办法存储,在必要状况下以供下载;履行此查看时,无需实践下载悉数输入数据,由于数据或许太大,无法每个区块都进行下载。

区块链中的区块验证一起触及核算和数据可用性查看,即你需求坚信区块中的买卖有用,而且区块中的新状况根哈希是履行这些买卖的正确履行成果,可是你还需求坚信该区块中有满意多的数据实践得到发布,这样下载数据的用户可以核算状况,持续处理区块。第二点关系到一个十分奇妙但重要的概念,即数据可用性问题 (data availability problem)。下文会对这个问题进行讨论。

可扩展核算验证相对简略完结,其间会运用两类技能:诈骗证明及 ZK-SNARKs

Vitalik Buterin:技能解析分片的特定特点与权衡

诈骗证明可以验证核算的一起,确保扩展性

以下是对两类技能的简略介绍:

诈骗证明 (fraud proof) 是一个承受核算成果的体系,你可以要求有质押存款的人签署以下办法的音讯:「我证明,假如运用输入 X 进行核算 C,则会得到输出 Y」。你会默许信赖该音讯,但其他有质押存款的人会有应战核算成果的时机,他们可以签名一条音讯,称「我不同意,输出成果应该为 Z,而不是 Y。」仅主张应战后,悉数节点才会进行运算。这两方中任何一方犯错都会失掉确保金,而且悉数依据错误核算的运算都会从头进行。ZK-SNARKs 是一种密码学证明办法,可以直接验证「输入 X 后,履行核算 C,会输出 Y」。在密码学层面,该验证机制是「牢靠」的,由于假如输入 X 后,进行核算 C,成果不等于 Y,则无法经过核算生成有用性证明。即便运转核算 C 自身花费许多时刻,该证明也可以很快得到验证。有关 ZK-SNARK 的更多数了解说,请参阅此文章。

依据诈骗证明的核算之所以具有扩展性,是由于在「一般状况下」,你不必运转杂乱核算,只需验证单个签名。在特别状况下,应战呈现后,你有必要在链上验证核算,可是特别状况很少产生,由于触发这种状况的本钱十分贵重,由于开始的声明者或应战者之一会失掉许多确保金。ZK-SNARKs 概念更简略,它们只是经过本钱更低的证明进行验证,然后代替核算,但其背面的数学原理却要杂乱得多。

有一种半可扩展体系,它能以可扩展的办法验证核算,但需求每个节点验证悉数数据。该体系若能经过一系列紧缩技能,经过运算替换大部分数据,功率便可大大提高。这便是 Rollup 所做的事。

对数据可用性进行可扩展性验证难度更高

诈骗证明不能用于验证数据可用性。运算的诈骗证明依据这样一种条件,即原始声明一旦提交,运算的输入数据要在链上发布,因而,假如有人主张应战,该应战的履行与原始履行的「环境」彻底一致。关于数据可用性查看,上述操作无法完结,由于假如要在链上发布,需求查看的数据量太多。因而,针对数据可用性,怎么生成诈骗证明计划变成了一个要害问题,有人可以宣称「数据 X 可用」,但不在链上发布,等候应战者呈现,主张应战后,再向整个网络发布该数据,使得网络中的其他参加者以为应战者是不正确的

下图的「渔夫窘境」可以很好阐释其间道理:

Vitalik Buterin:技能解析分片的特定特点与权衡

「渔夫窘境」的中心理念触及到两种状况,一种状况是 V1 是歹意发布者,但 V2 是一个诚笃应战者,而另一种状况是 V1 是诚笃发布者,而 V2 是歹意应战者。两种状况关于其时未测验下载该特定数据的任何人来说都没有差异。当然,在可扩展的去中心化区块链中,每个个人节点只希望下载一小部分数据,因而只要一小部分节点可以了解不合之外的悉数状况。

由于不或许辨识出哪一方是正确的,所以也无法为数据可用性生成有用的诈骗证明处理计划。

人们常常问道:「假如某些数据不可用怎么办?ZK-SNARK 可以确保悉数数据的有用性,但这还不行吗?」

不幸的是,只是确保数据有用性还不足以坚持区块链正常运转。原因是假如区块链能经过验证,但悉数数据均不可用,则用户将无法更新数据,生成证明验证未来的区块。进犯者假如能生成一个区块,该区块尽管可以经过验证,但数据不可用,可以有用阻止区块链运转。有的进犯者还可以不上传特定用户的帐户数据,直到该用户付出赎金停止,因而这不只是是一个活性问题。

有一些强有力的信息论观念以为这个问题是底子性问题,没有优秀处理计划 (例如密码学累加器的运用)。有关详细信息,请拜见本文。

那么,怎么在不下载的状况下,查看 1 MB 数据是否可用?这听起来无法完结!

要害的处理计划是一种称为数据可用性采样 (data availability sampling) 的技能。该技能的作业办法如下:

经过纠删码东西,将具有 N 段的数据分成为 2N 段的数据,因而只需恣意 N 个数据段都可以康复整个数据。用户假如要查看可用性,无需下载悉数数据,而是随机挑选区块中的方位 (常数,例如 30),而且仅当在区块中找到悉数选定方位的数据时,才承受这个区块。

Vitalik Buterin:技能解析分片的特定特点与权衡

经过纠删码,咱们可以将问题从「查看 100% 数据可用性」 (即确保每条数据均可用) 转变为「查看 50% 数据可用性」 (即至少一半数据可用)。随机抽样则处理了 50% 可用性问题。假如可用数据量少于 50%,那么这两种查看手法中至少一个不可行,而且假如至少 50%的数据可用,那么,尽管某些节点或许无法得知一个区块的可用性,但只需求一个诚笃节点运转纠删码重构程序,就能康复剩下 50% 的区块数据。因而,为了查看 1 MB 区块的可用性,你无需下载 1 MB 数据,只需下载几 KB。这样每个区块都能承受数据可用性查看。有关怎么运用 P2P 子网有用进行数据查看,请拜见这篇文章

经过 ZK-SNARK 证明,数据纠删码的正确性也可以得到验证,然后运用默克尔树的分支来验证各个数据块。另一种验证办法是运用多项式许诺 (polynomial commitment),例如 Kate commitments (KZG 许诺),本质上,该许诺经过一个简略组件进行纠删编码,证明每个要素和正确性验证,这便是以太坊分片所运用的技能。

总结:怎么确保悉数数据的正确性?

假定有 100 个区块,而且你不想依靠委员会有用地验证悉数区块的正确性。为了完结这个方针,咱们需求进行以下办法:

每个客户端在每个区块进步行数据可用性采样,以验证每个区块中的数据是否可用,一起需求下载每个区块几 KB 的数据,即便区块的全体巨细为 MB 或更大。仅在悉数数据可用性应战得到正确回应后,客户点才会承受区块。

数据可用性得到验证后,那么验证其正确性将变得愈加简略。验证正确性要经过以下两种技能:

咱们可以运用诈骗证明,一些质押了确保金的参加者可以供给签名,证明每个区块的正确性。其他应战者或许是渔夫节点会进行随机查看,并测验完好处理整个区块。由于数据可用性现现已过查看,所以其他节点一直可以下载数据,并对任何特定区块进彻底处理。假如发现无效区块,节点会发布一个悉数人都可以验证的应战。假如该区块被证明是坏块,则依据这一区块的悉数区块都需求从头经过运算。咱们可以运用 ZK-SNARK 技能。这样每个区块的正确性都能得到这种技能的验证。

两种状况中,不管区块有多大,每个客户端仅需求对区块进行少数验证作业。关于诈骗证明,区块偶然需求在链上得到充沛验证,但这种状况很少产生,由于就算主张一个应战,本钱也十分昂扬。

以上便是全文的总结!就以太坊分片而言,短期计划是让分片中的区块只包括数据。也便是说,这些分片的效果纯粹是「数据可用性引擎」,Layer2 rollup 的作业则是运用安全的数据空间,别的还会运用诈骗证明或 ZK-SNARK 技能,完结高买卖吞吐量,一起坚持安全性。可是,咱们还可以创立一个内部体系,「原地」完结高吞吐履行,这是彻底有或许完结的。

分片体系的要害特性是什么?有哪些权衡?

分片的首要方针是尽或许地承继传统非分片区块链最重要的安全特点,一起无需每个节点验证每笔买卖。

分片根本可以满意这些要求。以下是传统区块链的特征:

无效区块无法添加到区块链中,由于验证节点会检测到该区块是无效的,并疏忽该区块。数据不可用的区块无法添加到区块链中,由于验证节点无法下载数据,并挑选疏忽。

以下是强安全性的分片区块链特征:

无效区块无法添加到区块链中,原因如下:诈骗证明会敏捷检测到该区块,并奉告整个网络其为不正确区块,并重罚创立者。或许经过 ZK-SNARK 验证其正确性,由于无法为无效区块生成有用 ZK-SNARK 证明。数据不可用的区块无法添加到区块链中,原因如下:假如区块可用数据量只要不到 50%,简直可以必定的是,每个客户端至少有一次数据可用性抽样查看会失利,导致客户端回绝该区块。假如至少有 50%的区块数据可用,那么实践上整个区块数据都是可用的,由于仅需一个诚笃节点即可康复其他数据。

传统高 TPS 链由于没有分片,无法完结上述特征。而多链体系面临的问题在于,进犯者假如挑选一条链进行进犯,就可以简单获得操控,体系中的链也可以同享安全性,可是假如安全性低,那将与传统高 TPS 链没有差异,还会承继传统区块链的悉数缺陷,若安全性较高,同享安全性只是上述分片技能的一种更杂乱的完结。

侧链 (sidechain) 高度依靠于完结办法,假如它们同享矿工或验证者,一般它们简略面临传统高 TPS 链的缺陷;假如它们不同享矿工或验证者,也会面临多链生态体系的缺陷。分片链防止了这些问题。

可是,分片体系也有一些危险。尤其是在以下几个方面:

若遭受适应性敌手进犯,仅依靠于委员会的分片链难以敷衍,而且较难追责。也便是说,假如进犯者可以实时侵略或挑选封闭任何节点调集,那么只需求进犯少数节点即可损坏一个委员会。此外,进犯者不管是应变能力强,仍是具有质押总数的 50%,假如损坏了一个委员会,整个网络只能承认少数参加进犯的节点,即该委员会中的节点,成果处分金额只占少数质押。这又是另一个要害原因,解说为什么数据可用性采样要与诈骗证明或 ZK-SNARK 结合,成为随机采样技能的重要弥补。仅在线客户端数量满意多,能生成满意多数据可用性采样恳求时,这些重复呼应总是构成至少 50% 的区块数据。在实践中,这意味着有必要有几百个客户端在线,而且此数量越大,体系容量与单个节点容量的比率就越高。这是一个 few-of-N 信赖模型——一般十分值得信赖,当然,它不如非分片链节点在数据可用性方面的 0-of-N 信赖形式那么稳健。假如分片链依靠于诈骗证明,那么它要依据时序假定,即假如网络太慢,则在诈骗证明显现数据有误之前,节点或许现已敲定了某一个区块。走运的是,假如你严厉遵从规矩,一旦发现了无效区块,就会回滚悉数无效区块,该时段参数由用户设置,每个用户都能设置承认区块前的等候时刻,假如他们不想等候太久或许会遭受丢失,但更慎重的用户也愈加安全。即便如此,这一机制会削弱用户体会。运用 ZK-SNARK 验证有用功可以处理此问题。需求传输的原始数据量大得多,添加了极点网络条件下产生毛病的危险。与许多数据比较,少数数据更简略传输,假如强壮的政府企图查看区块链,也更简略安全躲藏。若区块链浏览器想要坚持整个链的信息,则需求存储更多数据。分片链依靠于分片式的 P2P 网络,而且每个独自 P2P「子网」由于节点较少,更简略遭到进犯。由于子网之间存在一些冗余,数据可用性采样的子网模型可以缓解这种状况,但其间依然存在危险。

这些是数据验证需求重视的问题,尽管在咱们看来,让更多运用程序在链上运转,而不是经过中心化 layer 2 服务,削减用户层的中心化,会比上述方面更值得注意。也便是说,实践上这些问题,特别是最终两个问题,会对添加分片链吞吐量形成真实约束,使其无法超越特定规划。二次方分片 (quadratic sharding) 只能完结有限二次方性。

趁便说一句,假如吞吐量过高,分片链的安全危险将日益增大,很大程度上,这也是抛弃扩展至超二次分片的首要原因。使二次方分片坚持其有限二次方性似乎是适宜的中心值。

区块出产中心化,而验证分片化是否可行?

人们常常提出一种代替分片的办法,那便是运用相似于中心化高 TPS 链的结构,除此之外,运用数据可用性采样和分片以验证数据有用性和可用性。

这种计划可以改进既有的中心化高 tps 区块链,但仍远没有分片体系强壮。其间一些原因如下:

在高 TPS 链中,更难监测到区块出产者的查看行为。

监测查看行为需求满意以下任一:(i) 可以看到每笔买卖,而且验证没有合理买卖不可思议未进入,或许(ii)在区块出产者中运用 1-of-N 信赖模型,并验证没有区块无法上链。在中心化高 TPS 链中,第一点不或许完结,而完结第二点更困难,由于节点数少,乃至 1-of-N 信赖模型都更简略被损坏,而且 假如该链的区块时刻关于 DAS (数据可用性采样) 来说太快 (就像大多数中心化高 TPS 链那样),则很难证明节点的区块不会只是由于它们的发布速度太慢而被回绝。

假如大多数区块出产者和生态体系成员企图强制履行一项协议更改,尽管这项更改不受欢迎,用户的客户端必定会检测到更改,可是关于社区,回绝更改、进行分叉的难度要大得多,由于需求运转本钱昂扬的新的高吞吐量节点,坚持依据旧规矩的区块链。

在中心化根底设施中,外部进犯者更简略施行查看。区块出产节点买卖吞吐量高,十分易被检测到,关停这些节点也很简略。查看专用的高功能核算在政治上和后勤上比在单个用户的笔记本电脑进步行查看要简略得多。改:与追寻个人用户的笔记本电脑比较,对专用的高功能核算进行查看在逻辑和实践中都愈加简略。

高功能核算向中心化云服务搬运会面临更大压力,添加了危险,由于整个链将在 1-3 家公司的云服务中运转,假如许多区块出产者一起呈现毛病,会增大区块链溃散的危险。验证节点都在个人硬件上运转的分片链不会那么简略遭到这种进犯。

体系恰当分片化后,能愈加合适作为根底层。依据一个分片化的根底层,你一直可以经过构建 Rollup 的办法创立一个中心化的产品体系 (例如用于 DeFi 的具有同步可组合性的高吞吐量范畴)。可是,假如根底层依靠于中心化区块出产,则无法依据此构建一个愈加去中心化的 Layer2。

免责声明:作为区块链信息渠道,本站所发布文章仅代表作者个人观念,与链闻 ChainNews 态度无关。文章内的信息、定见等均仅供参考,并非作为或被视为实践出资主张。

[标签:作者]

Author: admin