Mekanisme konsensus terbaik selalu yang sesuai dengan kebutuhan pengguna.
Pembicara: Uchiha Madara
EDIT: Puff
Sumber: Deschool
Artikel ini adalah catatan pelajaran dari pelajaran ketiga kursus web3 universitas DeSchool, dan pengajarnya adalah Uchiha Madara. Isinya terlalu kering dan tidak tercampur air, disarankan untuk mengumpulkannya dan mencernanya perlahan. Selain itu, untuk memudahkan pemahaman, artikel ini memiliki beberapa modifikasi dan tambahan berdasarkan isi mata kuliah.
Dalam komunikasi dan pembelajaran blockchain, "algoritme konsensus" adalah kosa kata yang sangat sering disebutkan. Justru karena adanya algoritma konsensus, kredibilitas blockchain dapat dijamin.
**1. Mengapa kita membutuhkan mekanisme konsensus? **
Yang disebut konsensus berarti banyak orang mencapai kesepakatan. Hidup kita penuh dengan mekanisme konsensus, misalnya sebuah perusahaan membutuhkan pemegang saham untuk berdiskusi secara kolektif untuk mengambil keputusan, dan Pihak A dan Pihak B perlu duduk dan bernegosiasi untuk menandatangani kontrak. Proses ini merupakan proses mencapai mufakat.
Dalam sistem blockchain, yang harus dilakukan oleh setiap node adalah membuat buku besarnya sesuai dengan buku besar node lainnya. Jika dalam skenario terpusat tradisional, ini hampir tidak menjadi masalah, karena ada server pusat, yang disebut pustaka master, dan pustaka budak lainnya dapat diselaraskan dengan pustaka master.
Tetapi dalam manajemen yang terdesentralisasi, tidak ada bos, jadi bagaimana seharusnya keputusan dibuat? Saat ini, seperangkat algoritma diperlukan untuk memastikan konsensus. Inilah yang akan dibahas dalam artikel ini - mekanisme konsensus.
**2. Bagaimana mekanisme konsensusnya? **
Mekanisme konsensus (Mekanisme Konsensus) menyelesaikan verifikasi dan konfirmasi transaksi dalam waktu yang sangat singkat melalui pemungutan suara node khusus; untuk transaksi, jika beberapa node dengan kepentingan yang tidak relevan dapat mencapai konsensus, kita dapat menganggap bahwa seluruh jaringan Ada juga konsensus tentang ini.
Meskipun konsensus (Konsensus) dan konsistensi (Konsistensi) dianggap kira-kira setara dalam banyak skenario aplikasi, ada perbedaan halus dalam artinya: Penelitian konsensus berfokus pada proses dan algoritme node terdistribusi yang mencapai konsensus, sedangkan penelitian Konsistensi berfokus pada stabil keadaan akhirnya dicapai dalam proses konsensus simpul; selain itu, sebagian besar penelitian konsensus terdistribusi tradisional tidak mempertimbangkan masalah toleransi kesalahan Bizantium, yaitu, diasumsikan bahwa tidak ada simpul Bizantium yang secara jahat mengutak-atik atau memalsukan data. Lagi pula, dalam jaringan blockchain yang benar-benar terbuka dan transparan, tidak ada jaminan bahwa semua node tidak akan berbuat jahat.
**3. Masalah apa yang dapat diselesaikan oleh mekanisme konsensus? **
Mekanisme konsensus dapat memecahkan masalah kepercayaan dalam sistem terdistribusi dan memastikan konsistensi dan keamanan data di antara node. Dalam sistem terdistribusi tradisional, karena tidak ada mekanisme kepercayaan antar node, sistem ini rentan terhadap serangan dan gangguan oleh node berbahaya, yang mengakibatkan sistem crash atau gangguan data. Selain itu, sebelum munculnya teknologi enkripsi blockchain, mata uang digital terenkripsi, seperti aset lainnya, dapat direplikasi tanpa batas. Tanpa agen perantara terpusat, orang tidak memiliki cara untuk memastikan apakah sejumlah uang digital telah dibelanjakan.
Sederhananya, mekanisme konsensus dapat secara efektif menyelesaikan dua masalah: masalah pembelanjaan ganda (sejumlah uang dihabiskan dua kali) dan masalah umum Bizantium (node berbahaya mengutak-atik data).
4. Serangan pembelanjaan ganda
** **
Mekanisme konsensus dapat menyelesaikan serangan pembelanjaan ganda sampai batas tertentu: yaitu, sejumlah uang dibelanjakan dua kali atau lebih dari dua kali, disebut juga "pembelanjaan ganda". Dalam permainan kucing-dan-tikus, Xiao Lizi melakukan perilaku pembelanjaan ganda dengan membuat cek palsu, karena verifikasi cek membutuhkan waktu, dia menggunakan informasi dari cek yang sama untuk membeli barang berkali-kali dalam perbedaan waktu ini.
Seperti yang kita semua tahu, node blockchain selalu menganggap rantai terpanjang sebagai yang benar dan terus bekerja dan memperluasnya. Jika dua node menyiarkan versi berbeda dari blok baru pada saat yang sama, pekerjaan akan dilakukan berdasarkan blok yang diterima terlebih dahulu, tetapi rantai lainnya juga akan disimpan jika yang terakhir menjadi rantai terpanjang. Tunggu hingga proof-of-work berikutnya ditemukan, dan salah satu rantai terbukti lebih panjang, kemudian node yang bekerja pada rantai cabang lainnya akan berpindah kamp.
Bagaimana pengeluaran ganda tercapai? Dibagi menjadi dua situasi:
**(1) Pembelanjaan ganda sebelum konfirmasi. **Transaksi yang belum terkonfirmasi mungkin belum ditulis ke blockchain pada akhirnya. Kecuali jumlahnya kecil, yang terbaik adalah menghindari pengeluaran ganda seperti itu dengan setidaknya menunggu konfirmasi.
**(2) Pembelanjaan ganda setelah konfirmasi. **Hal ini memerlukan pengendalian lebih dari 50% daya komputasi untuk diterapkan. Artinya, mirip dengan garpu kecil, menempatkan transaksi untuk toko ke dalam blok anak yatim. Pengeluaran ganda semacam ini setelah konfirmasi sulit diterapkan, tetapi hanya layak secara teori.
** Ada tiga serangan pembelanjaan ganda yang paling umum: serangan 51%, serangan balapan, dan serangan Finney. **
Serangan 51%: Serangan 51% adalah ketika seseorang atau kelompok memperoleh kendali atas 51% kekuatan hashing dari blockchain, yang berarti mereka memiliki kemampuan untuk mengendalikan beberapa aspek proyek. Pada blockchain proof-of-work seperti Bitcoin, ini akan dicapai dengan mendapatkan kendali atas kekuatan penambangan jaringan. Di sisi lain, untuk blockchain proof-of-stake seperti Cardano, ini akan dicapai dengan mengendalikan 51% dari token yang dipertaruhkan.
Race Attack: Seorang pengguna mengirim dua transaksi ke dua pedagang (atau pedagang dan pengguna) pada saat yang bersamaan. Oleh karena itu, penyerang menerima dua set barang atau menerima barang dan memulihkan biaya transaksi awal.
Serangan Finney: Seorang penambang menambang satu blok atau serangkaian blok yang berisi transaksi yang mentransfer uang ke alamatnya sendiri. Blok yang ditambang tidak dipublikasikan, tetapi disimpan sementara penambang mentransfer uang ke pedagang. Pedagang kemudian melepaskan barang yang dibayar penambang sebelum penambang menerbitkan blok yang telah mereka gali. Penambang kemudian menerbitkan blok yang telah digali, yang akan menghapus transfer ke pedagang dan membiarkan pedagang membayarnya sendiri.
Kasus klasik serangan bunga ganda:
Pada tahun 2018, penyerang menguasai lebih dari 51% daya komputasi di jaringan BTG. Selama periode pengendalian daya komputasi, ia mengirimkan sejumlah BTG ke dompetnya di bursa. Cabang ini diberi nama cabang A. Pada saat yang sama, kirim BTG ini ke dompet lain yang Anda kendalikan sendiri, dan cabang ini diberi nama cabang B. Setelah transaksi di cabang A terkonfirmasi, penyerang langsung menjual BTG untuk mendapatkan uang tunai. Selanjutnya, penyerang menambang di cabang B. Karena ia menguasai lebih dari 51% daya komputasi, panjang cabang B akan segera melebihi panjang cabang A, dan cabang B akan menjadi rantai utama. diputar kembali untuk mengembalikan keadaan sebelumnya. BTG yang ditukar penyerang dengan uang tunai sebelum dikembalikan ke tangannya sendiri, dan BTG ini adalah kerugian dari pertukaran tersebut. Dengan cara ini, penyerang, yang mengandalkan lebih dari 50% kontrol daya komputasi, menyadari "pengeluaran ganda" dari mata uang kripto yang sama.
5. Kegagalan Bizantium
** **
Masalah Jenderal Bizantium adalah masalah hipotetis yang diajukan oleh Leslie Lamport pada 1980-an. Bizantium adalah ibu kota Kekaisaran Romawi Timur, karena luasnya wilayah Kekaisaran Romawi Bizantium pada waktu itu, garnisun masing-masing pasukan berjauhan, dan para jenderal hanya dapat menyampaikan pesan melalui utusan. Jika terjadi perang, para jenderal harus mengembangkan rencana aksi terpadu.
Namun, ada pengkhianat di antara para jenderal ini, yang berharap merusak rencana aksi yang konsisten dari para jenderal yang setia dengan mempengaruhi perumusan dan penyebarluasan rencana aksi terpadu tersebut. Oleh karena itu, para jenderal harus memiliki kesepakatan metode yang telah ditentukan, sehingga semua jenderal yang setia dapat menyetujuinya. Dan segelintir pengkhianat tidak bisa membuat jenderal yang setia membuat rencana yang salah. Dengan kata lain, inti dari masalah para jenderal Bizantium adalah menemukan cara untuk membuat para jenderal membuat konsensus tentang rencana pertempuran di lingkungan yang tidak saling percaya dengan para pengkhianat.
Dalam sistem terdistribusi, terutama di lingkungan jaringan blockchain, juga mirip dengan lingkungan umum Bizantium, ada server normal (mirip dengan jenderal Bizantium yang setia), ada server yang rusak, dan server penyabot (mirip dengan jenderal Bizantium pengkhianat). Inti dari algoritma konsensus adalah untuk membentuk konsensus tentang keadaan jaringan di antara node normal. Jika hanya ada 3 simpul, masalah jendral Bizantium tidak dapat diselesaikan. Ketika ada x simpul masalah di simpul dan poin yang dijumlahkan kurang dari 3x+1, masalah jendral Bizantium tidak memiliki solusi.
Munculnya Bitcoin dengan mudah memecahkan masalah ini, menambah biaya pengiriman informasi, mengurangi kecepatan pengiriman informasi, dan menambahkan elemen acak sehingga hanya satu jenderal yang dapat menyiarkan informasi dalam jangka waktu tertentu. Jenderal pertama yang menyiarkan pesan adalah komputer pertama yang menemukan hash yang valid, dan selama jenderal lain menerima dan memverifikasi hash yang valid ini dan informasi yang menyertainya, mereka hanya dapat memperbaruinya dengan salinan informasi baru dari buku besar, dan kemudian menghitung ulang nilai hash. Jenderal berikutnya yang menghitung nilai hash efektif dapat melampirkan informasi terbarunya ke nilai hash efektif dan menyiarkannya ke semua orang. Perlombaan perhitungan hash kemudian dimulai kembali dari titik awal yang baru. Karena sinkronisasi informasi jaringan yang berkelanjutan, semua komputer di jaringan menggunakan versi buku besar yang sama.
02 Klasifikasi Algoritma Konsensus
1. Sejarah Mekanisme Konsensus
Ketika komputer dan jaringan menjadi populer pada 1980-an dan 1990-an, basis data bersama muncul sehingga banyak pengguna dapat mengakses informasi yang mereka simpan. Sebagian besar memiliki database pusat yang dapat diakses pengguna dari berbagai situs. Pengaturan ini berkembang menjadi jaringan terpusat di mana administrator memberikan izin pengguna dan menjaga integritas data.
Basis data bersama ini dikenal sebagai buku besar terdistribusi karena mencatat informasi dan terhubung ke jaringan untuk diakses oleh banyak pengguna di lokasi yang berbeda. Salah satu masalah terpenting yang harus ditangani adalah mencegah perusakan data dan akses tidak sah, berbahaya atau tidak. Sebuah cara untuk mengotomatisasi manajemen basis data terdistribusi diperlukan untuk memastikan data tidak berubah.
Kebutuhan ini telah menyebabkan terciptanya konsensus otonom terdistribusi, di mana program pada jaringan menggunakan kriptografi untuk menyepakati status database. Protokol dirancang untuk dicapai dengan menggunakan algoritme kriptografi untuk membuat rangkaian panjang angka alfanumerik (hash), yang kemudian diverifikasi oleh program yang berjalan di jaringan. Hash hanya berubah ketika informasi yang dimasukkan ke dalam algoritme hashing berubah, sehingga program dirancang untuk membandingkan hash untuk memastikan kecocokannya.
Ketika setiap program yang berjalan di jaringan telah membuat string hash yang cocok, data tersebut dikatakan telah mencapai konsensus di seluruh jaringan. Dengan demikian, mekanisme konsensus dibuat, biasanya mengkredit pencipta Bitcoin anonim Satoshi Nakamoto. Namun, banyak orang mengerjakan mekanisme konsensus selama bertahun-tahun sebelum Satoshi merilis buku putih yang membuat Bitcoin terkenal.
Ilmuwan data dan komputer seperti Moni Naor, Cynthia Dwork, Adam Beck, Nick Szabo, dan banyak lainnya bekerja dan berkontribusi pada pengembangan mekanisme konsensus jaringan.
2 Klasifikasi Algoritma Konsensus
Menurut berbagai jenis toleransi kesalahan, algoritme konsensus dapat dibagi menjadi dua kategori: algoritme konsensus CFT (toleransi kesalahan non-Bizantium, yaitu, node berbahaya tidak dipertimbangkan) dan algoritme konsensus BFT (toleransi kesalahan Bizantium, yang adalah, node berbahaya dianggap).
Apakah akan mentolerir Byzantium menandai apakah algoritme dapat diterapkan ke jaringan dengan kepercayaan rendah. Secara umum, algoritma toleransi kesalahan Bizantium harus digunakan di lingkungan rantai publik, sedangkan di rantai aliansi, dapat dipilih sesuai dengan tingkat kepercayaan antara peserta aliansi.Jika tingkat kepercayaan tinggi, semua orang adalah node itikad baik secara default dan dapat menggunakan algoritma CFT (non-Byzantine fault-tolerant).
**Selain itu, dapat dibagi menjadi dua kategori menurut konsistensi: **algoritma konsensus probabilitas dan algoritme konsistensi absolut. Algoritma konsensus probabilistik berarti bahwa di antara node terdistribusi yang berbeda, ada kemungkinan besar untuk memastikan bahwa data antar node konsisten, tetapi masih ada kemungkinan tertentu bahwa data antara beberapa node tidak konsisten. Misalnya, Proof of Work (PoW), Proof of Stake (PoS), dan Delegated Proof of Stake (DPoS) adalah semua algoritme konsensus probabilistik.
Algoritme konsistensi absolut berarti bahwa pada suatu saat, data antara node terdistribusi yang berbeda akan tetap benar-benar konsisten, dan tidak akan ada inkonsistensi data antara node yang berbeda. Misalnya, algoritme PAXOS dan algoritme RAFT turunannya.
Berikut ini adalah pembagian dan pengenalan khusus sesuai dengan jenis toleransi kesalahan.
Algoritma Konsensus 3CFT
Error non-Bizantium Crash Fault Tolerance: cocok untuk jaringan dengan tingkat kepercayaan node yang tinggi. Termasuk Paxos, Rakit.
Algoritma Konsensus 4BFT
Memeriksa apakah node memiliki kesalahan Bizantium yang berbahaya cenderung ke struktur terdesentralisasi, termasuk bukti kerja (PoW), bukti kepemilikan (PoS), bukti kepemilikan yang didelegasikan (DPoS), bukti otoritas (PoA), dll.
03 Penjelasan Detail Algoritma Konsensus
Apakah sedikit lelah melihat ini, klik favorit, istirahat dan lanjutkan menggerogoti bagian tersulit dari artikel ini! Siswa dengan waktu terbatas dapat memulai langsung dari algoritma PoW ketiga.
Algoritma 1Paxos
** **
**Pengenalan algoritme: **Pada tahun 1990, algoritme Paxos adalah algoritme konsensus terdistribusi berdasarkan penyampaian pesan yang diusulkan oleh Lamport, dan memenangkan Turing Award 2013. Sejak munculnya Paxos, ia terus memonopoli algoritme konsensus terdistribusi, terutama memecahkan cara mencapai konsensus pada nilai tertentu dalam sistem terdistribusi. Proses konsensus dari algoritme Paxos adalah Pengusul mengajukan proposal untuk mendapatkan dukungan dari sebagian besar Penerima. Saat proposal menerima lebih dari setengah dukungan, proposal akan mengirimkan hasil akhir ke semua node untuk konfirmasi. Selama proses ini, jika Pengusul gagal, itu dapat diselesaikan dengan memicu mekanisme timeout.Jika Pengusul dari setiap putaran proposal baru gagal, sistem tidak akan pernah dapat mencapai konsensus. Tetapi kemungkinan ini sangat kecil.
Protokol Paxos Dasar awal rumit dan relatif tidak efisien, sehingga versi Paxos yang lebih baik diusulkan kemudian. Misalnya: Fast Paxos, Multi-Paxos dan Byzanetine Paxos, dll.
**Use case: **ZooKeeper
**Prinsip algoritme: **Algoritme Paxos berjalan dalam sistem asinkron yang memungkinkan waktu henti dan kegagalan, tidak memerlukan pengiriman pesan yang andal, dan dapat mentolerir kehilangan, penundaan, gangguan, dan pengulangan pesan. Ini menggunakan mekanisme mayoritas (Mayoritas) untuk memastikan toleransi kesalahan 2f+1, yaitu sistem dengan 2f+1 node memungkinkan paling banyak f node gagal pada saat yang sama. Selama kegagalan kurang dari (n-1)/2, Paxos mencapai konsensus. Kegagalan ini tidak boleh Bizantium, jika tidak bukti BFT akan dilanggar. Oleh karena itu, premis dari algoritme ini adalah menganggap bahwa pesan tidak akan pernah dapat dirusak, dan bahwa node tidak dapat berkolusi untuk merusak sistem.
Paxos melanjutkan melalui serangkaian putaran negosiasi di mana satu node memiliki status "kepemimpinan". Jika pemimpin tidak daring, kemajuan akan terhenti hingga pemimpin baru terpilih, atau jika pemimpin lama tiba-tiba kembali daring.
Paxos membagi peran dalam sistem menjadi pengusul (Proposer), pengambil keputusan (Acceptor), dan keputusan akhir pelajar (Learner): Pengusul: mengusulkan proposal (Proposal). Informasi proposal meliputi nomor proposal (ID Proposal) dan nilai yang diajukan (Nilai). Akseptor: Berpartisipasi dalam pengambilan keputusan dan menanggapi proposal Pengusul. Setelah menerima Proposal, maka Proposal dapat diterima, jika Proposal diterima oleh mayoritas Penerima, maka Proposal dikatakan disetujui. Peserta didik: Tidak berpartisipasi dalam pengambilan keputusan, pelajari proposal (Nilai) terakhir yang disepakati dari Pengusul/Akseptor.
2. Algoritma Rakit
**Pengenalan algoritme:**Algoritma Rakit (Replikasi dan Toleransi Kesalahan) adalah implementasi yang disederhanakan dari pasangan algoritme Paxos. Nama Rakit berasal dari singkatan "Reliable, Replicated, Redundant, And Fault-Tolerant" Redundant, Fault Tolerant"). rakit membuat banyak penyederhanaan yang bagus atas Paxos dengan kelanjutan log. Ini menjamin konsistensi sistem ketika lebih dari setengah node dalam sistem yang terdiri dari n node bekerja secara normal. Berbeda dengan algoritma Paxos, yang secara langsung berasal dari masalah konsistensi terdistribusi, algoritma Raft diusulkan dari perspektif multi-copy state machine, dan digunakan untuk mengatur replikasi log dari multi-copy state machine. Misalnya, dalam sistem 5-node, 2 node diperbolehkan memiliki kesalahan non-Bizantium, seperti waktu henti node, partisi jaringan, dan penundaan pesan.
Prinsip algoritme: Ada tiga peran dalam sistem Rakit: Pemimpin, Pengikut, dan Kandidat. Dalam keadaan normal, hanya akan ada satu pemimpin, dan yang lainnya adalah pengikut. Dan pemimpin akan bertanggung jawab atas semua permintaan eksternal, jika tidak diterima oleh mesin pemimpin, permintaan tersebut akan diarahkan ke pemimpin. Biasanya leader akan mengirimkan pesan pada waktu yang tetap yaitu detak jantung (heartbeat), untuk memberi tahu followers bahwa leader cluster masih beroperasi. Setiap pengikut akan merancang mekanisme batas waktu (timeout), ketika detak jantung tidak diterima selama periode waktu tertentu (biasanya 150 ms atau 300 ms), sistem akan memasuki pemilihan negara.
Saat ini, klaster memasuki putaran pemilihan baru (masa jabatan) dan memulai pemilihan. Jika pemilihan berhasil, pemimpin baru akan mulai melakukan pekerjaan. Jika tidak, masa jabatan akan dianggap berakhir, dan masa jabatan baru akan dimulai dan pemilihan berikutnya akan dimulai.
Pemilihan dijalankan oleh kandidat. Ini mengharuskan kandidat untuk mencalonkan diri dan mengumpulkan suara dari server lain berdasarkan siapa cepat dia dapat ketika detak jantung pemimpin berhenti. Setiap server hanya memberikan satu suara per putaran pemilihan untuk mendukung atau menentang kandidat saat ini. Jika Anda tidak mendapatkan lebih dari setengah suara, Anda akan maju ke putaran pemilihan berikutnya. Kandidat yang tersisa terus mencalonkan diri berdasarkan siapa cepat dia dapat. sampai seorang pemimpin terpilih.
**Keuntungan dari algoritma Raft: **Poin pertama adalah kesederhanaan. Jika kita menggali lebih dalam di mana Paxos lebih kompleks daripada Raft, Heidi Howard dan Richard Mortier menemukan bahwa kompleksitas Paxos tercermin dalam dua aspek. Pertama, Raft melakukan log secara berurutan, sementara Paxos mengizinkan log dilakukan secara tidak berurutan, tetapi membutuhkan protokol tambahan untuk mengisi lubang log yang mungkin timbul sebagai akibatnya. Kedua, semua replika log di Raft memiliki indeks, istilah, dan urutan yang sama, sedangkan di Paxos istilah ini mungkin berbeda.
Poin kedua adalah Raft memiliki algoritma pemilihan pemimpin yang efisien. Algoritme pemilihan yang diberikan dalam makalah Paxos membandingkan ukuran id server. Ketika beberapa node menjalankan pemilihan pada saat yang sama, node dengan id server yang lebih besar menang. Masalahnya adalah jika pemimpin yang dipilih dengan cara ini tidak memiliki beberapa log, ia tidak dapat segera melakukan operasi tulis, dan harus terlebih dahulu menyalin beberapa log dari node lain. Log Raft selalu dapat memilih node dengan log mayoritas, jadi tidak perlu mengejar log.Meskipun terkadang pemilihan akan dicoba ulang karena pembagian suara, ini umumnya merupakan algoritma pemilihan yang lebih efisien.
Untuk algoritme Paxos, jika server sangat jauh di belakang, bahkan beberapa hari di belakang dalam log, tetapi terpilih sebagai pemimpin di beberapa titik, ini akan menyebabkan sejumlah waktu untuk diblokir. Dalam algoritme Raft, node yang log-nya berada di belakang tidak akan pernah dipilih.
3 Bukti Kerja (PoW)
Pengantar Algoritma: Teknologi komputer yang pertama kali digunakan untuk melawan spam. Pada tahun 2008, Satoshi Nakamoto mengusulkan Bitcoin dan blockchain dalam kertas putih Bitcoin "Bitcoin: Sistem Uang Elektronik Peer-to-Peer", dan secara inovatif merancang algoritma PoW, yang diterapkan pada Bitcoin untuk memecahkan teka-teki Matematika untuk berpartisipasi dalam konsensus. Isi inti dari algoritme ini adalah menggunakan daya komputasi untuk menemukan nilai nonce yang memenuhi hash blok. Namun, orang dengan cepat menemukan masalah mekanisme konsensus ini, yaitu konsumsi energi yang besar dan kontrol daya komputasi oleh kumpulan penambangan besar masih akan menyebabkan masalah sentralisasi.
Prinsip algoritme: Fitur utama sistem proof-of-work adalah bahwa klien perlu melakukan beberapa pekerjaan sulit untuk mendapatkan hasil, tetapi pemverifikasi dapat dengan mudah memeriksa apakah klien telah melakukan pekerjaan yang sesuai melalui hasilnya . Fitur inti dari skema ini adalah asimetri: pekerjaan bersifat moderat bagi pemohon dan mudah diverifikasi oleh pemverifikasi. Ini berbeda dengan captcha, yang dirancang agar mudah dipecahkan oleh manusia daripada komputer.
Proof of Work (PoW) menemukan Nonce numerik melalui perhitungan, sehingga nilai hash konten setelah data transaksi disatukan memenuhi batas atas yang ditentukan. Setelah node berhasil menemukan nilai hash yang memuaskan, ia akan segera menyiarkan blok paket ke seluruh jaringan, dan node jaringan akan memverifikasinya segera setelah menerima blok paket yang disiarkan.
Kekurangan: Kecepatan lambat; konsumsi energi besar, tidak baik untuk lingkungan; rentan terhadap "skala ekonomi".
Kelebihan: Diuji secara ekstensif sejak 2009 dan masih digunakan secara luas hingga saat ini.
4 Bukti Kepemilikan (PoS)
Pengantar Algoritma: Pada tahun 2011, Quantum diusulkan di forum Bitcointalk. Peercoin, proyek blockchain pertama berdasarkan konsensus PoS, lahir pada Agustus 2012. Peercoin adalah aplikasi pertama yang mengimplementasikan algoritma PoS. Minat Peercoin adalah usia koin, yang merupakan produk dari jumlah koin yang dipegang oleh node dan waktu penahanan.Memulai transaksi akan menghabiskan sejumlah usia koin, dan setiap kali 365 usia koin dikonsumsi, tahunan akan diperoleh tingkat bunga 5%.
Pengguna: Ethereum(2.0), Conflux, Peercoin.
Prinsip algoritme: Misalnya, jika seseorang memegang 100 Dotcoin dalam transaksi selama total 30 hari, maka usia mata uang adalah 3000, dan blok PoS ditemukan kemudian, usia mata uang dibersihkan menjadi 0, dan bunga diperoleh Ini adalah 0,05*3000/365=0,41 koin. Selama proses konsensus, node mendapatkan hak pembukuan melalui usia koin yang dikonsumsi Semakin banyak usia koin yang dikonsumsi node, semakin besar peluang untuk mendapatkan hak pembukuan. Prinsip rantai utama yang ditetapkan oleh algoritma adalah: rantai yang paling banyak memakan umur mata uang adalah rantai yang benar dan efektif dalam sistem.
Keuntungan: Tidak perlu peralatan pertambangan yang kuat dan mahal. Kurangi konsumsi sumber daya dan kurangi kemungkinan serangan 51%.
Kerugian: Ini dapat menyebabkan orang kaya menimbun mata uang kripto, membentuk efek Matius, yang dapat menyebabkan inflasi mata uang kripto.
5 Bukti Sejarah (PoH)
**Pengenalan algoritme: **Proof of history dibuat oleh Solana, blockchain dengan throughput tinggi yang diluncurkan pada tahun 2018. Proof of history memungkinkan peserta jaringan untuk mencapai konsensus tepat waktu dengan menggunakan fungsi penundaan yang dapat diverifikasi, sehingga menghindari "terlama rantai" aturan.
PoH adalah jam jaringan, dan TowerBFT adalah menara pengawasnya, yang bertugas mencegah node jahat melakukan spoofing parameter waktu. Setiap validator yang memilih sebuah blok harus menunggu blok berikutnya diproduksi dan mendapatkan konfirmasi dari bukti sejarah bahwa "waktu telah berlalu" sebelum memberikan suara lagi.
Solana dengan cerdik memisahkan rantai waktu dan status berbasis hash. Alih-alih menghubungkan hash dari setiap blok bersama-sama, pemverifikasi dalam jaringan melakukan hash pada hash itu sendiri di dalam blok. Mekanisme ini adalah PoH . PoH menetapkan urutan peristiwa yang dapat diverifikasi secara kriptografis dari waktu ke waktu dengan menggunakan Verifiable Delay Function (VDF) frekuensi tinggi. Pada dasarnya, ini berarti PoH seperti jam kriptografi yang membantu jaringan menyepakati waktu dan urutan kejadian tanpa menunggu pesan dari node lain. Output berurutan dari hash status blockchain yang terbukti secara historis memberikan urutan peristiwa yang dapat diverifikasi.
**Pengguna:**Solana
Prinsip Algoritma: Pemimpin menghasilkan stempel waktu untuk setiap data tanda tangan (transaksi harus dibuktikan), dan langsung menyortir transaksi, sehingga menghindari masalah penyortiran waktu di PoS, dan setiap pemverifikasi jaminan dapat memverifikasi secara mandiri, yang sangat mempersingkat masalah waktu pemesanan ulang saat verifikasi, dan hanya perlu verifikasi bukti transaksi.
Keuntungan: Biaya rendah, hanya sepersekian sen per transaksi, kecepatan transaksi cepat, skalabilitas bagus,
**Kontra: **Kekhawatiran sentralisasi, Solana saat ini memiliki kurang dari 1200 validator yang memvalidasi transaksi di jaringannya. Lebih sedikit aplikasi terdesentralisasi: Sering disebut sebagai pembunuh Ethereum. Menurut situs webnya, lebih dari 350 Dapp telah dibuat di Solana, dibandingkan dengan hampir 3.000 di Ethereum, dan di sinilah Defi saat ini membutuhkan lebih banyak waktu pengembangan dan inovasi.
6 Bukti Otoritas (PoA)
Pengantar Algoritma: Diusulkan pada tahun 2017 oleh Gavin Wood, salah satu pendiri Ethereum (ETH) dan Parity Technologies. Mekanisme PoA tidak menambang dan tidak memerlukan Token. Dalam jaringan blockchain sekunder berbasis PoA, semua transaksi dan blok diproses oleh validator. Biaya pemeliharaan platform PoA rendah, tetapi di PoA, pemverifikasi transaksi dan verifikasi blockchain haruslah orang yang dapat lulus tinjauan keandalan. Oleh karena itu, verifikator PoA harus memperhatikan reputasinya sendiri. Reputasi adalah aset yang sangat penting dalam PoA. Biasanya, validator mengungkapkan identitas mereka yang sebenarnya. Saat ini, teknologi blockchain yang dibentuk oleh mekanisme konsensus ini terutama diterapkan pada rantai aliansi dan rantai swasta dengan karakteristik industri yang jelas.
Pengguna: PoA, Ethereum Kovantestnet, xDai, VeChain, dan rantai logistik Walmart.
Prinsip algoritme:
a.Memilih lembaga sertifikasi yang berwenang;
b. Sejumlah verifikator akan menghasilkan blok untuk mencatat transaksi dan menerima hadiah blok dan biaya transaksi. Di PoA, verifikator adalah kunci dari seluruh mekanisme konsensus Verifikator mendapatkan hak untuk menjamin jaringan dengan menempatkan identitas ini sebagai ganti hadiah blok. Jika pemverifikasi bertindak jahat atau berkolusi dengan pemverifikasi lain selama proses berlangsung, pelaku jahat dapat dihapus dan diganti melalui manajemen on-chain. Perlindungan hukum anti-penipuan yang ada diterapkan di seluruh jaringan untuk melindungi peserta dari tindakan jahat oleh validator.
keuntungan:
a.Membutuhkan lebih sedikit daya komputasi, tidak ada penambangan, penghematan energi, dan perlindungan lingkungan;
b Verifikasi cepat dan mendukung transaksi lebih cepat;
c. Verifikator dari seluruh jaringan saling mengawasi, dan mereka dapat memilih untuk bergabung dengan verifikator berpengalaman atau menghapus verifikator yang tidak memenuhi syarat kapan saja
d. Hard fork dilindungi oleh hukum, dan setiap Validator menandatangani perjanjian hukum.
kekurangan:
a.Identitas publik, privasi dan anonimitas akan dikurangi
b. Validator ditunjuk sebagai simpul otoritas terpusat yang didukung secara hukum
**7 Bukti Kerja Tertunda (**Bukti Kerja Tertunda, dPoW)
** **
**Pengenalan algoritme:**Sebelum menjelaskan DPoW, Anda perlu menjelaskan apa itu PoB. PoB (Proof of Burn) disebut mekanisme burning proof, yaitu komitmen untuk memilih siapa yang memiliki kepemimpinan jaringan dengan membakar token di tangan sendiri. Semakin tinggi jumlah token yang dibakar, semakin tinggi kemungkinan mencapai kepemimpinan jaringan.
Dalam blockchain berbasis dPoW, penambang tidak lagi dihadiahi token untuk menambang, melainkan “kayu” yang bisa dibakar – kayu bakar. Penambang menggunakan kekuatan komputasi mereka sendiri untuk akhirnya membuktikan beban kerja mereka melalui algoritma hash, dan kemudian mendapatkan kayu yang sesuai, yang tidak dapat diperdagangkan. Ketika kayu telah terkumpul hingga jumlah tertentu, Anda dapat pergi ke lokasi pembakaran untuk membakar kayu tersebut.
Setelah perhitungan dengan serangkaian algoritma, orang yang membakar lebih banyak kayu atau BP atau sekelompok BP dapat memperoleh hak untuk menghasilkan blok di segmen acara berikutnya, dan mendapatkan hadiah (Token) setelah berhasil menghasilkan blok. Karena mungkin ada banyak orang yang membakar kayu dalam satu periode waktu, kemungkinan terbentuknya balok pada periode waktu berikutnya ditentukan oleh jumlah kayu yang dibakar sendiri. Semakin banyak yang dibakar, semakin tinggi kemungkinan mendapatkan hak untuk memproduksi balok pada periode waktu berikutnya.
Ini dapat mencapai keseimbangan antara daya komputasi dan hak penambangan. Penambang dan kumpulan penambangan dengan daya komputasi yang besar tidak harus menjadi produsen blok. Penambang kecil juga memiliki mata air, selama mereka bekerja keras dan mengumpulkan kayu dalam jumlah tertentu, mereka juga dapat menghasilkan balok. Efisiensi terjamin, partisipasi semua orang, cara partisipasi yang paling populer menjamin konsep desentralisasi, dan mencegah organisasi dengan daya komputasi atau pemegang mata uang besar mendominasi jaringan.
**Pengguna:**Komodo
Prinsip algoritme: Ada dua jenis node dalam sistem dPoW: node notaris dan node normal. 64 node notaris dipilih oleh pemangku kepentingan blockchain dPoW untuk menambahkan blok yang diaktakan dari blockchain dPoW ke blockchain PoW yang terpasang. Setelah satu blok ditambahkan, hash blok ditambahkan ke transaksi Bitcoin yang ditandatangani oleh 33 node notaris dan membuat catatan blok dPow yang di-hash ke blockchain Bitcoin. Catatan tersebut telah diaktakan oleh mayoritas node notaris di jaringan.
Untuk menghindari perang penambangan antar node notaris dan mengurangi efisiensi jaringan, Komodo merancang metode penambangan menggunakan mekanisme polling, yang memiliki dua mode operasi.
Dalam mode "Tanpa Notaris", semua node jaringan didukung untuk berpartisipasi dalam penambangan, yang mirip dengan mekanisme konsensus PoW tradisional. Dalam mode "Notaris Aktif", notaris jaringan menambang menggunakan tingkat kesulitan jaringan yang berkurang secara signifikan. Dalam mode "aktivasi notaris", setiap notaris diperbolehkan menggunakan kesulitannya saat ini untuk menambang sebuah blok, sementara node notaris lainnya harus menggunakan 10 kali kesulitan menambang, dan semua node normal menggunakan 100 kali kesulitan node notaris untuk menambang.
**Keuntungan: **Penghematan energi; peningkatan keamanan; dapat menambah nilai ke blockchain lain dengan secara tidak langsung menyediakan Bitcoin (atau rantai keamanan lainnya), tanpa membayar harga transaksi Bitcoin (atau rantai keamanan lainnya).
Kekurangan: Hanya blockchain yang menggunakan PoW atau PoS yang dapat mengadopsi algoritme konsensus ini; dalam mode "Notaris Aktif", hash dari node yang berbeda (notaris atau node normal) harus dikalibrasi dengan kecepatan, jika tidak, perbedaan antara kecepatan hash akan meledak .
8 PoS Resmi (DPoS, Bukti Kepemilikan yang Didelegasikan)
Pengantar Algoritma: Mekanisme DPoS, juga dikenal sebagai "Mekanisme Bukti Otorisasi Saham" dan "Mekanisme Wali Amanat", diusulkan pada April 2014 oleh Dan Larimer (BM), kepala pengembang Bitshares. Dari segi tertentu, DPOS sedikit mirip dengan sistem parlementer atau sistem kongres rakyat. Jika seorang delegasi gagal menjalankan tugasnya (gagal menghasilkan blok saat giliran mereka), mereka dihapus dari daftar dan jaringan memilih supernode baru untuk menggantikannya.
Untuk memudahkan pemahaman, dapat diberikan contoh lain. Bayangkan sebuah perusahaan dengan total 1.000 karyawan, yang masing-masing memiliki saham perusahaan dalam jumlah yang berbeda-beda. Sesekali, karyawan dapat memilih 10 orang yang paling mereka kenal untuk memimpin perusahaan, dan hak suara setiap karyawan sebanding dengan jumlah saham yang dimilikinya. Setelah semua orang memilih, 10 orang dengan tingkat suara tertinggi akan menjadi pemimpin perusahaan.
Jika seorang pemimpin tidak kompeten atau melakukan sesuatu yang merugikan perusahaan, karyawan tersebut dapat mencabut suara pemimpin tersebut, sehingga tingkat suaranya tidak dapat masuk 10 besar, sehingga mengundurkan diri dari manajemen.
Pengguna: BitShares, Steemit, EOS, Lisk, Ark.
**Pro: **Hemat energi; cepat; situs blog lalu lintas tinggi Steemit menggunakannya. Waktu blok EOS adalah 0,5 detik.
**Kontra: **Sedikit terpusat; peserta dengan taruhan tinggi dapat memilih untuk menjadi validator (ini menjadi masalah di EOS baru-baru ini).
9 Toleransi Kesalahan Bizantium Praktis (PBFT)
** **
Pengenalan algoritme: Dalam algoritme PBFT, satu node akan dianggap sebagai node master, sedangkan node lainnya adalah node cadangan. Semua node dalam sistem akan berkomunikasi satu sama lain, dan tujuan akhirnya adalah setiap orang dapat mencapai konsensus tentang prinsip minoritas yang mematuhi mayoritas.
Proses Konsensus:
a. Klien mengirimkan permintaan ke node master untuk melakukan operasi
b. Node master menyiarkan permintaan ini ke setiap node cadangan
c. Semua node menjalankan operasi dan mengembalikan hasilnya ke klien
d.Ketika klien menerima hasil identik f+1 dari node yang berbeda, proses berakhir. f mewakili nilai maksimum dari kemungkinan node berbaring.
Digunakan oleh: HyperLedgerFabric, Stellar, Ripple, Dispatch
**Keuntungan: ** Kecepatan tinggi, terukur.
Kontra: Biasa digunakan di jaringan pribadi dan berizin.
10 Toleransi Kesalahan Bizantium yang Didelegasikan (dBFT Toleransi Kesalahan Bizantium yang Didelegasikan, dBFT)
Pengenalan algoritme: Komunitas blockchain Tiongkok NEO (sebelumnya dikenal sebagai Xiaoyi) mengusulkan algoritme toleran kesalahan Bizantium dBFT yang ditingkatkan. Algoritme ini mengacu pada ide desain PoS berdasarkan PBFT. Pemegang buku, dan kemudian pemegang buku mencapai konsensus melalui algoritma toleran kesalahan Bizantium. Algoritme ini memperbaiki kurangnya konsistensi akhir PoW dan PoS, membuat blockchain cocok untuk skenario keuangan.
Juga untuk mengatasi Masalah Jenderal Bizantium, mekanisme "Toleransi Kesalahan Bizantium Resmi" adalah algoritme konsensus yang menjamin toleransi kesalahan yang diterapkan di dalam blockchain NEO. Dalam mekanisme ini, ada dua peserta, satu adalah "simpul pembukuan" untuk pembukuan profesional, dan yang lainnya adalah pengguna biasa dalam sistem.
Pengguna biasa memilih untuk menentukan simpul pembukuan berdasarkan proporsi kepemilikan mereka. Ketika konsensus perlu disahkan, seorang juru bicara dipilih secara acak dari simpul pembukuan ini untuk menyusun rencana, dan kemudian simpul pembukuan lainnya mengikuti toleransi kesalahan Bizantium algoritma. Yaitu, prinsip minoritas yang mematuhi mayoritas membuat pernyataan. Jika lebih dari 66% node setuju dengan rencana pembicara, konsensus tercapai; jika tidak, pembicara dipilih kembali dan proses pemungutan suara diulangi.
Karena semua delegasi dapat memverifikasi proposal blokir, mudah untuk memahami apakah data yang dikirim oleh pembicara valid atau tidak valid. Jadi jika pembicara tidak jujur dan mengirimkan proposal yang tidak valid ke dua pertiga delegasi, blok tidak akan cocok dan pemilik node tidak akan memvalidasinya. Konsensus dicapai dengan dua pertiga suara dan pembicara baru dipilih.
**Pengguna:**Neo
Proses Konsensus:
a. Siapa saja dapat menjadi wakil asal memenuhi persyaratan. Semua pemegang token NEO dapat memilih, delegasi tidak anonim, dan 1.000 GAS diperlukan untuk menjadi pemilik node.
b. Seorang pembicara dipilih secara acak dari antara para delegasi.
c. Pembicara membangun blok baru dari transaksi menunggu verifikasi. Pembicara kemudian mengirimkan proposal ke perwakilan terpilih. Mereka seharusnya melacak semua transaksi dan mencatatnya di jaringan.
d. Delegasi bebas untuk berbagi dan membandingkan proposal yang telah mereka terima untuk menguji keakuratan data serta kejujuran narasumber. Jika lebih dari dua pertiga delegasi mencapai konsensus dan memvalidasinya, blok ditambahkan ke blockchain.
**Keuntungan: **Cepat (dibutuhkan 15-20 detik untuk menghasilkan blok); throughput transaksi besar, tidak perlu mengkonsumsi energi, terukur, dan tidak ada garpu.
Kekurangan: Tidak ada anonimitas, dan identitas asli diperlukan agar dapat dipilih. Setiap orang berlomba-lomba menjadi akar rantai. Mungkin ada beberapa rantai akar.
Pengenalan algoritme: Prinsip dBft dan RPBFT mirip dengan PBFT, hanya saja tidak semua node berpartisipasi dalam konsensus, tetapi node dibagi menjadi dua jenis:
a.Consensus node: node yang menjalankan proses konsensus PBFT dan memiliki kewenangan untuk menghasilkan blok secara bergantian
b. Node verifikasi: tidak menjalankan proses konsensus, verifikasi apakah node konsensus itu sah, blokir verifikasi, setelah beberapa putaran konsensus, itu akan beralih ke node konsensus
Dalam toleransi kesalahan Bizantium round-robin, node konsensus digantikan oleh node verifikasi secara bergantian.
**Use Case:**Fisco-BCOS
**Keuntungan: **Kecepatan transmisi lebih cepat daripada gosip, dan tidak ada paket pesan yang berlebihan
Bagi dan taklukkan, bandwidth keluar dari setiap node adalah O(1), skalabilitas yang kuat
Kekurangan: Node perantara adalah satu titik dan memerlukan strategi toleransi kesalahan tambahan
12. AptosBFT
** **
Pengenalan algoritme: Ini juga merupakan algoritme turunan dari PBFT. Algoritme konsensus yang dinamai Aptos didasarkan pada HotStuff, yang didasarkan pada PBFT. Kelebihan dari model algoritma ini seperti bawang dan boneka Rusia, yang perlu dikupas lapis demi lapis. Setiap node hanya berkomunikasi dengan pemimpin, daripada mengirim pesan ke pemimpin dan semua "jenderal" lainnya. Pemimpin menyiarkan pesan (blok yang diusulkan) untuk dipilih; setiap node mengirimkan suaranya ke pemimpin yang mengumpulkan pesan.
Kasus Penggunaan: Aptos
Akhirnya, ringkasan dari bagian ini dilampirkan:
**Juga, ada beberapa algoritme konsensus yang tidak biasa. **
Pada tahun 2015, Profesor David Mazieres, kepala ilmiah Stellar.org, mengusulkan Protokol Konsensus Stellar (SCP). SCP berkembang berdasarkan Perjanjian Bizantium Federal dan Perjanjian Ripple, dan merupakan mekanisme konsensus pertama yang terbukti aman, dengan empat sifat utama kontrol terdesentralisasi, latensi rendah, kepercayaan fleksibel, dan keamanan asimtotik.
Pada tahun yang sama, proyek Sawtooth Lake Hyperledger menggabungkan konsensus Ripple dan SCP dan mengusulkan algoritma konsensus pemungutan suara Kuorum untuk menangani skenario aplikasi yang memerlukan penyelesaian transaksi instan.
Pada tahun 2016, pemenang Turing Award dan profesor MIT Sivio Micali mengusulkan algoritme konsensus toleran-kesalahan Bizantium cepat yang disebut AlgoRand. Algoritme ini menggunakan teknologi lotere kriptografik untuk memilih pemverifikasi dan pemimpin proses konsensus, dan melalui BA* The Byzantine Fault yang dirancangnya Protokol Toleran mencapai konsensus pada blok baru. AlgoRand membutuhkan komputasi yang sangat sedikit dan sangat sedikit garpu, dan dianggap sebagai teknologi konsensus buku besar terdistribusi yang benar-benar demokratis dan efisien.
Pada tahun 2017, Universitas Cornell mengusulkan algoritma baru yang disebut Sleepy Consensus (konsensus tidur) Konsensus ini ditujukan pada fakta bahwa sebagian besar node konsensus skala besar di lingkungan Internet mungkin offline, dan hanya beberapa node yang online. untuk berpartisipasi dalam proses konsensus. Studi ini membuktikan bahwa algoritma konsensus tradisional tidak dapat menjamin keamanan konsensus di lingkungan ini, namun dengan menggunakan algoritma konsensus yang tidak aktif, selama jumlah node jujur online melebihi jumlah node yang rusak, keamanan dan ketahanan dapat dijamin.
##04 Ringkasan
Jika Anda melompat keluar dari perspektif pengembang dan memasukkan lebih banyak cara berpikir yang menggabungkan politik dan ekonomi, mungkin ada lebih banyak algoritme konsensus, seperti menggabungkan metode konsensus yang mirip dengan konsep PPP, yang tidak hanya dapat mencapai sifat hukuman untuk kejahatan pihak, tetapi juga dapat mencapai tujuan penghematan daya komputasi yang paling efisien.
Singkatnya, mekanisme konsensus adalah inti dari teknologi blockchain yang dapat memecahkan masalah kepercayaan dalam sistem terdistribusi, memastikan konsistensi dan keamanan data antar node, dan menghindari serangan dan perusakan node berbahaya, sehingga memastikan blok Stabilitas dan keandalan sistem rantai. Pada saat yang sama, mekanisme konsensus juga dapat memecahkan masalah "pengeluaran ganda" dan meningkatkan throughput dan kecepatan pemrosesan sistem blockchain. Tetapi berbagai algoritme konsensus tidak sepenuhnya aman, efisien, dan terdesentralisasi.
Tidak ada algoritme terbaik, hanya algoritme yang paling cocok untuk Anda. Pilihan algoritme konsensus sangat terkait dengan skenario aplikasi. Lingkungan tepercaya menggunakan Paxos atau RAFT, aliansi yang diizinkan dapat menggunakan PBFT, dan rantai yang tidak diizinkan dapat menggunakan konsensus PoW, PoS, Ripple, dll. **Mekanisme konsensus terbaik selalu yang sesuai dengan kebutuhan pengguna. **
Referensi:
Apa itu Mekanisme Konsensus dalam Blockchain dan Cryptocurrency?
Ancaman serangan bunga ganda ke blockchain
Baca 11 algoritma konsensus arus utama dalam satu artikel, dan pahami sepenuhnya apa itu PoS, PoW, dPoW, PBFT, dan dBFT?
4Memahami Pengeluaran Ganda dan Cara Mencegah Serangan
5Pengantar Aplikasi Mekanisme Konsensus Bizantium
6AptosBFT: semua yang perlu Anda ketahui tentang konsensus BFT di Aptos
Lihat Asli
Konten ini hanya untuk referensi, bukan ajakan atau tawaran. Tidak ada nasihat investasi, pajak, atau hukum yang diberikan. Lihat Penafian untuk pengungkapan risiko lebih lanjut.
Pahami mekanisme konsensus dan 11 algoritma konsensus arus utama dalam satu artikel
Pembicara: Uchiha Madara
EDIT: Puff
Sumber: Deschool
Artikel ini adalah catatan pelajaran dari pelajaran ketiga kursus web3 universitas DeSchool, dan pengajarnya adalah Uchiha Madara. Isinya terlalu kering dan tidak tercampur air, disarankan untuk mengumpulkannya dan mencernanya perlahan. Selain itu, untuk memudahkan pemahaman, artikel ini memiliki beberapa modifikasi dan tambahan berdasarkan isi mata kuliah.
Isi utama artikel tersebut antara lain:
Pengantar Algoritma Konsensus
Klasifikasi algoritma konsensus
Penjelasan rinci tentang algoritma konsensus (PoW, PoS, PoH, PoA, PBFT, dll.)
01 Pengantar Mekanisme Konsensus
Dalam komunikasi dan pembelajaran blockchain, "algoritme konsensus" adalah kosa kata yang sangat sering disebutkan. Justru karena adanya algoritma konsensus, kredibilitas blockchain dapat dijamin.
**1. Mengapa kita membutuhkan mekanisme konsensus? **
Yang disebut konsensus berarti banyak orang mencapai kesepakatan. Hidup kita penuh dengan mekanisme konsensus, misalnya sebuah perusahaan membutuhkan pemegang saham untuk berdiskusi secara kolektif untuk mengambil keputusan, dan Pihak A dan Pihak B perlu duduk dan bernegosiasi untuk menandatangani kontrak. Proses ini merupakan proses mencapai mufakat.
Dalam sistem blockchain, yang harus dilakukan oleh setiap node adalah membuat buku besarnya sesuai dengan buku besar node lainnya. Jika dalam skenario terpusat tradisional, ini hampir tidak menjadi masalah, karena ada server pusat, yang disebut pustaka master, dan pustaka budak lainnya dapat diselaraskan dengan pustaka master.
Tetapi dalam manajemen yang terdesentralisasi, tidak ada bos, jadi bagaimana seharusnya keputusan dibuat? Saat ini, seperangkat algoritma diperlukan untuk memastikan konsensus. Inilah yang akan dibahas dalam artikel ini - mekanisme konsensus.
**2. Bagaimana mekanisme konsensusnya? **
Mekanisme konsensus (Mekanisme Konsensus) menyelesaikan verifikasi dan konfirmasi transaksi dalam waktu yang sangat singkat melalui pemungutan suara node khusus; untuk transaksi, jika beberapa node dengan kepentingan yang tidak relevan dapat mencapai konsensus, kita dapat menganggap bahwa seluruh jaringan Ada juga konsensus tentang ini.
Meskipun konsensus (Konsensus) dan konsistensi (Konsistensi) dianggap kira-kira setara dalam banyak skenario aplikasi, ada perbedaan halus dalam artinya: Penelitian konsensus berfokus pada proses dan algoritme node terdistribusi yang mencapai konsensus, sedangkan penelitian Konsistensi berfokus pada stabil keadaan akhirnya dicapai dalam proses konsensus simpul; selain itu, sebagian besar penelitian konsensus terdistribusi tradisional tidak mempertimbangkan masalah toleransi kesalahan Bizantium, yaitu, diasumsikan bahwa tidak ada simpul Bizantium yang secara jahat mengutak-atik atau memalsukan data. Lagi pula, dalam jaringan blockchain yang benar-benar terbuka dan transparan, tidak ada jaminan bahwa semua node tidak akan berbuat jahat.
**3. Masalah apa yang dapat diselesaikan oleh mekanisme konsensus? **
Mekanisme konsensus dapat memecahkan masalah kepercayaan dalam sistem terdistribusi dan memastikan konsistensi dan keamanan data di antara node. Dalam sistem terdistribusi tradisional, karena tidak ada mekanisme kepercayaan antar node, sistem ini rentan terhadap serangan dan gangguan oleh node berbahaya, yang mengakibatkan sistem crash atau gangguan data. Selain itu, sebelum munculnya teknologi enkripsi blockchain, mata uang digital terenkripsi, seperti aset lainnya, dapat direplikasi tanpa batas. Tanpa agen perantara terpusat, orang tidak memiliki cara untuk memastikan apakah sejumlah uang digital telah dibelanjakan.
Sederhananya, mekanisme konsensus dapat secara efektif menyelesaikan dua masalah: masalah pembelanjaan ganda (sejumlah uang dihabiskan dua kali) dan masalah umum Bizantium (node berbahaya mengutak-atik data).
4. Serangan pembelanjaan ganda
**
**
Mekanisme konsensus dapat menyelesaikan serangan pembelanjaan ganda sampai batas tertentu: yaitu, sejumlah uang dibelanjakan dua kali atau lebih dari dua kali, disebut juga "pembelanjaan ganda". Dalam permainan kucing-dan-tikus, Xiao Lizi melakukan perilaku pembelanjaan ganda dengan membuat cek palsu, karena verifikasi cek membutuhkan waktu, dia menggunakan informasi dari cek yang sama untuk membeli barang berkali-kali dalam perbedaan waktu ini.
Seperti yang kita semua tahu, node blockchain selalu menganggap rantai terpanjang sebagai yang benar dan terus bekerja dan memperluasnya. Jika dua node menyiarkan versi berbeda dari blok baru pada saat yang sama, pekerjaan akan dilakukan berdasarkan blok yang diterima terlebih dahulu, tetapi rantai lainnya juga akan disimpan jika yang terakhir menjadi rantai terpanjang. Tunggu hingga proof-of-work berikutnya ditemukan, dan salah satu rantai terbukti lebih panjang, kemudian node yang bekerja pada rantai cabang lainnya akan berpindah kamp.
Bagaimana pengeluaran ganda tercapai? Dibagi menjadi dua situasi:
**(1) Pembelanjaan ganda sebelum konfirmasi. **Transaksi yang belum terkonfirmasi mungkin belum ditulis ke blockchain pada akhirnya. Kecuali jumlahnya kecil, yang terbaik adalah menghindari pengeluaran ganda seperti itu dengan setidaknya menunggu konfirmasi.
**(2) Pembelanjaan ganda setelah konfirmasi. **Hal ini memerlukan pengendalian lebih dari 50% daya komputasi untuk diterapkan. Artinya, mirip dengan garpu kecil, menempatkan transaksi untuk toko ke dalam blok anak yatim. Pengeluaran ganda semacam ini setelah konfirmasi sulit diterapkan, tetapi hanya layak secara teori.
** Ada tiga serangan pembelanjaan ganda yang paling umum: serangan 51%, serangan balapan, dan serangan Finney. **
Serangan 51%: Serangan 51% adalah ketika seseorang atau kelompok memperoleh kendali atas 51% kekuatan hashing dari blockchain, yang berarti mereka memiliki kemampuan untuk mengendalikan beberapa aspek proyek. Pada blockchain proof-of-work seperti Bitcoin, ini akan dicapai dengan mendapatkan kendali atas kekuatan penambangan jaringan. Di sisi lain, untuk blockchain proof-of-stake seperti Cardano, ini akan dicapai dengan mengendalikan 51% dari token yang dipertaruhkan.
Race Attack: Seorang pengguna mengirim dua transaksi ke dua pedagang (atau pedagang dan pengguna) pada saat yang bersamaan. Oleh karena itu, penyerang menerima dua set barang atau menerima barang dan memulihkan biaya transaksi awal.
Serangan Finney: Seorang penambang menambang satu blok atau serangkaian blok yang berisi transaksi yang mentransfer uang ke alamatnya sendiri. Blok yang ditambang tidak dipublikasikan, tetapi disimpan sementara penambang mentransfer uang ke pedagang. Pedagang kemudian melepaskan barang yang dibayar penambang sebelum penambang menerbitkan blok yang telah mereka gali. Penambang kemudian menerbitkan blok yang telah digali, yang akan menghapus transfer ke pedagang dan membiarkan pedagang membayarnya sendiri.
Kasus klasik serangan bunga ganda:
Pada tahun 2018, penyerang menguasai lebih dari 51% daya komputasi di jaringan BTG. Selama periode pengendalian daya komputasi, ia mengirimkan sejumlah BTG ke dompetnya di bursa. Cabang ini diberi nama cabang A. Pada saat yang sama, kirim BTG ini ke dompet lain yang Anda kendalikan sendiri, dan cabang ini diberi nama cabang B. Setelah transaksi di cabang A terkonfirmasi, penyerang langsung menjual BTG untuk mendapatkan uang tunai. Selanjutnya, penyerang menambang di cabang B. Karena ia menguasai lebih dari 51% daya komputasi, panjang cabang B akan segera melebihi panjang cabang A, dan cabang B akan menjadi rantai utama. diputar kembali untuk mengembalikan keadaan sebelumnya. BTG yang ditukar penyerang dengan uang tunai sebelum dikembalikan ke tangannya sendiri, dan BTG ini adalah kerugian dari pertukaran tersebut. Dengan cara ini, penyerang, yang mengandalkan lebih dari 50% kontrol daya komputasi, menyadari "pengeluaran ganda" dari mata uang kripto yang sama.
5. Kegagalan Bizantium
**
**
Masalah Jenderal Bizantium adalah masalah hipotetis yang diajukan oleh Leslie Lamport pada 1980-an. Bizantium adalah ibu kota Kekaisaran Romawi Timur, karena luasnya wilayah Kekaisaran Romawi Bizantium pada waktu itu, garnisun masing-masing pasukan berjauhan, dan para jenderal hanya dapat menyampaikan pesan melalui utusan. Jika terjadi perang, para jenderal harus mengembangkan rencana aksi terpadu.
Namun, ada pengkhianat di antara para jenderal ini, yang berharap merusak rencana aksi yang konsisten dari para jenderal yang setia dengan mempengaruhi perumusan dan penyebarluasan rencana aksi terpadu tersebut. Oleh karena itu, para jenderal harus memiliki kesepakatan metode yang telah ditentukan, sehingga semua jenderal yang setia dapat menyetujuinya. Dan segelintir pengkhianat tidak bisa membuat jenderal yang setia membuat rencana yang salah. Dengan kata lain, inti dari masalah para jenderal Bizantium adalah menemukan cara untuk membuat para jenderal membuat konsensus tentang rencana pertempuran di lingkungan yang tidak saling percaya dengan para pengkhianat.
Dalam sistem terdistribusi, terutama di lingkungan jaringan blockchain, juga mirip dengan lingkungan umum Bizantium, ada server normal (mirip dengan jenderal Bizantium yang setia), ada server yang rusak, dan server penyabot (mirip dengan jenderal Bizantium pengkhianat). Inti dari algoritma konsensus adalah untuk membentuk konsensus tentang keadaan jaringan di antara node normal. Jika hanya ada 3 simpul, masalah jendral Bizantium tidak dapat diselesaikan. Ketika ada x simpul masalah di simpul dan poin yang dijumlahkan kurang dari 3x+1, masalah jendral Bizantium tidak memiliki solusi.
Munculnya Bitcoin dengan mudah memecahkan masalah ini, menambah biaya pengiriman informasi, mengurangi kecepatan pengiriman informasi, dan menambahkan elemen acak sehingga hanya satu jenderal yang dapat menyiarkan informasi dalam jangka waktu tertentu. Jenderal pertama yang menyiarkan pesan adalah komputer pertama yang menemukan hash yang valid, dan selama jenderal lain menerima dan memverifikasi hash yang valid ini dan informasi yang menyertainya, mereka hanya dapat memperbaruinya dengan salinan informasi baru dari buku besar, dan kemudian menghitung ulang nilai hash. Jenderal berikutnya yang menghitung nilai hash efektif dapat melampirkan informasi terbarunya ke nilai hash efektif dan menyiarkannya ke semua orang. Perlombaan perhitungan hash kemudian dimulai kembali dari titik awal yang baru. Karena sinkronisasi informasi jaringan yang berkelanjutan, semua komputer di jaringan menggunakan versi buku besar yang sama.
02 Klasifikasi Algoritma Konsensus
1. Sejarah Mekanisme Konsensus
Ketika komputer dan jaringan menjadi populer pada 1980-an dan 1990-an, basis data bersama muncul sehingga banyak pengguna dapat mengakses informasi yang mereka simpan. Sebagian besar memiliki database pusat yang dapat diakses pengguna dari berbagai situs. Pengaturan ini berkembang menjadi jaringan terpusat di mana administrator memberikan izin pengguna dan menjaga integritas data.
Basis data bersama ini dikenal sebagai buku besar terdistribusi karena mencatat informasi dan terhubung ke jaringan untuk diakses oleh banyak pengguna di lokasi yang berbeda. Salah satu masalah terpenting yang harus ditangani adalah mencegah perusakan data dan akses tidak sah, berbahaya atau tidak. Sebuah cara untuk mengotomatisasi manajemen basis data terdistribusi diperlukan untuk memastikan data tidak berubah.
Kebutuhan ini telah menyebabkan terciptanya konsensus otonom terdistribusi, di mana program pada jaringan menggunakan kriptografi untuk menyepakati status database. Protokol dirancang untuk dicapai dengan menggunakan algoritme kriptografi untuk membuat rangkaian panjang angka alfanumerik (hash), yang kemudian diverifikasi oleh program yang berjalan di jaringan. Hash hanya berubah ketika informasi yang dimasukkan ke dalam algoritme hashing berubah, sehingga program dirancang untuk membandingkan hash untuk memastikan kecocokannya.
Ketika setiap program yang berjalan di jaringan telah membuat string hash yang cocok, data tersebut dikatakan telah mencapai konsensus di seluruh jaringan. Dengan demikian, mekanisme konsensus dibuat, biasanya mengkredit pencipta Bitcoin anonim Satoshi Nakamoto. Namun, banyak orang mengerjakan mekanisme konsensus selama bertahun-tahun sebelum Satoshi merilis buku putih yang membuat Bitcoin terkenal.
Ilmuwan data dan komputer seperti Moni Naor, Cynthia Dwork, Adam Beck, Nick Szabo, dan banyak lainnya bekerja dan berkontribusi pada pengembangan mekanisme konsensus jaringan.
2 Klasifikasi Algoritma Konsensus
Menurut berbagai jenis toleransi kesalahan, algoritme konsensus dapat dibagi menjadi dua kategori: algoritme konsensus CFT (toleransi kesalahan non-Bizantium, yaitu, node berbahaya tidak dipertimbangkan) dan algoritme konsensus BFT (toleransi kesalahan Bizantium, yang adalah, node berbahaya dianggap).
Apakah akan mentolerir Byzantium menandai apakah algoritme dapat diterapkan ke jaringan dengan kepercayaan rendah. Secara umum, algoritma toleransi kesalahan Bizantium harus digunakan di lingkungan rantai publik, sedangkan di rantai aliansi, dapat dipilih sesuai dengan tingkat kepercayaan antara peserta aliansi.Jika tingkat kepercayaan tinggi, semua orang adalah node itikad baik secara default dan dapat menggunakan algoritma CFT (non-Byzantine fault-tolerant).
**Selain itu, dapat dibagi menjadi dua kategori menurut konsistensi: **algoritma konsensus probabilitas dan algoritme konsistensi absolut. Algoritma konsensus probabilistik berarti bahwa di antara node terdistribusi yang berbeda, ada kemungkinan besar untuk memastikan bahwa data antar node konsisten, tetapi masih ada kemungkinan tertentu bahwa data antara beberapa node tidak konsisten. Misalnya, Proof of Work (PoW), Proof of Stake (PoS), dan Delegated Proof of Stake (DPoS) adalah semua algoritme konsensus probabilistik.
Algoritme konsistensi absolut berarti bahwa pada suatu saat, data antara node terdistribusi yang berbeda akan tetap benar-benar konsisten, dan tidak akan ada inkonsistensi data antara node yang berbeda. Misalnya, algoritme PAXOS dan algoritme RAFT turunannya.
Berikut ini adalah pembagian dan pengenalan khusus sesuai dengan jenis toleransi kesalahan.
Algoritma Konsensus 3CFT
Error non-Bizantium Crash Fault Tolerance: cocok untuk jaringan dengan tingkat kepercayaan node yang tinggi. Termasuk Paxos, Rakit.
Algoritma Konsensus 4BFT
Memeriksa apakah node memiliki kesalahan Bizantium yang berbahaya cenderung ke struktur terdesentralisasi, termasuk bukti kerja (PoW), bukti kepemilikan (PoS), bukti kepemilikan yang didelegasikan (DPoS), bukti otoritas (PoA), dll.
03 Penjelasan Detail Algoritma Konsensus
Apakah sedikit lelah melihat ini, klik favorit, istirahat dan lanjutkan menggerogoti bagian tersulit dari artikel ini! Siswa dengan waktu terbatas dapat memulai langsung dari algoritma PoW ketiga.
Algoritma 1Paxos
**
**
Protokol Paxos Dasar awal rumit dan relatif tidak efisien, sehingga versi Paxos yang lebih baik diusulkan kemudian. Misalnya: Fast Paxos, Multi-Paxos dan Byzanetine Paxos, dll.
Paxos melanjutkan melalui serangkaian putaran negosiasi di mana satu node memiliki status "kepemimpinan". Jika pemimpin tidak daring, kemajuan akan terhenti hingga pemimpin baru terpilih, atau jika pemimpin lama tiba-tiba kembali daring.
Paxos membagi peran dalam sistem menjadi pengusul (Proposer), pengambil keputusan (Acceptor), dan keputusan akhir pelajar (Learner): Pengusul: mengusulkan proposal (Proposal). Informasi proposal meliputi nomor proposal (ID Proposal) dan nilai yang diajukan (Nilai). Akseptor: Berpartisipasi dalam pengambilan keputusan dan menanggapi proposal Pengusul. Setelah menerima Proposal, maka Proposal dapat diterima, jika Proposal diterima oleh mayoritas Penerima, maka Proposal dikatakan disetujui. Peserta didik: Tidak berpartisipasi dalam pengambilan keputusan, pelajari proposal (Nilai) terakhir yang disepakati dari Pengusul/Akseptor.
2. Algoritma Rakit
**Pengenalan algoritme:**Algoritma Rakit (Replikasi dan Toleransi Kesalahan) adalah implementasi yang disederhanakan dari pasangan algoritme Paxos. Nama Rakit berasal dari singkatan "Reliable, Replicated, Redundant, And Fault-Tolerant" Redundant, Fault Tolerant"). rakit membuat banyak penyederhanaan yang bagus atas Paxos dengan kelanjutan log. Ini menjamin konsistensi sistem ketika lebih dari setengah node dalam sistem yang terdiri dari n node bekerja secara normal. Berbeda dengan algoritma Paxos, yang secara langsung berasal dari masalah konsistensi terdistribusi, algoritma Raft diusulkan dari perspektif multi-copy state machine, dan digunakan untuk mengatur replikasi log dari multi-copy state machine. Misalnya, dalam sistem 5-node, 2 node diperbolehkan memiliki kesalahan non-Bizantium, seperti waktu henti node, partisi jaringan, dan penundaan pesan.
**Use case: **Replikasi master-slave database, rantai aliansi.
Prinsip algoritme: Ada tiga peran dalam sistem Rakit: Pemimpin, Pengikut, dan Kandidat. Dalam keadaan normal, hanya akan ada satu pemimpin, dan yang lainnya adalah pengikut. Dan pemimpin akan bertanggung jawab atas semua permintaan eksternal, jika tidak diterima oleh mesin pemimpin, permintaan tersebut akan diarahkan ke pemimpin. Biasanya leader akan mengirimkan pesan pada waktu yang tetap yaitu detak jantung (heartbeat), untuk memberi tahu followers bahwa leader cluster masih beroperasi. Setiap pengikut akan merancang mekanisme batas waktu (timeout), ketika detak jantung tidak diterima selama periode waktu tertentu (biasanya 150 ms atau 300 ms), sistem akan memasuki pemilihan negara.
Saat ini, klaster memasuki putaran pemilihan baru (masa jabatan) dan memulai pemilihan. Jika pemilihan berhasil, pemimpin baru akan mulai melakukan pekerjaan. Jika tidak, masa jabatan akan dianggap berakhir, dan masa jabatan baru akan dimulai dan pemilihan berikutnya akan dimulai.
Pemilihan dijalankan oleh kandidat. Ini mengharuskan kandidat untuk mencalonkan diri dan mengumpulkan suara dari server lain berdasarkan siapa cepat dia dapat ketika detak jantung pemimpin berhenti. Setiap server hanya memberikan satu suara per putaran pemilihan untuk mendukung atau menentang kandidat saat ini. Jika Anda tidak mendapatkan lebih dari setengah suara, Anda akan maju ke putaran pemilihan berikutnya. Kandidat yang tersisa terus mencalonkan diri berdasarkan siapa cepat dia dapat. sampai seorang pemimpin terpilih.
**Keuntungan dari algoritma Raft: **Poin pertama adalah kesederhanaan. Jika kita menggali lebih dalam di mana Paxos lebih kompleks daripada Raft, Heidi Howard dan Richard Mortier menemukan bahwa kompleksitas Paxos tercermin dalam dua aspek. Pertama, Raft melakukan log secara berurutan, sementara Paxos mengizinkan log dilakukan secara tidak berurutan, tetapi membutuhkan protokol tambahan untuk mengisi lubang log yang mungkin timbul sebagai akibatnya. Kedua, semua replika log di Raft memiliki indeks, istilah, dan urutan yang sama, sedangkan di Paxos istilah ini mungkin berbeda.
Poin kedua adalah Raft memiliki algoritma pemilihan pemimpin yang efisien. Algoritme pemilihan yang diberikan dalam makalah Paxos membandingkan ukuran id server. Ketika beberapa node menjalankan pemilihan pada saat yang sama, node dengan id server yang lebih besar menang. Masalahnya adalah jika pemimpin yang dipilih dengan cara ini tidak memiliki beberapa log, ia tidak dapat segera melakukan operasi tulis, dan harus terlebih dahulu menyalin beberapa log dari node lain. Log Raft selalu dapat memilih node dengan log mayoritas, jadi tidak perlu mengejar log.Meskipun terkadang pemilihan akan dicoba ulang karena pembagian suara, ini umumnya merupakan algoritma pemilihan yang lebih efisien.
Untuk algoritme Paxos, jika server sangat jauh di belakang, bahkan beberapa hari di belakang dalam log, tetapi terpilih sebagai pemimpin di beberapa titik, ini akan menyebabkan sejumlah waktu untuk diblokir. Dalam algoritme Raft, node yang log-nya berada di belakang tidak akan pernah dipilih.
3 Bukti Kerja (PoW)
Pengantar Algoritma: Teknologi komputer yang pertama kali digunakan untuk melawan spam. Pada tahun 2008, Satoshi Nakamoto mengusulkan Bitcoin dan blockchain dalam kertas putih Bitcoin "Bitcoin: Sistem Uang Elektronik Peer-to-Peer", dan secara inovatif merancang algoritma PoW, yang diterapkan pada Bitcoin untuk memecahkan teka-teki Matematika untuk berpartisipasi dalam konsensus. Isi inti dari algoritme ini adalah menggunakan daya komputasi untuk menemukan nilai nonce yang memenuhi hash blok. Namun, orang dengan cepat menemukan masalah mekanisme konsensus ini, yaitu konsumsi energi yang besar dan kontrol daya komputasi oleh kumpulan penambangan besar masih akan menyebabkan masalah sentralisasi.
**Kasus penggunaan:**Bitcoin, ETH1.0, Litecoin, Conflux, Dogecoin.
Prinsip algoritme: Fitur utama sistem proof-of-work adalah bahwa klien perlu melakukan beberapa pekerjaan sulit untuk mendapatkan hasil, tetapi pemverifikasi dapat dengan mudah memeriksa apakah klien telah melakukan pekerjaan yang sesuai melalui hasilnya . Fitur inti dari skema ini adalah asimetri: pekerjaan bersifat moderat bagi pemohon dan mudah diverifikasi oleh pemverifikasi. Ini berbeda dengan captcha, yang dirancang agar mudah dipecahkan oleh manusia daripada komputer.
Proof of Work (PoW) menemukan Nonce numerik melalui perhitungan, sehingga nilai hash konten setelah data transaksi disatukan memenuhi batas atas yang ditentukan. Setelah node berhasil menemukan nilai hash yang memuaskan, ia akan segera menyiarkan blok paket ke seluruh jaringan, dan node jaringan akan memverifikasinya segera setelah menerima blok paket yang disiarkan.
Kekurangan: Kecepatan lambat; konsumsi energi besar, tidak baik untuk lingkungan; rentan terhadap "skala ekonomi".
Kelebihan: Diuji secara ekstensif sejak 2009 dan masih digunakan secara luas hingga saat ini.
4 Bukti Kepemilikan (PoS)
Pengantar Algoritma: Pada tahun 2011, Quantum diusulkan di forum Bitcointalk. Peercoin, proyek blockchain pertama berdasarkan konsensus PoS, lahir pada Agustus 2012. Peercoin adalah aplikasi pertama yang mengimplementasikan algoritma PoS. Minat Peercoin adalah usia koin, yang merupakan produk dari jumlah koin yang dipegang oleh node dan waktu penahanan.Memulai transaksi akan menghabiskan sejumlah usia koin, dan setiap kali 365 usia koin dikonsumsi, tahunan akan diperoleh tingkat bunga 5%.
Pengguna: Ethereum(2.0), Conflux, Peercoin.
Prinsip algoritme: Misalnya, jika seseorang memegang 100 Dotcoin dalam transaksi selama total 30 hari, maka usia mata uang adalah 3000, dan blok PoS ditemukan kemudian, usia mata uang dibersihkan menjadi 0, dan bunga diperoleh Ini adalah 0,05*3000/365=0,41 koin. Selama proses konsensus, node mendapatkan hak pembukuan melalui usia koin yang dikonsumsi Semakin banyak usia koin yang dikonsumsi node, semakin besar peluang untuk mendapatkan hak pembukuan. Prinsip rantai utama yang ditetapkan oleh algoritma adalah: rantai yang paling banyak memakan umur mata uang adalah rantai yang benar dan efektif dalam sistem.
Keuntungan: Tidak perlu peralatan pertambangan yang kuat dan mahal. Kurangi konsumsi sumber daya dan kurangi kemungkinan serangan 51%.
Kerugian: Ini dapat menyebabkan orang kaya menimbun mata uang kripto, membentuk efek Matius, yang dapat menyebabkan inflasi mata uang kripto.
5 Bukti Sejarah (PoH)
**Pengenalan algoritme: **Proof of history dibuat oleh Solana, blockchain dengan throughput tinggi yang diluncurkan pada tahun 2018. Proof of history memungkinkan peserta jaringan untuk mencapai konsensus tepat waktu dengan menggunakan fungsi penundaan yang dapat diverifikasi, sehingga menghindari "terlama rantai" aturan.
PoH adalah jam jaringan, dan TowerBFT adalah menara pengawasnya, yang bertugas mencegah node jahat melakukan spoofing parameter waktu. Setiap validator yang memilih sebuah blok harus menunggu blok berikutnya diproduksi dan mendapatkan konfirmasi dari bukti sejarah bahwa "waktu telah berlalu" sebelum memberikan suara lagi.
Solana dengan cerdik memisahkan rantai waktu dan status berbasis hash. Alih-alih menghubungkan hash dari setiap blok bersama-sama, pemverifikasi dalam jaringan melakukan hash pada hash itu sendiri di dalam blok. Mekanisme ini adalah PoH . PoH menetapkan urutan peristiwa yang dapat diverifikasi secara kriptografis dari waktu ke waktu dengan menggunakan Verifiable Delay Function (VDF) frekuensi tinggi. Pada dasarnya, ini berarti PoH seperti jam kriptografi yang membantu jaringan menyepakati waktu dan urutan kejadian tanpa menunggu pesan dari node lain. Output berurutan dari hash status blockchain yang terbukti secara historis memberikan urutan peristiwa yang dapat diverifikasi.
**Pengguna:**Solana
Prinsip Algoritma: Pemimpin menghasilkan stempel waktu untuk setiap data tanda tangan (transaksi harus dibuktikan), dan langsung menyortir transaksi, sehingga menghindari masalah penyortiran waktu di PoS, dan setiap pemverifikasi jaminan dapat memverifikasi secara mandiri, yang sangat mempersingkat masalah waktu pemesanan ulang saat verifikasi, dan hanya perlu verifikasi bukti transaksi.
Keuntungan: Biaya rendah, hanya sepersekian sen per transaksi, kecepatan transaksi cepat, skalabilitas bagus,
**Kontra: **Kekhawatiran sentralisasi, Solana saat ini memiliki kurang dari 1200 validator yang memvalidasi transaksi di jaringannya. Lebih sedikit aplikasi terdesentralisasi: Sering disebut sebagai pembunuh Ethereum. Menurut situs webnya, lebih dari 350 Dapp telah dibuat di Solana, dibandingkan dengan hampir 3.000 di Ethereum, dan di sinilah Defi saat ini membutuhkan lebih banyak waktu pengembangan dan inovasi.
6 Bukti Otoritas (PoA)
Pengantar Algoritma: Diusulkan pada tahun 2017 oleh Gavin Wood, salah satu pendiri Ethereum (ETH) dan Parity Technologies. Mekanisme PoA tidak menambang dan tidak memerlukan Token. Dalam jaringan blockchain sekunder berbasis PoA, semua transaksi dan blok diproses oleh validator. Biaya pemeliharaan platform PoA rendah, tetapi di PoA, pemverifikasi transaksi dan verifikasi blockchain haruslah orang yang dapat lulus tinjauan keandalan. Oleh karena itu, verifikator PoA harus memperhatikan reputasinya sendiri. Reputasi adalah aset yang sangat penting dalam PoA. Biasanya, validator mengungkapkan identitas mereka yang sebenarnya. Saat ini, teknologi blockchain yang dibentuk oleh mekanisme konsensus ini terutama diterapkan pada rantai aliansi dan rantai swasta dengan karakteristik industri yang jelas.
Pengguna: PoA, Ethereum Kovantestnet, xDai, VeChain, dan rantai logistik Walmart.
Prinsip algoritme:
a.Memilih lembaga sertifikasi yang berwenang;
b. Sejumlah verifikator akan menghasilkan blok untuk mencatat transaksi dan menerima hadiah blok dan biaya transaksi. Di PoA, verifikator adalah kunci dari seluruh mekanisme konsensus Verifikator mendapatkan hak untuk menjamin jaringan dengan menempatkan identitas ini sebagai ganti hadiah blok. Jika pemverifikasi bertindak jahat atau berkolusi dengan pemverifikasi lain selama proses berlangsung, pelaku jahat dapat dihapus dan diganti melalui manajemen on-chain. Perlindungan hukum anti-penipuan yang ada diterapkan di seluruh jaringan untuk melindungi peserta dari tindakan jahat oleh validator.
keuntungan:
a.Membutuhkan lebih sedikit daya komputasi, tidak ada penambangan, penghematan energi, dan perlindungan lingkungan;
b Verifikasi cepat dan mendukung transaksi lebih cepat;
c. Verifikator dari seluruh jaringan saling mengawasi, dan mereka dapat memilih untuk bergabung dengan verifikator berpengalaman atau menghapus verifikator yang tidak memenuhi syarat kapan saja
d. Hard fork dilindungi oleh hukum, dan setiap Validator menandatangani perjanjian hukum.
kekurangan:
a.Identitas publik, privasi dan anonimitas akan dikurangi
b. Validator ditunjuk sebagai simpul otoritas terpusat yang didukung secara hukum
**7 Bukti Kerja Tertunda (**Bukti Kerja Tertunda, dPoW)
**
**
**Pengenalan algoritme:**Sebelum menjelaskan DPoW, Anda perlu menjelaskan apa itu PoB. PoB (Proof of Burn) disebut mekanisme burning proof, yaitu komitmen untuk memilih siapa yang memiliki kepemimpinan jaringan dengan membakar token di tangan sendiri. Semakin tinggi jumlah token yang dibakar, semakin tinggi kemungkinan mencapai kepemimpinan jaringan.
Dalam blockchain berbasis dPoW, penambang tidak lagi dihadiahi token untuk menambang, melainkan “kayu” yang bisa dibakar – kayu bakar. Penambang menggunakan kekuatan komputasi mereka sendiri untuk akhirnya membuktikan beban kerja mereka melalui algoritma hash, dan kemudian mendapatkan kayu yang sesuai, yang tidak dapat diperdagangkan. Ketika kayu telah terkumpul hingga jumlah tertentu, Anda dapat pergi ke lokasi pembakaran untuk membakar kayu tersebut.
Setelah perhitungan dengan serangkaian algoritma, orang yang membakar lebih banyak kayu atau BP atau sekelompok BP dapat memperoleh hak untuk menghasilkan blok di segmen acara berikutnya, dan mendapatkan hadiah (Token) setelah berhasil menghasilkan blok. Karena mungkin ada banyak orang yang membakar kayu dalam satu periode waktu, kemungkinan terbentuknya balok pada periode waktu berikutnya ditentukan oleh jumlah kayu yang dibakar sendiri. Semakin banyak yang dibakar, semakin tinggi kemungkinan mendapatkan hak untuk memproduksi balok pada periode waktu berikutnya.
Ini dapat mencapai keseimbangan antara daya komputasi dan hak penambangan. Penambang dan kumpulan penambangan dengan daya komputasi yang besar tidak harus menjadi produsen blok. Penambang kecil juga memiliki mata air, selama mereka bekerja keras dan mengumpulkan kayu dalam jumlah tertentu, mereka juga dapat menghasilkan balok. Efisiensi terjamin, partisipasi semua orang, cara partisipasi yang paling populer menjamin konsep desentralisasi, dan mencegah organisasi dengan daya komputasi atau pemegang mata uang besar mendominasi jaringan.
**Pengguna:**Komodo
Prinsip algoritme: Ada dua jenis node dalam sistem dPoW: node notaris dan node normal. 64 node notaris dipilih oleh pemangku kepentingan blockchain dPoW untuk menambahkan blok yang diaktakan dari blockchain dPoW ke blockchain PoW yang terpasang. Setelah satu blok ditambahkan, hash blok ditambahkan ke transaksi Bitcoin yang ditandatangani oleh 33 node notaris dan membuat catatan blok dPow yang di-hash ke blockchain Bitcoin. Catatan tersebut telah diaktakan oleh mayoritas node notaris di jaringan.
Untuk menghindari perang penambangan antar node notaris dan mengurangi efisiensi jaringan, Komodo merancang metode penambangan menggunakan mekanisme polling, yang memiliki dua mode operasi.
Dalam mode "Tanpa Notaris", semua node jaringan didukung untuk berpartisipasi dalam penambangan, yang mirip dengan mekanisme konsensus PoW tradisional. Dalam mode "Notaris Aktif", notaris jaringan menambang menggunakan tingkat kesulitan jaringan yang berkurang secara signifikan. Dalam mode "aktivasi notaris", setiap notaris diperbolehkan menggunakan kesulitannya saat ini untuk menambang sebuah blok, sementara node notaris lainnya harus menggunakan 10 kali kesulitan menambang, dan semua node normal menggunakan 100 kali kesulitan node notaris untuk menambang.
**Keuntungan: **Penghematan energi; peningkatan keamanan; dapat menambah nilai ke blockchain lain dengan secara tidak langsung menyediakan Bitcoin (atau rantai keamanan lainnya), tanpa membayar harga transaksi Bitcoin (atau rantai keamanan lainnya).
Kekurangan: Hanya blockchain yang menggunakan PoW atau PoS yang dapat mengadopsi algoritme konsensus ini; dalam mode "Notaris Aktif", hash dari node yang berbeda (notaris atau node normal) harus dikalibrasi dengan kecepatan, jika tidak, perbedaan antara kecepatan hash akan meledak .
8 PoS Resmi (DPoS, Bukti Kepemilikan yang Didelegasikan)
Pengantar Algoritma: Mekanisme DPoS, juga dikenal sebagai "Mekanisme Bukti Otorisasi Saham" dan "Mekanisme Wali Amanat", diusulkan pada April 2014 oleh Dan Larimer (BM), kepala pengembang Bitshares. Dari segi tertentu, DPOS sedikit mirip dengan sistem parlementer atau sistem kongres rakyat. Jika seorang delegasi gagal menjalankan tugasnya (gagal menghasilkan blok saat giliran mereka), mereka dihapus dari daftar dan jaringan memilih supernode baru untuk menggantikannya.
Untuk memudahkan pemahaman, dapat diberikan contoh lain. Bayangkan sebuah perusahaan dengan total 1.000 karyawan, yang masing-masing memiliki saham perusahaan dalam jumlah yang berbeda-beda. Sesekali, karyawan dapat memilih 10 orang yang paling mereka kenal untuk memimpin perusahaan, dan hak suara setiap karyawan sebanding dengan jumlah saham yang dimilikinya. Setelah semua orang memilih, 10 orang dengan tingkat suara tertinggi akan menjadi pemimpin perusahaan.
Jika seorang pemimpin tidak kompeten atau melakukan sesuatu yang merugikan perusahaan, karyawan tersebut dapat mencabut suara pemimpin tersebut, sehingga tingkat suaranya tidak dapat masuk 10 besar, sehingga mengundurkan diri dari manajemen.
Pengguna: BitShares, Steemit, EOS, Lisk, Ark.
**Pro: **Hemat energi; cepat; situs blog lalu lintas tinggi Steemit menggunakannya. Waktu blok EOS adalah 0,5 detik.
**Kontra: **Sedikit terpusat; peserta dengan taruhan tinggi dapat memilih untuk menjadi validator (ini menjadi masalah di EOS baru-baru ini).
9 Toleransi Kesalahan Bizantium Praktis (PBFT)
**
**
Pengenalan algoritme: Dalam algoritme PBFT, satu node akan dianggap sebagai node master, sedangkan node lainnya adalah node cadangan. Semua node dalam sistem akan berkomunikasi satu sama lain, dan tujuan akhirnya adalah setiap orang dapat mencapai konsensus tentang prinsip minoritas yang mematuhi mayoritas.
Proses Konsensus:
a. Klien mengirimkan permintaan ke node master untuk melakukan operasi
b. Node master menyiarkan permintaan ini ke setiap node cadangan
c. Semua node menjalankan operasi dan mengembalikan hasilnya ke klien
d.Ketika klien menerima hasil identik f+1 dari node yang berbeda, proses berakhir. f mewakili nilai maksimum dari kemungkinan node berbaring.
Digunakan oleh: HyperLedgerFabric, Stellar, Ripple, Dispatch
**Keuntungan: ** Kecepatan tinggi, terukur.
Kontra: Biasa digunakan di jaringan pribadi dan berizin.
10 Toleransi Kesalahan Bizantium yang Didelegasikan (dBFT Toleransi Kesalahan Bizantium yang Didelegasikan, dBFT)
Pengenalan algoritme: Komunitas blockchain Tiongkok NEO (sebelumnya dikenal sebagai Xiaoyi) mengusulkan algoritme toleran kesalahan Bizantium dBFT yang ditingkatkan. Algoritme ini mengacu pada ide desain PoS berdasarkan PBFT. Pemegang buku, dan kemudian pemegang buku mencapai konsensus melalui algoritma toleran kesalahan Bizantium. Algoritme ini memperbaiki kurangnya konsistensi akhir PoW dan PoS, membuat blockchain cocok untuk skenario keuangan.
Juga untuk mengatasi Masalah Jenderal Bizantium, mekanisme "Toleransi Kesalahan Bizantium Resmi" adalah algoritme konsensus yang menjamin toleransi kesalahan yang diterapkan di dalam blockchain NEO. Dalam mekanisme ini, ada dua peserta, satu adalah "simpul pembukuan" untuk pembukuan profesional, dan yang lainnya adalah pengguna biasa dalam sistem.
Pengguna biasa memilih untuk menentukan simpul pembukuan berdasarkan proporsi kepemilikan mereka. Ketika konsensus perlu disahkan, seorang juru bicara dipilih secara acak dari simpul pembukuan ini untuk menyusun rencana, dan kemudian simpul pembukuan lainnya mengikuti toleransi kesalahan Bizantium algoritma. Yaitu, prinsip minoritas yang mematuhi mayoritas membuat pernyataan. Jika lebih dari 66% node setuju dengan rencana pembicara, konsensus tercapai; jika tidak, pembicara dipilih kembali dan proses pemungutan suara diulangi.
Karena semua delegasi dapat memverifikasi proposal blokir, mudah untuk memahami apakah data yang dikirim oleh pembicara valid atau tidak valid. Jadi jika pembicara tidak jujur dan mengirimkan proposal yang tidak valid ke dua pertiga delegasi, blok tidak akan cocok dan pemilik node tidak akan memvalidasinya. Konsensus dicapai dengan dua pertiga suara dan pembicara baru dipilih.
**Pengguna:**Neo
Proses Konsensus:
a. Siapa saja dapat menjadi wakil asal memenuhi persyaratan. Semua pemegang token NEO dapat memilih, delegasi tidak anonim, dan 1.000 GAS diperlukan untuk menjadi pemilik node.
b. Seorang pembicara dipilih secara acak dari antara para delegasi.
c. Pembicara membangun blok baru dari transaksi menunggu verifikasi. Pembicara kemudian mengirimkan proposal ke perwakilan terpilih. Mereka seharusnya melacak semua transaksi dan mencatatnya di jaringan.
d. Delegasi bebas untuk berbagi dan membandingkan proposal yang telah mereka terima untuk menguji keakuratan data serta kejujuran narasumber. Jika lebih dari dua pertiga delegasi mencapai konsensus dan memvalidasinya, blok ditambahkan ke blockchain.
**Keuntungan: **Cepat (dibutuhkan 15-20 detik untuk menghasilkan blok); throughput transaksi besar, tidak perlu mengkonsumsi energi, terukur, dan tidak ada garpu.
Kekurangan: Tidak ada anonimitas, dan identitas asli diperlukan agar dapat dipilih. Setiap orang berlomba-lomba menjadi akar rantai. Mungkin ada beberapa rantai akar.
11. Rotation Practical Byzantine Fault Tolerance (RBPFT)
Pengenalan algoritme: Prinsip dBft dan RPBFT mirip dengan PBFT, hanya saja tidak semua node berpartisipasi dalam konsensus, tetapi node dibagi menjadi dua jenis:
a.Consensus node: node yang menjalankan proses konsensus PBFT dan memiliki kewenangan untuk menghasilkan blok secara bergantian
b. Node verifikasi: tidak menjalankan proses konsensus, verifikasi apakah node konsensus itu sah, blokir verifikasi, setelah beberapa putaran konsensus, itu akan beralih ke node konsensus
Dalam toleransi kesalahan Bizantium round-robin, node konsensus digantikan oleh node verifikasi secara bergantian.
**Use Case:**Fisco-BCOS
**Keuntungan: **Kecepatan transmisi lebih cepat daripada gosip, dan tidak ada paket pesan yang berlebihan
Bagi dan taklukkan, bandwidth keluar dari setiap node adalah O(1), skalabilitas yang kuat
Kekurangan: Node perantara adalah satu titik dan memerlukan strategi toleransi kesalahan tambahan
12. AptosBFT
**
**
Pengenalan algoritme: Ini juga merupakan algoritme turunan dari PBFT. Algoritme konsensus yang dinamai Aptos didasarkan pada HotStuff, yang didasarkan pada PBFT. Kelebihan dari model algoritma ini seperti bawang dan boneka Rusia, yang perlu dikupas lapis demi lapis. Setiap node hanya berkomunikasi dengan pemimpin, daripada mengirim pesan ke pemimpin dan semua "jenderal" lainnya. Pemimpin menyiarkan pesan (blok yang diusulkan) untuk dipilih; setiap node mengirimkan suaranya ke pemimpin yang mengumpulkan pesan.
Kasus Penggunaan: Aptos
Akhirnya, ringkasan dari bagian ini dilampirkan:
**Juga, ada beberapa algoritme konsensus yang tidak biasa. **
Pada tahun 2015, Profesor David Mazieres, kepala ilmiah Stellar.org, mengusulkan Protokol Konsensus Stellar (SCP). SCP berkembang berdasarkan Perjanjian Bizantium Federal dan Perjanjian Ripple, dan merupakan mekanisme konsensus pertama yang terbukti aman, dengan empat sifat utama kontrol terdesentralisasi, latensi rendah, kepercayaan fleksibel, dan keamanan asimtotik.
Pada tahun yang sama, proyek Sawtooth Lake Hyperledger menggabungkan konsensus Ripple dan SCP dan mengusulkan algoritma konsensus pemungutan suara Kuorum untuk menangani skenario aplikasi yang memerlukan penyelesaian transaksi instan.
Pada tahun 2016, pemenang Turing Award dan profesor MIT Sivio Micali mengusulkan algoritme konsensus toleran-kesalahan Bizantium cepat yang disebut AlgoRand. Algoritme ini menggunakan teknologi lotere kriptografik untuk memilih pemverifikasi dan pemimpin proses konsensus, dan melalui BA* The Byzantine Fault yang dirancangnya Protokol Toleran mencapai konsensus pada blok baru. AlgoRand membutuhkan komputasi yang sangat sedikit dan sangat sedikit garpu, dan dianggap sebagai teknologi konsensus buku besar terdistribusi yang benar-benar demokratis dan efisien.
Pada tahun 2017, Universitas Cornell mengusulkan algoritma baru yang disebut Sleepy Consensus (konsensus tidur) Konsensus ini ditujukan pada fakta bahwa sebagian besar node konsensus skala besar di lingkungan Internet mungkin offline, dan hanya beberapa node yang online. untuk berpartisipasi dalam proses konsensus. Studi ini membuktikan bahwa algoritma konsensus tradisional tidak dapat menjamin keamanan konsensus di lingkungan ini, namun dengan menggunakan algoritma konsensus yang tidak aktif, selama jumlah node jujur online melebihi jumlah node yang rusak, keamanan dan ketahanan dapat dijamin.
##04 Ringkasan
Jika Anda melompat keluar dari perspektif pengembang dan memasukkan lebih banyak cara berpikir yang menggabungkan politik dan ekonomi, mungkin ada lebih banyak algoritme konsensus, seperti menggabungkan metode konsensus yang mirip dengan konsep PPP, yang tidak hanya dapat mencapai sifat hukuman untuk kejahatan pihak, tetapi juga dapat mencapai tujuan penghematan daya komputasi yang paling efisien.
Singkatnya, mekanisme konsensus adalah inti dari teknologi blockchain yang dapat memecahkan masalah kepercayaan dalam sistem terdistribusi, memastikan konsistensi dan keamanan data antar node, dan menghindari serangan dan perusakan node berbahaya, sehingga memastikan blok Stabilitas dan keandalan sistem rantai. Pada saat yang sama, mekanisme konsensus juga dapat memecahkan masalah "pengeluaran ganda" dan meningkatkan throughput dan kecepatan pemrosesan sistem blockchain. Tetapi berbagai algoritme konsensus tidak sepenuhnya aman, efisien, dan terdesentralisasi.
Tidak ada algoritme terbaik, hanya algoritme yang paling cocok untuk Anda. Pilihan algoritme konsensus sangat terkait dengan skenario aplikasi. Lingkungan tepercaya menggunakan Paxos atau RAFT, aliansi yang diizinkan dapat menggunakan PBFT, dan rantai yang tidak diizinkan dapat menggunakan konsensus PoW, PoS, Ripple, dll. **Mekanisme konsensus terbaik selalu yang sesuai dengan kebutuhan pengguna. **