TL;DR

Blockchain yang Anda kenal dan sukai memiliki struktur yang cukup kaku. Sebagai pengembang, ini memberi Anda dua pilihan: membangun aplikasi di dalam lingkungan yang terbatas atau membagi kode dan membuat rantai Anda sendiri. Namun, membuat rantai Anda sendiri tidaklah mudah – Anda juga perlu memulai sebuah jaringan dan mencari tahu mekanisme konsensus apa yang akan digunakan.

Tendermint adalah perangkat lunak sumber terbuka untuk meluncurkan blockchain yang memungkinkan Anda menulis aplikasi dalam bahasa apa pun. Lebih baik lagi, mereka dapat berkomunikasi dengan blockchain lain.


Perkenalan

Membuat jaringan mata uang kripto atau blockchain membutuhkan lebih banyak upaya daripada sekadar menginisialisasi database. Hal ini memerlukan keseimbangan yang baik antara insentif dan trade-off antara keamanan, desentralisasi, dan skalabilitas.

Tidak mengherankan, serangkaian pendekatan berbeda telah dieksplorasi oleh tim yang ingin membangun ekosistem blockchain terkuat. Dalam artikel ini, kita akan melihat salah satu pendekatan tersebut: Tendermint.


Apa yang perlu Anda ketahui tentang Tendermint

Sebagian besar Tendermint akan terasa familier jika Anda tahu sedikit tentang blockchain. Mari kita rekap beberapa konsep utama sebelum kita mempelajarinya lebih jauh.


Memahami arsitektur blockchain

Tendermint adalah sejenis tumpukan blockchain. Selain itu, hal-hal seperti Bitcoin dan Ethereum juga demikian. Ingat, ini bukan hanya tentang database blockchain itu sendiri, tetapi tentang jaringan node peer-to-peer, bagaimana mereka berinteraksi, dan hal-hal menyenangkan yang dapat Anda lakukan dengan transaksi dan juga kontrak pintar. Tujuannya di sini adalah agar semua orang menyetujui suatu keadaan (seperti cuplikan database), meskipun mereka tidak mempercayai orang lain.

Sebagian besar, blockchain besar saat ini telah menciptakan saus rahasia yang memungkinkan hal ini terjadi. Namun, mereka sering kali mengandalkan arsitektur monolitik: sebuah konsep rekayasa perangkat lunak yang berarti komponen-komponen saling berhubungan dan saling bergantung. Anda tidak bisa hanya mengambil sebagian dan menyambungkannya ke benda lain.

Arsitektur monolitik tidak bagus jika Anda menginginkan fleksibilitas. Dalam model yang berlawanan (dengan arsitektur modular), Anda dapat mengubah masing-masing komponen tanpa khawatir akan merusak apa pun. Dengan struktur monolitik, Anda perlu memastikan bahwa setiap komponen tetap kompatibel saat Anda mengupgrade satu komponen.

Sekarang setelah kita memahami perbedaan ini, kita dapat berbicara lebih banyak tentang protokol Tendermint.


Toleransi kesalahan Bizantium (BFT)

Anda mungkin tahu bahwa inovasi besar Bitcoin adalah memecahkan sesuatu yang disebut Masalah Jenderal Bizantium. Kami tidak akan membahas masalah ini secara spesifik (lihat artikel kami tentang toleransi kesalahan Bizantium jika Anda tertarik). Yang perlu Anda ketahui adalah bahwa ini merinci skenario di mana peserta harus berkomunikasi dalam lingkungan terdistribusi.

Peserta ini tidak mengetahui apakah orang lain berbohong atau apakah pesan yang dikirim di antara mereka sedang diubah. Suatu sistem dikatakan memiliki toleransi kesalahan Bizantium (BFT) jika peserta dapat menyepakati serangkaian fakta, bahkan dengan adanya masalah tersebut.

Tentu saja, dalam lingkungan yang terdesentralisasi, melakukan hal ini dengan benar sangatlah penting. Mata uang kripto yang tidak toleran terhadap kesalahan Bizantium tidak benar-benar berfungsi – Anda memerlukan semacam koordinasi pihak terpusat, yang tidak mencapai tujuan tersebut. Seperti banyak mata uang digital lainnya, Bitcoin mengatasi hal ini dengan menggunakan algoritma konsensus Proof of Work (PoW).


Tiga lapisan blockchain

Jadi kita tahu perbedaan antara arsitektur monolitik/modular, dan kita tahu bahwa jaringan mata uang kripto yang terdesentralisasi harus toleran terhadap kesalahan Bizantium. Mari kita sebutkan lapisan-lapisan yang biasanya kita lihat di blockchain: lapisan aplikasi, lapisan konsensus, dan lapisan jaringan.

Lapisan konsensus dan jaringan adalah tempat Anda memiliki node jaringan yang berbicara satu sama lain, dan mencoba menyepakati serangkaian fakta. Lapisan aplikasi adalah tempat Anda dapat melakukan berbagai hal sendiri – bayangkan aplikasi terdesentralisasi dan kontrak pintar di Ethereum atau transaksi khusus di Bitcoin.


➟ Ingin memulai dengan mata uang kripto? Beli Bitcoin (BTC) di Binance!


Inti Tendermint

Pertama, klarifikasi singkat tentang terminologi. Kami akan menggunakan istilah “Tendermint” dan “Tendermint Core” secara bergantian di sini karena kami hanya berfokus pada teknologi.

Namun, Tendermint adalah nama perusahaannya (didirikan oleh pengembang yang menulis whitepaper asli, Jae Kwon), sedangkan Tendermint Core adalah perangkat lunak sebenarnya yang digunakan perusahaan tersebut. Lebih khusus lagi, perangkat lunak ini memiliki dua komponen utama: mesin konsensus intinya (Tendermint Core) dan antarmuka aplikasinya (ABCI).

Tendermint Core adalah sistem yang mencapai toleransi kesalahan. Intinya, ini adalah komputer terdistribusi besar yang menunjukkan keadaan yang sama kepada semua orang pada waktu yang sama. Selama setidaknya dua pertiga peserta jujur, semuanya berjalan lancar. Tapi itu hampir semua blockchain, bukan? Apa yang membuatnya begitu istimewa?

Pertama, mekanisme konsensus yang digunakan adalah Proof of Stake (PoS). Untuk setiap periode, node acak dari kumpulan validator dipilih. Node tersebut kemudian harus mengusulkan blok berikutnya (dalam sesuatu yang disebut sistem round-robin). Jika validator lain menyukainya, maka blok baru ditambahkan, dan rantai diperbarui. Finalitasnya instan – tidak seperti Bitcoin atau Ethereum, tidak perlu menunggu konfirmasi untuk memastikan bahwa transaksi Anda valid.

Tapi tunggu, masih ada lagi! Arsitektur Tendermint Core bersifat modular, dengan lapisan aplikasi terpisah dari lapisan konsensus dan jaringan. Dalam bahasa Inggris yang sederhana, itu berarti Anda dapat memasukkan lapisan aplikasi Anda sendiri ke dalam tumpukan. Tidak perlu khawatir tentang insentif yang mengganggu atau algoritma konsensus.

Mungkin ini tidak terlalu menarik bagi pengguna akhir. Namun bagi pengembang, kemampuan untuk memanfaatkan kerangka kerja yang ada berarti mereka dapat langsung membangun aplikasi tanpa melakukan bootstrap pada keseluruhan jaringan. Data dari blockchain dapat disalurkan ke lapisan terintegrasi, memungkinkan pengembang untuk menulis perangkat lunak dalam bahasa apa pun.

Keajaiban terjadi dengan sesuatu yang disebut Antarmuka Blockchain Aplikasi, atau sederhananya, ABCI. Anggap saja ini seperti pin GPIO yang Anda dapatkan di komputer Raspberry Pi. Anda dapat menghubungkan semua jenis komponen pihak ketiga ke dalamnya, mulai dari LED hingga sistem sprinkler yang rumit untuk tanaman Anda. Dengan cara yang sama, ABCI mendefinisikan batas antara blockchain dan aplikasi yang berjalan di atasnya.


Apa hebatnya Tendermint Core?

Pemisahan antarmuka aplikasi dan mekanisme konsensus memungkinkan fleksibilitas yang lebih besar untuk berbagai aplikasi terdesentralisasi untuk memasukkan bahasa pemrograman apa pun ke dalam logika bisnisnya.

Untuk contoh nyata tentang apa yang dapat dilakukan, Anda hanya perlu melihat ke Ethermint: sebuah proyek yang mengambil basis kode Ethereum, menghapus mekanisme Proof of Work, dan memasang Mesin Virtual Ethereum di atas Tendermint.

Hal ini memungkinkan beberapa hal menarik. Yang pertama adalah pengembang Ethereum dapat memindahkan kontrak pintar mereka ke mesin baru dengan mudah, atau menulis kontrak baru dalam bahasa Soliditas. Selain menyediakan fungsionalitas Ethereum, Ethermint bertindak seperti Proof of Stake Ethereum, memberi kita gambaran sekilas tentang seperti apa implementasi Casper di Ethereum 2.0.


Interoperabilitas blockchain

Janji “internet dari blockchain” inilah yang menarik banyak orang ke protokol berbasis Tendermint. Interoperabilitas adalah tambahan yang telah lama ditunggu-tunggu pada ruang mata uang kripto, karena ini berarti bahwa ratusan blockchain individu akan menjadi kompatibel secara silang.

Saat ini, banyak pekerjaan telah dilakukan pada Cosmos SDK, sebuah kerangka kerja sumber terbuka yang memungkinkan siapa pun membuat blockchain publik atau pribadi khusus aplikasi. Blockchain ini kemudian dapat dihubungkan ke jaringan Cosmos yang lebih luas, melalui sesuatu yang disebut Cosmos Hub, tempat mereka dapat berkomunikasi dengan orang lain.

Banyak proyek populer telah dibangun dengan Cosmos SDK, seperti BNB Smart Chain (BSC), KAVA, Band Protocol, Terra, dan IRISnet.


Sebagai mesin blockchain, Tendermint telah menarik perhatian banyak pemangku kepentingan di bidang mata uang kripto, mulai dari pengembang hingga pengguna akhir.

Jika perangkat lunak ini terus mendapatkan daya tarik, maka perangkat lunak ini dapat berfungsi sebagai tulang punggung bagi internet blockchain. Seperti yang telah kita lihat, beberapa proyek telah diluncurkan dengan Cosmos SDK untuk mewujudkan visi ini.