不使用Corda的FinalityFlow

时间:2018-11-28 15:39:04

标签: corda

让我们考虑一下NodeA(债券所有者)和NodeB(现金所有者)之间的DvP交易,其中

  • NodeA将绑定发送到NodeB。
  • NodeB将现金发送到NodeA。

NodeA构建一个TX,其中InputStates包括:BondState(从其保管库中查询)+ CashState(由NodeB使用SendStateAndRefFlow发送到NodeA)。

让我们假设NodeA不使用Corda的FinalityFlow。 NodeA将TX发送给公证人。假设公证人对此进行了验证。然后,公证人将tx发送回NodeA。到目前为止,tx中的两个InputStates都已标记为已使用。

现在,如果NodeA处于欺诈状态,并且不将此TX转发给NodeB,会发生什么? NodeB的现金已标记为已消耗,但尚未收到保证金。

1 个答案:

答案 0 :(得分:0)

有趣的问题。

我认为我们不必在这里与一个欺诈性节点打交道,因为节点B仅在确认他们是债券的新所有者之后才签署交易。在您的方案中,公证人将记录与NodeA作为所有者的绑定状态,并且NodeA将持有以NodeB作为所有者的绑定。这样,假设仅当前所有者可以债券出售,NodeA将无法进行欺诈。

但是,我们要处理的是一个恶意节点,我们需要从NodeA从中获得的收益的角度来看待这个问题。除了为NodeB创建问题外,NodeA毫无收获。他们无法继续使用债券。

这样,您可以预期NodeA会公开接受诉讼而没有任何收获。