Bagaimana Monad menskalakan EVM sambil mempertahankan desentralisasi? MonadBFT adalah algoritma konsensus yang digunakan di Monad, ini adalah implementasi tahan tailfork pertama dari Hotstuff (apakah itu berarti?) Inilah cara MonadBFT dapat menskalakan ke 1000-an validator sambil berkinerja 🧵
1/7 Mekanisme Konsensus Mekanisme yang digunakan blockchain untuk memastikan blok baru disepakati oleh mayoritas validator. Algoritma konsensus sejauh ini tidak dapat menskalakan melebihi beberapa ratus validator karena kompleksitas meningkat berdasarkan kuadrat jumlah validator (dalam banyak kasus) Karena setiap validator berbicara dengan semua validator lain untuk menyetujui blok: n validator x n pesan = n pesan kuadrat. Oleh karena itu kompleksitasnya meningkat secara signifikan dengan jumlah validator.
2/7 Hotstuff adalah algoritma konsensus yang dapat diskalakan secara linier (berbanding lurus dengan jumlah validator) dengan menghindari pesan all-to-all dan memungkinkan satu "pemimpin" untuk berkomunikasi dengan semua validator untuk konsensus. Dengan demikian, Hotstuff dapat menskalakan lebih efisien daripada konsensus PBFT tradisional, tetapi rentan terhadap serangan tailforking. MonadBFT adalah implementasi tahan tailfork pertama dari Hotstuff.
3/7 Apa itu tailforking? Tailforking terjadi ketika pemimpin berikutnya (validator yang mengusulkan blok berikutnya), secara sengaja atau tidak sengaja gagal memasukkan QC dari blok valid pemimpin sebelumnya dalam proposal mereka untuk blok baru. (QC adalah singkatan dari sertifikat kuorum yang merupakan bukti bahwa semua validator telah menyetujui blok sebelumnya) Akibatnya, blok sebelumnya, meskipun valid dan memiliki dukungan mayoritas dibiarkan tidak berkomitmen dan akhirnya menjadi yatim piatu atau digantikan oleh blok yang berbeda pada ketinggian yang sama. Ini mengganggu mekanisme insentif: pengusul yang jujur mungkin tidak menerima hadiah atau biaya blok jika pemblokiran mereka dilewati, mendorong perilaku tidak adil dan melemahkan keamanan jaringan.
4/7 Bagaimana cara kerja MonadBFT? → Seorang pemimpin (Alice) menyiarkan proposal pemblokiran yang ditandatangani ke semua node lain (fan out), yang mengakui validitasnya dengan mengirimkan pengesahan yang ditandatangani ke pemimpin berikutnya Bob (fan in). → Bob menggabungkan pengesahan ke dalam "Sertifikat Kuorum" (QC) → Bob menyiarkan QC ke semua node, yang membuktikan menerimanya dengan mengirim pesan ke pemimpin ke-3 (Charlie) yang mengumpulkan pengesahan tersebut. Karena pengesahan adalah tentang QC, kami menyebut QC baru ini QC-on-QC. → Charlie mengirim QC-on-QC ke semua orang. Setelah menerima QC-on-QC, semua orang tahu bahwa pemblokiran Alice telah diselesaikan.
5/7 Penyambungan Dalam cerita di atas, Bob dan Charlie hanya mengirimkan QC atau QC-on-QC, tetapi pada kenyataannya proposal tersebut dipilurkan: pesan Bob berisi QC untuk blok Alice dan juga isi blok baru. Pesan Charlie berisi QC untuk blok Bob (yang merupakan QC-on-QC untuk blok Alice) dan juga berisi transaksi untuk blok baru. Ketika validator mengirim pengesahan untuk pesan Bob, mereka membuktikan validitas blok Bob dan validitas QC. Pipelining ini meningkatkan throughput jaringan karena setiap slot blok baru diproduksi.
6/7 Raptorcast: Protokol propogasi blok Monad MonadBFT mengharuskan pemimpin untuk mengirim proposal blok ke setiap validator. Namun, bloknya mungkin cukup besar: 10.000 transaksi/dtk * 200 byte/tx = 2 MB/dtk. Mengirim langsung ke 200 validator akan membutuhkan 400 MB/s. Idealnya, validator tidak boleh memiliki bandwidth unggahan yang begitu tinggi. Di sinilah Raptorcast masuk. → Blok dikodekan penghapusan oleh pemimpin (Pengkodean penghapusan berarti bahwa pesan dipecah menjadi satu set potongan, dan dapat didekodekan dari subset yang cukup besar dari potongan-potongan ini) → Pemimpin mendistribusikan kumpulan potongan yang berbeda ke semua validator di jaringan (validator stake yang lebih tinggi menerima lebih banyak secara proporsional) → Setiap validator menyiarkan ulang potongannya ke semua validator lain di jaringan Dengan cara ini seluruh bandwidth jaringan digunakan untuk mendorong proposal blok.
5,73K