Nomer Acak lan Jaringan Desentralisasi: Aplikasi Praktis

Pambuka

"Generasi nomer acak penting banget kanggo ditinggalake."
Robert Cavue, 1970

Artikel iki dikhususake kanggo aplikasi praktis saka solusi nggunakake generasi nomer acak bebarengan ing lingkungan untrusted. Ing cendhak, carane lan ngapa acak digunakake ing blockchains, lan sethitik babagan carane mbedakake "apik" acak saka "ala". Ngasilake nomer sing bener acak minangka masalah sing angel banget, sanajan ing komputer siji, lan wis suwe diteliti dening para kriptografi. Inggih, ing jaringan desentralisasi, generasi nomer acak malah luwih rumit lan penting.

Ing jaringan ing ngendi peserta ora ngandel yen kemampuan kanggo ngasilake nomer acak sing ora bisa dibantah ngidini kita bisa ngatasi akeh masalah kritis kanthi efektif lan nambah rencana sing wis ana. Menapa malih, gambling lan lotre dudu gol nomer siji ing kene, amarga bisa uga katon ing wiwitan kanggo maca sing ora duwe pengalaman.

Generasi nomer acak

Komputer ora bisa ngasilake nomer acak dhewe; padha mbutuhake bantuan saka njaba. Komputer bisa entuk sawetara nilai acak saka, contone, gerakan mouse, jumlah memori sing digunakake, arus keblasuk ing pin prosesor, lan akeh sumber liyane sing disebut sumber entropi. Nilai kasebut dhewe ora sacara acak, amarga ana ing kisaran tartamtu utawa duwe pola owah-owahan sing bisa ditebak. Kanggo ngowahi angka kasebut dadi nomer sing bener-bener acak ing jangkoan tartamtu, kriptotransformasi ditrapake kanggo ngasilake angka pseudo-acak sing disebarake kanthi seragam saka nilai sing disebarake sing ora rata saka sumber entropi. Nilai-nilai sing diasilake diarani pseudorandom amarga ora bener-bener acak, nanging sacara deterministik asale saka entropi. Sembarang algoritma kriptografi sing apik, nalika ndhelik data, mrodhuksi ciphertexts sing kudu ora bisa dibedakake sacara statistik saka urutan acak, supaya bisa ngasilake acak, sampeyan bisa njupuk sumber entropi, sing mung nyedhiyakake pengulangan lan nilai sing ora bisa diprediksi sanajan ing kisaran cilik, liyane saka karya dispersing lan nyampur bit ing Nilai asil bakal dijupuk liwat dening algoritma enkripsi.

Kanggo ngrampungake program pendhidhikan singkat, aku bakal nambahake yen ngasilake nomer acak sanajan ing piranti siji minangka salah sawijining pilar kanggo njamin keamanan data kita. kunci kriptografi, kanggo imbangan beban, ngawasi integritas, lan akeh aplikasi liyane. Keamanan saka akeh protokol gumantung ing kemampuan kanggo generate dipercaya, externally ranyono acak, nyimpen, lan ora mbukak nganti langkah sabanjure protokol, yen keamanan bakal kompromi. Serangan ing generator nilai pseudorandom banget mbebayani lan langsung ngancam kabeh piranti lunak sing nggunakake generasi acak.

Sampeyan kudu ngerti kabeh iki yen sampeyan njupuk kursus dhasar ing kriptografi, mula ayo nerusake babagan jaringan desentralisasi.

Acak ing blockchains

Kaping pisanan, aku bakal ngomong babagan pamblokiran kanthi dhukungan kanggo kontrak cerdas; yaiku sing bisa njupuk kauntungan saka kesempatan sing diwenehake kanthi acak kanthi kualitas sing ora bisa ditolak. Salajengipun, kanggo ringkesan, aku bakal nyebut teknologi iki "Beacon Acak sing Bisa Diverifikasi Umum"utawa PVRB. Wiwit pamblokiran minangka jaringan sing informasi bisa diverifikasi dening peserta apa wae, bagean kunci jeneng kasebut yaiku "Dapat Diverifikasi Umum", yaiku. Sapa wae bisa nggunakake kalkulasi kanggo njupuk bukti yen nomer asil sing dikirim ing pamblokiran nduweni sifat ing ngisor iki:

  • Asil kasebut kudu duwe distribusi sing seragam, yaiku adhedhasar kriptografi sing kuwat.
  • Iku ora bisa kanggo ngontrol samubarang bit saka asil. Akibaté, asil ora bisa diprediksi sadurunge.
  • Sampeyan ora bisa sabotase protokol generasi kanthi ora melu protokol utawa kanthi overloading jaringan kanthi pesen serangan
  • Kabeh kasebut ing ndhuwur kudu tahan kanggo kolusi saka jumlah peserta protokol sing ora jujur ​​(contone, 1/3 saka peserta).

Sembarang kamungkinan saka klompok suntingan colluding peserta kanggo gawé malah kontrol malah / aneh acak bolongan keamanan. Sembarang kemampuan saka grup kanggo mungkasi ditokake saka acak bolongan keamanan. Umumé, ana akeh masalah, lan tugas iki ora gampang ...

Iku misale jek sing aplikasi paling penting kanggo PVRB macem-macem game, lotre, lan umume sembarang jenis gambling ing blockchain. Pancen, iki minangka arah sing penting, nanging randomness ing blockchain duwe aplikasi sing luwih penting. Ayo padha ndeleng.

Algoritma Konsensus

PVRB nduwe peran gedhe kanggo ngatur konsensus jaringan. Transaksi ing pamblokiran dilindhungi dening tandha elektronik, saéngga "serangan ing transaksi" tansah kalebu / ora kalebu transaksi ing blok (utawa sawetara blok). Lan tugas utama algoritma konsensus yaiku setuju karo urutan transaksi kasebut lan urutan pamblokiran sing kalebu transaksi kasebut. Kajaba iku, properti sing dibutuhake kanggo pamblokiran nyata yaiku finalitas - kemampuan jaringan kanggo setuju yen rantai nganti blok sing wis dirampungake iku final, lan ora bakal dikalahake amarga munculé garpu anyar. Biasane, kanggo setuju yen blok kasebut sah lan, sing paling penting, final, perlu kanggo ngumpulake tanda tangan saka mayoritas produser blok (sabanjure diarani BP - block-producer), sing mbutuhake paling ora ngirim rantai blok. menyang kabeh BP, lan nyebarake teken antarane kabeh BP. Minangka nomer BPs mundak akeh, nomer pesen perlu ing jaringan mundak akeh exponentially, mulane, algoritma konsensus sing mbutuhake finality, digunakake contone ing konsensus Hyperledger pBFT, ora bisa ing kacepetan dibutuhake, miwiti saka sawetara rolas BPs, mbutuhake nomer ageng sambungan.

Yen ana PVRB sing ora bisa dipungkiri lan jujur ​​ing jaringan, mula, sanajan ing perkiraan sing paling gampang, siji bisa milih salah sawijining produser blok adhedhasar kasebut lan milih dheweke minangka "pimpinan" sajrone siji babak protokol. Yen kita duwe N produser pamblokiran, kang M: M > 1/2 N jujur, aja censor transaksi lan aja garpu rantai kanggo nindakake serangan "ganda", banjur nggunakake PVRB unchallenged disebarake seragam bakal ngidini milih pimpinan jujur ​​karo kemungkinan M / N (M / N > 1/2). Yen saben pimpinan diwenehi interval wektu dhewe sajrone bisa ngasilake blok lan validasi rantai kasebut, lan interval kasebut padha karo wektu, banjur rantai blok BP sing jujur ​​bakal luwih dawa tinimbang rantai sing dibentuk dening BP sing jahat, lan konsensus Algoritma gumantung ing dawa rantai, mung bakal mbuwang sing "ala". Prinsip ngalokasi irisan wektu sing padha kanggo saben BP pisanan diterapake ing Graphene (pendahulu EOS), lan ngidini sebagian besar blok ditutup kanthi tandha siji, sing nyuda beban jaringan lan ngidini konsensus iki bisa digunakake kanthi cepet lan ajeg. Nanging, jaringan EOS saiki kudu nggunakake blok khusus (Blok Irreversible Terakhir), sing dikonfirmasi kanthi tandha tangan 2/3 BP. Pamblokiran iki kanggo njamin finalitas (impossibility saka garpu chain miwiti sadurunge Blok pungkasan Irreversible).

Uga, ing implementasine nyata, skema protokol luwih rumit - voting kanggo pamblokiran sing diusulake ditindakake ing pirang-pirang tahapan kanggo njaga jaringan yen ana pamblokiran sing ilang lan masalah karo jaringan, nanging malah nganggep iki, algoritma konsensus nggunakake PVRB mbutuhake pesen Ngartekno kurang antarane BPs, kang ndadekake iku bisa kanggo nggawe wong luwih cepet saka PVFT tradisional, utawa macem-macem modifikasi.

Perwakilan paling penting saka algoritma kasebut: Ouroboros saka tim Cardano, kang ngandika matématis provable marang BP collusion.

Ing Ouroboros, PVRB digunakake kanggo nemtokake apa sing diarani "jadwal BP" - jadwal sing saben BP diwenehi slot wektu dhewe kanggo nerbitake blok. Kauntungan gedhe saka nggunakake PVRB yaiku "kesetaraan" lengkap BPs (miturut ukuran neraca). Integritas PVRB mesthekake yen BPs angkoro ora bisa ngontrol jadwal slot wektu, lan mulane ora bisa ngapusi chain dening nyiapake lan nganalisa garpu saka chain ing advance, lan kanggo milih garpu iku cukup kanggo mung gumantung ing dawa dawa. chain, tanpa nggunakake cara angel kanggo ngetung "utilitas" BP lan "bobot" pamblokiran sawijining.

Umumé, ing kabeh kasus ing ngendi peserta acak kudu milih ing jaringan desentralisasi, PVRB meh tansah dadi pilihan sing paling apik, tinimbang pilihan deterministik adhedhasar, contone, hash pemblokiran. Tanpa PVRB, kemampuan kanggo mengaruhi pilihan peserta ndadékaké kanggo serangan kang panyerang bisa milih saka macem-macem futures kanggo milih peserta korup sabanjuré utawa sawetara bebarengan kanggo mesthekake bagean luwih ing kaputusan. Panggunaan PVRB ngrusak jinis serangan kasebut.

Scaling lan load balancing

PVRB uga bisa entuk manfaat gedhe ing tugas kayata nyuda beban lan skala pembayaran. Kanggo miwiti, iku ndadekake pangertèn kanggo familiarize dhewe karo artikel Rivesta "Tiket Lotre Elektronik minangka Micropayments". Ing idea umum iku tinimbang nggawe 100 1c pembayaran saka payer kanggo panampa, sampeyan bisa muter lotre jujur ​​karo hadiah 1 $ = 100c, ngendi payer menehi bank siji saka 1 saka "tiket lotre" kanggo saben. 100c bayaran. Salah siji saka tiket iki menang jar $1, lan tiket iki sing panampa bisa ngrekam ing blockchain. Ingkang paling penting yaiku sisa 99 tiket ditransfer antarane panampa lan sing mbayar tanpa partisipasi eksternal, liwat saluran pribadi lan kanthi kacepetan sing dikarepake. Katrangan sing apik babagan protokol adhedhasar skema iki ing jaringan Emercoin bisa diwaca kene.

Skema iki duwe sawetara masalah, kayata panampa bisa mandheg nglayani payer sanalika sawise nampa tiket sing menang, nanging kanggo akeh aplikasi khusus, kayata tagihan saben menit utawa langganan elektronik kanggo layanan, iki bisa diabaikan. Requirement utama, mesthi, iku keadilan lotre, lan kanggo implementasine PVRB pancen perlu.

Pilihan saka peserta acak uga penting banget kanggo protokol sharding, tujuane kanggo skala horisontal chain pemblokiran, saéngga BP beda mung proses orane katrangan saka transaksi. Iki minangka tugas sing angel banget, utamane babagan keamanan nalika nggabungake shards. Pilihan adil saka BP acak kanggo tujuan nemtokake sing tanggung jawab kanggo beling tartamtu, kaya ing algoritma konsensus, uga tugas saka PVRB. Ing sistem terpusat, shards ditugasake dening balancer; mung ngetung hash saka panyuwunan lan dikirim menyang eksekutor sing dibutuhake. Ing pamblokiran, kemampuan kanggo mengaruhi tugas iki bisa nyebabake serangan ing konsensus. Contone, isi transaksi bisa dikontrol dening panyerang, dheweke bisa ngontrol transaksi menyang beling sing dikontrol lan ngapusi rantai blok kasebut. Sampeyan bisa maca diskusi babagan masalah nggunakake nomer acak kanggo tugas sharding ing Ethereum kene
Sharding minangka salah sawijining masalah sing paling ambisius lan serius ing bidang pamblokiran; solusi kasebut bakal ngidini mbangun jaringan desentralisasi kanthi kinerja lan volume sing apik banget. PVRB mung minangka salah sawijining blok penting kanggo ngatasi.

Game, protokol ekonomi, arbitrase

Peran nomer acak ing industri game angel overestimate. Panggunaan eksplisit ing kasino online, lan nggunakake implisit nalika ngitung efek saka tumindak pamuter kabeh masalah banget angel kanggo jaringan desentralisasi, ngendi ora ana cara kanggo gumantung ing sumber tengah randomness. Nanging pilihan acak uga bisa ngatasi akeh masalah ekonomi lan mbantu mbangun protokol sing luwih prasaja lan efisien. Upaminipun ing protokol kita ana perselisihan babagan pembayaran kanggo sawetara layanan sing murah, lan perselisihan kasebut arang banget kedadeyan. Ing kasus iki, yen ana PVRB undisputed, pelanggan lan bakul bisa setuju kanggo mutusake masalah musuhan kanthi acak, nanging karo kemungkinan tartamtu. Contone, karo 60% kemungkinan klien menang, lan karo 40% kemungkinan bakul menang. pendekatan iki, kang khayal saka titik pisanan tampilan, ngijini sampeyan kanggo kanthi otomatis mutusake masalah musuhan karo nuduhake sabenere katebak menang / mundhut, kang cocog karo loro pihak tanpa partisipasi saka pihak katelu lan sampah rasah wektu. Kajaba iku, rasio kemungkinan bisa dinamis lan gumantung ing sawetara variabel global. Contone, yen perusahaan nindakake kanthi apik, duwe jumlah perselisihan sing sithik lan bathi sing dhuwur, perusahaan bisa kanthi otomatis ngganti kemungkinan ngrampungake perselisihan menyang customer-centricity, contone 70/30 utawa 80/20, lan kosok balene, yen musuhan njupuk akèh dhuwit lan fraudulent utawa cupet, sampeyan bisa mindhah kemungkinan ing arah liyane.

Sejumlah protokol desentralisasi sing menarik, kayata registri sing dikurasi token, pasar prediksi, kurva ikatan lan liya-liyane, minangka game ekonomi sing prilaku apik diganjar lan prilaku ala dihukum. Padha asring ngemot masalah keamanan sing pangayoman konflik karo saben liyane. Apa sing dilindhungi saka serangan dening "paus" kanthi milyaran token ("saham gedhe") rentan kanggo serangan dening ewu akun kanthi saldo cilik ("saham sybil"), lan langkah-langkah sing ditindakake kanggo serangan siji, kayata non- Fees linear digawe kanggo nggawe karya karo saham gedhe ora duwe bathi biasane discredited dening serangan liyane. Amarga kita ngomong babagan game ekonomi, bobot statistik sing cocog bisa diwilang luwih dhisik, lan mung ngganti komisi kanthi acak kanthi distribusi sing cocog. Komisi probabilistik kasebut ditindakake kanthi gampang yen pamblokiran nduweni sumber acak sing bisa dipercaya lan ora mbutuhake petungan sing rumit, nggawe urip angel kanggo paus lan sybil.
Ing wektu sing padha, iku perlu kanggo terus elinga yen kontrol liwat dicokot siji ing randomness iki ngijini sampeyan kanggo ngapusi, ngurangi lan nambah kemungkinan dening setengah, supaya PVRB jujur ​​komponèn paling penting saka protokol kuwi.

Where golek acak tengen?

Ing teori, pilihan acak sing adil ing jaringan desentralisasi ndadekake meh kabeh protokol bisa aman saka kolusi. Alasan kasebut cukup prasaja - yen jaringan setuju karo siji 0 utawa 1 bit, lan kurang saka setengah peserta ora jujur, banjur, diwenehi iterasi sing cukup, jaringan kasebut dijamin bakal entuk konsensus ing bit kasebut kanthi kemungkinan tetep. Mung amarga acak jujur ​​bakal milih 51 saka 100 peserta 51% wektu. Nanging iki ing teori, amarga ... ing jaringan nyata, kanggo mesthekake tingkat keamanan kaya ing artikel, akeh pesen antarane sarwa dumadi, kriptografi multi-pass Komplek dibutuhake, lan komplikasi saka protokol langsung nambah vektor serangan anyar.
Pramila kita durung ndeleng PVRB tahan sing wis kabukten ing pamblokiran, sing bakal digunakake kanggo wektu sing cukup kanggo dites dening aplikasi nyata, macem-macem audit, beban, lan mesthi, serangan nyata, tanpa angel nelpon a produk saestu aman.

Nanging, ana sawetara pendekatan sing janjeni, beda-beda ing akeh rincian, lan salah sijine bakal ngrampungake masalah kasebut. Kanthi sumber daya komputasi modern, téyori kriptografi bisa diterjemahaké kanthi pinter dadi aplikasi praktis. Ing mangsa ngarep, kita bakal seneng ngomong babagan implementasi PVRB: saiki ana sawetara, saben duwe fitur penting lan fitur implementasine dhewe, lan ing mburi saben ana ide sing apik. Ora akeh tim sing melu acak, lan pengalaman saben wong iku penting banget kanggo wong liya. Muga-muga informasi kita bakal ngidini tim liyane pindhah luwih cepet, kanthi nggatekake pengalaman para leluhure.

Source: www.habr.com

Add a comment