Musim panas akhirnya akan segera berakhir, dan suhu perlahan mulai turun. Minggu lalu saat saya mengemudi bersama keluarga untuk berlibur, ketika melaju di jalan tol, tiba-tiba terjadi kecelakaan di depan. Navigasi saya sementara memberi saya rute jalan alternatif, tapi mobil di belakang tidak ikut mengubah jalan dan tetap mengikuti rute semula. Dua rute berjalan sejajar hampir sepuluh menit. Setelah kecelakaan selesai dibereskan, sistem barulah mengarahkan semua orang kembali ke jalan utama—selama periode itu, tidak ada yang tahu rute mana yang sebenarnya "harus" diambil.
Di mekanisme konsensus Dusk juga ada skenario "percabangan" yang mirip, namanya fallback (pencadangan). Karena jaringan bersifat asinkron, pesan bisa terlambat atau hilang. Dalam satu putaran yang sama, kadang lebih dari satu kandidat blok bisa mencapai konsensus secara bersamaan—itulah percabangan. Aturan penanganannya sangat sederhana: blok yang mencapai konsensus pada iteration (putaran iterasi) yang lebih rendah dianggap yang benar. Blok pada putaran yang lebih tinggi akan tergantikan oleh yang putaran lebih rendah, sehingga rantai akan kembali (rollback) ke blok yang ada tepat sebelum percabangan, lalu disambungkan dengan jalur yang lebih dulu mencapai konsensus. Rantai yang tergantikan itu—beserta semua blok setelahnya—ikut menjadi batal.
Ada satu detail yang mudah terlewat: blok yang mencapai konsensus di iteration 0 adalah satu-satunya yang tidak akan pernah "tergantikan", karena tidak ada putaran yang lebih rendah dari itu. Namun bahkan untuk blok itu pun, jika "parent block"-nya kemudian ikut di-rollback, blok tersebut tetap harus ikut rollback—bukan benar-benar aman, melainkan relatif lebih stabil.
Mekanisme ini menyelesaikan masalah "cara menangani percabangan sementara akibat keterlambatan pesan jaringan", tetapi biayanya adalah di rantai akan muncul ketidakpastian dalam waktu singkat—terutama untuk blok yang baru muncul, khususnya yang memiliki putaran lebih tinggi, secara teoritis tetap mungkin tergantikan. Baru setelah blok-blok berikutnya "mengelas"-nya, barulah kita bisa benar-benar merasa aman.
$DUSK
#dusk @Dusk