Flow 的发起者是否有可能绕过对其不使用的状态属性的检查?

Is it possible for initiator of a Flow to bypass check on an attribute of state it is not consuming?

场景

State1->Flow1->State2 (State1 is input and State2 is output) 
State2->Flow2->State3 (State2 is input and State3 is output)

在 Flow2 中,State2 是唯一的输入状态,但 Flow2 的 Initiator 部分包含对 State1 属性的检查(通过从账本中查询)。

查询

Flow2 的发起人是否有可能绕过该检查进行欺诈?如果是,那如何预防呢?

[请注意,检查是针对 State1,它不是 Flow2 的输入状态,否则可以在 Flow2 的相关合约中进行额外检查以防止欺诈。]

没有什么可以阻止发起者绕过检查,因为它处于流程级别,所以是的,他可以进行欺诈。

防止它

  1. 如果流程 2 的响应者首先在他的保险库中有 State1,那么他可以执行相同的检查,因为他不信任发起者。
  2. 否则,您必须提供状态 1 作为流程 2 中交易的输入,并在合约中对其进行验证。