一个很酷的故事
· 区块(状态转换列表),
对付纠删码。在将候选回执发送到中继链事务行列之前,结构该候选回执的验证人还必需结构平行链区块的纠删码。
虽然,用户得知道 “验证” 是什么意思。
大大都分片的区块链协议,在每个分片上都需要大量的验证人。Polkadot 的纠删码成果,以及接下来要举办的特别查抄,就是担保它在每个分片上提供沟通的验证性的诀窍。并且每个分片的验证人低至 10 个。
从单个平行链的角度归纳综合第一阶段:
尽量纠删码大概有点枯燥,但为什么我们要执行纠删码远比它如何运行有趣。
统一的安详担保确保毗连到波卡的链可以以无信任的方法举办交互。平行链可以在没有信任边界的环境下交互,就像上的智能合约可以在没有信任边界的环境下交互一样 —— 它们与更大的网络共享状态和验证逻辑。
区块作者举办的可用性查抄,可确保 Polkadot 仅包括验证工钱其分派块的区块,但不能担保其有效性。由于每个平行链上验证人的数量很是少,因此同谋是一个公道的问题。通过将出块(BABE)与最终确定(GRANDPA)分隔,Polkadot 可以在出产区块之后但最终确定之前,执行特另外有效性查抄。[3] Polkadot 有一类非凡的参加者 —— 垂纶人(Fishermen),它们在中继链区块中巡逻,缉拿那些无效的候选人回执。
任何传出动静的 Merkle 根
固然这看起来像一个长长的信息列表,但实际上它比有效性证明小得多,因为每一项都是牢靠的长度。平行链和收集人 ID 只是数字,其他的都是哈希散列(Merkle 根是哈希散列的哈希散列…)。在计较机科学中,任何故恒定巨细暗示任意数量信息的要领都具有可伸缩性优势。该系统通过将越来越多的信息推送到边沿,而仅通过中继链推送恒定巨细的信息,从而实现系统的局限化。
假设一个恶意的收集人向验证人提交一个有效的块,然后当即离线。这里的进攻不是要建设一个无效的事务,而是要完全封锁平行链,广义上讲,这会让各人都惨。
注释
父块候选回执的哈希值
· Polkadot 为这个平行链分派一组验证人,
为了达到这一步,收集人和验证人已经做了许多事情。每个平行链都有一小组验证人,随机分派给一个区块。这些验证人必需毗连到平行链收集人,计较状态根,查找父块,建设纠删码块并将其分派给网络中的每个其他验证人。它们把这些事情都布置在候选回执中,候选回执就代表了以上所有对象。
收集人的 ID 和签名
· 而且,收集人和验证人打开毗连提交区块。
波卡中的每个平行链[1]都有本身的状态。中继链将所有这些毗连成一个状态,即 “所有状态的状态”,回收一种称为 “分片” 的计策。每个平行链都是波卡的分片,具有独一的状态转换法则。平行链有独立的经济模子、管理机制和用户。由于波卡提供的接口,中继链验证人可以担保每个平行链遵循其独一的法则,而且可以在无信任情况中在分片之间通报动静。
在 Polkadot 的跨链动静通报协议(XCMP)中,平行链之间成立了直接通道。共享全节点的平行链可以直接散播动静,而不共享全节点的平行链可以向验证人请求动静。仅频道操纵,譬喻打开和封锁,以及交付证明进入中继链。XCMP 只是 Polkadot 通过将信息推送到边沿举办扩展的另一种方法,同时仍然为无信任的交互提供了须要的担保。
有关跨链通信的更多信息,请参阅 Polkadot 的动静通报方案。
假如验证人只查抄此区块的有效性,然后在中继链中完成它,那么收集人将保存其前一个状态和当前状态根,而不知道要举办什么变动来建设当前状态根。因为它们将不再拥有本身的状态,它们不能再缔造新的区块。
一、笼络
因此,收集人必需可以或许检索并重建其平行链区块,然后才气成为最终区块。
在这个例子中,Louise 给 Ben 发送了 50 个代币,有人提倡了一个新的公投。Polkadot 可以用区块加上简化的 Merkle 树来验证状态转换。
执行区块之后的平行链的状态根
在平行链验证进程中,验证人和收集人互换了大量信息。有效性证明包括整个平行链区块及其大部门的状态。为了将 Polkadot 扩展到数百个平行链,有效性证明需要一些更小的对象来在中继链上暗示它们,那就是候选回执。
区块建设的进程是从平行链收集人(collators)开始的。收集人雷同于其他区块链上的验证人,但它们不需要提供安详担保,因为波卡提供了这些担保。收集人只需要建设扩展其最终链的区块。
· 平行链选择一个收集人将一个区块提交给中继链,
平行链 ID
父块回执的哈希确保当前回执成立在正确的链上。同样,平行链的状态根和区块的哈希散列答允任何人通过得到有效性证明来验证这种状态转换 —— 区块自己加上状态树中的更新。
二、区块筹备
Polkadot 中的每个平行链(Parachain)都有一组中继链的验证人来接管和验证其平行链区块,并将它们最终确定。可是,这些验证人不会像其他分片系统(无限期地将验证人分派给单个分片)那样长时间地保持稳定。Polkadot 验证人常常会在 “舞会” 中发明一个新的平行链,这个平行链会转向 Polkadot “节奏器” 的节奏:BABE 共鸣随机信标。
三、中继链区块构建
一旦完成,该区块将从共享安详情况中受益,该安详情况答允链以无信任的方法互相交互,而还原该块将需要还原整个 Polkadot。规复整个网络是一项难题的任务,应予以制止,这就是为什么验证人、收集人和垂纶人必需确保以 Mozartesque 精度举办有效状态转换的原因。纠删码框架和我们的 BABE / GRANDPA 共鸣使 Polkadot 可以或许以比其他任何区块链网络更快、更可扩展的方法提供这些担保。
在对一个区块中的所有候选回执执行了足够的二次查抄之后,验证人终于可以在 GRANDPA 中对该区块(并扩展为所有先前的区块)举办投票。一旦它拥有高出三分之二的预先提交,该区块就在最终链中。一旦验证人有了有效性证明,它就会在分派给该平行链的其他验证人之间流传此信息。一旦高出一半的人同意这个区块代表有效的状态转换,它们就可以开始筹备公布它的有效性。验证人将结构一个 “候选回执”(candidate receip)(这是实际进入中继链区块的内容)和一个纠删码(erasure coding),它们将发送给网络中的所有验证人。
步调的疏散是双重欺诈防范机制。验证人仅查抄区块中的候选回执,而不查抄平行链提交的每个回执。
· 平行链数据库中区块修改的值,以及
区块纠删码的 Merkle 根
跋文
隐继链
Merkle 树有一个利便的特性:假如某些值产生变动,则可以通过查察新的值和树中受其影响的路径来验证变动。
固然对付平行链收集人而言是正确的,但平行线程收集人将需要持有 DOT token 才气参加区块拍卖以布置其区块执行。可是,由于平行链收集人处于接受垂纶人的精采位置,因此它们可以轻松继续这两个脚色。
其次,区块作者仅包罗作者具有纠删码块的候选回执。区块链验证人将其块发送到网络中的所有其他验证人,因此每个验证人应具有来自每个平行链的块。通过只容纳那些作者有纠删码块的候选回执,作者能确保系统可以执行下一轮可用性和有效性查抄。
当某个荟萃中的两个子集不存在交集时,高出三分之一的阈值足以接管或拒绝一个区块。这一点听起来大概有点奇怪,然而,拜占庭容错系统要求验证人的妨碍少于三分之一。假如高出三分之一的人说某个区块是有效的,而别的高出三分之一的人说这个区块是无效的,那么该系统的假设就被冲破了。
候选回执进入中继链事务行列,验证人将它们的动静散布开来,就像对其他事务做的那样。当某个验证人赢得 BABE 插槽的率领权,它将选择候选回执来构建中继链区块。
本文中始终利用 “平行链”,可是除非出格说明,这些内容也合用于平行线程(parathreads)。
Polkadot 中的所有平行链都遵循中继链的最终确定性。将来的平行链区块必需始终以最终中继链中的候选回执为基本。从一个区块的编写块到最终确定,所有可用性和有效性查抄应在不到一分钟的时间内完成。
我之前已经提到过,一种可扩展性计策是将信息推送到系统边沿。我们对 Polkadot 的想法之一是使 Polkadot 自己成为平行链。与之雷同,所有代币转让、抵押、打点等事务将在 Polkadot 平行链中举办,其候选回执由中继链完成。在这种环境下,中继链区块将仅包括候选回执。
当区块被添加到中继链后,它将进入验证阶段。在该阶段中,随机选择的验证人必需执行二次查抄,来测试内部候选回执的可用性和有效性。二次查抄包罗了请求足够的纠删码块以重建编码块,以及有效性证明以验证状态转换。
当验证人吸收到一个区块时,它将首先查抄该区块是否遵循平行链的状态转换法则。
波卡(Polkadot)担保其平行链的有效状态转换。在外貌之下,存在着一个由节点构成的乐团 —— 从验证人、收集人、垂纶人到全节点,发挥着它们的浸染,将平行链区块传送到最终的中继链。
收集人和垂纶人执行特另外可用性和有效性查抄的脚色,进一步将可伸缩性推到了边沿,并远离了中继链验证人。跟着平行链数量的增加,相应的执行这些检讨的收集人和垂纶人的数量也随之增加,而不会给验证人增加新的承担。特别查抄让验证人的事情量保持低程度,这些查抄主要是为了办理不协调的问题。
原文:https://polkadot.network/the-path-of-a-parachain-block/amp/
平行链是毗连到波卡网络的主权。与其他区块链一样,平行链是确定性状态机,这意味着每个平行链都有一个状态,执行一批状态转换就叫出产了一个区块,并到达一个新的状态。状态就像系统的设置。想想电灯开关。它可以是 “开” 或 “关”。计较机的状态就像几十亿个电灯的开关。在最根基的条理上,一批状态转换包括要切换的电灯开关列表。状态转换函数是抉择是否应该切换开关的逻辑。
这组信息组成了有效性的证明。散列有牢靠的长度。未修改的值有多大并不重要;散列足以暗示它们。
收到候选回执和纠删码块的验证人将候选回执包括在中继链事务行列中,个中作者也可以包括在区块中。
· Merkle 树中未受影响的散列。
要相识有关 BABE 和 GRANDPA 的更多信息,请拜见 Polkadot 共鸣系列。
因此,验证人建设所有这些纠删码块,将这些块放入它们本身的 Merkle 树中,并将每个块发送给相应的验证人。除了这些块之外,验证人还包罗候选回执,它实际长进入了中继链的一个区块中。
本文仅接头了对平行链区块的验证,但体现了在平行链之间举办无信任动静通报的情况。因为沟通的验证人掩护所有平行链,所以跨链动静与单个链中的跨帐户动静具有沟通的完整性,譬喻以太坊上的条约间通信。
翻译:PolkaWorld由于波卡提供安详性和有效性的担保,平行链不会受到像正常区块链的进攻,如 51% 的进攻。波卡验证人将拒绝无效的区块,因此平行链只需要一个厚道的收集人来提交区块。该模子开发了暗码经济学的一个新规模,可以包罗无令牌平行链、利用原生代币可能 DOT 代币的 PoS 平行链,或其他收集人选择机制。区块作者的信息凡是是区块头摘要的一部门,而且易于验证。
验证人通过签名为平行链区块结构候选回执:
验证人建设新区块时,会将区块发送到其与网络的毗连处,网络再将区块转发到毗连处。验证人导入一个块时,它将查抄该块中每个候选回执是否具有纠删码块。假如缺少任何块,则验证人将告诫其他块。假如高出三分之一的验证人,在设定的时间段内发送了丢失块的警报,则该区块将被扬弃。
一旦该区块通过脱期期,便开始举办二次查抄。Polkadot 要求的二次查抄的数量取决于收集人和垂纶人,它们别离测试候选人回执的可用性和有效性。假如垂纶人检测到一个认为无效的块,则它会提交无效声明同时抵押一些 DOT token。同样,收集人提交不行用性声明。具有更多无效性或不行用性声明的区块,需要验证人举办更多的二次查抄,一直到要求三分之一以上的验证人证明区块的有效性或无效性。像不行用脱期期一样,假如高出三分之一的验证人陈诉一个块为无效,则该块将被扬弃。[5]
区块的哈希散列
候选回执
执行区块之前的平行链的状态根
垂纶人本质上是抵押了一些 DOT token 的平行链全节点。固然平行链收集人不需要任何 DOT token[4],但它们只需要来自自家平行链的鼓励来建设区块,而垂纶人则确实需要抵押 DOT token 作为反欺诈机制。假如没有任何代价物作为抵押,垂纶人大概提出虚假的无效声明。
纠删码接管一条动静(在本例中,动静是平行链区块和有效性证明),,并建设一组较小的动静,以便您可以通过获取较小动静的一小部门来重建原始动静。在 Polkadot 的环境下,较小动静的数量便是验证人的总数,分数是三分之一。譬喻,假如 Polkadot 有 1000 个验证人,而且每个验证人都获得一个块(chunks)(这些小的片断称为 “块”),那么它们可以用个中任何 334 个重构一个区块。
平行链的状态存储在 Merkle 树中。状态中的每个数据点都由一个密钥(key)和一个值(value)构成。譬喻,密钥可以是帐户 ID,值可以是它节制的代币数。每个密钥-值对都用 hash 暗示,并成为树的叶子。为了生身分支,相邻的叶子被毗连起来并再次 hash,将两个点酿成一个点。这个进程继承,每次将元素总数淘汰一半,直到树有一个单个的散列值来暗示整个数据库,即状态根。
基于此属性,验证人可以验证状态转换,而无需会见整个状态。它只需要:本文将先容平行链区块进入中继链所经验的一系列可用性和有效性查抄,一旦最终确定,它们将从整个波卡网络的安详性中获益。
纠删码
此刻是举办要害区此外恰其机缘:Polkadot 不能担保有效的状态;但它担保有效的状态转换。Polkadot 验证人不会查抄平行链状态中的每个值,只查抄那些被修改的值,它确保修改是有效的。假如一条链以有效的状态插手 Polkadot 网络,并在 Polkadot 的安详掩护伞下执行其所有转换,那么它将具有有效状态。[2]
首先,区块作者将只在先前的中继链区块中包括具有父候选回执的候选回执。此查抄可确保平行链遵循有效链。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。