You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Corda是否必须依赖Notary实现唯一性共识?无Notary会致账本不一致吗?

Corda的唯一性共识:Notary是必不可少的吗?

答案很明确:是的,Corda必须依赖Notary来实现唯一性共识,官方文档里“唯一性共识由Notary提供”的表述完全准确。

咱们来拆解你提到的那个场景——如果没有Notary,这种“双花”情况真的会发生:

  • 主体A完全可以先撺掇B签署一份以状态X为输入的交易,把这份交易提交到B的账本;
  • 紧接着或者过段时间,再哄着C签署另一份同样用状态X做输入的交易,提交到C的账本。

这时候混乱就来了:B的账本里状态X已经被消耗,对应产生了新的输出状态;C的账本里状态X也被消耗,但对应的输出是另一个完全不同的状态;而A自己的账本可能会选择记录其中一份交易,甚至同时保留两份(毕竟节点自己维护账本),最终导致A、B、C三方的账本彻底不一致。这种情况就是破坏账本可信度的核心问题——双花,而Notary的存在就是专门堵这个漏洞的。

再深入说下Corda的共识逻辑:它的共识分成两个独立部分:

  • 一个是事务性共识:由交易的参与节点共同验证交易的逻辑是否合法、签名是否有效、状态是否符合规则等;
  • 另一个就是唯一性共识:完全由Notary负责,它的核心职责就是跟踪哪些状态已经被消耗,确保同一个状态不会被用于多笔交易。

Notary相当于一个可信的“状态守护者”——不管是单个节点的Notary,还是Raft/BFT集群式的Notary,它都会维护一份权威的已消耗状态记录。每笔交易在完成事务性共识后,都必须向Notary申请“唯一性验证”:只有Notary确认所有输入状态都未被消耗,这笔交易才能被各节点最终认可并写入账本。没有Notary的话,就没有任何权威方来做这个验证,节点之间根本无法保证不会出现重复消耗状态的情况,整个账本的一致性就无从谈起。

内容的提问来源于stack exchange,提问作者George Hawkins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:18:50