Сначала я считал, что тезис Dusk о «детерминированной окончательности» означает: блок просто либо окончательный, либо нет — бинарно, в момент его создания. Но, читая собственные состояния окончательности в сети, понимаешь, что такое объяснение слишком упрощает происходящее на самом деле. Блок в Dusk проходит четыре различных стадии, прежде чем по-настоящему будет зафиксирован: сначала Accepted — после того как он проходит три фазы консенсуса текущего раунда; затем Confirmed — когда последующие блоки строятся поверх него; потом Stable — когда он достаточно глубоко «похоронен», чтобы стать вероятностно необратимым; и только затем Final — момент, когда откат становится криптографически гарантированно невозможным, а не просто крайне маловероятным. Поэтому фраза «мгновенная окончательность» делает там очень многое. Блок принимается быстро — реально быстро, именно это в подаче тезиса верно. Но Accepted и Final — не одно и то же обещание, а разрыв между ними — как раз то, что особенно важно для регулируемого финансового расчёта.
У этого есть и второй слой, который большинство людей упускают. Консенсус проходит через комитеты, выбираемые детерминированной сортировкой (deterministic sortition). И если провайдер (provisioner) оказывается выбранным для голосующего комитета в одном раунде, но при этом выступает генератором блока в следующем, то у него появляется стимул просто пропустить своё голосование — надеясь, что его выберут как proposer уже следующим. Инженерный отчёт самого Dusk рассматривает это как ожидаемый паттерн поведения, а не как гипотезу, а исправление — исключение из этого комитета, если такое происходит. Итак, тот «слой расчётов», который рекламируется как детерминированный и мгновенный, на самом деле представляет собой поэтапный процесс с заранее известной особенностью стимулов, встроенной в выбор комитетов — и это правда, и при этом это тихо сложнее, чем однострочная подача.
$DUSK #dusk @Dusk
У этого есть и второй слой, который большинство людей упускают. Консенсус проходит через комитеты, выбираемые детерминированной сортировкой (deterministic sortition). И если провайдер (provisioner) оказывается выбранным для голосующего комитета в одном раунде, но при этом выступает генератором блока в следующем, то у него появляется стимул просто пропустить своё голосование — надеясь, что его выберут как proposer уже следующим. Инженерный отчёт самого Dusk рассматривает это как ожидаемый паттерн поведения, а не как гипотезу, а исправление — исключение из этого комитета, если такое происходит. Итак, тот «слой расчётов», который рекламируется как детерминированный и мгновенный, на самом деле представляет собой поэтапный процесс с заранее известной особенностью стимулов, встроенной в выбор комитетов — и это правда, и при этом это тихо сложнее, чем однострочная подача.
$DUSK #dusk @Dusk
