Juhuslikud numbrid ja detsentraliseeritud vÔrgud: praktiline rakendus

Sissejuhatus

„Juhuslike numbrite genereerimine on liiga oluline, et jĂ€tta see juhuse hooleks“
Robert Cavyu, 1970

See artikkel kĂ€sitleb praktilisi lahendusi, mis kasutavad kollektiivset juhuslike numbrite genereerimist usaldamatutes keskkondades. LĂŒhidalt öeldes — kuidas ja miks kasutatakse juhuslikkust plokiahelates, ja veidi ka sellest, kuidas eristada ‘head’ juhuslikkust ‘halvast’. TĂ”eliselt juhusliku numbri genereerimine on isegi ĂŒhel arvutil ÀÀrmiselt keeruline probleem ning seda on pikka aega uurinud krĂŒptograafid. Kuid detsentraliseeritud vĂ”rkudes on juhuslike numbrite genereerimine veelgi raskem ja olulisem.

Eriti nendes vĂ”rkudes, kus osalised ei usalda ĂŒksteist, vĂ”imalus genereerida vaidlustamatult juhuslik number vĂ”imaldab tĂ”husalt lahendada mitmeid vĂ€ga olulisi ĂŒlesandeid ja oluliselt parandada juba olemasolevaid skeeme. TĂ”si, hasartmĂ€ngud ja loteriid ei ole siin kaugeltki number ĂŒks eesmĂ€rk, nagu alguses vĂ”ib tunduda kogenematule lugejale.

Juhuslike numbrite genereerimine

Arvutid ei suuda ise genereerida juhuslikke arve, selleks on neil vaja vĂ€list abi. Arvuti saab juhuslikku vÀÀrtust nĂ€iteks hiire liikumise, kasutatud mĂ€lu hulga, protsessori kontaktidel esinevate parasiitpingete ja paljude teiste allikate kaudu, mida nimetatakse entropia allikateks. Need vÀÀrtused ei ole tĂ€iesti juhuslikud, kuna nad jÀÀvad teatud vahemikku vĂ”i neil on ettearvatav muudatused. Et muuta sellised numbrid tĂ”eliselt juhuslikuks numbriks mÀÀratud vahemikus, rakendatakse neile krĂŒptoparametreid, et saada ebavĂ”rdselt jaotatud entropia allika vÀÀrtustest ĂŒhtlaselt jaotatud psĂ¶ĂŒd juhuslikke vÀÀrtusi. Saadud vÀÀrtusi nimetatakse psĂ¶ĂŒd juhuslikeks, kuna need ei ole tĂ”eliselt juhuslikud, vaid deterministlikult toodetud entropiast. Iga hea krĂŒptoalgreitm, andmeid krĂŒpteerides, toodab ĆĄifritekste, mis statistiliselt peavad olema eristatavad juhuslikust jĂ€rjestusest, nii et juhuslikkuse tootmiseks vĂ”ib kasutada entropia allikat, mis tagab head kordumatust ja vÀÀrtuste ettearvamatust isegi vĂ€ikestes vahemikes, ĂŒlejÀÀnud osa bitite hajutamise ja segamise töö eest hoolitseb krĂŒpteerimise algoritm.

LĂ”petuseks tahan öelda, et juhuslike numbrite genereerimine isegi ĂŒhel seadmel on ĂŒks meie andmete turvalisuse aluseid. Generaatoris loodud pseudojuhuslikud numbrid on vajalikud turvaliste ĂŒhenduste loomisel erinevates vĂ”rkudes, krĂŒptograafiliste vĂ”tmete genereerimisel, koormuse tasakaalustamisel, terviklikkuse kontrollimisel ja paljus muus. Paljude protokollide turvalisus sĂ”ltub vĂ”imest luua usaldusvÀÀrne ja vĂ€ljastpoolt ennustamatu juhuslikkus, hoida seda saladuses ning mitte avaldada enne protokolli jĂ€rgmist sammu, muidu on turvalisus ohus. RĂŒnnak pseudojuhuslike vÀÀrtuste generaatorile on ÀÀrmiselt ohtlik ja seab ohtu kogu tarkvara, mis kasutab juhuslike numbrite genereerimist.

Kogu see teave on vajalik, kui olete lĂ€binud pĂ”hikursuse krĂŒptograafias, seega jĂ€tkame detsentraliseeritud vĂ”rkude teemaga.

Juhusus plokiahelates

Esiteks rÀÀgin ma nutilepingute toetavate plokiahelate kohta, just nemad saavad tĂ€ielikult kasutada kvaliteetseid, vaieldamatult juhuslikke vĂ”imalusi. Edasi, lĂŒhiduse huvides, nimetan ma seda tehnoloogiat “Avalikult Kontrollitavad Juhuslikud Signaalid” vĂ”i PVRB. Kuna plokiahelad on vĂ”rgud, mille teavet saavad kontrollida kĂ”ik osalised, on nime peamine osa “Avalikult Kontrollitavad”, st iga soovija saab arvutuste abil tĂ”estada, et plokiahelas talletatud number omab jĂ€rgmisi omadusi:

  • Tulemus peab olema tĂ”estatult ĂŒhtlaselt jaotatud, st pĂ”hineda tĂ”estatult tugevatel krĂŒptograafiatel.
  • Ükski tulemusbit ei saa olla kontrollitav. SeetĂ”ttu ei saa tulemust eelnevalt ennustada.
  • Protokolli genereerimist ei saa saboteerida, osaledes protokollis vĂ”i koormates vĂ”rgustikku rĂŒndavate teadetega.
  • KĂ”ik eelpooltoodud peab olema vastupidav kokkulepetele lubatud arvu ebaausate osaliste osas (nt 1/3 osalistest).

Iga vĂ”imalus, millega seotud vĂ€hemusgrupp osaleb kontrollitud paaris/ĂŒmardatud juhuslikkuses, on turvaauk. Iga vĂ”imalus grupil juhuslikkuse vĂ€ljastamist peatada, on turvaauk. KokkuvĂ”ttes on probleeme palju ja see ĂŒlesanne ei ole kerge


Tundub, et kĂ”ige olulisem rakendus PVRB jaoks on erinevad mĂ€ngud, loteriid ja ĂŒldiselt kĂ”ik nĂ€dalavahetuse hasartmĂ€ngud plokiahelas. TĂ”epoolest, see on oluline suund, kuid juhusliku valiku rakendusi plokiahelas on ka tĂ”sisemaid. Vaadakem neid.

Konsensusalgoritmid

PVRB mĂ€ngib vĂ”rgu konsensuse loomisel suurt rolli. Blokeeringute tehingud on kaitstud digiallkirjaga, mistĂ”ttu tĂ€hendab "tehingu rĂŒnnak" alati tehingu lisamist vĂ”i eemaldamist blokist (vĂ”i mitmest blokist). Konsensuse algoritmi peamine ĂŒlesanne on leppida kokku nende tehingute jĂ€rjekorras ja blokkide jĂ€rjekorras, mis need tehingud sisaldavad. Samuti on reaalsete plokiahelate vajalikuks omaduseks lĂ”plikkus – vĂ”ime, et vĂ”rk lepiks kokku, et jĂ€rgmise lĂ”pliku bloki ahel on lĂ”plik ja seda ei saa kĂ”rvaldada uue fork'i tĂ”ttu. Tavaliselt on vaja kokku koguda allkirjad enamiku blokkide tootjatelt (edasi BP – block-producers), et leppida kokku, et blokk on kehtiv ja mis kĂ”ige tĂ€htsam, lĂ”plik. See nĂ”uab vĂ€hemalt blokiahela edastamist kĂ”igile BP-dele ja allkirjade jagamist kĂ”igi BP-de vahel. BP-de arvu suurenedes kasvab vajalik sĂ”numite arv vĂ”rgus eksponentsiaalselt, seetĂ”ttu ei tööta lĂ”plikkust nĂ”udvad konsensuse algoritmid, mida kasutatakse nĂ€iteks Hyperledgeri pBFT konsensusel, vajaliku kiirusen d, alates juba mĂ”nest kĂŒmnest BP-st, nĂ”udes tohutut ĆĄnede ĂŒhendusi.

Kui vĂ”rgus on usaldusvÀÀrne ja aus PVRB, siis isegi kĂ”ige lihtsamas lĂ€henemises vĂ”ib selle alusel valida ĂŒhe block producer'i ja mÀÀrata ta "juhiks" ĂŒhe protokolli vooru jooksul. Kui meil on N block producer'eid, millest M: M > 1/2 N on ausad, ei tsenseeri tehinguid ning ei ehita jĂ€rjestusi rĂŒnnaku "double spend" lĂ€biviimiseks, siis ĂŒhtlaselt jaotatud usaldusvÀÀrse PVRB kasutamine vĂ”imaldab ausa juhi valimist tĂ”enĂ€osusega M / N (M / N > 1/2). Kui iga liidri jaoks seada kindel ajaintervall, mille jooksul ta saab ploki luua ja ahelat valideerida, ning need intervallid on vĂ”rdsed ajaliselt, siis on ausate BP plokkide ahel pikem kui pahatahtlike BP moodustatud ahel. Konsensuse algoritm, mis toetub ahela pikkusele, lihtsalt viskab „halva” kĂ”rvale. See pĂ”himĂ”te vĂ”rdsete ajakvantide mÀÀramisest igale BP-le rakendati esmakordselt Graphene'is (EOS-i eelkĂ€ijas) ning see vĂ”imaldab enamikul plokkidel sulgeda ĂŒhe allkirjaga, mis vĂ€hendab oluliselt vĂ”rgu koormust ja vĂ”imaldab sellel konsensusel töötada ÀÀrmiselt kiiresti ja stabiilselt. Siiski peab EOS vĂ”rgud praegu kasutama spetsiaalseid plokke (Viimane Eitusplokk), mis kinnitatakse 2/3 BP allkirjadega. Need plokid tagavad lĂ”plikkuse (ahela forkide tekkimise vĂ”imatuse, mis algab enne viimast Viimast Eitusplokki).

Samuti on reaalses rakenduses protokolli skeem keerulisem — pakutud plokkide hÀÀletamine toimub mitmes etapis, et toetada vĂ”rgu tööd plokkide jĂ€tmise ja vĂ”rgu probleemide korral, kuid isegi sellega arvestades nĂ”uavad PVRB-konsensuse algoritmid BP-de vahel mĂ€rksa vĂ€hem sĂ”numeid, mis muudab need kiiremateks kui traditsiooniline PВFT vĂ”i selle erinevad modifikatsioonid.

Eri tÔendite esindaja selliste algoritmide seas: Ouroboros Cardano meeskonnalt, mis, nagu on kuulutatud, omab matemaatiliselt tÔestatavat vastupidavust BP-de vahelistele kokkulepetele.

Ouroboros PVRB vĂ”imaldab mÀÀrata nii nimetatud "BP ajakava" - ajakava, mille kohaselt antakse igale BP-le oma ajavöönd ploki avaldamiseks. PVRB kasutamise suur eelis on BP-de tĂ€ielik "ĂŒhtsus" (vastavalt nende bilansside suurusele). PVRB ausus tagab, et pahatahtlikud BP-d ei saa ajakavade ĂŒle kontrolli omada ning seetĂ”ttu ei saa nad manipuleerida ahelaga, valmistades ette ja analĂŒĂŒsides ahela haru, sest haru valimiseks piisab lihtsalt ahela pikkuse jĂ€rgimisest, ilma et oleks vaja kasutada keerulisi meetodeid BP "kasulikkuse" ja selle plokkide "kaalu" arvutamiseks.

TĂ”eliselt, kui peab valima juhusliku osaleja detsentraliseeritud vĂ”rgus, on peaaegu alati parim valik PVRB, mitte deterministlik variant nagu nĂ€iteks ploki rĂ€si pĂ”hjal. Ilma PVRB-teta vĂ”ivad osalejate valikule mĂ”ju avaldada rĂŒnnakud, kus rĂŒndaja vĂ”ib, valides mitmest tulevikuvĂ”imalusest, valida jĂ€rgmise korruptsiooniga osaleja vĂ”i mitmed korraga, et tagada suurem osalus otsuse tegemises. PVRB kasutamine diskrediteerib selliseid rĂŒnnakutĂŒĂŒpe.

Skaalabeliseerimine ja koormuse tasakaalustamine

PVRB vĂ”ib tĂ”siselt kasu tuua ka koormuse vĂ€hendamise ja maksete skaleerimise ĂŒlesannetes. Esiteks on mĂ”istlik tutvuda artikkel Rivesta "Electronic Lottery Tickets as Micropayments". Üldine idee on, et asemel et teha 100 makset 1 senti maksjalt saajale, saab mĂ€ngida ausat loterii, kus auhind on 1 dollar = 100 senti, kus iga makse 1 senti annab maksjale ĂŒhe oma 100-st "loteriipiletist" pangale. Üks neist piletitest vĂ”idab pangale 1 dollari, ja just selle pileti saab saaja fikseerida plokiahelas. MĂ€rkimisvÀÀrne on see, et ĂŒlejÀÀnud 99 piletit edastatakse saaja ja makja vahel ilma vĂ€list osalust, privaatkanali kaudu ja igas vajalikus tempos. Hea protokolli kirjeldust, mis pĂ”hineb sellel skeemil Emercoinis, vĂ”ib lugeda. siit.

Sellel skeemil on mitmeid probleeme, nÀiteks vÔib saaja lÔpetada makse saajaga teenuste osutamine kohe pÀrast vÔidupileti saamist, kuid paljude erikohalduste, nagu minutite kaupa arveldamine vÔi teenuse elektronallkirjad, osas vÔib neid ignoreerida. Peamine nÔue on muidugi lÀbipaistvus korraldatud loterii osas, ja selleks on tÀiesti vajalik PVRB.

Juhusliku osaleja valimine on ÀÀrmiselt oluline ka shardimise protokollide jaoks, mille eesmĂ€rk on plokiahela horisontaalne skaleerimine, vĂ”imaldades erinevatel BP-del töödelda vaid oma tehingute ulatust. See on ÀÀrmiselt keeruline ĂŒlesanne, eriti turvalisuse kĂŒsimustes shardide liitmisel. Aus juhuslik BP valimine, kellele mÀÀratakse vastutus kindla shardi eest, on samuti PVRB ĂŒlesanne, nagu ka konsensuse algoritmid. Tsentraliseeritud sĂŒsteemides mÀÀrab shardid koormuse jaotaja, kes arvutab lihtsalt pĂ€ringu hash'i ja saadab selle vajalikule tĂ€itjale. Plokiahelates vĂ”ib vĂ”imalus mĂ”jutada seda mÀÀramist viia konsensusele rĂŒnnakuni. NĂ€iteks vĂ”ivad tehingute sisu kontrollida rĂŒndajad, kes saavad kontrollida, millised tehingud satuvad tema kontrollitavasse shardi, ning manipuleerida plokiahela sisuga. Üksikasjalikku arutelu juhuslike arvude kasutamise probleemist shardimise ĂŒlesannetes Ethereumi kontekstis on vĂ”imalik lugeda. siit
Shardimine on ĂŒks kĂ”ige ambitsioonikamaid ja tĂ”sisematest ĂŒlesannetest plokiahela valdkonnas. Selle lahendamine vĂ”imaldab luua detsentraliseeritud vĂ”rke fantastilise jĂ”udluse ja mahtude jaoks. PVRB on vaid ĂŒks tĂ€htsamaid komponente selle saavutamiseks.

MĂ€ngud, majandusprotokollid, arbitraaĆŸ

Juhuslike numbrite roll mĂ€ngutööstuses on raske ĂŒle hinnata. Nende otsene kasutamine online-kasiinodes ja kaudne kasutamine mĂ€ngija tegevuste tagajĂ€rgede arvutamisel tekitab keerulisi kĂŒsimusi detsentraliseeritud vĂ”rkudes, kus ei saa toetuda keskse juhuslikkuse allikale. Kuid juhuslik valik aitab lahendada ka paljusid majanduslikke probleeme ja luua lihtsamaid ja efektiivsemaid protokolle. Kujutame ette, et meie protokollis on vaidlusi odavate teenuste eest maksmise ĂŒle, mis esinevad piisavalt harva. Sellisel juhul, kui on vaieldamatult PVRB, saavad kliendid ja mĂŒĂŒjad kokku leppida juhuslikus vaidluste lahenduses, kuid kindla tĂ”enĂ€osusega. NĂ€iteks 60% tĂ”enĂ€osusega vĂ”idab klient ja 40% tĂ”enĂ€osusega mĂŒĂŒja. See esmapilgul absurdne lĂ€henemine vĂ”imaldab automaatselt lahendada vaidlusi tĂ€pselt ennustatava vĂ”itude/kaotuste osakaalu abil, mis rahuldab mĂ”lemaid osalisi, ilma kolmanda osapoole sekkumiseta ja tarbetu ajakulu. Veelgi enam, tĂ”enĂ€osuste suhe vĂ”ib olla dĂŒnaamiline ja sĂ”ltuda teatud globaalsetest muutujatest. NĂ€iteks, kui ettevĂ”ttel lĂ€heb hĂ€sti, on vĂ€he vaidlusi ja kĂ”rge kasumlikkus, vĂ”ib ettevĂ”te automaatselt tĂ”sta vaidluste lahendamise tĂ”enĂ€osust kliendi suunas, nĂ€iteks 70/30 vĂ”i 80/20, ja vastupidi, kui vaidlused neelavad palju raha ja on petlikud vĂ”i ebaadekvaatsed, saab tĂ”enĂ€osust suunata teise suunda.

Suure hulga huvitavate detsentraliseeritud protokollide, nagu token-cuuritud registrid, ennustusturud, sidumiskĂ”verad ja paljud teised, kaudu saavad majandusmĂ€ngud premeerida head kĂ€itumist ning karistada halba. Nendes esinevad sageli turvaprobleemid, kus kaitsemeetmed ĂŒksteist kontrasteerivad. See, mis on kaitstud miljardite tokenitega „kala” rĂŒnakute vastu, on haavatav tuhandete vĂ€ikeste bilanssidega konto rĂŒnnakute („sybil stake”) ees, ja meetmed, mida rakendatakse ĂŒhe rĂŒnnaku vastu, nĂ€iteks mittelineaarsed tasud, mis on vĂ€lja töötatud suurte panuste kasumit vĂ€hendamise eesmĂ€rgil, ĂŒldiselt diskrediteeritakse teise rĂŒnnaku poolt. Kuna tegemist on majandusmĂ€nguga, saab vastavaid statistilisi kaalud eelnevalt arvutada ja lihtsalt asendada tasud vastava jaotuse pĂ”hjal juhuslikega. Sellised tĂ”enĂ€osuslikud tasud on ÀÀrmiselt lihtsad teostada, kui plokiahelas on usaldusvÀÀrne juhuslikkuse allikas ning ei nĂ”ua keerulisi arvutusi, muutes elu keeruliseks nii „kala” kui ka „sybil”-ite puhul.
Oluline on jĂ€tkata meeles, et ĂŒhe bit'i kontrollimine selles juhuslikkuses vĂ”imaldab petta, kergendades ja raskendades tĂ”enĂ€osusi kahekordselt, seega on aus PVRB selliste protokollide kriitiline osa.

Kust leida Ôiget juhuslikkust?

Teoreetiliselt vĂ”imaldab aus juhuslik valik detsentraliseeritud vĂ”rkudes peaaegu igasuguste protokollide tĂ”endatavat turvalisust kartelli vastu. PĂ”hjendus on ĂŒsna lihtne — kui vĂ”rk lepib kokku ĂŒhes bit'is 0 vĂ”i 1, ning osalejate seas on vĂ€hem kui pooled ebaausad, siis piisava arvu iteratsioonide korral saavutab vĂ”rk garantii konsensuse selle bit'i osas kindla tĂ”enĂ€osusega. Lihtsalt sellepĂ€rast, et aus juhuslik valik valib 51 100 osalejast 51% juhtudel. Kuid see on teoorias, kuna reaalsetes vĂ”rkudes, et saavutada sellist turvalisuse taset nagu artiklites, on vajalik suur hulk sĂ”numeid hostide vahel, keeruline mitmeastmeline krĂŒptograafia, ning iga protokolli keerulisemaks muutmine toob kaasa uusi rĂŒnnakusuundi.
Justament sellepĂ€rast ei nĂ€e me veel plokiahelates sĂ”ltumatult tĂ”estatud PVRB-d, mida oleks kasutatud piisavalt kaua, et lĂ€bida ehtsate rakenduste, mitme auditi, koormuste ning loomulikult ka reaalsete rĂŒnnakute testid, ilma milleta on keeruline nimetada toodet tĂ”eliselt turvaliseks.

Sellegipoolest on mitu perspektiivset lĂ€henemist, mis erinevad paljuski detailides, ja ĂŒks neist lahendab kindlasti probleemi. TĂ€napĂ€evaste arvutusressursside juures suudab krĂŒptograafia teooria ĂŒsna osavalt muutuda praktilisteks rakendusteks. Edasi rÀÀgime rÔÔmuga PVRB rakendustest: neid on praegu mitu, igaĂŒhel on oma oluline omaduste ja rakenduse eripĂ€ra, ning igaĂŒhe taga on hea idee. RĂ€ndamisega tegelevaid meeskondi ei ole palju, ning igaĂŒhe kogemus on ÀÀrmiselt oluline kĂ”igile teistele. Loodame, et meie teave aitab teistel meeskondadel liikuda kiiremini, tuginedes eelkĂ€ijate kogemusele.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster