Topik trending
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Merangkum terobosan di MonadBFT
Kemarin Category Labs merilis makalah MonadBFT, yang menjelaskan mekanisme konsensus yang akan menggerakkan Monad di mainnet.
MonadBFT merupakan perkembangan signifikan dalam penelitian konsensus karena ini adalah pertama kalinya Piped HotStuff menjadi tahan terhadap tail-forking.
Tail-forking terjadi ketika slot yang terlewat menyebabkan proposal sebelumnya dibuang dan ditambang kembali. Ini adalah masalah serius dalam formulasi Pipelined HotStuff sebelumnya karena membuka serangan MEV multi-blok yang mengacaukan konsensus.
Meringankan masalah ini adalah masalah besar karena memberi kita semua manfaat dari Pipelined HotStuff - pemblokiran yang sering, latensi rendah, set validator besar - sambil menghindari kelemahan terbesar.
MonadBFT juga menawarkan peningkatan besar untuk finalitas. Ini menampilkan finalitas spekulatif slot tunggal (500 ms) dan finalitas keras dua slot (1 detik).
"Finalitas spekulatif" berarti "finalitas yang akan dikembalikan hanya jika terjadi keraguan (penandatanganan ganda) oleh mayoritas validator". Keraguan adalah pelanggaran utama di sebagian besar sistem blockchain dan umumnya dihukum dengan pemotongan; semakin besar hukuman untuk keraguan, semakin dekat Anda dapat memikirkan "finalitas spekulatif" ke finalitas.
Finalitas spekulatif satu slot adalah pembukaan besar untuk aplikasi berkinerja tinggi, yang dapat dengan percaya diri menampilkan keadaan dunia yang diperbarui segera setelah blok berikutnya diterima.
Sifat-sifat ini menjadikan MonadBFT kemajuan besar dalam konsensus, dan pelengkap yang layak untuk peningkatan majemuk lainnya di Monad termasuk Eksekusi Asinkron, Eksekusi Paralel Optimis, dan MonadDb.
Sisa artikel ini berfungsi sebagai ringkasan tentang bagaimana perbaikan berturut-turut di HotStuff telah dibangun satu sama lain, untuk menjelaskan masalah yang dipecahkan MonadBFT.
Untuk meringkas:
1. HotStuff memberi kita kompleksitas komunikasi linier sehingga kita dapat memiliki set validator yang besar, tetapi tidak terlalu efisien
2. HotStuff yang dipipa memberi kami efisiensi dan latensi rendah dari mengusulkan blok setiap slot, tetapi menderita masalah garpu ekor
3. MonadBFT memberi kita resistensi tail-fork dan finalitas spekulatif satu slot
---
HotStuff: Kompleksitas komunikasi linier memungkinkan jumlah node yang besar
Algoritme HotStuff selesai selama beberapa putaran komunikasi, yang umumnya berbentuk komunikasi "kipas, kipas" langsung dari pemimpin ke validator kembali ke pemimpin.
Setiap putaran dimulai dengan pemimpin mengirim pesan langsung ke validator lain, yang masing-masing mengirim kembali pesan yang ditandatangani yang membuktikan telah menerima pesan tersebut.
Asalkan mayoritas super (2/3) validator mengirimkan kembali pengekalan, setiap putaran diakhiri dengan pemimpin menggabungkan pengesahan yang ditandatangani ke dalam Sertifikat Kuorum (QC), yang berfungsi sebagai bukti bahwa supermayoritas membuktikan pesan sebelumnya.
Algoritme HotStuff memiliki beberapa putaran komunikasi seperti ini.
- Pesan pertama dari pemimpin adalah proposal blok
- Pesan kedua adalah QC untuk proposal pemblokiran itu
- Pesan ketiga adalah QC tentang QC sebelumnya (yaitu QC-on-QC)
- dan seterusnya
Jika prosedur terganggu kapan saja sebelum finalitas, blok gagal diselesaikan dan dibuang; Transaksi dari blok itu harus dimasukkan kembali ke blok berikutnya.
Protokol HotStuff asli tidak memiliki pipelining dan memiliki 3 putaran komunikasi sebelum final; Validator yang sama memainkan peran pemimpin untuk setiap putaran.
---
HotStuff yang Dipilurkan: Blok baru setiap slot meningkatkan efisiensi
Pipelining adalah apa yang kita semua lakukan secara intuitif ketika kita memiliki dua muatan cucian untuk diselesaikan. Alih-alih menunggu beban 1 menyelesaikan siklus penuh sebelum memulai beban 2, dalam pipa kami memasukkan beban 1 ke dalam pengering bersamaan dengan beban 2 masuk ke mesin cuci.
Anda dapat menganggap HotStuff asli sebagai pendekatan naif untuk mencuci pakaian (jangan mulai pada beban 2 sampai pemuatan 1 selesai sepenuhnya), sementara Pipelined HotStuff melakukan perilaku intuitif dengan memajukan beberapa beban cucian secara terhuyung-huyung.
Di Pipelined HotStuff kami mengejutkan proposal, sehingga ada blok baru yang diusulkan di setiap putaran, dengan blok baru membonceng di atas pesan yang membawa QC dari blok sebelumnya.
Proposal blok berbaris menuju finalitas selama beberapa putaran.
Manfaat pipelining sangat signifikan. Pipelining meningkatkan kepadatan proposal blok, karena proposal blok dibuat di setiap slot, yang meningkatkan throughput dan menurunkan waktu hingga finalitas.
Namun, ada satu kelemahan utama dari pipelining, yang paling baik diilustrasikan dengan sebuah contoh. Asumsikan bahwa pemimpin untuk blok N, N+1, dan N+2 adalah Alice, Bob, dan Charlie.
Jika Bob melewatkan slotnya, maka lamaran Alice juga akan dibatalkan, karena pesan Bob membawa lamarannya dan QC untuk lamaran Alice.
Ketika ini terjadi, Charlie akhirnya dipanggil untuk membuat blok seolah-olah lamaran Alice tidak pernah ada.
Kami menyebut perilaku ini sebagai "tail-forking", dan dapat dianggap sebagai mini-reorganisasi kedalaman 1.
Kemungkinan tail-forking memiliki konsekuensi yang signifikan, karena slot yang terlewatkan belum tentu secara kebetulan.
Jika ada peluang untuk mengekstrak nilai dengan menambang ulang blok Alice sambil memesan ulang atau menghilangkan beberapa transaksi, maka Bob dan Charlie dapat berkolusi agar Bob sengaja melewatkan slotnya, memicu kesempatan bagi Charlie untuk menambang kembali blok Alice.
Ini telah menjadi kelemahan signifikan dari protokol Pipelined HotStuff (beberapa di antaranya ada di mainnet saat ini).
---
MonadBFT mengubah ini
MonadBFT adalah protokol pertama yang memungkinkan pipelining sambil membuat algoritma tahan garpu ekor.
Resistensi garpu ekor ini berasal dari prosedur fallback ketika Bob melewatkan slotnya, yang memungkinkan validator untuk menyatukan pengetahuan kolektif mereka tentang proposal Alice dan tingkat konsensusnya dalam set validator.
Secara khusus, di bawah MonadBFT, jika Bob melewatkan slotnya, maka prosedur fallback memiliki validator yang berkomunikasi satu sama lain dengan pengesahan yang ditandatangani yang menyatakan apakah mereka melihat blok Alice.
Jika mayoritas super membuktikan blok Alice, maka Charlie terpaksa mengusulkan kembali blok Alice. Jika Charlie ingin mengusulkan blok yang berbeda maka dia harus memberikan pengesahan yang ditandatangani dari sebagian besar validator yang membuktikan tidak melihat pemblokiran Alice tepat waktu.
Dalam kasus tipikal di mana Charlie mengusulkan kembali blok Alice, dia kemudian dapat mengusulkan bloknya pada ronde berikutnya.
Hasilnya adalah dua sifat penting: resistensi tail-forking dan finalitas slot tunggal spekulatif. Kita telah berbicara tentang resistensi tail-forking, tetapi mari kita pahami dampaknya pada finalitas.
Seperti sebelumnya, asumsikan pemimpin untuk blok N, N+1, dan N+2 adalah Alice, Bob, dan Charlie.
Di bawah HotStuff 2-Phase Pipelined - yaitu sebelum MonadBFT - sebagai validator (atau node penuh), Anda tidak dapat menyelesaikan proposal blok Alice sampai Anda melihat proposal blok Charlie. Mengapa? Karena jika Anda menyelesaikan segera setelah Anda melihat lamaran Bob, ada kemungkinan Bob mengacaukan Anda dengan HANYA meneruskan lamarannya kepada Anda, dan dia benar-benar berencana untuk gagal mengirimkan lamarannya ke orang lain, sehingga kehilangan slotnya.
Namun di MonadBFT, segera setelah Anda melihat proposal Bob, Anda dapat "secara spekulatif" menyelesaikan proposal Alice karena proposal Bob menyertakan QC pada proposal Alice, yang merupakan bukti bahwa 2/3 dari jaringan membuktikan proposal Alice.
Bahkan jika Bob mengacaukan Anda dengan HANYA meneruskan proposalnya kepada Anda, dan akhirnya akan kehilangan slotnya, Anda tahu bahwa sebagian besar jaringan melihat proposal Alice dan, ketika mereka berpartisipasi dalam prosedur penggantian, akan menandatangani lamaran Alice lagi.
Satu-satunya cara agar pemblokiran Alice tidak akan diselesaikan adalah jika validator ragu dan menandatangani mengatakan bahwa mereka tidak melihat pesan Alice. Kesalahan ini mudah dibuktikan - kami telah menandatangani pesan yang bertentangan dari mereka. Jika hukuman untuk keraguan itu substansial - dan seharusnya - finalitas "spekulatif" ini sebenarnya tidak terlalu spekulatif.
---
Kesimpulan
MonadBFT adalah perkembangan yang sangat menarik untuk konsensus, dan merupakan pelengkap yang layak untuk peningkatan majemuk lainnya di Monad termasuk Eksekusi Asinkron, Eksekusi Paralel Optimis, dan MonadDb.
Selamat banyak kepada @MohammadMJalal1 dan @KushalBabel atas terobosan signifikan ini.
MonadBFT akan segera diimplementasikan di Monad Testnet, yang saat ini mengimplementasikan Pipelined 2-Phase HotStuff.
Untuk bacaan lebih lanjut, lihat posting blog dan makalah yang ditautkan di tweet berikutnya.


26,23K
Teratas
Peringkat
Favorit