Artikel ini adalah tinjauan dangkal dari pendekatan kunci untuk mencapai konsensus dalam lingkungan desentralisasi. Materi akan memungkinkan Anda untuk memahami tugas-tugas yang menyelesaikan protokol yang dipertimbangkan, ruang lingkup aplikasi mereka, desain dan fitur penggunaan, dan juga akan menilai prospek untuk pengembangan dan penerapannya dalam sistem akuntansi terdesentralisasi.
Perhatikan bahwa dalam jaringan desentralisasi, prinsip redundansi diterapkan, yang didasarkan pada kenyataan bahwa node dapat melakukan pekerjaan yang sama. Untuk jaringan terpusat, ini tentu saja tidak efisien, dan untuk jaringan terdesentralisasi, ini merupakan prasyarat. Mari kita beralih ke persyaratan dasar.
Persyaratan Protokol Konsensus
Protokol harus memastikan operasi yang dapat diandalkan pengguna dalam kondisi yang agak keras dan pada saat yang sama memenuhi persyaratan minimum. Yang utama tercantum di bawah ini.
Kurangnya pusat pesta tepercaya . Jaringan terdiri dari rekan-rekan. Jika penyerang atau pihak ketiga mencoba untuk menonaktifkan sejumlah node tertentu, jaringan akan terus bekerja secara normal sampai peserta yang jujur mengendalikan sebagian besar node jaringan.
Anggota yang jujur tidak tahu situs mana yang dikendalikan oleh penjahat cyber . Diasumsikan bahwa node lain dapat gagal atau berfungsi secara sewenang-wenang pada titik waktu yang sewenang-wenang, termasuk dikoordinasikan oleh penyerang untuk melakukan serangan pada jaringan. Sekali lagi, peserta yang jujur tidak tahu node mana yang jujur dan mana yang buruk atau tidak dapat diandalkan.
Diasumsikan bahwa
jaringan tersebut secara sadar tidak dapat diandalkan . Beberapa pesan mungkin dikirim dengan keterlambatan parah, sementara yang lain mungkin hilang di jaringan dan mungkin tidak terkirim sama sekali. Dalam keadaan seperti itulah konsensus yang terdesentralisasi harus terus berfungsi secara normal: semua node yang jujur harus datang ke keadaan yang sama dari database transaksi yang dikonfirmasi.
Protokol harus sepenuhnya formal . Tidak ada keterlibatan manusia tambahan yang seharusnya dan tidak ada data tambahan yang diperlukan. Semua node jujur harus datang ke solusi yang sama, sepenuhnya mengikuti algoritma yang dijalankan komputer.
Selain itu,
ada asumsi tertentu di mana protokol menjamin operasi yang benar . Node yang jujur harus menjadi mayoritas dari semua peserta: lebih dari ½ atau ⅔ dari jumlah total mereka. Namun, waktu pengambilan keputusan tidak terbatas. Pembatasan mungkin terkait dengan jumlah langkah untuk membuat keputusan, tetapi bukan waktu.
Area Protokol Konsensus
Mata uang digital
Pertama-tama, ini berlaku untuk cryptocurrency: Bitcoin menggunakan algoritma Nakamoto, Ethereum menggunakan versi GHOST yang disederhanakan, Bitshares mengimplementasikan Delegated PoS, dll.
Perlu dicatat bahwa komunitas yang mendukung mata uang digital tertentu tidak selalu besar dan terdesentralisasi. Ada sejumlah mata uang digital lainnya yang terpusat. Namun, ini tidak berarti bahwa mekanisme konsensus tidak diperlukan. Misalnya, Ripple menggunakan protokol BFT di lingkungan terpusat.
Sistem yang sangat andal dan kritis
Protokol konsensus digunakan dalam sistem komputasi yang sangat andal. Mereka dapat digunakan untuk mengakses database terdistribusi ketika membangun cluster, dan mereka juga harus digunakan dalam sistem teknis kritis: ini dapat menjadi sistem kontrol peralatan pesawat terbang, sistem kontrol reaktor nuklir, serta dalam teknologi luar angkasa.
Pada 6 Februari 2018, peluncuran Falcon Heavy berlangsung. Sangat menarik untuk melihatnya dan membaca ulasan teknis. Tetapi tidak kalah menarik untuk membaca tentang algoritma konsensus mana yang digunakan tim. Para insinyur terpaksa menggunakan barang elektronik sederhana, yang dijual di toko-toko biasa dan tidak bekerja dengan sangat andal dalam kondisi ruang yang sulit. Oleh karena itu, mereka menggunakan banyak redudansi dalam pekerjaan mereka dan mencapai konsensus dalam kasus ini diperlukan.
Cryptocurrency
Cryptocurrency bekerja di jaringan peer-to-peer. Dalam hal ini, pesan atau transaksi ditransmisikan antara peserta jaringan pada titik waktu yang sewenang-wenang. Misalkan ada anggota yang berlokasi di AS dan anggota yang berlokasi di Australia di jaringan. Pembayaran yang dikirim dari Amerika Serikat akan dilihat oleh peserta dari Amerika lebih awal dari pembayaran yang dikirim dari Australia. Ini karena keterlambatan serius, menurut standar komputer, dalam mengirimkan pesan dari satu benua ke benua lain. Situasinya akan serupa untuk orang Australia, karena mereka akan melihat pembayaran dari Australia lebih awal dari pembayaran dari AS.
Situasi yang dijelaskan di atas berarti bahwa peserta jaringan yang berbeda akan melihat pada suatu saat mereka akan melihat keadaan akhir yang berbeda dari database dengan transaksi. Karena transaksi datang dari pengguna ke validator pada waktu yang berbeda, diperlukan protokol yang akan memungkinkan setiap node, terlepas dari lokasinya, untuk menerima semua transaksi dalam urutan yang sama.
Pada dasarnya, dua pendekatan digunakan untuk pengoperasian sistem akuntansi cryptocurrency: PoW, yang merupakan yang paling umum, dan PoS, yang telah berkembang aktif baru-baru ini.
Di PoW, sejumlah pekerjaan tambahan sedang dilakukan, yang sekarang terdiri dalam menemukan prototipe fungsi hash. Bahkan, ada perlambatan buatan jaringan untuk memastikan keamanan. Untuk melakukan tindakan jahat, penyerang harus melakukan sejumlah pekerjaan yang diperlukan. Ini membutuhkan sejumlah besar energi dan membuat implementasi serangan tidak terlalu efektif. Pendekatan ini memastikan keandalan jaringan. Namun, kebutuhan untuk melakukan tugas yang menuntut banyak sumber daya membatasi bandwidth jaringan yang berjalan pada protokol ini. Tetapi para ilmuwan terus bekerja pada pendekatan PoW dan mengusulkan skema alternatif, serta tugas-tugas intensif sumber daya lainnya, selain mencari gambar terbalik dari fungsi hash. Baru-baru ini sebuah algoritma berdasarkan
bukti ruang-dan-waktu telah diusulkan.
PoS memungkinkan Anda untuk menyediakan bandwidth jaringan yang lebih tinggi dan tidak memerlukan biaya energi yang berlebihan, seperti PoW. Namun, PoS membutuhkan analisis yang lebih serius dalam pengembangan dan implementasi cryptocurrency.
Dalam sistem akuntansi berbasis PoS, diasumsikan bahwa pengguna yang memiliki sejumlah besar koin tidak menguntungkan untuk diserang. Jika dalam sistem akuntansi berdasarkan sistem PoW, seorang pengusaha menginvestasikan uang dalam peralatan dan membayar listrik, dan kemudian membuat serangan yang berhasil pada sistem, maka ia akan kehilangan investasinya di pertambangan. Dalam PoS, pendekatan yang berbeda diambil: jika diasumsikan bahwa penyerang berinvestasi dalam koin tertentu yang nilainya ia tertarik, maka jika terjadi serangan yang sukses pada sistem ia akan kehilangan investasinya, karena koin akan terdepresiasi. Oleh karena itu, strategi yang paling menguntungkan dianggap kepatuhan jujur terhadap protokol.
Daftar Istilah Pendek
Keselamatan - kemampuan sistem akuntansi untuk mempertahankan prinsip dasar fungsi dan kepentingan peserta yang jujur jika ada pengaruh jahat.
Finality - properti yang menunjukkan tidak dapat dibatalkannya keputusan atau data yang dikonfirmasi.
Liveness adalah properti yang memastikan bahwa jika semua anggota yang jujur ingin menambahkan entri ke database umum, maka itu akan ditambahkan di sana.
Kegigihan - kemampuan sistem akuntansi untuk mempertahankan ketidakselarasan kondisi akhir basis datanya bahkan setelah semua validatornya gagal.
Diizinkan - menunjukkan batasan, yaitu, kebutuhan untuk mendapatkan izin untuk berpartisipasi dalam proses tertentu.
Tanpa izin - berarti akses gratis untuk berpartisipasi dalam proses tertentu.
Ouroboros Consensus Protocol
Ouroboros adalah protokol berbasis PoS yang memberikan konsensus di antara validator transaksi mata uang digital Cardano. Selain itu, algoritma itu sendiri adalah yang pertama terbukti stabil di antara semua alternatif PoS.
Pertama, pertimbangkan opsi yang lebih sederhana berdasarkan pada pancang statis, ketika diasumsikan bahwa distribusi koin yang ada tidak berubah.

Ada beberapa blok genesis dan pengguna membentuk transaksi baru, tetapi mereka tidak secara signifikan mempengaruhi distribusi.
Blok Genesis berisi data dengan beberapa nilai acak, dengan bantuan yang mana pemilihan validator berlangsung. Mereka memungkinkan Anda untuk melepaskan blokir pada titik waktu tertentu. Validator yang telah menerima hak ini mengumpulkan transaksi, menerimanya dari validator lain, memeriksa kebenaran dan melepaskan blok ke jaringan. Jika dia melihat beberapa rantai, maka dia memilih yang terpanjang dan mengikatnya.
Dalam konteks situasi yang terkait dengan pasak statis, kita dapat menggunakan pendekatan ini untuk jangka waktu tertentu, tetapi kemudian distribusi pasak (distribusi pasak) antara pengguna yang berbeda dapat berubah. Dengan kata lain, sebagian uang mengalir dari satu pengguna ke pengguna lain, dan Anda perlu menyesuaikan probabilitas untuk mendapatkan hak untuk memilih blok.
Catatan : pancang statis menyiratkan bahwa pancang validator periode waktu tertentu dianggap tidak berubah. Validator dapat saat ini berpartisipasi dalam keputusan dan melakukan pembayaran, tetapi jumlah koin di pasaknya, dan oleh karena itu berat suaranya, akan tetap tidak berubah hingga periode waktu berikutnya.
Dalam kasus pasak dinamis, waktu dibagi menjadi slot, dan slot dibagi menjadi era. Durasi satu era kira-kira sama dengan durasi satu hari. Rasio ini ditentukan dari kenyataan bahwa selama periode waktu ini distribusi koin tidak dapat berubah secara signifikan.
Pada akhir era, distribusi koin saat ini untuk setiap pengguna dicatat. Selain itu, nilai keacakan baru dihasilkan untuk memastikan bahwa di era berikutnya, pengguna yang memenuhi syarat untuk menghasilkan blok memang akan dipilih secara acak sesuai dengan jumlah koin yang mereka miliki.
Demikian pula, ada perlindungan terhadap apa yang disebut serangan gerinda, ketika pengguna tertentu dapat memilah-milah berbagai opsi untuk blok, berbagai opsi untuk keacakan untuk membentuk rantai di mana ia dapat memaksimalkan keuntungannya. Cryptocurrency berdasarkan protokol PoS generasi pertama seperti Peercoin dan NXT berpotensi rentan terhadap serangan tersebut.
Pembuat algoritma ini memecahkan masalah di atas. Validator memulai protokol khusus di antara mereka sendiri, yang disebut MPC (komputasi multi-partai) dan memungkinkan untuk menghasilkan keacakan bersama. Protokol ini juga terbukti kuat, berdasarkan pendekatan yang telah lama ditetapkan.
Protokol Ouroboros memberikan ketekunan, dengan ketentuan bahwa mayoritas validator jujur ada dalam sistem. Jika peserta yang jujur yang menangani masalah blok mengontrol lebih dari 50% koin dalam sistem, protokol dapat dianggap terlindungi.
Mekanisme insentif (motivasi) untuk perilaku jujur telah dikembangkan. Dengan menggunakan teori permainan, terbukti bahwa validator mendapatkan manfaat maksimal ketika mengikuti aturan protokol. Partisipasi apa pun dalam komisi serangan tidak hanya tidak meningkatkan keuntungan peserta, tetapi dalam beberapa kasus dapat menguranginya. Oleh karena itu, strategi yang paling menguntungkan bagi validator adalah dengan jujur mengikuti aturan protokol.
Kapasitas sistem akuntansi hanya akan dibatasi oleh penundaan selama sinkronisasi jaringan. Protokol ini memberikan efisiensi energi yang tinggi dibandingkan dengan proof-of-work, karena pertanian pertambangan tidak diperlukan di sini. Sekarang untuk pengumpulan transaksi dan pelepasan blok, komputer pribadi normal sudah cukup. Di masa depan, perhitungan ini dapat dilakukan bahkan pada smartphone biasa.
Keterbatasan protokol Ouroboros termasuk fakta bahwa versi pertama protokol itu sinkron. Ini berarti bahwa pesan antar peserta harus dikirim dalam periode waktu terbatas. Jika ada penundaan yang lebih lama pada jaringan daripada yang ditetapkan dalam aturan, ini dapat mengurangi keamanan. Namun demikian, sudah direncanakan untuk menggunakan versi protokol berikutnya - Ouroboros Praos. Di dalamnya, bahkan dengan peningkatan keterlambatan jaringan, keamanan lengkap dijamin.
Masalah dengan PoW dalam Bitcoin
Pertimbangkan konsensus yang mendasari Bitcoin. Bagian dari blok yang dihasilkan oleh pengguna yang jujur masih dibuang - inilah yang disebut blok yatim. Blok-blok ini dihasilkan secara paralel dengan rantai utama, tetapi sebagian besar jaringan memutuskan bahwa rantai ini tidak boleh dilanjutkan, dan blok-blok tersebut dibuang.
Ketika ada beberapa blok seperti itu, tidak ada yang perlu dikhawatirkan. Namun, jika ada banyak dari mereka, jaringan tidak punya waktu untuk melakukan sinkronisasi, dan ternyata bagian dari daya komputasi pengguna jaringan yang jujur terbuang sia-sia. Ini berarti bahwa sekarang penyerang harus berjuang bukan untuk 51% dari kekuatan komputasi jaringan, tetapi pada kenyataannya untuk persentase yang lebih rendah. Jika nilai ini 20%, maka penyerang dengan daya komputasi 20% dan penundaan besar dalam pengiriman pesan jaringan dapat menerapkan serangan pengeluaran ganda.
Oleh karena itu, dalam Bitcoin, interval waktu ditetapkan antara blok yang ditambang selama 10 menit. Berkat ini, jaringan berhasil menyinkronkan dengan jelas dan kemungkinan blok seperti itu berkurang. Jika Anda perlu meningkatkan throughput jaringan dengan meningkatkan frekuensi pembentukan blok, maka Anda memerlukan solusi yang berbeda.
Hantu
Solusi seperti pertama adalah protokol GWOST PoW. Versi yang disederhanakan digunakan pada platform Ethereum.

Dalam hal ini, penyerang dapat menarik rantainya (ditandai dengan warna merah di gambar) dan menjadikannya yang terpanjang, tetapi itu tidak akan menang. Pengguna yang jujur akan mengikuti rantai yang mereka buat sebelumnya.
Pengguna yang jujur dalam hal ini mungkin memiliki dua rantai. Yang terpanjang (1B-2D-3F-4C-5B), tetapi akan lebih pendek dari rantai penyerang. Keunikan GHOST adalah bahwa algoritma tidak berfokus pada rantai terpanjang, tetapi pada jumlah blok di pohon yang dibentuk oleh rantai saat ini. Ini memperhitungkan tidak hanya panjang rantai itu sendiri, tetapi juga blok di ketinggian yang berbeda. Jadi, hasilnya bukan rantai linier, tetapi pohon. Jumlah blok yang ada di dalamnya diperhitungkan.
Jika Anda melihat rantai 1B-2C-3D-4B, maka blok 3E dan 3C yang menyertainya terlihat. Dengan jumlah blok dan pekerjaan yang dihabiskan, rantai ini memiliki kompleksitas terbesar dan akan dianggap sebagai yang utama. Pengguna yang jujur akan terus menganggapnya sebagai yang utama, terlepas dari upaya penyerang untuk menyerang jaringan. Dalam konsensus tradisional Nakamoto, serangan semacam itu akan berhasil, tetapi tidak menimbulkan ancaman bagi GHOST.
Namun demikian, kerugian GHOST adalah kenyataan bahwa sebagian dari blok masih hilang. Dalam hal ini, rantai 2D-3F-4C-5B masih akan dibatalkan. Akibatnya, pertanyaan menjatuhkan blok pengguna yang jujur tetap terbuka.
SPESIFIK dan PHANTOM
Untuk meningkatkan frekuensi pembentukan blok dan memecahkan masalah menjatuhkan blok pengguna yang jujur, dua protokol PoW diusulkan: SPECTER dan PHANTOM.

Mereka bahkan tidak lagi menggunakan struktur pohon, tetapi apa yang disebut graph asiklik terarah (DAG). Dalam kasus ini, validator menyertakan pointer ke blok yang belum direferensikan oleh validator lain di header bloknya, setidaknya dalam status jaringan yang dilihatnya pada waktu saat ini, dan mengirimkan blok lebih jauh.
Oleh karena itu, struktur diperoleh di mana semua blok yang dilihat validator pada saat saat ini dimasukkan. Di sini, kekuatan penambangan pengguna yang jujur tidak hilang sama sekali. Selain itu, ia menyediakan bandwidth jaringan yang tinggi dan tingkat keamanan yang tinggi. Keuntungan dari pendekatan ini adalah kenyataan bahwa sistem tersebut benar-benar terdesentralisasi.
Mari kita bandingkan fitur-fitur jaringan Bitcoin dan jaringan yang berfungsi menggunakan protokol SPECTER dan PHANTOM. Jika kita berbicara tentang situasi saat ini dalam jaringan Bitcoin, maka ada baiknya memberikan pentingnya penambangan. Dalam Bitcoin modern, 144 blok dirilis per hari. Angka inilah yang dapat diperoleh jika jumlah menit dalam beberapa hari dibagi dengan 10. Sangat mungkin bahwa validator membeli peralatan, membayar listrik untuk waktu yang lama, tetapi tidak berfungsi untuk menghasilkan unit, dan selama waktu itu peralatan sudah usang dan digunakan lebih banyak tidak masuk akal. Untuk menghindari situasi ini, validator wirausaha digabungkan dalam kolam penambangan. Sebagian besar kumpulan penambangan memiliki petunjuk (perusahaan / organisasi), yang cenderung Bitcoin modern untuk memusatkan proses memvalidasi transaksi baru.
Dalam kasus SPECTER dan PHANTOM, kolam penambangan tidak diperlukan sama sekali. Jika kita menggambar paralel dengan jaringan Bitcoin modern, maka setiap pengguna jaringan yang menggunakan protokol SPECTER dan PHANTOM memiliki peluang untuk melepaskan satu blok per hari. Dengan demikian, kebutuhan untuk penambangan umumnya menghilang dan kami sampai pada jaringan yang benar-benar terdesentralisasi.
, SPECTRE PHANTOM , .
BFT-
, – BFT- (Byzantine Fault Tolerance).

, 80- XX . , - . , . , . , , , , . - , . . , .
BFT- . , , . . , , . , . : .
, ⅔ . BFT- , . BFT- , .
BFT-. , , , , , , Genesis . , . BFT- .
BFT-
Practical BFT
, , Practical BFT. 1999 . . , . . , . , ⅔ .
⅔ , .

, , , , . , , , , . , , , . .
, , DoS- .
HoneyBadger BFT
HoneyBadger BFT . , , . . HoneyBadger : RBC (Reliable broadcast) BA (Byzantine Agreement).

RBC- . , , ⅔ . BA- , .
. , , . . : - , . , , .
Algorand Hashgraph.
Algorand
Algorand 2017 . BFT-, , , . , .

, , , ⅔ , ⅔ . , « » (DoS-). , , adaptive corruption.
, , . , ( , ⅔). .
BFT-, safety persistence. .
, liveness, , . , , ( ) . . , .
Hashgraph
Hashgraph . , , , , .

, : «», , , .
Hashgraph , , , . . , Algorand, . Hashgraph safety liveness, . , .
, , , , . ⅔ , .
BFT
BFT-. . . , ⅔ . , Algorand Hashgraph, .
: permissioned . , . , . , .
permissionless , . . .
Distributed Lab , .Pertanyaan yang Sering Diajukan
– ?, , . : Algorand Hashgraph BFT-, PoS- Ouroboros. 2018 PHANTOM. .
– Ouroboros , , , ?grinding-, . Ouroboros persistence liveness: , , . , , , .
persistence . , , MPC . , . , MPC , , , . . - , , . . «» ( ), .
– , ?, . . PHANTOM, SPECTRE Ouroboros.
, .
– PHANTOM SPECTRE, ? .PHANTOM SPECTRE . , . PHANTOM SPECTRE , . , . , . , , , .
– BFT -?. PBFT, -, . Algorand Hashgraph, .
– PBFT ?( ) . , , , .
– , Algorand – DPoS (Delegated Proof-of-stake), . Delegated Proof-of-stake , . . Algorand, , .
– , ?SPECTRE PHANTOM – . SPECTRE , .