Я отслеживал, как Dusk на самом деле завершает блоки, потому что маркетинговая формулировка всегда звучит как «необратимая финальность за секунды». Технически это верно. Но в документации статус блока разбивается на стадии — Accepted (Принят), Confirmed (Подтверждён), Stable (Стабильный), Final (Финальный) — и вот там стало интересно.

То, что блок находится в статусе «Accepted», означает лишь, что он прошёл три шага консенсуса текущего раунда. Его всё ещё можно перестроить (reorganized). «Confirmed» означает, что на него дальше строятся последующие блоки. Только «Final» — это детерминированно гарантированное, криптографически необратимое состояние, когда блоки завершаются явными криптографическими аттестациями, а не вероятностными подтверждениями.

Так что проблема не в дизайне консенсуса — Succinct Attestation действительно избегает накатовского (Nakamoto) вероятностного расчёта. Проблема в том, когда кошелёк, биржа или интегратор воспринимает блок как «settled» (окончательно завершённый). Если пользователь или приложение читает «Accepted» как окончательную финальность, то это не дефект протокола — это предположение UX, наслаивающееся на протокол, который на самом деле был создан, чтобы предотвратить именно эту ошибку.

Для расчётов по регулируемым активам это различие не косметическое — это разница между соответствующим требованиям клиринговым событием и преждевременным.

Всё ещё интересно, насколько консервативные интеграторы по умолчанию трактуют здесь статус, когда объём транзакций $DUSK scales превышает несколько комиссий provisioner в одном раунде.

@Dusk #DUSK