Sejak dimulainya Bitcoin pada tahun 2008, sebagai sistem uang elektronik peer-to-peer, banyak mata uang kripto lainnya telah diciptakan, masing-masing dengan mekanisme tertentu. Namun satu kesamaan yang dimiliki hampir semua mata uang kripto adalah blockchain, sebagai elemen inti arsitekturnya.
Dengan sedikit pengecualian, blockchain sengaja dirancang untuk didesentralisasi, berfungsi sebagai buku besar digital yang dikelola oleh jaringan node komputer yang terdistribusi. Oleh karena itu, teknologi blockchain memungkinkan terciptanya sistem ekonomi yang tidak dapat dipercaya, dimana transaksi keuangan yang transparan dan andal dapat dilakukan tanpa memerlukan perantara. Cryptocurrency diadopsi sebagai alternatif yang layak untuk sistem perbankan dan pembayaran tradisional, yang sangat bergantung pada kepercayaan.
Sama seperti kebanyakan sistem komputasi terdistribusi, para partisipan dalam jaringan mata uang kripto harus secara teratur menyetujui kondisi blockchain saat ini, dan itulah yang kami sebut sebagai pencapaian konsensus. Namun, mencapai konsensus mengenai jaringan terdistribusi, dengan cara yang aman dan efisien, bukanlah tugas yang mudah.
Jadi, bagaimana jaringan node komputer yang terdistribusi dapat menyetujui suatu keputusan, jika beberapa node kemungkinan besar akan gagal atau bertindak tidak jujur? Inilah pertanyaan mendasar yang disebut masalah Jenderal Bizantium, yang melahirkan konsep toleransi kesalahan Bizantium.
Apa Masalah Jenderal Bizantium?
Singkatnya, Masalah Jenderal Bizantium dipahami pada tahun 1982 sebagai dilema logis yang menggambarkan bagaimana sekelompok jenderal Bizantium mungkin mengalami masalah komunikasi ketika mencoba menyepakati langkah mereka selanjutnya.
Dilema ini mengasumsikan bahwa setiap jenderal memiliki pasukannya sendiri dan setiap kelompok ditempatkan di lokasi berbeda di sekitar kota yang ingin mereka serang. Para jenderal harus sepakat untuk menyerang atau mundur. Tidak masalah apakah mereka menyerang atau mundur, selama semua jenderal mencapai konsensus, yaitu menyepakati keputusan bersama untuk melaksanakannya secara terkoordinasi.
Oleh karena itu, kami dapat mempertimbangkan persyaratan berikut:
Setiap jenderal harus memutuskan: menyerang atau mundur (ya atau tidak);
Setelah keputusan diambil, keputusan itu tidak dapat diubah;
Semua jenderal harus menyepakati keputusan yang sama dan melaksanakannya secara sinkron.
Permasalahan komunikasi di atas berkaitan dengan kenyataan bahwa seorang jenderal hanya dapat berkomunikasi dengan jenderal lainnya melalui pesan yang diteruskan oleh seorang kurir. Oleh karena itu, tantangan utama dari Masalah Jenderal Bizantium adalah bahwa pesan-pesan tersebut dapat tertunda, hancur, atau hilang.
Selain itu, bahkan jika pesan berhasil disampaikan, satu atau lebih jenderal dapat memilih (untuk alasan apa pun) untuk bertindak jahat dan mengirimkan pesan palsu untuk membingungkan jenderal lainnya, sehingga menyebabkan kegagalan total.
Jika kita menerapkan dilema ini pada konteks blockchain, setiap jenderal mewakili node jaringan, dan node tersebut perlu mencapai konsensus mengenai keadaan sistem saat ini. Dengan kata lain, mayoritas peserta dalam jaringan terdistribusi harus menyetujui dan melakukan tindakan yang sama untuk menghindari kegagalan total.
Oleh karena itu, satu-satunya cara untuk mencapai konsensus dalam sistem terdistribusi jenis ini adalah dengan memiliki setidaknya ⅔ atau lebih node jaringan yang andal 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) adalah properti sistem yang mampu menahan kelas kegagalan yang berasal dari Masalah Jenderal Bizantium. Artinya, sistem BFT dapat terus beroperasi meskipun beberapa node mengalami kegagalan atau melakukan tindakan jahat.
Ada lebih dari satu solusi yang mungkin untuk Masalah Jenderal Bizantium dan, oleh karena itu, ada banyak cara untuk membangun sistem BFT. Demikian pula, ada pendekatan berbeda pada blockchain untuk mencapai toleransi kesalahan Bizantium dan ini membawa kita pada apa yang disebut algoritma konsensus.
Algoritma konsensus Blockchain
Kita dapat mendefinisikan algoritma konsensus sebagai mekanisme yang melaluinya jaringan blockchain mencapai konsensus. Implementasi yang paling umum adalah Proof of Work (PoW) dan Proof of Stake (PoS). Tapi mari kita ambil kasus Bitcoin sebagai contoh.
Meskipun protokol Bitcoin menetapkan aturan utama sistem, algoritme konsensus PoW menentukan bagaimana aturan ini akan diikuti untuk mencapai konsensus (misalnya, selama verifikasi dan validasi transaksi).
Meskipun konsep Proof of Work lebih tua dari mata uang kripto, Satoshi Nakamoto mengembangkan versi modifikasinya sebagai algoritma yang memungkinkan terciptanya Bitcoin sebagai sistem BFT.
Perhatikan bahwa algoritma PoW tidak 100% toleran terhadap kesalahan Bizantium, namun karena proses penambangan yang memakan banyak biaya dan teknik kriptografi yang mendasarinya, PoW telah terbukti menjadi salah satu implementasi 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 jenius terhadap kesalahan Bizantium.
Pikiran terakhir
Masalah Jenderal Bizantium merupakan dilema menarik yang akhirnya memunculkan sistem BFT, yang diterapkan secara luas dalam berbagai skenario. Di luar industri blockchain, beberapa kasus penggunaan sistem BFT mencakup industri penerbangan, luar angkasa, dan tenaga nuklir.
Dalam konteks mata uang kripto, memiliki komunikasi jaringan yang efisien serta mekanisme konsensus yang baik sangat penting bagi ekosistem blockchain mana pun. Mengamankan sistem ini merupakan upaya berkelanjutan, dan algoritma konsensus yang ada belum mengatasi beberapa keterbatasan (seperti skalabilitas). Meskipun demikian, PoW dan PoS merupakan pendekatan yang sangat menarik dibandingkan sistem BFT, dan potensi penerapannya tentunya menginspirasi inovasi yang luas.

