Возможно ли, чтобы инициатор потока обошел проверку атрибута состояния, которое он не потребляет? - PullRequest
0 голосов
/ 10 сентября 2018

Сценарий

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

В Flow2 State2 является единственным входным состоянием, но часть инициатора Flow2 содержит проверку атрибута State1 (путем запроса его из регистра).

Запрос

Может ли Инициатор Flow2 обойти эту проверку, чтобы совершить мошенничество? Если да, то как это можно предотвратить?

[Обратите внимание, что проверка выполняется для State1, который не является входным состоянием Flow2, в противном случае в соответствующий контракт Flow2 могла бы быть включена дополнительная проверка для предотвращения мошенничества.]

1 Ответ

0 голосов
/ 11 сентября 2018

Ничто не мешает инициатору обойти проверку, поскольку он находится на уровне потока, поэтому он может совершить мошенничество.

Чтобы предотвратить это

  1. Если ответчик потока 2 имеетState1 во-первых, в своем хранилище, затем он может выполнить ту же проверку, поскольку он не доверяет инициатору.
  2. В противном случае необходимо указать состояние 1 в качестве входных данных транзакции в потоке 2.и подтвердите это в договоре.
...