#dusk $DUSK @Dusk 交易显示“成功”,真的就完成了吗?
昨晚翻 Dusk 的开发文档时,我发现一个以前没太注意的细节。
一笔交易提交之后,节点返回 202 Accepted——意思只是请求已收到,正在处理,并不代表交易已经完成。
继续往下看才发现,之后还要经过 admission、mempool、区块选择和执行。
就算已经执行,也还没结束。
因为一个已经被接受的区块,仍然可能被回滚。
只有当区块进入 finalized 状态,这笔交易才真正获得最终性。
我觉得这个细节挺有意思。
我们平时说“交易成功”,其实把好几个完全不同的状态混在了一起:
节点收到了,和网络接受了,不是一回事;
进入区块,和执行成功,也不是一回事;
执行成功,更不等于最终结算。
这对普通转账可能只是几个状态的区别。
但如果未来链上运行的是证券、支付或者其他金融资产呢?
那时候,“差不多成功”显然不够。
真正需要回答的反而是:
到底在哪一个状态,资产的权利和义务才算真正发生了变化?
这也是我最近重新理解 Dusk “deterministic settlement” 的一个切口。
它真正需要解决的,可能从来不只是让交易更快,而是让参与者明确知道:
什么时候可以不再等待,什么时候可以真正把这笔交易当成已经完成。
这可能才是金融基础设施里,“交易完成”四个字真正的含义。
@Dusk $DUSK #DUSK
昨晚翻 Dusk 的开发文档时,我发现一个以前没太注意的细节。
一笔交易提交之后,节点返回 202 Accepted——意思只是请求已收到,正在处理,并不代表交易已经完成。
继续往下看才发现,之后还要经过 admission、mempool、区块选择和执行。
就算已经执行,也还没结束。
因为一个已经被接受的区块,仍然可能被回滚。
只有当区块进入 finalized 状态,这笔交易才真正获得最终性。
我觉得这个细节挺有意思。
我们平时说“交易成功”,其实把好几个完全不同的状态混在了一起:
节点收到了,和网络接受了,不是一回事;
进入区块,和执行成功,也不是一回事;
执行成功,更不等于最终结算。
这对普通转账可能只是几个状态的区别。
但如果未来链上运行的是证券、支付或者其他金融资产呢?
那时候,“差不多成功”显然不够。
真正需要回答的反而是:
到底在哪一个状态,资产的权利和义务才算真正发生了变化?
这也是我最近重新理解 Dusk “deterministic settlement” 的一个切口。
它真正需要解决的,可能从来不只是让交易更快,而是让参与者明确知道:
什么时候可以不再等待,什么时候可以真正把这笔交易当成已经完成。
这可能才是金融基础设施里,“交易完成”四个字真正的含义。
@Dusk $DUSK #DUSK

