Sejak terciptanya Bitcoin pada tahun 2008 sebagai sistem pembayaran elektronik peer-to-peer, banyak mata uang kripto lainnya telah diciptakan, masing-masing dengan mekanisme operasi tertentu. Namun satu kesamaan yang dimiliki oleh hampir semua mata uang kripto adalah blockchain, yang merupakan elemen sentral dari arsitekturnya.
Dengan sedikit pengecualian, blockchain sengaja dirancang untuk didesentralisasi dan beroperasi sebagai buku besar digital yang dikelola oleh jaringan node komputer terdistribusi. Dalam konteks ini, teknologi blockchain memungkinkan terciptanya sistem ekonomi yang bebas dari kebutuhan akan kepercayaan, dimana transaksi keuangan yang transparan dan andal dapat dilaksanakan tanpa menggunakan perantara. Cryptocurrency diadopsi sebagai alternatif yang layak untuk sistem perbankan dan pembayaran tradisional, yang sangat bergantung pada kepercayaan.
Layaknya kebanyakan sistem komputasi terdistribusi, peserta dalam jaringan mata uang kripto harus secara berkala menyepakati status blockchain—ini dikenal sebagai pencapaian konsensus. Namun, mencapai konsensus pada jaringan terdistribusi secara aman dan andal bukanlah tugas yang mudah.
Jadi, bagaimana jaringan simpul komputer yang terdistribusi dapat menyepakati suatu keputusan jika beberapa simpul kemungkinan besar akan gagal atau bertindak tidak jujur? Inilah pertanyaan mendasar dari apa yang disebut Masalah Jenderal Bizantium, yang memunculkan konsep toleransi kesalahan Bizantium.
Apa masalahnya dengan para jenderal Bizantium?
Singkatnya, Masalah Jenderal Bizantium disusun pada tahun 1982 sebagai dilema logis yang menggambarkan bagaimana sekelompok jenderal Bizantium mungkin memiliki masalah komunikasi saat mencoba menyepakati langkah strategis berikutnya.
Dilema ini mengasumsikan bahwa setiap jenderal memiliki pasukannya sendiri, dan bahwa setiap kelompok bersenjata berada di lokasi yang berbeda di sekitar kota yang ingin mereka kepung. Para jenderal harus sepakat untuk menyerang atau mundur. Baik mereka menyerang atau mundur, semua jenderal harus mencapai konsensus—yaitu, menyepakati keputusan bersama agar dapat dilaksanakan secara terkoordinasi.
Oleh karena itu, kita dapat mempertimbangkan tujuan berikut:
Setiap jenderal harus membuat keputusan: menyerang atau mundur (ya atau tidak);
Setelah keputusan dibuat, keputusan itu tidak dapat diubah.
Semua jenderal harus menyetujui keputusan yang sama dan melaksanakannya secara serempak.
Masalah komunikasi yang disebutkan di atas berkaitan dengan fakta bahwa seorang jenderal hanya dapat berkomunikasi dengan jenderal lain melalui pesan yang disampaikan oleh seorang utusan. Oleh karena itu, tantangan utama dari masalah para jenderal Bizantium adalah pesan-pesan dapat tertunda, rusak, atau hilang.
Lebih jauh lagi, bahkan jika suatu pesan berhasil disampaikan, satu atau lebih jenderal dapat memilih (apa pun alasannya) untuk bertindak jahat dan mengirim pesan palsu untuk membingungkan jenderal lain, sehingga mengakibatkan kegagalan total.
Jika kita menerapkan dilema ini pada konteks blockchain, setiap jenderal mewakili sebuah simpul jaringan, dan simpul-simpul tersebut harus mencapai konsensus mengenai status sistem saat ini. Dengan kata lain, mayoritas partisipan dalam jaringan terdistribusi harus sepakat dan melakukan tindakan yang sama untuk menghindari kegagalan total.
Oleh karena itu, satu-satunya cara untuk mencapai konsensus dalam sistem terdistribusi seperti ini adalah dengan memastikan setidaknya 2/3 node jaringan tepercaya dan jujur. Artinya, jika mayoritas jaringan memutuskan untuk bertindak jahat, sistem rentan terhadap kegagalan dan serangan (seperti serangan 51%).
Toleransi Kesalahan Bizantium (BFT)
Singkatnya, toleransi kesalahan Bizantium (BFT) mencirikan sistem yang mampu menahan rentang kesalahan yang berasal dari Masalah Jenderal Bizantium. Ini berarti bahwa sistem BFT dapat terus beroperasi bahkan jika beberapa simpul gagal atau bertindak jahat.
Terdapat lebih dari satu kemungkinan solusi untuk Masalah Jenderal Bizantium dan, oleh karena itu, terdapat beragam cara untuk membangun sistem BFT. Demikian pula, terdapat berbagai pendekatan bagi blockchain untuk mencapai toleransi kesalahan Bizantium, yang membawa kita pada algoritma konsensus.
Algoritma Konsensus Blockchain
Kita dapat mendefinisikan algoritma konsensus sebagai mekanisme yang digunakan jaringan blockchain untuk mencapai konsensus. Implementasi yang paling umum adalah proof-of-work dan proof-of-stake. Namun, mari kita ambil Bitcoin sebagai contoh.
Sementara protokol Bitcoin menetapkan aturan-aturan utama sistem, algoritma konsensus PoW-lah yang mendefinisikan bagaimana aturan-aturan ini akan diikuti untuk mencapai konsensus (misalnya, saat memverifikasi dan memvalidasi transaksi).
Meskipun konsep bukti kerja lebih tua dari mata uang kripto, Satoshi Nakamoto mengembangkan versi modifikasinya sebagai algoritma dan sistem BFT yang memungkinkan terciptanya Bitcoin.
Perlu dicatat bahwa algoritma PoW tidak 100% toleran terhadap kesalahan Bizantium, tetapi karena proses penambangan yang mahal dan teknik kriptografi yang mendasarinya, PoW telah terbukti menjadi salah satu implementasi yang paling aman dan andal untuk jaringan blockchain. Dalam hal ini, algoritma konsensus Proof of Work, yang dirancang oleh Satoshi Nakamoto, dianggap oleh banyak orang sebagai salah satu solusi paling relevan untuk kesalahan Bizantium.
Kesimpulan
Masalah Jenderal Bizantium adalah dilema menarik yang akhirnya memunculkan sistem BFT, yang banyak digunakan dalam berbagai skenario. Selain sektor blockchain, beberapa kasus penggunaan sistem BFT mencakup sektor penerbangan, antariksa, dan energi nuklir.
Dalam konteks mata uang kripto, komunikasi jaringan yang efisien dan mekanisme konsensus yang baik sangat penting bagi setiap ekosistem blockchain. Mengamankan sistem ini merupakan upaya berkelanjutan, dan algoritma konsensus yang ada masih perlu mengatasi beberapa keterbatasan (seperti skalabilitas). Meskipun demikian, PoW dan PoS merupakan pendekatan yang sangat menarik sebagai sistem BFT, dan potensi penerapannya tentu membutuhkan inovasi yang luas.

