#dusk $DUSK @Dusk

Я снова и снова возвращаюсь к мысли о том, насколько реальное поведение любой блокчейн-системы определяется формой ее транзакций. В Dusk транзакция никогда не является просто простой командой на перемещение стоимости. Сам формат уже упаковывает весь набор деталей, который сети нужен и для валидации, и для выполнения — входные и выходные данные, подписи и все сопутствующие метаданные. Такое дизайнерское решение кажется более глубоким, чем просто деталь реализации.

Когда структура настолько явно выражена, сеть получает полностью автономный объект, который можно исследовать прежде всего, еще до того как произойдет хоть что-то. Правила становится проще соблюдать, потому что транзакция уже содержит все, что протокол требует для ее обработки. Тебе больше не приходится выискивать допущения, разбросанные в разных местах; сам объект объявляет, что именно нужно проверять.

Компромисс здесь действительно ощутим. Каждое поле существует по какой-то причине, и каждый дополнительный фрагмент состояния транзакции превращается во что-то, что всей сети приходится валидировать, хранить и поддерживать со временем. Площадь атак растет. Версионирование становится сложнее. Пограничных случаев становится больше.

И потому остается открытым вопрос: делает ли эта более явная структура транзакций модель выполнения Dusk действительно легче для понимания, или же сама необходимость нести так много протокольного состояния внутри каждой транзакции просто добавляет ненужную сложность? Ответ находится где-то в напряжении между ясностью и издержками.