平行链协议深度拆解 | 一个区块如何穿越六道关卡获得最终确认

news2026/3/23 4:54:15
原文作者PaperMoon 团队一个平行链区块要想获得 Polkadot 网络的最终安全背书需要经历候选、附议、可背书、已背书、待可用、已包含六个状态——任何一步失败都会被丢弃。这套机制的名字听起来很学术但它解决的问题极其现实几百个验证人怎么在不运行所有平行链全节点的情况下保证每一条链上的每一个区块都是合法的答案藏在一个关键的设计哲学里Polkadot 不验证状态只验证状态转换。理解了这一点你就理解了整套协议为什么可以做到少数人验证所有人安全。一、三类参与者谁来做什么验证人Validator验证人负责验证区块、维护网络安全的节点需要质押 DOT 作为抵押。验证人的核心职责是检查**平行链**Parachain连接到中继链的独立区块链共享中继链的安全性提交的区块候选的有效性证明Proof-of-Validity, PoV并确保 PoV 在指定时间内保持可用。他们持有的保证金可在发现不当行为时被罚没。在平行链协议中部分验证人会被分配为平行链验证人para-validator专门负责特定平行链的验证工作。收集人Collator收集人Collator平行链节点负责收集用户交易、打包区块候选然后提交给中继链验证人审核。收集人需要熟悉特定平行链的交易格式和出块规则并拥有该链的完整状态访问权限。他们构建出 PoV交由验证人进行验证。渔夫Fishermen——已废弃渔夫最初被设想为平行链的全节点角色用于发现作弊行为但该概念已不再计划正式实现。当前协议中的二次背书检查者secondary backing checkers承担了类似功能。二、包含管道从候选到包含的六步跃迁包含管道Inclusion Pipeline是平行链区块从创建到被纳入中继链尚未最终确认的路径。一个区块在这条管道中经历六个状态序号状态含义1候选Candidate收集人将区块及其 PoV 提交给平行链验证人2附议Seconded平行链验证人 V1 将区块转发给其他平行链验证人3可背书Backable超过半数平行链验证人签署了有效性声明4已背书Backed区块被中继链出块者记录在中继链的某个分叉上5待可用Pending Availability区块已背书但尚未被认定为可用6已包含Included区块已背书且被认定为可用正式成为平行链的一部分关键时间参数在标准流程下背书和包含需要 12 秒完成——背书占一个中继链区块6 秒包含占另一个中继链区块额外 6 秒。引入**异步背书Async Backing**后背书和包含可以在一个中继链区块内完成。异步背书Async BackingPolkadot 2.0 引入的出块机制改进允许平行链在上一个区块还未被中继链最终确认时就开始打包下一个区块形成流水线大幅提升出块效率。平行链阶段平行链验证人由验证人分配程序Validator Assignment Routine指定到各平行链。他们通过收集人分发子系统Collator Distribution Subsystem与收集人建立连接接收候选区块和 PoV。验证过程需要三样东西1. 区块候选状态转换列表2. 区块修改的平行链数据库中的值3. Merkle 树中未受影响节点的哈希收集超过半数签名有效性声明的候选被视为可背书其背书就是这组签名声明的集合。这里有一个关键设计理念Polkadot 保证的是有效的状态转换而不是有效的状态。验证人不检查平行链状态中的每一个值只检查被修改的值。这是整个协议能够扩展到数百条平行链的根本原因。中继链提交阶段可背书区块的收据被添加到中继链的交易队列中。**中继链**Relay ChainPolkadot 的核心链负责协调各平行链之间的共识与通信的出块者每个区块最多可以为每条平行链记录 1 个可背书候选。一旦被记录在中继链的某个分叉上候选状态变为已背书进入待可用状态。它只有在被证明可用之后才能被视为平行链的一部分。数据可用性阶段此阶段中验证人通过可用性分发子系统Availability Distribution Subsystem确保候选数据的可用性。他们在网络中传播擦除编码的数据片段。**至少 ⅓ 1 的验证人必须报告拥有自己的编码片段**候选才会被视为可用。出块者的可用性检查确保中继链只包含已分发擦除编码片段的区块但不保证其有效性——有效性由后续的审批流程负责。数据存储细节重建平行链区块及其 PoV 所需的擦除编码片段存储在中继链验证人的本地硬盘上保持可用时间最长 **24 小时**。这些数据既不存储在中继链区块中也不存储在链上状态中——只有这些片段的 Merkle 根被嵌入候选收据并存储在中继链区块中。包含失败的四种情况一个候选可能在以下任何环节失败1. 收集人无法将区块传播给任何指定的验证人2. 候选未获得候选背书子系统中验证人的背书3. 中继链出块者未选择该候选4. 候选的 PoV 在超时时间内未被认定为可用区块被从中继链丢弃三、审批流程随机抽检的二次防线为什么需要审批区块被包含后状态变为待审批pending approval。此时区块已暂时成为平行链的一部分但仍需进一步确认。这里的设计逻辑很精妙平行链验证人是从整个验证人集合中抽样的而协议假设最坏情况下有 ⅓ 的验证人是不诚实的。如果恰好被分配的验证人中恶意节点占多数仅靠背书阶段的检查是不够的。审批流程通过事后检测机制弥补这一风险而不是增加平行链验证人数量那会降低系统吞吐量。**重要**一个平行链区块在可用之后可以接受子区块。如果该区块在审批流程中失败它和所有后代区块都将被作废。但只有背书该区块的验证人会被**惩罚slash**——惩罚是指当验证人出现恶意行为或严重失误时其**质押**锁定在网络中以参与共识的代币会被没收一部分——而背书后代区块的验证人不受影响。审批的五个步骤1. 被包含管道纳入的区块在二次检查窗口secondary checking window期间处于待审批状态2. 在此窗口内验证人二次检查者通过 VRF 彩票机制随机自选对每个平行链区块执行二次检查3. 二次检查者获取带有 PoV 的平行链区块通过擦除编码重建 PoV重新执行验证函数4. 二次检查者传播检查结果。如果出现矛盾结果会触发升级——所有验证人必须检查该区块输的一方将被罚没5. 流程结束后区块要么被批准要么被拒绝两类密钥审批消息使用专门的审批密钥签署这些密钥是验证人会话密钥的一部分- **审批分配密钥**sr25519 密钥仅用于分配标准的 VRF 计算- **审批投票密钥**ed25519 密钥仅用于签署候选区块的有效性投票链选择与最终确认当一个区块内的所有候选收据都通过了足够的二次检查后验证人可以在 **GRANDPA**Polkadot 的**最终确认**机制——区块被永久写入链上、不可逆转的状态中为该区块投票。获得超过 **⅔ 的正面投票**后区块在链上被最终确认。链选择需要在所有节点间保持一致并能抵御最大比例的恶意节点。Polkadot 主机使用区块生产系统BABE和最终确认工具GRANDPA协同工作。四、候选收据常量大小的区块摘要PoV 的大小通常在 **1 MB 到 10 MB** 之间不可能直接放入中继链区块。为了让 Polkadot 扩展到数百条平行链PoV 需要在中继链上用更小的东西来表示——这就是候选收据。平行链验证人通过签署以下信息构建收据1. 平行链 ID2. 收集人的 ID 和签名3. 父区块候选收据的哈希4. 区块擦除编码片段的 Merkle 根5. 所有出站消息的 Merkle 根6. 区块哈希7. 区块执行前的平行链状态根8. 区块执行后的平行链状态根这些信息的大小是常量级的而平行链的实际 PoV 区块是变长的。任何人只要获得完整的 PoV 区块就可以通过这些信息验证其中包含的状态转换。五、擦除码⅓ 1 的可用性保障工作原理平行链验证人在将候选收据发送到中继链交易队列之前必须先对平行链区块构建擦除编码。擦除编码的原理是将一条消息这里是平行链区块和 PoV分割成一组更小的消息只需获得其中一部分就能重建原始消息。在 Polkadot 中**小消息的总数等于验证人总数重建所需的最小比例为 ⅓**。具体流程平行链验证人创建擦除编码片段将它们构建为 Merkle 树然后将每个片段连同候选收据发送给中继链上对应的验证人。Reed-Solomon 编码Polkadot 使用的擦除码类型是 **Reed-Solomon 编码**——一种在区块链之外已经久经考验的技术。最典型的例子是光盘CD行业CD 使用 Reed-Solomon 编码来纠正因盘面灰尘或划痕造成的数据缺失。在 Polkadot 中擦除码的作用是让平行链状态对整个系统保持可用而不需要所有验证人都跟踪所有平行链。验证人只需各自保存一小块数据在需要时只要 **⅓ 1** 的验证人能提供自己的片段就可以重建完整数据。**⅓ 1 的阈值直接对应 Polkadot 对拜占庭节点的安全假设**——即假设最多 ⅓ 的验证人可能是恶意的只要超过 ⅓ 的诚实验证人能响应数据就可以被恢复。六、争议机制最后的安全兜底什么时候会触发争议所有在已最终确认的中继链上的平行链区块都应该是有效的。为确保没有无效区块进入最终确认状态除了上述审批检查外还有**争议**Disputes机制作为兜底。争议源于两个或更多验证人之间的分歧。要触发争议需要一个恶意行为者将无效区块分发给诚实验证人。按重要性排序的三种场景1. 中继链某分支上已包含的平行链区块是无效的2. 中继链某分支上已背书的平行链区块是无效的3. 一个被附议但未在任何分支上被背书的平行链区块是无效的争议的三个阶段**争议发起**任何发现自己对某平行链区块的有效性判断与其他已发布声明相矛盾的验证人都可以发起争议。发起过程在链下开始由感知到区块有问题的节点触发。**争议参与**一旦获知争议的存在所有验证人必须参与。**争议结论**当任一方获得 **⅔ 超级多数**时争议结束。如果多数验证人由于某种原因无法投票争议也可能在超时后结束。链上与链下组件争议同时具有链下和链上组件。**惩罚slash** 在链上处理因此双方验证人的投票必须上链。此外某条分支上的争议必须被转置到所有活跃分支以确保不当行为在所有可能的历史中都受到惩罚。链上组件通过提供任意两张矛盾投票来发起同样等待 ⅔ 超级多数。该组件还跟踪哪些平行链区块已经被争议过确保同一区块在中继链的任何分支上只能被争议一次。**在争议解决之前该平行链的包含流程将被暂停。****关于区块的一个重要区分**中继链区块不包含平行链区块本身只包含平行链区块头。平行链区块存在于平行链自己的网络中。七、网络异步性现实世界的复杂性上述流程在理想情况下是线性的但现实中网络是异步的。中继链的出块者由 BABE 算法选择而 BABE 是一个允许分叉的算法——这意味着不同的出块者可能在同一时刻被选中且它们可能基于不同的父区块构建。这导致了一个关键现象部分验证人收到了区块 C而另一部分没有收到他们可能在区块 B 之上构建另一个区块 C。之后一些验证人可能同时知道 C 和 C需要在两个链头上都参与工作。两个分叉可能因网络异步性而并行增长一段时间但最终 GRANDPA 会选择其中一个分叉进行最终确认。在没有对抗性网络的情况下两个分叉长期共存的可能性很低因为总会有验证人同时知道两个链头的存在。小结- **六步状态跃迁**平行链区块从候选到包含经历六个精确定义的状态任何一步失败都会被丢弃确保只有合格区块进入中继链- **验证状态转换而非状态**验证人只检查被修改的值这是协议能扩展到数百条平行链的根本原因- **⅓ 1 擦除码**Reed-Solomon 编码让数据可用性不依赖所有验证人在线只需超过 ⅓ 响应即可重建完整数据- **VRF 随机抽检**审批流程通过事后随机检测而非增加验证人数量来保证安全在安全性和吞吐量之间取得平衡- **三阶段争议兜底**争议机制作为最终安全网确保已最终确认的区块一定是有效的作恶者无处遁逃整套协议的精髓在于一个反直觉的洞察安全不需要每个人都验证每一笔交易而是需要一套机制确保任何人的作恶都会被发现并惩罚。Polkadot 用概率抽检替代全量验证用经济惩罚替代信任假设——这不只是一个工程方案而是对去中心化系统如何在有限资源下实现无限安全覆盖这个根本问题的一次范式回答。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2412534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…