#dusk $DUSK @Dusk
Semua orang membicarakan konsensus. Hampir tak ada yang membahas bagaimana blok itu bahkan sampai ke orang-orang yang memberikan suara untuknya. Nah, bagian itu yang membuatku macet.
Dusk menggunakan sesuatu yang disebut Kadcast untuk menyebarkan pesan ke seluruh jaringan — sebuah overlay network yang terstruktur, bukan gaya banjir (gossip-style flooding) seperti yang dipakai kebanyakan chain. Protokol gossip hanya mendorong data ke rekan-rekan acak dan berharap itu menyebar. Kadcast malah merutekan pesan melalui struktur yang sudah ditetapkan, mirip cara sistem peer-to-peer berbasis Kademlia mengorganisasi node berdasarkan jarak.
Kedengarannya seperti pilihan infrastruktur yang kecil, sampai aku memikirkan soal waktu. Ronde konsensus di Dusk dirancang untuk finalitas nyaris instan. Tapi finalitas hanya secepat node jujur paling lambat yang membutuhkan data blok untuk memberikan suara. Jika propagasinya terstruktur, bukan acak, waktu pengiriman menjadi lebih bisa diprediksi — tetapi ini juga berarti jalur yang ditempuh sebuah blok bergantung pada topologi jaringan, bukan pada kebetulan.
Bayangkan 300 node yang memvalidasi. Dalam gossip murni, sebuah pesan mungkin mencapai 90% dari mereka lewat jalur yang tumpang tindih dan tak terduga dalam beberapa hop. Dalam sistem terstruktur seperti Kadcast, jalur itu ditentukan oleh posisi setiap node di dalam struktur — rata-rata lebih efisien, tetapi node yang letaknya buruk, atau yang lambat memperbarui tabel routing-nya, bisa tertinggal dengan cara yang bersifat struktural, bukan acak.
Tak ada yang membingkai propagasi sebagai pertanyaan kepercayaan, tapi sebenarnya itulah persoalannya. Anda mempercayai bentuk jaringan itu sama seperti Anda mempercayai orang-orang yang menjalankannya.
Jadi apa yang terjadi pada finalitas "nyaris instan" saat topologi dan waktu konsensus berhenti menjadi masalah yang terpisah, dan malah menjadi masalah yang sama?

$DUSK #dusk @Dusk