在 Corda 中,发送给非验证公证服务的数据是什么?

6

在谈论 Corda 交易发送到非验证型记账服务进行最终化时,经常会出现以下问题:该记账服务能看到世界上的什么内容并作何推断?

1个回答

5
在将交易发送给非验证公证人之前,会按以下方式进行过滤:
stx.buildFilteredTransaction(Predicate { 
    it is StateRef || it is TimeWindow || it == notaryParty 
})

(请参见主Corda存储库中的NotaryFlow.kt)。这意味着非验证公证人只会看到以下内容:
- 任何输入,以 StateRef 的形式 - 时间窗口(如果存在)(因为公证人也是时间戳授权机构) - 交易公证人的身份
由于交易是 Merkle 树(请参见 https://docs.corda.net/_images/merkleTree.png),虽然其余组件已被删除并且不能被公证人查看,但一旦应用了公证人签名,交易内容就无法在以后更改。

嗨@ Joel,感谢您的见解 :) 你知道从StateRef可以反向工程化哪些信息以及攻击者成功做到这一点需要哪些额外的信息吗?谢谢! - Richard Logwood
@RichardLogwood 这是一个有趣的问题。你可以将其提出为一个单独的问题,我会给出回答。 - Joel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接