Monad adalah platform kontrak pintar lapisan-1 baru yang baru-baru ini mengumpulkan dana $225 juta dari perusahaan modal ventura Paradigm. 

Meskipun Monad belum diluncurkan, Monad diperkirakan akan tersedia di testnet publiknya pada akhir tahun 2024, dengan penerapan mainnet direncanakan pada awal tahun 2025.

Monad adalah proyek Mesin Virtual Ethereum (EVM) paralel, dan seperti proyek serupa seperti Aurora (dibangun pada Near Protocol) atau Sei, Monad berupaya memparalelkan eksekusi instruksi EVM sehingga jaringan dapat memproses beberapa transaksi secara bersamaan. Hal ini memungkinkan untuk menangani volume transaksi yang lebih besar, meningkatkan hasil, dan mengurangi biaya.

Paralelisasi melibatkan pemecahan eksekusi transaksi menjadi tugas-tugas independen yang lebih kecil yang dapat diproses secara bersamaan. Monad memperkenalkan empat pengoptimalan untuk meningkatkan konsensus, eksekusi, dan penyimpanan datanya: MonadBFT, eksekusi tertunda, eksekusi paralel, dan MonadDb.

MonadBFT

MonadBFT adalah algoritma toleransi kesalahan Bizantium dua fase yang dirancang untuk meningkatkan skalabilitas dan efisiensi blockchain. Ini adalah turunan dari algoritma HotStuff yang dioptimalkan untuk beroperasi dalam kondisi sinkron sebagian. 

Pengoptimalan ini penting, karena sebagian besar jaringan dunia nyata tidak menunjukkan perilaku sinkron sempurna karena waktu pengiriman pesan yang bervariasi yang disebabkan oleh kemacetan jaringan, latensi, dan faktor lainnya. Dengan mengakomodasi kondisi yang sebagian sinkron ini, MonadBFT memastikan kinerja dan keandalan yang layak dalam penerapan praktis.

Algoritme HotStuff adalah protokol konsensus yang dirancang untuk sistem blockchain untuk mencapai toleransi kesalahan Bizantium (BFT), yang merupakan kemampuan sistem komputer untuk terus beroperasi meskipun beberapa nodenya bertindak jahat atau rusak.

Kekuatan ini dicapai melalui serangkaian putaran komunikasi antar node untuk menyepakati blok berikutnya dalam rantai tersebut. HotStuff memerlukan tiga putaran komunikasi untuk mencapai konsensus, yang dapat menjadi penghambat skalabilitas dan efisiensi. MonadBFT meningkatkan HotStuff dengan mengurangi putaran komunikasi yang diperlukan untuk konsensus dari tiga menjadi dua.

Mekanisme konsensus bekerja secara bertahap. Node pemimpin mengusulkan blok, dan validator meninjaunya. Di setiap putaran, pemimpin mengirimkan blok baru dengan sertifikat kuorum (QC) atau sertifikat batas waktu (TC) untuk putaran sebelumnya. QC adalah bukti bahwa suatu blok telah disetujui oleh mayoritas validator, yang menunjukkan bahwa mereka menyetujui validitas blok tersebut.

Sebaliknya, TC menunjukkan bahwa jumlah validator yang dibutuhkan tidak mencapai konsensus dalam jangka waktu tertentu. Ini bertindak sebagai mekanisme cadangan untuk mencegah sistem terhenti.

Validator memberikan suara pada blok baru yang diusulkan oleh pemimpin. Jika jumlah validator mencukupi (dua pertiga) yang menyetujui, blok diselesaikan pada putaran berikutnya, dan QC diterbitkan.

Jika validator tidak menerima blok yang valid tepat waktu, mereka akan mengirimkan pesan batas waktu yang ditandatangani, yang dapat digabungkan ke dalam TC. TC ini kemudian dikirim langsung ke pimpinan berikutnya. Sebuah blok diselesaikan ketika validator melihat dua blok tersertifikasi berturut-turut.

Aturan penerapan dua fase ini memastikan penyelesaian blok yang cepat dengan tetap menjaga keamanan jaringan dan toleransi kesalahan. Seperti dalam semua pengaturan BFT asinkron, dua pertiga dari node validator Monad harus non-adversarial dan memiliki bobot voting yang sama untuk menjaga keamanan.

Eksekusi yang ditangguhkan

Eksekusi yang ditangguhkan memisahkan eksekusi transaksi dari konsensus. Berbeda dengan blockchain tradisional seperti Ethereum, yang mana node harus mengeksekusi transaksi sebelum mencapai konsensus, konsensus MonadBFT hanya berfokus pada urutan transaksi.

Di Ethereum, node harus mencapai konsensus mengenai daftar transaksi di blok dan akar pohon Merkle untuk status eksekusi pasca-transaksi. Ini berarti pemimpin konsensus harus mengeksekusi transaksi sebelum mengirimkan blok, dan semua node yang memvalidasi harus mengulangi eksekusi ini sebelum memberikan suara mereka.

Oleh karena itu, waktu blok bisa menjadi sangat lama, dan kompleksitas komputasi yang dapat ditangani jaringan berkurang. Mekanisme konsensus MonadBFT hanya menentukan urutan transaksi dan memungkinkan eksekusi terjadi secara independen setelah konsensus tercapai.

Untuk memastikan bahwa eksekusi dilakukan dengan benar, Monad menunda persetujuan pada akar status Merkle sebanyak blok D. D adalah parameter seluruh sistem yang saat ini diharapkan menjadi 10.

Desain ini mengurangi risiko yang terkait dengan node berbahaya yang tidak menjalankan transaksi dengan benar. Setelah jaringan mencapai konsensus di blok N dengan dua pertiga suara mayoritas, jaringan tersebut juga menyetujui negara bagian yang diwakili oleh pohon Merkle di blok N-D.

Jika ada node yang menemukan kesalahan saat mengeksekusi blok N-D, node tersebut akan memberikan suara menentang proposal untuk blok N. Hal ini memicu rollback ke keadaan akhir blok N-D-1, diikuti dengan eksekusi ulang transaksi dari blok N-D. Sebuah node dapat memverifikasi dan memperbaiki hasil eksekusinya terhadap node lain di jaringan dengan memeriksa root Merkle miliknya. Node ringan dapat menanyakan node penuh untuk bukti Merkle nilai variabel status.

Eksekusi paralel

Blockchain eksekusi paralel yang populer bersifat deterministik atau optimis.

Monad menggunakan eksekusi optimis untuk mencapai pemrosesan transaksi paralel. Metode ini mirip dengan eksekusi spekulatif yang digunakan oleh unit pemrosesan pusat (CPU), di mana prosesor memprediksi jalur instruksi cabang dan mengeksekusinya terlebih dahulu. 

Mesin eksekusi Monad mulai memproses transaksi baru bahkan sebelum eksekusi transaksi sebelumnya diselesaikan, sehingga meningkatkan throughput secara keseluruhan.

Namun, strategi ini, yang disebut kontrol konkurensi optimis, dapat menyebabkan kesalahan ketika transaksi berikutnya saling bergantung. Jika konflik terdeteksi (misalnya, ketika dua transaksi mencoba mengubah saldo akun yang sama), transaksi yang terpengaruh akan dijalankan kembali untuk memperbaiki perbedaan.

Dalam kasus terburuk, transaksi harus dieksekusi dua kali, namun secara agregat, ini hanya menambah 1,5% overhead. Monad juga menggunakan penganalisis kode statis untuk memprediksi ketergantungan antar transaksi sebelumnya. Analisis statis ini memungkinkan Monad mengidentifikasi potensi konflik sebelum eksekusi dan, meskipun tidak mencegah semua konflik, membantu mengoptimalkan penjadwalan transaksi awal untuk eksekusi paralel yang lebih efisien dan optimis.

Sei juga menggunakan paralelisasi optimis, dengan asumsi bahwa transaksi tidak akan menimbulkan konflik, namun Sei menggunakan pendekatan berbeda dalam menangani konflik. Selama proses paralelisasi, Sei melacak bagian negara bagian mana yang dimodifikasi oleh setiap transaksi. Jika mendeteksi adanya dua transaksi yang bertentangan, yang berarti keduanya berupaya mengubah bagian status yang sama, sistem akan menghentikan sementara eksekusi dan memproses ulang transaksi yang bertentangan tersebut secara berurutan, serupa dengan Monad.

Namun, penggunaan penganalisis kode statis Monad memungkinkan penjadwalan transaksi lebih efisien, sehingga mengurangi kemungkinan konflik, sedangkan Sei hanya mengatasi konflik yang muncul selama eksekusi.

Eksekusi yang optimis juga menghilangkan kebutuhan akan penjadwalan yang rumit dan algoritma analisis ketergantungan, yang diperlukan untuk metodologi deterministik. Dalam pendekatan deterministik yang digunakan oleh Sui dan Solana, transaksi harus menyatakan bagian negara bagian mana yang akan mereka akses sebelum dieksekusi.

Deklarasi dimuka ini memungkinkan sistem untuk menjadwalkan transaksi sedemikian rupa sehingga menghindari konflik selama eksekusi. Keuntungan utama dari metode ini adalah prediktabilitas: Karena ketergantungan telah diketahui sebelumnya, sistem dapat memastikan bahwa transaksi tidak saling mengganggu, sehingga menghasilkan hasil yang konsisten dan dapat diandalkan.

Namun, prediktabilitas ini harus dibayar mahal. Menganalisis ketergantungan dan menjadwalkan transaksi memerlukan algoritme canggih, yang harus memperhitungkan semua potensi interaksi antar transaksi dan menimbulkan overhead komputasi, sehingga memerlukan kebutuhan perangkat keras yang lebih tinggi.

Kebutuhan akan analisis dan penjadwalan real-time juga menambah kompleksitas, karena sistem harus terus memantau dan menyesuaikan urutan eksekusi untuk mencegah konflik.

Selain itu, pendekatan deterministik mungkin menghadapi tantangan dalam melakukan penskalaan secara efisien. Ketika jumlah transaksi meningkat, kompleksitas analisis ketergantungan meningkat secara eksponensial.

MonadDB

MonadDB adalah database khusus yang dirancang khusus untuk mengoptimalkan implementasi eksekusi paralel. Dalam blockchain tradisional seperti Ethereum, akses input/output (I/O) menjadi hambatan yang signifikan, terutama karena sistem ini mengandalkan operasi I/O yang sinkron. 

Proses harus menunggu hingga setiap operasi baca atau tulis selesai sebelum melanjutkan ke operasi berikutnya, yang sangat membatasi throughput dan kinerja keseluruhan. Untuk mengatasi keterbatasan ini, MonadDB menggunakan operasi disk asinkron, yang memungkinkan sistem memulai beberapa operasi baca dan tulis secara bersamaan tanpa menunggu hingga masing-masing operasi selesai. Hal ini meningkatkan kecepatan pemrosesan transaksi secara keseluruhan, terutama bila dikombinasikan dengan eksekusi paralel.

Kesimpulan

Monad mewakili kemajuan signifikan dalam teknologi blockchain. Ia menggunakan teknik inovatif seperti eksekusi optimis, eksekusi tertunda, dan database khusus, MonadDB, untuk meningkatkan skalabilitas dan efisiensi. 

Metode paralelisasi optimisnya, mirip dengan eksekusi spekulatif di CPU, memungkinkan throughput tinggi dengan memproses transaksi secara bersamaan dan mengeksekusi ulang transaksi yang bertentangan hanya jika diperlukan.

Dikombinasikan dengan analisis kode statis, metode ini mengoptimalkan penjadwalan transaksi dan mengurangi kemungkinan konflik. Dibandingkan dengan proyek EVM paralel lainnya seperti Sei dan sistem deterministik seperti Sui dan Solana, pendekatan Monad menyeimbangkan efisiensi dan kompleksitas, memberikan solusi yang kuat untuk volume transaksi yang tinggi.

Pengenalan MonadBFT, algoritma toleransi kesalahan Bizantium dua fase yang disalurkan, semakin memastikan penyelesaian blok yang cepat dan keamanan jaringan.

Saat Monad mempersiapkan testnet publiknya pada akhir tahun 2024 dan penerapan mainnet pada awal tahun 2025, Monad memposisikan dirinya sebagai pemain tangguh dalam platform blockchain generasi berikutnya yang dapat diskalakan.