"«Дождитесь 12 подтверждений» — стандартный совет для большинства сетей, и, честно говоря, никто никогда не объясняет, почему именно 12 или что на самом деле происходит в этих блоках. Dusk вообще не использует этот ярлык — он запускает реальную конечную автоматную машину, чтобы решить, когда блок можно считать безопасным.
Блок проходит через четыре состояния: accepted, attested, confirmed, final. Точка старта зависит от одного числа — сколько предыдущих итераций в этом раунде завершились неудачей, прежде чем итерация данного блока успешно завершилась. В статье это обозначают как n. Если n = 0, то есть блок приземлился на самой первой итерации без каких-либо неудач перед ним, он помечается как attested сразу. Если n больше 0, то есть сначала в этом раунде провалились более ранние итерации, то блок получает пометку accepted — более слабое состояние.
Разница важна, потому что accepted-блок ещё может быть заменён конкурирующим блоком из более низкой итерации — это пока не безопасно. Attested-блок нельзя заменить таким образом, поскольку нет более низкой итерации, которая могла бы его обойти. Дальше confirmed означает лишь то, что поверх него в нужном количестве выстроены корректные successor-блоки, а final — что целиком вся цепочка его предков тоже является final, то есть он навсегда фиксируется.
Часть, которая, на мой взгляд, здесь действительно недооценена, — это пример прямо в статье: блок на итерации 5, где только две из предыдущих итераций получили fail attestations, помечается как accepted и ему нужно ещё четыре attested или confirmed блока, уложенных сверху, прежде чем он станет confirmed. Это не произвольное число подтверждений, взятое «с потолка» — это значение напрямую вычисляется из того, насколько хаотичным был именно этот раунд. Чистый раунд финализируется быстрее. Грубый — дольше. Это совершенно другая модель, чем «просто подождите 12 блоков независимо от того, что случилось».
Если говорить честно, это похоже на тот тип деталей дизайна, который куда важнее для организаций, оценивающих финальность расчетов, чем для розничных трейдеров: никто, меняя токены, не заботится о счетчиках итераций, но банк, проводящий расчёт по ценным бумагам, точно будет.
@Dusk
$DUSK
#dusk
Блок проходит через четыре состояния: accepted, attested, confirmed, final. Точка старта зависит от одного числа — сколько предыдущих итераций в этом раунде завершились неудачей, прежде чем итерация данного блока успешно завершилась. В статье это обозначают как n. Если n = 0, то есть блок приземлился на самой первой итерации без каких-либо неудач перед ним, он помечается как attested сразу. Если n больше 0, то есть сначала в этом раунде провалились более ранние итерации, то блок получает пометку accepted — более слабое состояние.
Разница важна, потому что accepted-блок ещё может быть заменён конкурирующим блоком из более низкой итерации — это пока не безопасно. Attested-блок нельзя заменить таким образом, поскольку нет более низкой итерации, которая могла бы его обойти. Дальше confirmed означает лишь то, что поверх него в нужном количестве выстроены корректные successor-блоки, а final — что целиком вся цепочка его предков тоже является final, то есть он навсегда фиксируется.
Часть, которая, на мой взгляд, здесь действительно недооценена, — это пример прямо в статье: блок на итерации 5, где только две из предыдущих итераций получили fail attestations, помечается как accepted и ему нужно ещё четыре attested или confirmed блока, уложенных сверху, прежде чем он станет confirmed. Это не произвольное число подтверждений, взятое «с потолка» — это значение напрямую вычисляется из того, насколько хаотичным был именно этот раунд. Чистый раунд финализируется быстрее. Грубый — дольше. Это совершенно другая модель, чем «просто подождите 12 блоков независимо от того, что случилось».
Если говорить честно, это похоже на тот тип деталей дизайна, который куда важнее для организаций, оценивающих финальность расчетов, чем для розничных трейдеров: никто, меняя токены, не заботится о счетчиках итераций, но банк, проводящий расчёт по ценным бумагам, точно будет.
@Dusk
$DUSK
#dusk
