验证TX依赖链时显示AnonymousParty?

时间:2018-11-30 16:54:37

标签: identity corda

引用Corda的文档: “使用AnonymousParty来识别状态和命令中的当事方,可以防止节点在验证交易的依赖链时了解到交易中当事方的身份。”

我仍然不太了解在进行依赖交易验证时如何隐藏身份。我有一个突出这一点的示例:

假设Tx01,Tx02和Tx03顺序发生。

  • Tx01:CashTokeniser向爱丽丝发行10欧元。没有任何身份被隐藏。
  • Tx02:爱丽丝向鲍勃发送10欧元。在这里,双方都同意使用SwapIdentityFlow隐藏其身份。假设Alice的新pubKey是“ Xavier”,而Bob的是“ Yankee”。
  • Tx03:Bob向Chloe发送了10欧元。没有任何身份被隐藏。

我目前的理解顺序如下:

  1. 在Chloe验证Tx03时,作为解决tx依赖关系链的一部分,她从Bob那里收到了Tx01和Tx02。
  2. Chloe绝对知道,是Bob发出了Tx03。因此,鲍勃无法从向克洛伊隐瞒自己的身份中受益。 Chloe知道,尽管InputState中有“扬基”,但实际上是Bob。
  3. Chloe在检查Tx02时发现InputState属于“ Xavier”。
  4. 检查Tx01时,Chloe看到OutputState属于“ Alice”。由于Tx02的InputState指向Tx01的OutputState,因此Chloe可以推断出“ Xavier”实际上是爱丽丝。

我的幼稚结论:可以通过在验证过程中检查交易链来推断出当事人的真实身份。

我确信我以错误的方式理解了这个概念。有人可以说明一下吗?

1 个答案:

答案 0 :(得分:0)

如其他区块链平台所示,假名公钥不是完美的隐私解决方案。这就是为什么Corda还实现其他机制,例如需要知道的数据分发。

但是,它们仍然提供一些保护。例如:

  1. 如果在TX01中,现金最初是发给Alice的一个匿名公钥,Chloe将无法识别Alice在链中的角色
  2. 如果Chloe在TX04中将现金转给了Demi,Demi将无法推断Bob的参与