Practical Byzantine Fault Tolerance (PBFT)
Apa Itu Practical Byzantine Fault Tolerance (PBFT)?
Practical Byzantine Fault Tolerance (PBFT) adalah algoritma konsensus yang dirancang untuk bekerja secara efisien dalam sistem asinkron (tidak ada asumsi tentang waktu) dan dioptimalkan agar latensinya rendah.
Pertama kali diperkenalkan oleh Miguel Castro dan Barbara Liskov dalam penelitian tahun 1999, algoritma PBFT adalah bentuk replikasi state machine (mesin keadaan). Artinya, keadaan sistem direplikasi dan didistribusikan ke beberapa server. Dengan begitu, sistem menjadi makin tangguh karena kegagalan seperti kesalahan Byzantine dapat diisolasi sehingga tidak menyebabkan kegagalan pada seluruh jaringan.
Cara Kerja Algoritma PBFT
Pada dasarnya, node pada sistem PBFT diatur secara berurutan, satu node dianggap sebagai node utama (pemimpin) dan node lainnya sebagai cadangan. Namun, semua node dalam jaringan tetap menjaga komunikasi. Tujuannya adalah agar semua node jujur mencapai kesepakatan mengenai keadaan sistem melalui aturan mayoritas.
Agar sistem PBFT dapat berfungsi, jumlah maksimum node nakal tidak boleh lebih besar dari atau sama dengan sepertiga dari semua node dalam sistem. Setiap putaran konsensus PBFT (biasanya disebut “tampilan”) dirangkum dalam empat fase sederhana:
- Klien mengirim permintaan operasi layanan ke node utama (pemimpin).
- Node utama mendistribusikan permintaan ini ke semua replika cadangan pada saat yang sama.
- Replika mengeksekusi permintaan dan mengirim balasan kepada klien.
- Klien menunggu balasan dari berberapa replika berbeda dengan hasil serupa.
Node utama mengubah setiap tampilan, yang dapat diganti dengan protokol ‘perubahan tampilan’ jika permintaan tidak disebarkan setelah periode tertentu. Selain itu, jika node utama bermasalah, node ini dapat dihapus dengan persetujuan mayoritas node jujur.
Contoh platform yang menggunakan varian PBFT adalah Zilliqa, Hyperledger, dan Tendermint.
Poin Utama
Practical Byzantine Fault Tolerance (PBFT) adalah algoritma yang mencegah kesalahan Byzantine dalam lingkungan asinkron dan mengoptimalkan latensi yang rendah.
