引用Corda的文档:
“使用AnonymousParty来识别状态和命令中的当事方,可以防止节点在验证交易的依赖链时了解到交易中当事方的身份。”
我仍然不太了解在进行依赖交易验证时如何隐藏身份。我有一个突出这一点的示例:
假设Tx01,Tx02和Tx03顺序发生。
- Tx01:CashTokeniser向爱丽丝发行10欧元。没有任何身份被隐藏。
- Tx02:爱丽丝向鲍勃发送10欧元。在这里,双方都同意使用SwapIdentityFlow隐藏其身份。假设Alice的新pubKey是“ Xavier”,而Bob的是“ Yankee”。
- Tx03:Bob向Chloe发送了10欧元。没有任何身份被隐藏。
我目前的理解顺序如下:
- 在Chloe验证Tx03时,作为解决tx依赖关系链的一部分,她从Bob那里收到了Tx01和Tx02。
- Chloe绝对知道,是Bob发出了Tx03。因此,鲍勃无法从向克洛伊隐瞒自己的身份中受益。 Chloe知道,尽管InputState中有“扬基”,但实际上是Bob。
- Chloe在检查Tx02时发现InputState属于“ Xavier”。
- 检查Tx01时,Chloe看到OutputState属于“ Alice”。由于Tx02的InputState指向Tx01的OutputState,因此Chloe可以推断出“ Xavier”实际上是爱丽丝。
我的幼稚结论:可以通过在验证过程中检查交易链来推断出当事人的真实身份。
我确信我以错误的方式理解了这个概念。有人可以说明一下吗?