我有一个用例,我需要将数据发送给多个交易对手,但各方需要彼此保持匿名。从交易对手处收回背书后,我需要提交整个交易。整个事务的原子性需要保持。
使用 Flows 实现这一目标的最佳方法是什么?
为此,您需要使用机密身份。机密身份在状态中由AnonymousParty
class:
class MyState(val party: AnonymousParty): ContractState {
override val participants = listOf<AnonymousParty>(party)
}
之间的区别Party
and an AnonymousParty
就是它AnonymousParty
仅通过公钥识别参与者。只要每个交易参与者为交易生成一个新的公钥,他们的身份以及他们对国家的参与就将是秘密的。
要创建涉及机密身份的交易,您必须执行以下操作:
- 发起流程的一方(我们称她为 Alice)必须知道所有交易对手的身份(以知道从谁那里收集签名)
- 爱丽丝经营着
SwapIdentitiesFlow
与每个交易对手一起自动为所有参与者创建机密身份
- 爱丽丝在构建交易时使用这些机密身份
- Alice 收集所有交易对手的签名
- Alice完成交易
各方最终都会将交易存放在自己的金库中,但各方仅由匿名公钥来识别,因此各方的参与对其同行都是保密的。
您可以在此处找到有关此 API 的文档:https://docs.corda.net/api-identity.html。您可以在此处找到机密身份的使用示例:https://github.com/joeldudleyr3/whistleblower.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)