让我们考虑一下NodeA(债券所有者)和NodeB(现金所有者)之间的DvP交易,其中
NodeA构建一个TX,其中InputStates包括:BondState(从其保管库中查询)+ CashState(由NodeB使用SendStateAndRefFlow发送到NodeA)。
让我们假设NodeA不使用Corda的FinalityFlow。 NodeA将TX发送给公证人。假设公证人对此进行了验证。然后,公证人将tx发送回NodeA。到目前为止,tx中的两个InputStates都已标记为已使用。
现在,如果NodeA处于欺诈状态,并且不将此TX转发给NodeB,会发生什么? NodeB的现金已标记为已消耗,但尚未收到保证金。
答案 0 :(得分:0)
有趣的问题。
我认为我们不必在这里与一个欺诈性节点打交道,因为节点B仅在确认他们是债券的新所有者之后才签署交易。在您的方案中,公证人将记录与NodeA作为所有者的绑定状态,并且NodeA将持有以NodeB作为所有者的绑定。这样,假设仅当前所有者可以债券出售,NodeA将无法进行欺诈。
但是,我们要处理的是一个恶意节点,我们需要从NodeA从中获得的收益的角度来看待这个问题。除了为NodeB创建问题外,NodeA毫无收获。他们无法继续使用债券。
这样,您可以预期NodeA会公开接受诉讼而没有任何收获。