#dusk $DUSK @Dusk
Все говорят о консенсусе. Почти никто не говорит о том, как вообще блок доходит до людей, которые за него голосуют. Вот на этом я и застрял.
В Dusk для распространения сообщений по сети используется Kadcast — структурированная наложенная сеть (overlay network), а не «случайное затопление» (gossip-style flooding), которое используют большинство блокчейнов. Gossip-протоколы просто отправляют данные случайным пирами и надеются, что они разойдутся. Kadcast вместо этого маршрутизирует сообщения через заранее определённую структуру — ближе к тому, как устроены узлы по расстоянию в пиринговых системах на базе Kademlia.
Звучало как незначительный выбор инфраструктуры, пока я не задумался о тайминге. Раунды консенсуса в Dusk рассчитаны на практически мгновенную финализацию. Но скорость финализации ограничена самым медленным честным узлом, которому нужны данные блока, чтобы проголосовать. Если распространение структурировано, а не случайно, время доставки становится более предсказуемым — но это также означает, что путь, по которому идёт блок, зависит от топологии сети, а не от случайности.
Представьте 300 валидирующих узлов. В «чистом» gossip сообщение может достигнуть, скажем, 90% из них через непредсказуемые, пересекающиеся пути за несколько хопов. В структурированной системе вроде Kadcast этот путь определяется положением каждого узла в структуре — в среднем эффективнее, но любой узел, который расположен неудачно, или медленно обновляет свою таблицу маршрутизации, может отставать структурно, а не случайно.
Никто не оформляет распространение как вопрос доверия, но по сути это он и есть. Вы доверяете форме сети так же, как и людям, которые её обслуживают.
Так что происходит с «почти мгновенной» финализацией в тот момент, когда топология и тайминг консенсуса перестают быть разными проблемами и начинают быть одной и той же?

$DUSK #dusk @Dusk