Protokol BFT: PBFT dan Tendermint
Pelajari konsensus Toleransi Kesalahan Bizantium dan cara pemungutan suara kriptografi Tendermint mencapai finalitas.
Protokol BFT: PBFT dan Tendermint adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.
Asal-usul Toleransi Kesalahan Bizantium
Masalah Jenderal Bizantium, yang dirumuskan oleh Lamport, Shostak, dan Pease pada 1982, mengajukan pertanyaan: bisakah sistem terdistribusi mencapai konsensus ketika sebagian peserta mengirim pesan yang saling bertentangan? Masalah ini dinamai berdasarkan para jenderal Bizantium yang harus mengoordinasikan serangan, tetapi mungkin memiliki pengkhianat yang mengirimkan perintah yang saling bertentangan. Suatu sistem disebut Toleran terhadap Kesalahan Bizantium (BFT) jika mencapai konsensus yang benar meskipun terdapat hingga fasa simpul berbahaya dari total 3f+1 simpul. BFT adalah standar emas untuk konsensus blockchain yang memerlukan keamanan dalam kondisi dengan lawan.
PBFT: Toleransi Kesalahan Bizantium Praktis
PBFT (Castro dan Liskov, 1999) adalah protokol BFT praktis pertama yang menunjukkan bahwa BFT dapat beroperasi secara efisien dalam sistem nyata. PBFT beroperasi dalam ronde (periode), masing-masing dengan pemimpin utama yang ditunjuk. Operasi normal berlangsung dalam tiga fase: persiapan awal (pemimpin utama menyiarkan permintaan klien + nomor urutan), persiapan (replika menyiarkan kesepakatan beserta urutannya), dan penerapan (replika menyiarkan konfirmasi penerapan). Permintaan dijalankan setelah sebuah replika mengumpulkan 2f+1 pesan penerapan yang cocok. PBFT menyediakan keamanan dan kelangsungan dengan asumsi kurang dari 1/3 replika bersifat Bizantium.
Kompleksitas Pesan PBFT
Keterbatasan utama PBFT adalah kompleksitas pesan O(n^2) untuk setiap permintaan: masing-masing dari n replika mengirim pesan kepada semua replika lain dalam fase persiapan dan penerapan. Untuk n=100 replika, setiap permintaan menghasilkan sekitar 10.000 pesan. Hal ini membuat PBFT tidak praktis untuk kumpulan validator berukuran besar. Komunitas riset BFT menghabiskan waktu dua dekade untuk memperbaikinya: BFT-SMART mengurangi konstanta, HotStuff mencapai kompleksitas pesan linear melalui model pengiriman ulang oleh pemimpin, dan Tendermint mengadaptasi gagasan PBFT untuk digunakan dalam blockchain publik.
Perubahan Ronde dalam PBFT
Ketika pemimpin utama PBFT dicurigai mengalami kesalahan (batas waktu), replika memicu perubahan ronde. Setiap replika menyiarkan pesan perubahan ronde yang berisi keadaannya (nilai yang telah disiapkan dari ronde lama). Pemimpin utama baru mengumpulkan 2f+1 pesan perubahan ronde, menyusun pesan ronde baru yang membuktikan bahwa transisi keadaan konsisten dengan nilai yang telah diterapkan sebelumnya, lalu menyiarkannya. Perubahan ronde memerlukan banyak biaya—O(n^3) pesan—dan menjadi hambatan praktis. Pengoptimalan seperti sertifikat perubahan ronde PBFT dan desain pemrosesan bertahap HotStuff mengatasinya.
Tendermint: PBFT untuk Blockchain
Tendermint (2014, Kwon; digunakan dalam produksi di Cosmos sejak 2019) mengadaptasi PBFT untuk lingkungan blockchain publik. Tendermint memiliki tiga fase untuk setiap blok: pengusulan (pemimpin menyiarkan blok yang diusulkan), pemungutan suara awal (validator memberikan suara pada usulan), dan pra-komitmen (validator memberikan suara untuk menerapkan blok setelah melihat 2/3 suara awal). Sebuah blok diterapkan ketika validator mengumpulkan 2/3 suara pra-komitmen (sertifikat kuorum). Validator bergiliran menjadi pengusul dalam urutan bergiliran berdasarkan bobot dana yang dipertaruhkan. Jika suatu putaran berakhir karena batas waktu tanpa penerapan, validator maju ke putaran berikutnya dengan suara nihil.
Keamanan dan Kelangsungan Tendermint
Tendermint menyediakan keamanan yang kuat: blok yang telah diterapkan bersifat final dan tidak dapat dibatalkan selama kurang dari 1/3 dana yang dipertaruhkan bersifat Bizantium. Ini adalah finalitas sinkron—tidak ada percabangan setelah penerapan. Kelangsungan memerlukan jaringan yang sinkron secara parsial: protokol membuat kemajuan setelah keterlambatan pesan dibatasi, tetapi tidak memerlukan sinkronisasi secara terus-menerus. Kompromi antara kelangsungan dan keamanan bersifat mendasar: Tendermint mengorbankan kelangsungan (dapat berhenti jika jaringan terpisah) untuk menjamin keamanan, berbeda dari rantai seperti Bitcoin yang mengorbankan keamanan (mengizinkan percabangan sementara) demi kelangsungan.
Penguncian Suara Tendermint
Mekanisme penting dalam Tendermint adalah penguncian suara. Ketika validator mengirim pra-komitmen untuk sebuah blok pada putaran r, validator tersebut terkunci pada blok itu. Pada putaran berikutnya, validator yang terkunci hanya boleh memberikan suara awal untuk blok yang menguncinya (atau suara nihil jika menerima bukti bahwa blok tersebut tidak diterapkan). Hal ini mencegah penerapan yang saling bertentangan di berbagai putaran. Validator hanya dapat membuka kunci jika menerima polka (2/3 suara awal) untuk blok lain pada putaran berikutnya, yang membuktikan bahwa blok awal tidak diterapkan.
IBC Cosmos dan Klien Ringan Tendermint
Komunikasi Antar Rantai Blok (IBC) Cosmos mengandalkan finalitas instan Tendermint untuk transfer antar-rantai. Klien ringan Tendermint melacak kumpulan validator dan penerapan terbaru (tajuk blok ditambah tanda tangan pra-komitmen 2/3). Untuk memverifikasi paket dari rantai A, modul IBC rantai B memverifikasi sertifikat kuorum—bahwa 2/3 validator rantai A menandatangani tajuk blok terkait. Hal ini membuat keamanan IBC bergantung pada jaminan BFT Tendermint: transfer antar-rantai menjadi final segera setelah blok sumber diterapkan.
HotStuff: BFT Linear
HotStuff (Yin dkk., 2018; menjadi dasar LibraBFT/DiemBFT milik Facebook, yang kini digunakan oleh Aptos dan Sui) mencapai kompleksitas pesan O(n) untuk setiap putaran konsensus dengan menggunakan topologi bintang: semua validator mengirim suara kepada pemimpin, pemimpin menggabungkannya menjadi tanda tangan ambang (QC, sertifikat kuorum), lalu menyiarkan QC tersebut. HotStuff menggunakan desain perantaian tiga fase, dengan pembuktian keamanan yang mencakup tiga QC berturut-turut sehingga memungkinkan pemrosesan bertahap. Kompleksitas linear ini membuat HotStuff praktis untuk 100–300 validator, seperti yang diterapkan pada Aptos dan Sui.
BFT dalam Blockchain Perusahaan
Blockchain perusahaan (Hyperledger Fabric, Besu, Quorum) menggunakan konsensus BFT untuk jaringan berizin yang identitas validatornya diketahui. Layanan pengurutan berbasis Raft milik Hyperledger Fabric menyediakan toleransi terhadap kesalahan kerusakan (bukan kesalahan Bizantium) untuk konsorsium tepercaya. Sasaran pencapaian Fabric yang direncanakan adalah SMART, yaitu implementasi berbasis pustaka. R3 Corda menggunakan klaster notaris dengan BFT-SMART untuk mencegah pembelanjaan ganda. Pilihan antara CFT dan BFT mencerminkan asumsi kepercayaan: BFT diperlukan ketika validator mungkin bertindak sebagai lawan, sedangkan CFT cukup ketika validator hanya tidak andal.
Skenario Serangan BFT
Memahami BFT memerlukan pemahaman tentang serangan yang dapat dilawannya dan serangan yang tidak dapat dilawannya. BFT menangani validator yang memberikan suara bertentangan (mengirim pesan yang berbeda kepada rekan yang berbeda) serta validator yang mengalami kerusakan atau tidak merespons. BFT tidak menangani serangan Sybil—penyerang yang mengendalikan 1/3 validator dengan membuat identitas palsu dapat merusak keamanan. Inilah alasan rantai BFT publik menggunakan pembobotan dana Bukti Kepemilikan: memperoleh 1/3 dana yang dipertaruhkan memerlukan biaya nyata sehingga memberikan ketahanan terhadap Sybil. BFT juga mengasumsikan pengiriman pesan pada akhirnya (sinkron parsial)—pemisahan jaringan yang berlangsung lebih lama daripada batas waktu kelangsungan dapat menghentikan rantai.
Kuis Ambang Kesalahan BFT
Berapa fraksi maksimum validator yang dapat bersifat Bizantium dalam protokol BFT standar dengan tetap mempertahankan keamanan?
Ringkasan Protokol BFT
Protokol BFT menjamin konsensus meskipun terdapat hingga 1/3 validator berbahaya. PBFT (1999) membuktikan bahwa BFT dapat diterapkan secara praktis, tetapi memiliki kompleksitas pesan O(n^2). Tendermint mengadaptasi PBFT untuk blockchain dengan finalitas instan dan penguncian suara. HotStuff mencapai kompleksitas O(n) melalui QC tanda tangan ambang dan digunakan dalam Aptos serta Sui. IBC Cosmos menggunakan finalitas instan Tendermint untuk transfer antar-rantai yang terverifikasi. Blockchain perusahaan menggunakan BFT-SMART atau Raft, bergantung pada apakah yang diperkirakan adalah kesalahan Bizantium atau sekadar kerusakan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Protokol BFT: PBFT dan Tendermint” gratis?
Ya — teks lengkap “Protokol BFT: PBFT dan Tendermint” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Protokol BFT: PBFT dan Tendermint”?
Pelajari konsensus Toleransi Kesalahan Bizantium dan cara pemungutan suara kriptografi Tendermint mencapai finalitas. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cryptology Academy?
Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Protokol BFT: PBFT dan Tendermint” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?
Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mekanisme Kriptografi Proof-of-Stake
- Protokol BFT: PBFT dan Tendermint
- Fungsi Acak yang Dapat Diverifikasi dalam Konsensus
- Tanda Tangan BLS dan Skema Tanda Tangan Agregat