证券交割里,“订单已匹配”“资金已冻结”和“法律上完成交割”不是一回事。区块链里的 confirmation 也一样。@Dusk 官网强调确定性结算,但白皮书没有把 finality 简化成“几秒到账”,而是继续讨论异常情况下区块是否可能被替换。

先看 fallback。同一轮共识中,如果多个候选块都达成结果,节点会优先选择 iteration 更低的那个,并回滚更高 iteration 的分支。一个区块即使已被网络接受,也不代表它在所有后续状态下都绝对稳定。

白皮书还设计了 emergency mode:连续16次 iteration失败后,步骤超时被取消,多个 open iteration可以并行推进,直到某个候选块完成验证和批准。若仍无法继续,持有网络多数总质押的 provisioners 可以请求生成 emergency block。它不包含交易,主要写入新的 seed,让网络恢复前进。#dusk

$DUSK 的 rolling finality因此区分四种状态:accepted表示区块有成功证明,但仍可能被更低iteration替换;attested表示前面的iteration都失败,当前区块不能再被更低iteration替换;confirmed表示获得后续区块支撑;final则要求父区块也已经final。若此前有 n 个未被attest的iteration,accepted区块还要经历2×n个连续的 attested 或 confirmed 区块,才进入confirmed。

那这样来看的话,我个人觉得一句“秒级最终性”更诚实:它把正常路径的速度和异常路径的稳定性分开处理,也承认延迟、离线和分叉确实会发生。