每轮换一批人:为什么 Algorand 不选固定领导者
多数权益证明链会先选出一个领导者负责出块,其他验证者验证并投票。Algorand 的 ABFT 协议把这件事拆成了另一个问题:与其选一个公开的领导者让所有人知道该攻击谁,不如每一轮、每个步骤都用密码学抽签秘密选出不同的小型委员会,分别负责提案、认证等环节。官方规范里,抽签过程叫加密抽签(cryptographic sortition),输入是账户信息、轮次和步骤编号,输出是一份可验证的凭证:凭证数量大于零,就代表这个账户在这一轮这个步骤里中签。委员会小到什么程度由每步的安全参数决定,而不是全体验证者逐个投票。这样做的直接后果是:攻击者无法提前知道下一轮该收买或压制谁,因为抽签结果在广播前只有中签者自己算得出来。
VRF 凭证:可验证、不可预测、不可挑选

抽签的引擎是可验证随机函数(VRF)。官方规范把验证者密钥分为参与、投票、选择等几类,其中选择密钥专用于抽签:节点用自己的选择密钥对”轮次、步骤、上一轮种子”这类输入算出一个伪随机输出和一份证明。这份证明有两个关键性质:任何人都能事后验证输出确实是该公钥在该输入下的唯一结果,因此中签声明无法伪造;但在结果公布前,没有人能预先算出别人的输出,也就无法挑一个”这轮必然中签”的输入反复重掷。签的胜率与账户的质押份额成正比——份额越大,被抽中的概率越高,但每一签都是独立掷骰,大户拿不到确定性席位。规范在验证投票消息时,第一件事就是校验随附的 VRF 凭证和它声明的委员会参数,凭证不成立的投票直接无效。
每轮重抽意味着什么样的攻击面
因为委员会每轮、每步都重新抽签,定向攻击的预期收益被压到极低:攻击者就算知道某账户的公钥和当前种子,也无法确定它在下一轮会以多大概率中签。历史上一些链出现过”先查明本轮出块者再实施网络攻击或贿赂”的案例,这种模式在每轮重抽的模型里成本极高。但边界要写清楚:抽签保护的是”谁参与决策”这一层的不可预测性,它不自动解决所有问题——种子生成环节的 manipulability、大额质押者在中签分布中的长尾、以及验证者节点把参与密钥托管在单一服务商带来的运维风险,仍然要单独评估。规范也明确:只要抽签输入(种子)本身被操纵,委员会分布就偏向操纵者,所以 Algorand 同时用上一轮证书推导种子,让任何单一参与方都很难影响下一批委员的构成。
节点和钱包在抽签里各自做什么
官方规范描述的算法会遍历节点上注册的所有参与账户,对每个账户跑一次抽签演算:这是本地离线计算,不需要向任何人申请,也不产生链上交易。这解释了一个常见困惑——为什么同一个节点上托管几千个账户是可行的:抽签只是”每个账户各自掷骰”的本地演算,网络层面看到的只是中签者发出的带凭证的投票。对个人钱包而言,含义是参与共识与否取决于钱包是否把账户登记在某个在线节点上并开启参与密钥,而不是质押后就自动出现某种”当选”状态;账户份额带来的中奖概率提升是按轮次摊开的长期频率,不是任何单轮可以期待的事件。
读抽签机制时的三条底线
第一,VRF 的输出均匀性依赖密码学假设,具体算法演进(如签名方案换代)应以官方规范当期版本为准;第二,“按份额加权”意味着质押分布不均时,委员会组成的统计特征向大户倾斜,这是概率倾斜而非特权,评估时要与许可委员会模式区分;第三,抽签提供的是轮次层面的安全,与链的经济安全、治理攻击是三个不同维度,不能用一个维度为另一个背书。本文只做机制解释,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。