Penjelasan mengenai Tendermint
BerandaArtikel

Penjelasan mengenai Tendermint

Tingkat Menengah
2w ago
6m

TL;DR

Blockchain yang Anda ketahui dan sayangi memiliki struktur yang cukup kaku. Sebagai seorang pengembang, hal ini memberikan dua pilihan kepada Anda: membangun aplikasi di dalam lingkungan yang membatasi atau melakukan forking pada kodenya dan membuat chain Anda sendiri. Membuat chain sendiri bukanlah hal yang mudah – Anda juga harus memulai jaringan dan mengetahui mekanisme konsensus yang harus digunakan.

Tendermint adalah perangkat lunak sumber terbuka untuk meluncurkan blockchain yang memungkinkan Anda untuk menulis aplikasi dalam bahasa apa pun. Selain itu, blockchain ini dapat berkomunikasi dengan blockchain lain.


Pendahuluan

Membuat jaringan blockchain atau mata uang kripto memerlukan upaya yang jauh lebih besar daripada menginisialisasi database. Tindakan tersebut memerlukan keseimbangan insentif dan pengorbanan yang baik antara keamanan, desentralisasi, dan skalabilitas.

Tentu saja, berbagai pendekatan telah ditelusuri oleh tim-tim yang berusaha untuk membangun ekosistem blockchain terkuat. Di artikel ini, kita akan melihat salah satu pendekatan tersebut: Tendermint.


Hal yang perlu diketahui mengenai Tendermint

Sebagian besar dari Tendermint akan tampak familier jika Anda mengetahui sedikit tentang blockchain. Mari kita rekap beberapa konsep utama sebelum kita mendalami lebih jauh.


Memahami arsitektur blockchain

Tendermint merupakan sejenis tumpukan blockchain. Namun, Bitcoin dan Ethereum merupakan jenis yang sama juga. Ingat, bukan hanya database blockchain saja yang penting, melainkan juga jaringan peer-to-peer dari node, cara interaksinya, dan tindakan yang dapat dilakukan dengan transaksi serta smart contract juga. Tujuannya adalah agar semua orang setuju pada sebuah pernyataan (seperti snapshot dari database), meskipun mereka tidak memercayai orang lain.

Secara umum, blockchain utama saat ini telah memiliki rahasia yang memungkinkan hal ini. Namun, mereka sering kali mengandalkan arsitektur monolitik: konsep rekayasa perangkat lunak yang berarti bahwa komponen saling menyambung dan saling bergantung. Anda tidak dapat mengambil sebagian lalu menyambungkannya ke sesuatu yang lain.

Arsitektur monolitik tidak cocok jika Anda menginginkan fleksibilitas. Dalam model kebalikannya (yaitu, dengan arsitektur modular), Anda dapat menyesuaikan masing-masing komponen tanpa perlu khawatir akan merusak sesuatu. Dengan struktur monolitik, Anda harus memastikan bahwa setiap komponen tetap kompatibel saat Anda meningkatkan salah satunya. 

Setelah memahami perbedaan ini, kita bisa membahas sedikit lebih banyak mengenai protokol Tendermint.


Byzantine fault tolerance (BFT)

Anda mungkin mengetahui bahwa inovasi besar terkait dengan Bitcoin adalah penyelesaian Masalah Byzantine Generals. Kita tidak akan membahas secara mendetail mengenai masalah ini (baca artikel kami mengenai Byzantine fault tolerance jika Anda tertarik). Hal yang perlu Anda ketahui adalah bahwa masalah tersebut mendetailkan skenario yang mengharuskan peserta berkomunikasi dalam keadaan yang terdistribusi. 

Para peserta ini tidak mengetahui apakah orang lain berbohong atau apakah pesan yang dikirim di antara mereka telah dimodifikasi. Sebuah sistem dianggap memiliki Byzantine fault tolerance (BFT) jika peserta dapat bersepakat pada serangkaian fakta, meskipun masalah tersebut ada.

Tentu saja dalam keadaan yang terdesentralisasi, hal ini penting untuk dikerjakan dengan benar. Mata uang kripto yang tidak memiliki Byzantine fault tolerance tidak akan benar-benar berfungsi – Anda memerlukan semacam pihak tersentralisasi yang melakukan koordinasi yang berlawanan dengan tujuannya. Seperti kebanyakan mata uang digital, Bitcoin mengatasi masalah ini dengan menggunakan algoritme konsensus Proof of Work (PoW).


Tiga lapisan blockchain

Kita sudah mengetahui perbedaan antara arsitektur monolitik/modular dan kita juga sudah mengetahui bahwa jaringan mata uang kripto yang terdesentralisasi harus memiliki Byzantine fault tolerance. Mari kita bahas lapisan yang kita temui secara umum dalam sebuah blockchain: lapisan aplikasi, lapisan konsensus, dan lapisan jaringan.

Lapisan konsensus dan jaringan adalah tempat node jaringan berkomunikasi satu sama lain, lalu mencoba untuk bersepakat pada serangkaian fakta. Lapisan aplikasi adalah tempat Anda melakukan berbagai hal – seperti aplikasi terdesentralisasi dan smart contract dalam Ethereum atau transaksi khusus dalam Bitcoin.


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


Tendermint Core

Pertama, ada klarifikasi singkat mengenai istilah ini. Kita akan menggunakan istilah “Tendermint” dan “Tendermint Core” secara bergantian karena kita hanya berfokus pada teknologinya. 

Namun, Tendermint adalah nama perusahaan (yang didirikan oleh pengembang yang menulis ide awalnya, yaitu Jae Kwon), sedangkan Tendermint Core adalah perangkat lunak sebenarnya yang dikerjakan oleh perusahaan tersebut. Secara spesifik, perangkat lunak ini memiliki dua komponen utama: mesin konsensus intinya (Tendermint Core) dan antarmuka aplikasinya (ABCI).

Tendermint Core adalah sebuah sistem yang mencapai fault tolerance. Intinya, Tendermint Core merupakan sebuah komputer besar dan terdistribusi yang menunjukkan pernyataan yang sama kepada semua orang di saat yang sama. Selama setidaknya dua per tiga peserta jujur, semuanya akan berjalan dengan lancar. Namun, semua blockchain memang begitu, bukan? Lalu apa yang membuatnya begitu spesial?

Pertama, mekanisme konsensus yang digunakan adalah jenis Proof of Stake (PoS). Untuk setiap periode, node acak dari rangkaian validator akan dipilih. Kemudian, node tersebut harus mengajukan blok berikutnya (dalam sistem round-robin). Jika validator lainnya setuju, blok yang baru tersebut akan ditambahkan dan chain akan diperbarui. Ketegasannya bersifat instan – tidak seperti Bitcoin atau Ethereum. Tidak perlu menunggu konfirmasi untuk memastikan bahwa transaksi Anda valid.

Namun, bukan hanya itu saja! Arsitektur Tendermint Core bersifat modular dengan lapisan aplikasi yang dipisahkan dari lapisan konsensus dan jaringan. Secara sederhana, hal tersebut berarti bahwa Anda dapat menghubungkan lapisan aplikasi Anda sendiri ke dalam tumpukan. Anda tidak perlu mengkhawatirkan insentif yang merugikan atau algoritme konsensus. 

Fakta ini mungkin tidak terlalu menggairahkan bagi pengguna akhir. Namun bagi pengembang, kemampuan untuk memanfaatkan kerangka kerja yang sudah ada berarti bahwa mereka dapat langsung membangun aplikasi tanpa melakukan bootstrapping pada seluruh jaringan. Data dari blockchain dapat disalurkan ke lapisan yang terintegrasi, sehingga pengembang mampu menulis perangkat lunak dalam bahasa apa pun.

Hal ini dimungkinkan dengan adanya Application Blockchain Interface atau ABCI. Antarmuka ini mirip seperti pin GPIO yang Anda dapatkan di komputer Raspberry Pi. Anda dapat menghubungkan berbagai jenis komponen pihak ketiga dengannya, mulai dari LED hingga sistem penyiram yang rumit untuk tanaman Anda. Sama halnya, ABCI menentukan batasan antara blockchain dan aplikasi yang berjalan di atasnya.


Apa hal yang mengesankan dari Tendermint Core?

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

Untuk mendapatkan contoh nyata terkait tindakan yang dapat dilakukan, Anda cukup melihat Ethermint: proyek yang mengambil codebase Ethereum, melepaskan mekanisme Proof of Work, dan menggabungkan Ethereum Virtual Machine di atas Tendermint.

Hal ini memungkinkan beberapa hal yang menarik. Hal yang pertama adalah pengembang Ethereum dapat melabuhkan smart kontrak mereka ke mesin baru dengan mudah atau menulis kontrak baru dalam bahasa Solidity. Selain menyediakan fungsionalitas Ethereum, Ethermint berfungsi seperti Proof of Stake Ethereum yang memberikan gambaran implementasi Casper di Ethereum 2.0.


Interoperabilitas blockchain

Harapan akan adanya “internet of blockchains” menarik banyak orang pada protokol berbasis Tendermint. Interoperabilitas merupakan tambahan yang sudah lama dinantikan untuk bidang mata uang kripto, karena hal ini berarti bahwa ratusan blockchain dapat menjadi saling kompatibel secara.

Saat ini, sudah ada banyak upaya yang dilakukan terhadap Cosmos SDK, yaitu kerangka kerja sumber terbuka yang memungkinkan siapa pun untuk membuat blockchain publik atau privat yang khusus pada aplikasi. Kemudian, blockchain ini dapat dihubungkan ke jaringan Cosmos yang lebih luas melalui Cosmos Hub, yaitu tempat blockchain tersebut bisa berkomunikasi dengan blockchain lain.

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


Penutup

Sebagai mesin blockchain, Tendermint telah menangkap perhatian sejumlah pemangku kepentingan dalam lingkungan mata uang kripto mulai dari pengembang hingga pengguna akhir. 

Jika terus memiliki daya tarik, perangkat lunak ini sangat mungkin berfungsi sebagai penyokong utama untuk internet of blockchains. Seperti yang sudah kita lihat, sejumlah proyek telah diluncurkan dengan Cosmos SDK untuk mewujudkan visi ini.

Ada pertanyaan lebih lanjut mengenai Tendermint, algoritme konsensus, atau teknologi blockchain secara umum? Kunjungi Ask Academy, yaitu tempat komunitas akan menjawabnya.