异步背书是什么?Polkadot 怎么把平行链出块从等班车改成流水线 图 1
异步背书是什么?Polkadot 怎么把平行链出块从等班车改成流水线 · 图 1

平行链出块为什么要”等班车”

Polkadot 的出块分工在官方文档里写得很清楚:平行链侧由收集者(collator)维护链上节点并组装候选区块,中继链侧由验证者分两步处理——先背书(backing),再纳入(inclusion)。背书指的是一组验证者对候选块做验证签名,官方维基把这一步称为保证抗审查的第一道防线;候选块只要拿到一组背书就能进入下一步,因此背书本身并不证明区块有效,有效性和可用性后面还要靠纠删码分片与收据机制兜底。真正写进中继链区块的是候选收据而不是候选块本体,验证者的证明针对的是”我收到了这个候选块的纠删码分片”。把背书和纳入理解成两个独立阶段,才能看懂异步背书到底改了什么。

在这套流水线的早期形态即同步背书下,规则把时间表钉得很死:一个平行链区块只有在前一个被纳入之后才能开始生成,也就是约每 12 秒一班;构建新块必须以最近一个已纳入的祖先区块为基底;用作参照的中继父区块必须是最新的中继链区块。官方维基顺着这三条规则给出的推论是:候选块必须赶在下一个中继块里被背书,分给执行的时间窗只剩约 0.5 秒,而从生成到纳入整整 12 秒——背书约 6 秒,纳入再约 6 秒。收集者跟丢一班,就要空等下一班,单块能装的数据量也被这个节奏锁死。

异步背书借的是 CPU 指令流水线的思路:允许同一条平行链同时有多个候选块在路上,前一个还在走纳入流程,后一个已经开始背书。官方维基的对比表把变化列得很直白:候选块纳入从每 12 秒一个变成每 6 秒一个,相当于吞吐翻倍或者延迟减半的其中一种换算;单块执行时间上限从约 0.5 秒放宽到约 2 秒,单个块能装的事务量随之上升;中继父不必再是最新中继块,收集者可以提前基于已纳入的祖先构建,并用未纳入段里最新祖先的信息做补充;未纳入的候选块可以不止一个,首次纳入失败还能重新提议,不浪费已经做出来的块空间。同一张表里也有不变的项:从背书到纳入的时间仍是 12 秒,这段物理节奏没有被压缩。

官方维基页面同时挂着一段免责注记:页面写作时异步背书尚未在运行网络中完整实现,各项性能指标要等基准测试后才可信。这句话原样挂在页面上,如实转述它比替它宣布效果更诚实;至于这项机制如今在某条链上是否生效、参数取值多少,要查该链的运行时发布记录与链上参数,不能拿一句旧注记当现状。机制层面,它改变的是调度方式,不动安全参数。

对运行平行链的人意味着什么

机制示意图

Polkadot 是什么?中继链与平行链如何分工 讲过中继链与平行链的分工:平行链自己不维护独立验证者集,安全预算来自中继链。异步背书改的是这条流水线的时间调度,不改这层关系——背书小组验证执行、纠删码保证数据可得、争议流程兜底有效性的结构原样保留。变化体现在运维感受上:带宽和延迟抖动对出块连续性的影响变小,因为不再有错过一班就空转的结构;但单块执行窗口放宽后,收集者要有更快的状态访问和组装速度,慢节点的相对劣势反而更明显。

资源侧的配套是 Agile Coretime 是什么?Polkadot 的出块资源怎么从拍卖改成随用随买:当多个候选块可以同时在路上,为一条链同时开几条管道就从固定拍卖变成了可调配的资源,两条线合起来才构成这条链扩容叙事的全貌,任何一条单独拿出来都不足以解释表现变化。

怎么核实、别核实什么

评估某条平行链的实际表现时,出块间隔、确认延迟这类动态数字要量自己的节点和区块浏览器数据,而不是引用机制宣传。异步背书四个字只回答管道怎么排,不回答你的链卡在哪:中继链拥塞、背书小组不表态、收集者掉线,都会让表定 6 秒变成实际几十秒,定位问题时要沿着背书、纳入、可用性三步分别找链上凭据。执行窗口、纳入间隔都属于协议参数,随实现版本可能调整,引用时以官方页面当时的版本为准,不要用旧截图佐证新状态。本文为机制说明,不构成任何投资建议。