Algorand
Desain > Algoritma konsensus

Di jaringan Algorand, algoritma konsensus tidak memerlukan otorisasi dan semua pengguna yang memiliki saldo Algo dapat  berpartisipasi. Algoritma konsensus bekerja dalam beberapa putaran,  setiap putaran terdiri dari dua fase. Tahap pertama adalah tahap usulan blok dan tahap kedua adalah tahap finalisasi blok, dimana dilakukan pemungutan suara untuk blok yang diusulkan..
Tahap pertama (fase proposal blok) menggunakan bukti kepemilikan sebagai prinsipnya. Pada fase ini, beberapa komite yang terdiri dari  pengguna  sistem dipilih secara acak untuk mengusulkan blok baru. Pemilihan ini tidak sepenuhnya acak  dan memiliki bobot tertentu sesuai dengan pengguna yang dipilih. Pemilihan panitia ini dilakukan berdasarkan proses yang disebut “klasifikasi kode”. Dalam proses ini, tidak ada otoritas pusat yang menentukan pengguna mana yang akan menjadi anggota komite, namun setiap pengguna menentukan apakah mereka menjadi anggota komite  dengan melakukan fungsi secara lokal yang disebut fungsi acak yang dapat diverifikasi (VRF). VRF kemudian mengkonfirmasi bahwa pengguna  telah dipilih, dan VRF kemudian mengembalikan bukti kriptografi yang dapat digunakan untuk memverifikasi bahwa pengguna  adalah anggota komite.
Hanya  pengguna tertentu saja yang  mengetahui jika dirinya menjadi anggota komite, kecuali/sampai mereka mengirimkan pesan kepada pengguna lain  bahwa dirinya adalah anggota. Kemampuan pengguna untuk menjadi anggota komite dipengaruhi oleh “saham” (misalnya jumlah token Algo) yang dimiliki pengguna. Semakin banyak mereka berpartisipasi, semakin besar peluang mereka untuk menjadi anggota.
Setelah menentukan apakah mereka dalam komite pemilihan blok, seorang pengguna membangun blok yang diusulkan dan menyebarkannya ke jaringan untuk ditinjau/dianalisa selama fase ke dua. Pengguna mencantumkan bukti kriptografik dari VRF ke dalam blok yang diusulkan, yang menunjukkan bahwa pengguna tersebut benar benar anggota komite yang pantas.
Pada fase kedua (fase finalisasi blok),  protokol perjanjian Bizantium (disebut “BA⋆”) digunakan untuk memilih blok yang diusulkan. Pada tahap kedua ini, gambar kode seperti yang dijelaskan di atas digunakan kembali untuk mengidentifikasi panitia baru. Panitia pemilihan tahap kedua ini  berbeda dengan tahap pertama, meski mungkin masih memiliki anggota panitia yang sama seperti pada tahap sebelumnya. Setelah pengguna  menentukan bahwa mereka adalah bagian dari komite tahap kedua, mereka menganalisis blok yang diusulkan yang mereka terima (ini melibatkan verifikasi bahwa blok tersebut benar-benar diusulkan oleh pengguna) yang digunakan oleh komite fase satu) dan memutuskan apakah ada blok. untuk diperebutkan. Jika komite pemungutan suara mencapai  konsensus mengenai blok baru, blok baru tersebut dikirimkan ke jaringan sebagai  blok baru.
Algoritma konsensus Algorand mempunyai karateristik "player replaceability". Seperti yang dijelaskan diatas, anggota komite pada tiap fase berbeda setiap terdapat fase baru. Ini melindungi pengguna dari serangan terarah, karena penyerang tidak akan tahu sebelumnya siapa pengguna yang akan menjadi bagian dari komite.
Algorand mampu bertahan melawan partisi yang sewenang-wenang, juga disebut sebagai asynchronous safety. Dua blok yang berbeda tidak dapat mencapai konsensus pada putaran yang sama. Yang berarti terjamin secara matematis bahwa Algorand tidak akan tercabang. Asynchronous safety ini juga sudah diperiksa secara formal oleh Runtime Verifications Inc. dan dibandingkan dengan model verifikasi sebelumnya, model juga menghitung masalah waktu dan aksi penyerang. Misalnya ketika penyerang memiliki kendali atas pengiriman pesan.