#dusk $DUSK Самое опасное уведомление в биржевом/транзакционном бэкэнде: это не обязательно «провал», но «принято к обработке». При провале люди хотя бы останавливаются, а при «принято к обработке» это слишком легко воспринимают как «деньги и товар/активы уже рассчитались окончательно». Вчейн-среде то же самое: блок попал в локальный журнал (ledger), но это не значит, что он уже дошёл до абсолютного, окончательно необратимого последнего шага.
Я перечитал whitepaper про Rolling Finality от @Dusk и понял: Dusk не смешивает все «подтверждения» в одно слово, а разделяет на четыре состояния — accepted, attested, confirmed и final. Блок в состоянии accepted уже получил доказательство успеха, но если он получен на более высокой итерации и на более ранних (низших) итерациях не было доказательств отказа/провала, то появление позже допустимого блока на более низкой итерации всё ещё может привести к замене. Тогда и последующие блоки тоже откатятся.
Состояние attested более надёжное, потому что блок либо происходит на итерации 0, либо на предыдущих итерациях уже оставлены доказательства провала. Для confirmed ещё требуется, чтобы последующие блоки продолжили наращивать доверие текущей цепочке. И только final означает, что и родительский блок тоже уже final: вся цепочка предков «закрыта», и замена больше невозможна.
В whitepaper дан конкретный пример: некоторый блок появляется на 5-й итерации, но до этого имелись лишь два прогона (итерации) с доказательствами провала. Сначала его помечают как accepted. Чтобы он перешёл в confirmed, нужно дождаться ещё 4 подряд идущих блоков в состояниях attested или confirmed. То есть между «блок уже выдан» и «можно считать поставку ценных бумаг невозвратимым фактом» действительно могут быть несколько шагов.
Я ценю такую честность. Финансовой системе сильнее всего вредно, когда вероятность прячут в зелёную галочку. Но это также даёт задел продуктовой части: какой статус должны показывать кошелёк, площадка для сделок и система регистрации — что именно отображается? Если пользователь видит accepted, может ли он продолжать передавать актив или выкупать (redeem)? Если интерфейс единообразно пишет «успешно», то даже самая строгая консенсусная стадия может быть сглажена маркетинговыми текстами.
Поэтому я смотрю на «секундное завершение» Dusk не только по среднему времени, но и по распределению того, как accepted переходит в final при аномальных итерациях, а также на то, действительно ли приложения признают сделку только после наступления final. Необратимость — это не число для маркетинга, а дисциплина: нельзя назвать «примерно завершено» тем, что «уже завершено».