#dusk $DUSK

Все спорят о консенсусе. Почти никто не заглядывает на один уровень глубже.
@Dusk не использует случайные сплетни, чтобы пересылать блоки между узлами. Вместо этого он применяет Kadcast — структурированную оверлей-сеть, где позиция каждого узла определяет, кому он пересылает дальше. В документации причина сказана одной строкой: меньше пропускной способности и более предсказуемая задержка.
Предсказуемость — вот что здесь важно.
Случайный «госсип» устойчив, но шумный. Сообщение может дойти до вас за 200 мс или за 900 мс — в зависимости от везения. Для большинства цепочек это нормально. Но для цепочки, продающей учреждениям детерминированную финальность примерно за 10 секунд, разброс времени распространения — это не косметическая деталь: это часть обещания по расчетам. Вы не можете гарантировать тайминг финальности поверх транспортного слоя, который «пожимает плечами».
Вторая половина — аудит. Blaize изучил реализацию на Rust и поставил ей 9,8 из 10, но интересны не оценки, а выводы: отклонения от исходной спецификации Kadcast, пропущенные крайние случаи в обработке узлов в простое и неоднозначная обработка зарезервированных полей в заголовках сообщений. Все исправлено или проверено, кроме двух информационных пунктов.
Зарезервированные поля и узлы в простое. Не гламурно. Точно то, что превращается в странный инцидент в продакшене спустя три года.
Открытый вопрос, с которым я продолжаю разбираться: структурированный оверлей означает, что топология выводима, а не случайна. Это и дает предсказуемость. Но делает ли это также более простым наблюдение паттернов трафика для цепочки, для которой вся ценность — в конфиденциальности? Я честно не знаю, и не нашел публичного анализа, который бы ответил на это.
Для цепочки приватности — вы готовы пожертвовать частью предсказуемости распространения ради более «кашейной», сложнее картируемой сети?