Я снова и снова возвращаюсь к одной небольшой детали в замысле Ньютона, от которой не могу отделаться: выполнение не считается авторизацией.
Смарт‑контракт может получить транзакцию и всё ещё запросить что-то дополнительно, прежде чем запустится защищённая логика. Подпись говорит о том, кто вызывает. Доказательство политики показывает, разрешено ли именно это действие. На первый взгляд различие простое, но оно меняет всё.
Сначала кажется чисто. Кошелёк может быть действительным, но перевод, превышающий лимит расходов, всё равно блокируется. У агента может быть разрешение торговать, но не пересылать средства куда-то, что нарушает правило риска. Авторизация перестаёт подразумеваться и превращается в то, что нужно «заслужить» в момент транзакции.
Но вот где становится неприятно. Механизм блокирует прямое действие — при этом правила вокруг него всё ещё могут его обойти. Если аварийный путь способен пройти мимо проверки политики, строгие «ворота» становятся частично церемониальными. Если сигнал оракулa, питающий политику, устарел или слишком широк, аттестация может быть действительной, в то время как реальность уже изменилась. Заблокированную транзакцию легко понять. Разрешённую, основанную на смягчённом допущении, — нет.
Проверка политики строгая. Путь исключения — может быть и не таким.
Выполнение следует коду. Авторизация следует контексту.
Самый безопасно выглядящий контроль по силе лишь настолько, насколько всё ещё позволено говорить после него. Поэтому реальный вопрос не в том, проверяет ли контракт авторизацию — а в том, что может продолжать перестраивать эту авторизацию до того, как выполнение вообще начнётся.
@NewtonProtocol #Newt $NEWT #compaign #trading #views #like_comment_follow