Corda - 机密身份与匿名函数
Corda - Confidential Identities vs anonymise function
在 Corda 中使用 confidential identities 工作流程与在知名派对上调用 anonymise()
有什么区别?
anonymise()
方法将常规 Party
转换为 AnonymousParty
,这是仅包含 PublicKey
而不是 X500 名称的 class党的。但是,此密钥并不是真正的机密身份,因为该关系(X500 name/public 密钥)通过网络映射在网络中共享。因此,即使 anonymise()
的结果与另一方共享,该方也很可能能够推断出与该密钥对应的 X500 名称是什么。
另一方面,机密身份工作流程会生成新的密钥对,并且 public 密钥仅在需要知道的基础上共享(例如,在相互交易的节点之间),而不是共享与整个网络。因此,其他未参与此交换的节点将无法推断出此密钥属于哪一方,除非该节点明确透露此信息。
在知名方上调用 anonymise()
将简单地剥离其 X.500 专有名称,只留下 public 键。您仍然可以通过根据该 public 键在网络地图上进行查找来检索完整身份。
使用机密身份,节点会生成一个新的一次性身份(带有签名密钥),该身份通常只与交易的直接对手方共享。不会在网络地图上做广告。
CI 工作流传递 Party
对象用于验证目的,但只有 AnonymousParty
(仅包含签名密钥)被放置在交易中。 anonymise()
是一种进行转换的辅助方法。
在 Corda 中使用 confidential identities 工作流程与在知名派对上调用 anonymise()
有什么区别?
anonymise()
方法将常规 Party
转换为 AnonymousParty
,这是仅包含 PublicKey
而不是 X500 名称的 class党的。但是,此密钥并不是真正的机密身份,因为该关系(X500 name/public 密钥)通过网络映射在网络中共享。因此,即使 anonymise()
的结果与另一方共享,该方也很可能能够推断出与该密钥对应的 X500 名称是什么。
另一方面,机密身份工作流程会生成新的密钥对,并且 public 密钥仅在需要知道的基础上共享(例如,在相互交易的节点之间),而不是共享与整个网络。因此,其他未参与此交换的节点将无法推断出此密钥属于哪一方,除非该节点明确透露此信息。
在知名方上调用 anonymise()
将简单地剥离其 X.500 专有名称,只留下 public 键。您仍然可以通过根据该 public 键在网络地图上进行查找来检索完整身份。
使用机密身份,节点会生成一个新的一次性身份(带有签名密钥),该身份通常只与交易的直接对手方共享。不会在网络地图上做广告。
CI 工作流传递 Party
对象用于验证目的,但只有 AnonymousParty
(仅包含签名密钥)被放置在交易中。 anonymise()
是一种进行转换的辅助方法。