Когда я прочитал этот фрагмент о консенсусе SA, первое, что пришло в голову, — поиск параметра, определяющего его окончательность. В white paper написано «достижение окончательности за несколько секунд», но не указано точно, сколько именно секунд. Эта размытость немного меня беспокоит, однако одновременно заставляет сильнее разобраться в логике, лежащей в основе механизма.
Сначала сравнение. Окончательность в биткоине $DUSK основана на вероятности: примерно 1 час ожидания за счет подтверждения 6 блоков. Чем дольше ждёшь, тем больше уверенность, что транзакцию не откатят. Окончательность в Ethereum с PoS опирается на протокол Casper: требуется два epoch, что занимает примерно 12,8 минуты. А Dusk утверждает, что достаточно нескольких секунд — и возникает вопрос: почему.
Ключевое — в детерминированном механизме распределения ролей. В white paper сказано, что перед началом каждого раунда алгоритм DS заранее выбирает, кто будет генератором блока, а кто — членом комитета по голосованию. Это «заранее известно» означает, что избиратели/голосующие уже готовы к моменту генерации блока: им не нужно в последний момент кого-то привлекать или созывать всех по сети для поиска консенсуса. Коммуникационные издержки существенно сокращаются.
Я разложил процесс по шагам. Каждый раунд включает несколько итераций, а каждая итерация — три стадии: предложение, голосование и подтверждение. Комитет по голосованию состоит только из выбранной группы валидаторов, а не все сеть сразу голосует. Количество узлов, участвующих в голосовании, ограничено небольшим диапазоном, поэтому обмен информацией в процессе голосования очень мал: достаточно нескольких обменов, чтобы завершить @Dusk
Но есть один момент, который я не могу до конца понять. В white paper упоминается термин «скользящая (rolling) окончательность», однако конкретный механизм не раскрыт. Мое предположение: речь может идти не о разовой блокировке окончательности, а о том, что по мере постоянного генерации новых блоков вероятность окончательности предыдущего блока постепенно повышается. Если так, то «несколько секунд» могут означать подтверждение первого уровня, а не окончательную необратимость. #dusk
Кроме того, я заметил, что в white paper не приведены точные секунды. И 3 секунды, и 9 секунд называют «несколькими», но для финансового сценария разница принципиально иная. На данный момент я не смог найти ответа на этот вопрос в white paper; возможно, придётся дождаться фактических тестовых данных после запуска mainnet.
Сначала сравнение. Окончательность в биткоине $DUSK основана на вероятности: примерно 1 час ожидания за счет подтверждения 6 блоков. Чем дольше ждёшь, тем больше уверенность, что транзакцию не откатят. Окончательность в Ethereum с PoS опирается на протокол Casper: требуется два epoch, что занимает примерно 12,8 минуты. А Dusk утверждает, что достаточно нескольких секунд — и возникает вопрос: почему.
Ключевое — в детерминированном механизме распределения ролей. В white paper сказано, что перед началом каждого раунда алгоритм DS заранее выбирает, кто будет генератором блока, а кто — членом комитета по голосованию. Это «заранее известно» означает, что избиратели/голосующие уже готовы к моменту генерации блока: им не нужно в последний момент кого-то привлекать или созывать всех по сети для поиска консенсуса. Коммуникационные издержки существенно сокращаются.
Я разложил процесс по шагам. Каждый раунд включает несколько итераций, а каждая итерация — три стадии: предложение, голосование и подтверждение. Комитет по голосованию состоит только из выбранной группы валидаторов, а не все сеть сразу голосует. Количество узлов, участвующих в голосовании, ограничено небольшим диапазоном, поэтому обмен информацией в процессе голосования очень мал: достаточно нескольких обменов, чтобы завершить @Dusk
Но есть один момент, который я не могу до конца понять. В white paper упоминается термин «скользящая (rolling) окончательность», однако конкретный механизм не раскрыт. Мое предположение: речь может идти не о разовой блокировке окончательности, а о том, что по мере постоянного генерации новых блоков вероятность окончательности предыдущего блока постепенно повышается. Если так, то «несколько секунд» могут означать подтверждение первого уровня, а не окончательную необратимость. #dusk
Кроме того, я заметил, что в white paper не приведены точные секунды. И 3 секунды, и 9 секунд называют «несколькими», но для финансового сценария разница принципиально иная. На данный момент я не смог найти ответа на этот вопрос в white paper; возможно, придётся дождаться фактических тестовых данных после запуска mainnet.