-->
ZDIRY-TUFWT-EBONM-EYJ00-IDBLANTER.COM
ZDIRY-TUFWT-EBONM-EYJ00

BLANTERWISDOM105

5 Algoritma Konsensus Dalam Blockchain

12/07/2019

Konsensus

Definisi umum konsensus adalah sebuah frasa untuk menghasilkan atau menjadikan sebuah kesepakatan yang disetujui secara bersama-sama antarkelompok atau individu setelah adanya perdebatan dan penelitian yang dilakukan (mengenai pendapat, pendirian, dan sebagainya). (https://id.wikipedia.org/wiki/Konsensus).

Sedangkan definisi Konsensus dalam teknologi Blockchain ialah suatu perhitungan yang rumit dan kompleks untuk menghasilkan persetujuan secara Bersama-sama (mufakat) dalam melakukan validasi pada suatu transaksi (Block) yang dihasilkan. Jadi intinya konsensus adalah suatu tindakan validasi yang dilakukan oleh beberapa kelompok hingga suatu data diterima atau ditolak.

5 Algoritma Konsensus Blockchain

Algoritma pemrograman adalah urutan atau langkah-langkah untuk menyelesaikan masalah pemrograman komputer. Dalam blockhchain Algoritma pada dasarnya bertujuan untuk menjabarkan segala mekanisme yang harus dilakukan dalam memecahkan sebuah masalah. Karena blockchain memiliki sifat yang terdistribusi, maka dibutuhkan algoritma untuk mencapai konsensus dengan mengurutkan dan merumuskan suatu masalah (data) secara bersama-sama. Sehingga bisa ditetapkan suatu hasil (hash) yang autentik dan valid ke dalam sebuah block di dalam jaringan Blockchain.

Sebetulnya terdapat banyak algoritma yang digunakan dalam blockchain. Namun Agung Panduan hanya membagikan 5 saja yaitu:

Proof Of Work (PoW)

Sebuah protokol yang memiliki fungsi untuk mencegah aktifitas serangan peretas yang menggunakan DDos sehingga sumber daya sistem komputer tidak mengalami lumpuh atau melemah. Konsep POW pertama kali dikenalkan oleh Cynthia Dwork dan Moni Naor pada tahun 1993 dan baru di implementasikan oleh Markus Jakobsson (mata uang Shell) pada tahun 2009.
Sesuai dengan namnya algoritma proof of work (bukti kerja) memerlukan kerja komputasi untuk mencari solusi dan validasi setiap masalah (hash) ke dalam sebuah block lalu didistribusikan ke dalam sebuah buku besar (Ledger) yaitu blockchain.
Untuk mencapai sebuah konsensus, sebuah transaksi harus melewati beberapa proses yang juga melibatkan adanya proses komputasi yang dilakukan oleh beberapa miners, sehingga bisa tercipta sebuah Block yang valid.

Sistem Distribusi konsensus Proof of Work:
  1. Beberapa transaksi yang terjadi pada sebuah wallet yang berfungsi sebagai Full Node (salinan Blockchain) akan di publish pada jaringan (P2P).
  2. Transaksi-transaksi tersebut akan terhubung ke sebuah jaringan yg juga terhubung dengan node Miners.
  3. Semua miner akan melakukan proses komputasi (hash function) untuk menyelesaikan persoalan matematika rumit ini ke dalam sebuah block.
  4. Jumlah maksimal transaksi dalam setiap block tergantung dari protokol yang berlaku.
  5. Setelah masalah (hash) terpecahkan, maka miner yang pertama kali memecahkan masalah ini akan mem-broadcast block baru ke jaringan (P2P).
  6. Node-node (miner-miner) lainnya yang menerima block ini akan melakukan proses verifikasi (validasi).
  7. Setelah block mendapat validasi, maka block ini akan di distribusikan ke dalam blockchain sebagai Block baru yang valid. sehingga Miners yang bertugas sebagai pembuat block valid akan menerima reward.
Beberapa contoh koin yang menggunakan PoW diantaranya adalah:
  • Bitcoin (BTC)
  • Ethereum (ETH)
  • Litecoin (LTC)
  • Monero (XMR)

Proof Of Stake (PoS)

Algoritma konsensus Proof of Stake (PoS) yang dikenalkan oleh Sunny King dan Scott Nadal adalah metode konsensus alternatif yang dianggap murah dan hemat energi pengganti PoW untuk mengatasi besarnya konsumsi daya yang dibutuhkan untuk komputasi dalam proses mining.

Secara garis besar, Staking akan mengunci beberapa jumlah coin (cryptocurrency) sebagai jaminan, didalam sebuah wallet yang menjalankan Full Node dari sebuah blockchain. Jaminan ini sebagai bukti kepemilikan seorang pemegang koin (tokens holder) sebagai fungsi node, dalam berkontribusi didalam jaringan konsensus PoS dengan proses yang dinamakan Forging (menempa koin).

Dalam PoS tidak memerlukan alat mining dan keahlian khusus seperti halnya pada algoritma PoW, besarnya koin yang dihasilkan tergantung dari jumlah staking dalam wallet, dengan kata lain semakin besar simpanan koin yang dimiliki maka semakin banyak pula jumlah koin yang di dapat atau dihasilkan.

Sistem Distribusi konsensus Proof of Stake:
Untuk dapat melakukan forging (minting), maka pemegang token/koin harus mengunci sejumlah koin di dalam walletnya (Full Node) yang terhubung dengan jaringan blockchain.
Pada saat sebuah/beberapa transaksi masuk ke dalam jaringan peer-to-peer. Pembuatan sebuah block (validasi transaksi) dipilih secara Pseudorandom.

Pseudorandom adalah pembangkit deret bilangan acak yang dapat diulang kembali (semu) untuk membuat suatu algoritma yang dapat menyelesaikan suatu masalah komputasi.

Berdasarkan jumlah koin yang di stake dan berapa lama koin tersebut sudah di stake.
Token/Coin Holder dengan jumlah Staking Coin yang besar dan waktu (umur) staking yang lama, mempunyai peluang (kesempatan) lebih tinggi untuk melakukan proses forging pada block berikutnya.
Setelah proses pembuatan block dan proses validasi selesai, maka block ini akan didistribusikan ke dalam jaringan blockchain sebagai block baru yang valid.
Forger (staker) akan menerima reward dari hasil kerjanya dan untuk umur staking coinnya akan direset ulang.
Coin yang menggunakan konsensus Pos ini diantaranya:
  • Blackcoin
  • Peercoin (PPC)
  • NXT
  • Radcoin (RDD)
  • Bitbean (BTB)

Delegated Proof of Stake

DPoS dikenalkan oleh Daniel Larimer pada saat membuat sebuah cryptocurrency yang disebut dengan BitShares pada tahun 2014. Algoritma konsensus ini adalah metode baru sebagai langkah untuk mengamankan sebuah jaringan cryptocurrency yang dapat mencapai sebuah konsensus tanpa memerlukan adanya otoritas terpusat. Prinsip kerjanya hampir sama dengan konsensus Proof of Stake, dimana untuk mencapai konsensus yang valid maka dibutuhkan proses verifikasi dari otoritas yang terdistribusi dan berjalan sesuai dengan protokol yang ada di dalam metode konsensus tersebut.

Jika di dalam PoS pemilihan pembuatan block berdasarkan jumlah dan umur Coin/Token, maka pada DPoS setiap delegasi/witness (pembuat block) akan ditentukan berdasarkan voting. Setiap pemegang koin/token mempunyai suara (vote) yang bisa digunakan untuk memilih satu atau beberapa witness/validator dan dapat memindahkan vote-nya kepada witness lainnya setiap saat. Validator/witness terpilih (diurutkan berdasarkan jumlah vote) akan mempunyai otoritas untuk membuat sebuah block dan mempublikasikannya ke dalam jaringan Blockchain.

Sistem Distribusi konsensus Delegated Proof of Stake:
  1. Setiap transaksi yang terjadi akan dimasukan ke dalam jaringan peer-to-peer.
  2. Token/Coin holder yang menjalankan Full Node (wallet) akan melakukan Vote untuk menentukan beberapa witness/delegasi. Semakin besar jumlah token maka semakin besar juga nilai votenya.
  3. Token/Coin holder bisa melakukan vote terhadap dirinya sendiri apabila Token telah melakukan registrasi menjadi witness (validator) sesuai dengan protokol yang berlaku.
  4. Dalam setiap putaran, masing-masing validator/witness terpilih (jumlah max (N) witness berdasarkan protokol yang berlaku) akan memproses beberapa transaksi ke dalam sebuah block.
  5. Sebelum block valid dibroadcast ke dalam blockchain, urutan rank dari validator/witness akan berubah-ubah sesuai dengan jumlah vote yang didapat.
  6. Setelah block berhasil divalidasi oleh witness/validator, maka masing-masing block akan didistribusikan ke dalam jaringan blockchain berdasarkan urutan rank dari Validator.
  7. Masing-masing Validator (witness) akan menerima reward sesuai protokol yang berlaku.

Algoritma konsensus dPoS digunakan oleh beberapa coin seperti :
  • Dinar Dirham Koin (DDK)
  • Lisk
  • BitShares
  • Steem
  • EOS

Delegated Byzantine Fault Tolerance

Algoritma konsensus ini merupakan langkah untuk mengatasi masalah dari "Byzantine Generals Problem" (BGP). Dengan menggunakan protokol yang hampir sama dengan konsensus Delegated Proof of Stake, diharapkan dapat menanggulangi kekurangan suatu sistem buruk (BGP) di dalam sebuah jaringan, sehingga bisa dicapai suatu konsensus yang valid.

Di dalam konsensus Delegated Byzantine Fault Tolerance ada beberapa entitas yang memiliki peran dan fungsi untuk mencapai sebuah konsensus kerja, sehingga setiap block-block yang dihasilkan dan divalidasi dapat didistribusikan ke dalam jaringan blockchain.
  1. Node (Token/Coin Holder) bertugas sebagai pemilih delegasi dengan menggunakan metode Vote berdasarkan dengan jumlah Token mereka.
  2. Delegasi (Validator) dipilih berdasarkan vote dan juga mempunyai kemampuan untuk melakukan proses verifikasi (validasi) terhadap sebuah block yang akan didistribusikan ke dalam jaringan Blockchain.
  3. Speaker (Pembuat Block) dipilih secara acak dari beberapa calon delegasi yang ada. Speaker bertanggung jawab untuk membuat sebuah block baru yang berisikan data-data transaksi, yang nantinya akan didistribusikan ke dalam jaringan Blockchain setelah melalui proses validasi.

Sistem Distribusi konsensus Delegated Byzantine Fault Tolerance :
  1. Pada beberapa transaksi yang terjadi di dalam jaringan peer-to-peer, maka akan ditindaklanjuti oleh seorang Speaker.
  2. Block producer (speaker) yang dipilih secara random dari beberapa calon delegasi ini akan menciptakan suatu block baru yang akan diusulkan untuk diproses validasi.
  3. Pada saat block tercipta, maka group delegasi akan melakukan proses validasi yang mana membutuhkan N % verifikasi (tergantung ketentuan protokol) supaya block baru ini dianggap valid.
  4. Setelah block mendapatkan jumlah verifikasi sebesar N %, maka block akan didistribusikan ke dalam jaringan blockchain sebagai block baru yang Valid.
  5. Speaker (Block Producer) akan menerima reward sebagai imbalan hasil kerja.

Leased Proof of Stake

Leased Proof of Stake adalah salah satu jenis dari konsensus Proof of Stake. Mekanisme konsensus ini mengambil efektivitas dan efisiensi energi dari PoS dan membuka kesempatan bagi holder koin berjumlah kecil agar tetap mendapatkan keuntungan layaknya berpartisipasi dalam sebuah mining pool. Proyek yang menggunakan mekanisme konsensus ini, beberapa di antaranya adalah Waves dan ShareRing (token).

Seperti yang disebutkan sekilas di atas, algoritma LPoS akan memperbaiki kelemahan pada sistem PoS dimana peluang holder yang memiliki koin dalam jumlah sedikit untuk memenangkan undian sangat kecil. Hal itu dikarenakan jumlah koin yang dimiliki tidak sebesar dengan holder lain, sehingga mereka tidak akan bisa menjadi validator block dan pada akhirnya tidak mendapatkan reward. Pada titik tertentu, LPoS lebih terdesentralisasi daripada DPoS, karena setiap pihak bisa berpartisipasi dengan bentuk leasing.

Beberapa keuntungan yang lain dari LPoS adalah:
  • Koin yang dimiliki holder tidak perlu berpindah tempat. Posisi koin ini tetap ada di dalam wallet si pemilik itu sendiri sehingga aman dari pencurian dkk.
  • Reward secara teoritis bisa didapatkan oleh semua orang, tidak terbatas pada pihak-pihak tertentu seperti DPoS sehingga kesannya sangat sentralistik. Full node juga lebih diuntungkan apabila ada banyak orang yang memutuskan untuk menyewakan koinnya karena kemungkinan terpilih sebagai validator block juga akan lebih besar.
  • Pengelolaan diklaim lebih mudah. Holder hanya perlu memilih node untuk leasing dan bisa kapan saja memutuskan untuk menghentikan leasing yang dimiliki.
  • Beberapa mengatakan bahwa LPoS juga bisa mengatasi masalah peretasan sebesar 51% karena untuk bisa melakukan peretasan maka seorang peretas harus memiliki 51% koin/token dari sebuah proyek, yang ditaksir membutuhkan biaya yang sangat besar dan kerugian yang ditimbulkan juga sangat besar apabila nekat dilakukan. Akan tetapi secara teoritis seorang attacker masih bisa melakukannya, terlebih apabila berhasil membeli sebagian besar koin sejak awal ketika harga masih murah.

Beberapa kelemahan dari LPoS tidak begitu berbeda dengan PoS, di antaranya:

  • Mengalami masalah nothing at stake yang berarti seorang validator memiliki celah untuk dapat memvalidasi semua block yang dia mau untuk mendapatkan reward sebesar-besarnya ketika terjadi fork/branch. Hal ini terjadi karena (L)PoS tidak membutuhkan cost apapun selain pada saat menyimpan koin di wallet. Beberapa cara mengatasinya sudah dirumuskan seperti memberikan hukuman bagi validator yang memvote semua block ketika terjadi fork dst.
  • Berpotensi menghadapi peretasan long range attack. Pada dasarnya peretasan ini mirip dengan 51% pada PoW untuk menulis ulang blockchain. Akan tetapi karena PoS tidak memerlukan biaya yang besar, peretas dapat menulis ulang sampai dengan genesis block. Masalah ini juga telah diselesaikan dengan beberapa solusi, salah satunya adalah dengan membuat validator yang dikenali sehingga bisa diketahui apabila terjadi peretasan.
Share This :

0 Comments