#dusk $DUSK @Dusk
Замечали ли вы, что почти вся так называемая «случайная» выборка в блокчейне всё равно ощущается так, будто за костями кто-то наблюдает? Этот вопрос какое-то время не отпускал меня, прежде чем я по-настоящему разобрался в детерминированной сортировке.
Идея проще, чем кажется, если разложить её по полочкам. Каждый участник вычисляет свой балл, используя свою закрытую (приватную) ключевую информацию вместе с общей «затравкой» (shared seed). Обычно эта затравка берётся из предыдущего блока или из какого-то согласованного публичного значения. Поскольку затравка известна всем, а приватный ключ — нет, итоговый балл можно проверить другим участникам без необходимости кому-либо доверять координатору. Никто не «назначает» роль. Математика просто вычисляет победителя, и каждый может проверить результат постфактум.
В первую очередь меня поразило, как это убирает неловкий промежуточный шаг в более старых системах. Нет комитета, который выбирает валидаторов. Нет внешнего (off-chain) «беакона» случайности, который теоретически можно было бы подталкивать. Затравка меняется на каждом раунде — а значит меняется и сам счёт. Сначала это показалось странным: почти слишком аккуратным для механизма, который обещает заменить доверие арифметикой. Возможно, я просто слишком много думаю, но в такой системе приятно то, что справедливость не обещают — её доказывают.
Я помню, как читал ранние статьи в духе Algorand и думал, что это в основном академическое рассуждение. Но когда я увидел, как это работает в реальных сетях, моё впечатление немного изменилось. Всё ещё не до конца уверен, как это выдерживает экстремальные расколы сети или скоординированные атаки по времени. Эту часть я пока не смог окончательно уложить в голове.
В общем, это один из тех механизмов, к которым я постоянно возвращаюсь. Не потому что он яркий, а потому что он тихо отвечает на вопрос, который большинство людей даже не удосуживаются задать.
$ALLO
$ACE
Замечали ли вы, что почти вся так называемая «случайная» выборка в блокчейне всё равно ощущается так, будто за костями кто-то наблюдает? Этот вопрос какое-то время не отпускал меня, прежде чем я по-настоящему разобрался в детерминированной сортировке.
Идея проще, чем кажется, если разложить её по полочкам. Каждый участник вычисляет свой балл, используя свою закрытую (приватную) ключевую информацию вместе с общей «затравкой» (shared seed). Обычно эта затравка берётся из предыдущего блока или из какого-то согласованного публичного значения. Поскольку затравка известна всем, а приватный ключ — нет, итоговый балл можно проверить другим участникам без необходимости кому-либо доверять координатору. Никто не «назначает» роль. Математика просто вычисляет победителя, и каждый может проверить результат постфактум.
В первую очередь меня поразило, как это убирает неловкий промежуточный шаг в более старых системах. Нет комитета, который выбирает валидаторов. Нет внешнего (off-chain) «беакона» случайности, который теоретически можно было бы подталкивать. Затравка меняется на каждом раунде — а значит меняется и сам счёт. Сначала это показалось странным: почти слишком аккуратным для механизма, который обещает заменить доверие арифметикой. Возможно, я просто слишком много думаю, но в такой системе приятно то, что справедливость не обещают — её доказывают.
Я помню, как читал ранние статьи в духе Algorand и думал, что это в основном академическое рассуждение. Но когда я увидел, как это работает в реальных сетях, моё впечатление немного изменилось. Всё ещё не до конца уверен, как это выдерживает экстремальные расколы сети или скоординированные атаки по времени. Эту часть я пока не смог окончательно уложить в голове.
В общем, это один из тех механизмов, к которым я постоянно возвращаюсь. Не потому что он яркий, а потому что он тихо отвечает на вопрос, который большинство людей даже не удосуживаются задать.
$ALLO
$ACE