以前我觉得看区块确认很简单:交易进区块,再往后数几个块,基本就当安全了。但今晚我在翻@Dusk 交易生命周期文档时,有一句话把我卡住了:accepted blocks can still be reverted。已经被接受,为什么还能撤回?
我又翻2024 Whitepaper才明白。Dusk一轮共识会经历多个iteration,同一round可能出现竞争块。较高iteration的块即使已accepted,只要更低iteration的竞争块满足条件,仍可能触发fallback。“看见上链”并不等于不可替代。
Rolling Finality更反直觉。白皮书用n表示前面未完成attestation确定性的iteration数量,accepted块要等2×n个连续attested或confirmed后继块进入confirmed。假设n=3,就要观察后续6个符合条件的块。
这时我才发现,“确认数”并不是统一尺子。同样是已上链,共识历史不同,稳定程度也不同。
当前Docs给出的建议更直接:included、accepted甚至confirmed都不要当到账信号,要等真正finalized。
小额转账可能只是几秒的差异;但如果放到大额OTC或RWA的DvP交割里,“看到交易”和“不可逆结算”完全是两件事。以后看Dusk大额交易,只问:finalized了吗?
#dusk $DUSK @Dusk
我又翻2024 Whitepaper才明白。Dusk一轮共识会经历多个iteration,同一round可能出现竞争块。较高iteration的块即使已accepted,只要更低iteration的竞争块满足条件,仍可能触发fallback。“看见上链”并不等于不可替代。
Rolling Finality更反直觉。白皮书用n表示前面未完成attestation确定性的iteration数量,accepted块要等2×n个连续attested或confirmed后继块进入confirmed。假设n=3,就要观察后续6个符合条件的块。
这时我才发现,“确认数”并不是统一尺子。同样是已上链,共识历史不同,稳定程度也不同。
当前Docs给出的建议更直接:included、accepted甚至confirmed都不要当到账信号,要等真正finalized。
小额转账可能只是几秒的差异;但如果放到大额OTC或RWA的DvP交割里,“看到交易”和“不可逆结算”完全是两件事。以后看Dusk大额交易,只问:finalized了吗?
#dusk $DUSK @Dusk
