Post
Topic
Board Bahasa Indonesia (Indonesian)
Merits 3 from 2 users
Re: [INFO] Algoritma Konsensus pada Teknologi Blockchain
by
abhiseshakana
on 02/11/2018, 16:00:01 UTC
⭐ Merited by joniboini (2) ,Dermelon (1)
Tahapan sistematis Delegated Proof of Stake

Seperti konsensus PoW dan PoS, jaringan yang digunakan pada DPoS adalah jaringan peer to peer (P2P) dengan beberapa elemen penting seperti : block, transaksi, sistem propagasi, dan node. Semua transaksi yang belum mendapatkan validasi (unconfirmed transaksi) akan masuk kedalam jaringan transaction/memory pool, dimana yang nantinya akan dimasukan dalam sebuah block oleh node delegate sebanyak "N" transaksi (sesuai ketentuan protocol). Sedangkan untuk node-node yang ada didalam jaringan P2P terbagi dari node umum (wallet), node aktif (stake holder), node aktif (witness) dan node aktif (delegate) yang terpilih sebagai pembuat sekaligus validator block.

Untuk menjadi node witness, sebuah node harus memenuhi ketentuan dari protocol yg berlaku dan melakukan registrasi ke jaringan terlebih dahulu. Selanjutnya node-node witness ini nantinya akan mendapatkan voting dari berbagai node stakeholder (wallet aktif yang mempunyai balance didalamnya), dimana masing-masing vote mempunyai nilai berdasarkan dengan jumlah balance yang dimiliki oleh masing-masing node stakeholder. Dalam melakukan voting, node stakeholder dapat memberikan vote kepada berbagai node witness dengan ketentuan 1 vote = 1 witness. Untuk "N" witness tertinggi akan terpilih menjadi node delegate, yang masing-masing node mempunyai hak untuk membuat sebuah blok dengan urutan sesuai peringkat (vote) yang dimiliki dalam 1 periode pemrosesan "N" blocks.

Setelah block selesai diproduksi, maka block dapat didistribusikan ke jaringan blockchain dengan syarat node delegate selaku pembuat block tersebut, mempunyai broadhash yang sama dengan broadhash yang dimiliki oleh "N" node yg dipilih secara random. Broadhash sendiri adalah hash dari gabungan "N" block terakhir (sesuai dengan ketentuan protokol).



Contoh (pelengkap) :

Si A mempunyai balance (Utxo) sebesar 200 coin yg didapatkan dari si C. Lalu si A mengirimkan 100 coin ke si B menggunakan UTXO tersebut. Pada saat si A menekan tombol send maka transaksi ini akan masuk ke jaringan propagasi, dan setelah semua node mengenali transaksi dari si A ini, selanjutnya transaksi tersebut akan masuk ke jaringan transaction/memory pool beserta dengan transaksi-transaksi baru lainnya dengan status Unconfirmed transaction.

Pada saat yang sama, node-node aktif (stakeholder) akan melakukan vote untuk menentukan "N" witness teratas sebagai Node (delegate) terpilih yang akan bertugas untuk memproduksi sebuah block berdasarkan peringkat yang didapat dari vote. Diketahui Node X adalah node delegate dengan urutan paling atas, maka si X akan memulai memproses sebuah block header dengan komponen-komponen sebagai berikut : Version, timestamp, jumlah transaksi yang diambil dari memory pool, previous block id / block hash, payload hash, payload size, amount, delegate pub key (masing-masing altcoin mempunyai protocol yang belum tentu sama).

Setelah elemen yang dibutuhkan pada block header terkumpul, maka si X akan melakukan hashing pada block header tersebut sehingga didapatkan sebuah hash yang akan digunakan sebagai signature. Selanjutnya signature ini akan digabungkan dengan block header kembali dan akan dilakukan hashing untuk didapatkan sebuah block hash (32 bytes) atau sebuah block ID (8 bytes reversed). Pada saat block tersebut selesai dibuat, maka block tersebut akan didistribusikan ke jaringan blockchain dan node X akan menerima reward dari hasil kerjanya. Setelah itu node delegate peringkat ke-2 akan memproses block selanjutnya, sebagaimana yang telah dilakukan oleh node X sebelumnya. Proses pembuatan block-block ini akan terus berjalan sampai "N" witness terpilih (node delegate) selesai memproses keseluruhan block didalam 1 periode.

Sebenarnya sebelum node X memproses sebuah block, ada satu konsensus lagi yang harus dicapai supaya si X dapat melaksanakan tugasnya. Konsensus ini dikenal dengan sebutan Broadhash Consensus.
Broadhash adalah hash dari gabungan 5 block terakhir yg ada didalam jaringan blockchain. Dengan asumsi node-node yang mempunyai record block height sama pada jaringan P2P tersebut, maka bisa dipastikan node-node tersebut juga mempunyai broadhash yang sama. Pada broadhash consensus akan dipilih secara acak sebanyak "N" node sebagai syarat broadhash consensus dijalankan dan pada saat 51% dari node terpilih ini mempunyai broadhash yg sama dengan milik si node X berarti broadhash consensus sudah tercapai. Selanjutnya Node X akan memulai untuk memproses sebuah block seperti yg telah dijelaskan diatas.


Ref : https://lisk.io/documentation
Note : Tahapan sistematis DPoS ini sebagian besar mengacu pada data-data yang didapatkan dari referensi https://lisk.io/documentation. Untuk cryptocurrencies (DPoS) lainnya belum tentu mempunyai protocol dan sistem kerja yang sama. Secara umum, tahapan sistematis diatas bisa dijadikan gambaran kasar bagaimana sistem DPoS itu berjalan.