Tendermint: Byzantine Fault Tolerance untuk Blockchain dengan Finalitas Instan

Penulis Buchman, Ethan; Kwon, Jae
Tahun 2016
Proyek Tendermint Inc. / Interchain Foundation
Lisensi Apache 2.0
Sumber Resmi atrium.lib.uoguelph.ca — Buchman MSc Thesis
Disclaimer: Halaman ini merupakan ringkasan dan analisis edukatif dari whitepaper atau makalah teknis resmi. Konten ini disajikan untuk tujuan pendidikan semata dan bukan merupakan saran investasi atau keuangan. Selalu baca dokumen asli dan lakukan riset mandiri sebelum mengambil keputusan keuangan apa pun.

“Tendermint: Byzantine Fault Tolerance in the Age of Blockchains” adalah tesis MSc Ethan Buchman (University of Guelph, 2016), dikembangkan bersama Jae Kwon yang menerbitkan paper Tendermint awal pada 2014. Karya ini memformalkan Tendermint sebagai protokol konsensus BFT berbasis ronde dengan finalitas langsung, rotasi validator berbasis proof-of-stake, dan ABCI (Application BlockChain Interface) — arsitektur yang memisahkan mesin konsensus dari logika aplikasi. Tendermint menjadi tulang punggung ekosistem Cosmos dan puluhan blockchain lain.

Publikasi dan Konteks

Sebelum Tendermint, blockchain publik (Bitcoin, Ethereum) menggunakan Nakamoto Consensus — konsensus probabilistik di mana blok menjadi “cukup final” setelah cukup banyak blok berikutnya dibangun di atasnya. Ini berarti finalitas membutuhkan waktu menit hingga jam dan tidak pernah benar-benar absolut. Sistem keuangan tradisional membutuhkan finalitas deterministik.

BFT klasik (PBFT, 1999) mencapai finalitas langsung tetapi memiliki skalabilitas buruk: komunikasi O(n²) antar validator membuatnya tidak praktis untuk lebih dari ~20 node. Tendermint menyeimbangkan BFT dan praktikalitas: finalitas deterministik dalam hitungan detik dengan validator set yang bisa berkisar dari puluhan hingga ratusan node.

Protokol Inti: Struktur Ronde

Tendermint beroperasi dalam ronde. Setiap ronde terdiri dari empat langkah:

  1. Propose: Proposer yang ditunjuk (dipilih berdasarkan round-robin tertimbang stake) menyiarkan proposal blok
  2. Prevote: Semua validator menyiarkan prevote untuk blok yang diusulkan (atau nil jika menduga proposer bermasalah)
  3. Precommit: Validator yang menerima 2/3+ prevote untuk suatu blok menyiarkan precommit untuk blok tersebut
  4. Commit: Validator yang menerima 2/3+ precommit untuk blok yang sama mengkomitnya — blok tersebut final secara permanen

Jika suatu langkah timeout tanpa 2/3+ kesepakatan, ronde bertambah dan proposer baru dipilih. Mekanisme timeout ini memastikan liveness di bawah partial synchrony.

Mekanisme Lock dan Keamanan

Untuk mencegah validator mengkomit blok berbeda di ronde berbeda (equivocation), Tendermint menggunakan mekanisme lock:

  • Saat validator menerima polka (2/3+ prevote) untuk blok B, validator tersebut “terkunci” pada B
  • Validator terkunci hanya bisa prevote atau precommit B di ronde berikutnya — kecuali menerima polka untuk blok berbeda di ronde lebih tinggi
  • Ini mencegah commit ganda bahkan jika jaringan terfragmentasi sementara

Keamanan: Membutuhkan 2/3+ validator jujur berdasarkan bobot stake.
Liveness: Membutuhkan sinkronisasi eventual (jaringan akhirnya mengirimkan pesan).
Finalitas: Langsung — tidak ada reorganisasi, tidak ada fork setelah dikomit.

ABCI: Pemisahan Mesin dari Aplikasi

Kontribusi arsitektur terpenting Tendermint adalah memisahkan konsensus dari aplikasi melalui ABCI (Application BlockChain Interface) — protokol socket yang memungkinkan aplikasi dalam bahasa apa pun berkomunikasi dengan Tendermint:

  • DeliverTx: Mengirimkan transaksi ke aplikasi untuk dieksekusi
  • CheckTx: Memvalidasi transaksi sebelum masuk ke mempool
  • BeginBlock / EndBlock: Menandai awal dan akhir pemrosesan blok
  • Commit: Mengkomit state baru

Cosmos SDK adalah framework Go yang mengimplementasikan ABCI, memungkinkan pengembang membangun blockchain dengan Tendermint consensus tanpa menulis logika konsensus sendiri.

Bukti Kesalahan dan Slashing

Misbehavior validator (menandatangani dua blok berbeda di ronde yang sama — bukti equivocation) dapat dideteksi dan dibuktikan secara on-chain. Validator yang terbukti melakukan equivocation kehilangan sebagian stake mereka (slashing). Insentif kriptoekonomi ini menegakkan perilaku jujur tanpa proof-of-work.

Keterbatasan

  • Finalitas langsung mengorbankan availability: jika 1/3+ validator offline, rantai berhenti (tidak menghasilkan blok baru)
  • Komunikasi O(n²) di antara validator membatasi ukuran set validator praktis (umumnya 100–175 validator)
  • Membutuhkan validator set yang diketahui di muka — tidak cocok untuk lingkungan permissionless murni

Warisan dan Dampak

Tendermint menjadi protokol konsensus untuk Cosmos Hub, Terra, Osmosis, Binance Chain (BSC menggunakan fork), Cronos, dan puluhan chain di ekosistem Cosmos. HotStuff (digunakan oleh Diem/Libra Facebook) dan Casper FFG Ethereum terinspirasi sebagian dari Tendermint. CometBFT (fork komunitas Tendermint, 2023) melanjutkan pengembangan aktif.

Istilah Terkait

Referensi

  • Buchman, Ethan. “Tendermint: Byzantine Fault Tolerance in the Age of Blockchains,” MSc Thesis, University of Guelph, 2016
  • Tesis lengkap (PDF)