【问题标题】:Transaction privacy on corda M14corda M14 上的交易隐私
【发布时间】:2017-10-24 01:24:02
【问题描述】:

在 demobench 版本 M14 中,我执行了以下操作:

  1. 早茶银行自发现金价值100美元
  2. 早茶银行向大苹果银行支付30美元
  3. Bank of Breakfast Tea 向 Bank of Baguettes 支付 10 美元

在第 3 步之后,Bank of Baguettes 的探索器显示第 2 步发生了。这意味着如果任何参与者收到任何可替代资产,则参与者从资产发行开始就知道该资产的所有历史。在上面的例子中,有什么办法可以让早餐茶银行和大苹果银行隐藏他们的身份,从法式长棍面包银行获得金额?显然,这是早餐茶银行和大苹果银行的隐私问题。

我很想知道如何使用 M14 版本的 url 1 中提到的 Key randomisationTransaction tear-offs 来解决上述问题?任何可用的示例示例?

此外,如果一项可替代资产被多次交易(比如 N 次),那么在后续交易中通常会下载多少数据(通过 Resolve 交易)给该资产的新所有者?假设在上面的例子中,直到 #2,Bank of Baguettes 的数据库中没有条目。在第 3 步之后,SELECT * FROM NODE_TRANSACTIONS 显示三行。那么,由于第 3 步,有多少数据被添加到 Bank of Baguettes 的数据库中?关于这个下载大小有什么一般理论吗?

【问题讨论】:

    标签: privacy corda


    【解决方案1】:

    里程碑 14 中尚未启用密钥随机化,但会在未来的分支中自动发生。

    您可以在 net.corda.core.flows.NotaryFlow.kt 中看到“撕下”交易的示例。请参阅wtx.buildFilteredTransaction(Predicate { it is StateRef || it is TimeWindow }) 行。但是,我们目前不支持事务解析的撕下。

    在当前的实现中,每个节点都会下载每个输入的整个历史记录作为ResolveTransactions 的一部分。但是,在未来,该链将使用随机匿名密钥来识别参与者。

    如果有信任的中介已经验证了交易链,但交易链的某些部分还没有实现,则部分交易链也可能存在撕裂或未完全解析或根本没有下载。

    【讨论】:

    • 未来 1. 开发人员是否需要在流程中生成“随机匿名密钥”并在适当的 api 中使用这些密钥? 2. 或者,现有的 API/流(如 CollectSignaturesFlow、Send、SendAndReceive 等)会代表屏幕后面的开发人员执行此密钥生成任务? 3. 如果我们假设随机匿名密钥是由开发者/框架生成的,那么这个方案如何确保在上面的例子中,Bank of Baguettes 不知道交易#2 的参与者/金额?
    • 如果我们假设交易隐私是通过使用“随机匿名密钥”或其他方法实现的,这如何使审计人员能够审计资产历史?
    【解决方案2】:

    我认为第 V1 版中的“机密身份”解决了 Batsayan Das 提出的隐私问题,对吗?

    机密身份是不公开相应 X.509 证书(和路径)的密钥对,因此未参与交易的各方无法识别其参与者。

    参考:https://docs.corda.net/api-identity.html?highlight=anonymous#confidential-identities

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多