Penjelasan Mengenai Byzantine Fault Tolerance
Beranda
Artikel
Penjelasan Mengenai Byzantine Fault Tolerance

Penjelasan Mengenai Byzantine Fault Tolerance

Tingkat Lanjut
Diterbitkan Dec 6, 2018Diperbarui Aug 17, 2023
5m

Pengenalan

Sejak pertama kali Bitcoin diperkenalkan sebagai sistem uang tunai elektronik pada tahun 2008; banyak mata uang lain diciptakan setelahnya, masing-masing dengan keunikan mekanismenya masing-masing. Akan tetapi satu hal yang hampir semua mata uang digital miliki adalah elemen arsitektur dasar mereka, yaitu teknologi Blockchain.

Dengan beberapa pengecualian, blockchain didesain sedemikian rupa untuk menjadi desentral, dengan bekerja sebagai buku kas digital yang dijaga oleh sebuah jaringan node komputer desentralisasi. Dikarenakan hal ini, teknologi blockchain mengizinkan pembuatan sebuah sistem ekonomi tanpa percaya, dimana transparansi dan kehandalan transaksi finansial dapat terjadi tanpa dibutuhkannya orang tengah. Mata uang digital akan diadopsi sebagai sebuah alternatif pembayaran yang menggantikan bank dan sistem pembayaran tradisional, yang sangat bergantung kepada kepercayaan.

Seperti layaknya kebanyakan sistem komputer terdistribusi, peserta jaringan mata uang digital harus secara berkala setuju dengan kondisi terkini dari blockchain tersebut, dan ini yang kami sebut sebagai pencapaian konsensus. Akan tetapi, mencapai konsensus dalam jaringan terdistribusi, dalam sebuah cara yang jujur dan aman sangat susah dicapai.

Maka dari itu, bagaimana sebuah jaringan node komputer tersebar tersebut setuju dengan sebuah keputusan? Jika beberapa node dapat gagal atau berlaku tidak jujur? Ini adalah sebuah pertanyaan mendasar yang disebut sebagai masalah umum Byzantine, yang melahirkan sebuah konsep yang dinamai Byzantine Fault Tolerance. 


Apakah itu masalah umum Byzantine?

Secara singkat, masalah umum Byzantine dilahirkan pada tahun 1982 sebagai dilema logis yang mengilustrasikan bagaimana sebuah grup umum Byzantine dapat memiliki masalah berkomunikasi untuk setuju dengan pergerakkan mereka selanjutnya.

Dilema ini mengasumsikan bahwa setiap jendral memiliki tentaranya masing-masing dan setiap grup diletakkan dalam lokasi yang berbeda-beda di dalam kota yang hendak mereka serang. Para jendral tersebut butuh setuju apakah mereka menyerang atau mundur. Ini bukan merupakan masalah apakah mereka akan menyerang atau mundur, selama para jendral mencapai konsensus, contoh: setuju akan sebuah keputusan yang akan dilaksanakan sesuai perintah.


Maka dari itu, ada beberapa hal yang harus ditentukan:

  • Setiap jendral harus memutuskan; apakah untuk menyerang atau mundur (ya atau tidak);
  • Setelah setiap keputusan dibuat, keputusan itu tidak dapat diubah;
  • Setiap jendral harus setuju dengan keputusan yang sama dan mengeksekusikannya dalam aturan yang sudah ditetapkan secara bersamaan.

Permasalahan komunikasi yang dijelaskan diatas berkaitan dengan sebuah kenyataan bahwa satu jendral hanya dapat berkomunikasi dengan yang lainnya melalui pesan, yang dikirimkan oleh kurir. Hal yang sama menantang Masalah Umum Byzantine sehingga penyampaian pesan sedikit terhambat, dapat hancur, atau hilang.

terlebih lagi, walaupun pesan tersebut berhasil berhasil terkirim, satu atau lebih jendral dapat memilih (dengan alasan apapun) untuk bertindak jahat dan mengirimkan jawaban yang bertujuan untuk membingungkan jendral lainnya, yang dapat berakibatkan gagalnya penyerangan tersebut.

Jika kita mengaplikasikan dilema tersebut ke dalam konteks blockchain, setiap jendral merepresentasikan sebuah node jaringan dan node tersebut butuh mencapai konsensus dalam kondisi sistem terkini. Dengan kata lain, mayoritas peserta dalam sebuah jaringan tersebar harus setuju dan mengeksekusikan tindakan yang sama untuk menghindari kegagalan total.

Maka dari itu, satu-satunya cara untuk mencapai konsensus untuk jenis sistem terdistribusi seperti ini adalah untuk memiliki ⅔ atau lebih dari node jaringan yang jujur dan dapat diandalkan. Ini juga dapat berarti bahwa jika mayoritas peserta jaringan tersebut memutuskan untuk bertindak jahat, sistem akan sangat rentan terhadap kegagalan dan serangan (seperti serangan 51%).


Byzantine Fault Tolerance (BFT)

Dengan kata lain, Byzantine Fault Tolerance adalah sifat sebuah sistem yang dapat menangkal kegagalan yang disebabkan oleh dilema Masalah Umum Byzantine. Ini juga dapat berarti bahwa sistem BFT dapat terus beroperasi walaupun ada beberapa node yang gagal atau berlaku tidak benar.

Ada beberapa solusi untuk Masalah Umum Byzantine, dan ada juga beberapa cara untuk membangun sebuah sistem BFT. terlebih lagi, ada beberapa cara pendekatan untuk blockchain dapat mencapai BFT dan ini akan membawa kita kepada algoritma konsensus.


Algoritma Konsensus Blockchain

Kami dapat mendefinisi sebuah algoritma konsensus sebagai sebuah mekanisme dimana jaringan blockchain mencapai konsensus. implementasi paling umum adalah Proof of Work (PoW) dan Proof of Stake (PoS). akan tetapi mari kita mengambil Bitcoin sebagai sebuah contoh.

Protokol Bitcoin menentukan aturan utama untuk sistem Bitcoin, dan algoritma konsensus PoW-lah yang menentukan bagaimana aturan tersebut dipatuhi demi tercapainya konsensus (contohnya, pada saat memverifikasi dan memvalidasi transaksi).

Walaupun konsep Proof of Work lebih berumur dibandingkan mata uang digital lainnya, Satoshi Nakamoto mengembangkan sebuah versi modifikasi sebagai sebuah algoritma yang mengizinkan proses pembuatan Bitcoin digunakan sebagai sistem BFT.
Perlu dicatat bahwa algoritma PoW tidak 100% toleran terhadap Byzantine Fault, tetapi dikarenakan sebuah proses penambangan yang sangat memakan biaya dan teknik cryptography di bawahnya, PoW sudah membuktikan dirinya sebagai sebuah implementasi jaringan blockchain yang paling aman dan handal. Dalam hal ini, algoritma konsensus Proof of Work yang di desain oleh Satoshi Nakamoto, dianggap oleh banyak orang sebagai solusi jenius terhadap Byzantine Fault.


Konklusi

Masalah Umum Byzantine adalah sebuah dilema yang menarik yang pada akhirnya melahirkan sistem BFT, yang diaplikasikan secara ekstensif dalam banyak skenario. Selain dalam industri blockchain, sistem BFT juga digunakan di banyak industri lainnya, seperti, penerbangan, antariksa, dan industri energi nuklir.

Dalam konteks mata uang digital, memiliki sebuah komunikasi jaringan yang efisien, bersama dengan mekanisme konsensus yang baik adalah sangat penting untuk untuk ekosistem blockchain manapun. Mengamankan sistem ini adalah sebuah usaha yang tidak ada hentinya, dan algoritma konsensus yang ada saat ini belum dapat mengalahkan beberapa limitasi yang masih dihadapi (seperti penskalaan). Walau begitu, PoW dan PoS adalah sebuah pendekatan yang tidak kalah menarik dibandingkan dengan sistem BFT, dan potensi pengaplikasiannya menginspirasi inovoasi secara luas.