Ewekansige getalle en gedesentraliseerde netwerke: praktiese toepassings

Inleiding

"Genering van ewekansige getalle is te belangrik om aan die toeval oorgelaat te word."
Robert Cavue, 1970

Hierdie artikel word gewy aan die praktiese toepassing van oplossings deur gebruik te maak van kollektiewe ewekansige getalgenerering in 'n onbetroubare omgewing. Kortom, hoe en hoekom willekeurig in blokkettings gebruik word, en 'n bietjie oor hoe om "goeie" ewekansige van "sleg" te onderskei. Die generering van 'n werklik ewekansige getal is 'n uiters moeilike probleem, selfs op 'n enkele rekenaar, en is lank reeds deur kriptograwe bestudeer. Wel, in gedesentraliseerde netwerke is die generering van ewekansige getalle selfs meer kompleks en belangrik.

Dit is in netwerke waar deelnemers mekaar nie vertrou nie dat die vermoë om 'n onbetwisbare ewekansige getal te genereer ons in staat stel om baie kritieke probleme effektief op te los en bestaande skemas aansienlik te verbeter. Boonop is dobbelary en loterye nie die nommer een doelwit hier nie, soos dit aanvanklik vir die onervare leser mag lyk.

Ewekansige getalgenerering

Rekenaars kan nie self ewekansige getalle genereer nie; hulle benodig hulp van buite om dit te doen. Die rekenaar kan 'n ewekansige waarde verkry uit, byvoorbeeld, muisbewegings, die hoeveelheid geheue wat gebruik word, dwaalstrome op die verwerkerpenne, en baie ander bronne wat entropiebronne genoem word. Hierdie waardes self is nie heeltemal lukraak nie, aangesien hulle in 'n sekere reeks is of 'n voorspelbare patroon van veranderinge het. Om sulke getalle in 'n werklik ewekansige getal binne 'n gegewe reeks te verander, word kriptotransformasies daarop toegepas om eenvormig verspreide pseudo-ewekansige waardes uit die oneweredig verspreide waardes van die entropiebron te produseer. Die gevolglike waardes word pseudorandom genoem omdat hulle nie werklik willekeurig is nie, maar deterministies van entropie afgelei is. Enige goeie kriptografiese algoritme, wanneer data enkripteer, produseer syfertekste wat statisties ononderskeibaar behoort te wees van 'n ewekansige volgorde, dus om ewekansigheid te produseer, kan jy 'n bron van entropie neem, wat slegs goeie herhaalbaarheid en onvoorspelbaarheid van waardes bied, selfs in klein reekse, die res van die werk versprei en meng stukkies in Die gevolglike waarde sal deur die enkripsie-algoritme oorgeneem word.

Om 'n kort opvoedkundige program te voltooi, sal ek byvoeg dat die generering van ewekansige getalle selfs op een toestel een van die pilare is om die sekuriteit van ons data te verseker. Die gegenereerde pseudo-ewekansige nommers word gebruik wanneer veilige verbindings in verskeie netwerke tot stand gebring word, om te genereer kriptografiese sleutels, vir lasbalansering, integriteitsmonitering en vir baie meer toepassings. Die sekuriteit van baie protokolle hang af van die vermoë om 'n betroubare, ekstern onvoorspelbare ewekansige te genereer, dit te stoor en dit nie te openbaar tot die volgende stap van die protokol nie, anders sal sekuriteit in die gedrang kom. 'n Aanval op 'n pseudo-willekeurige waardegenerator is uiters gevaarlik en bedreig onmiddellik alle sagteware wat willekeurigheidgenerering gebruik.

Jy behoort dit alles te weet as jy 'n basiese kursus in kriptografie gevolg het, so kom ons gaan voort oor gedesentraliseerde netwerke.

Willekeurig in blokkettings

In die eerste plek sal ek praat oor blokkettings met ondersteuning vir slim kontrakte; dit is diegene wat ten volle kan voordeel trek uit die geleenthede wat deur hoë-gehalte, onmiskenbare willekeurigheid verskaf word. Verder, kortheidshalwe, sal ek hierdie tegnologie noem "Publiek verifieerbare ewekansige bakens” of PVRB. Aangesien blokkettings netwerke is waarin inligting deur enige deelnemer geverifieer kan word, is die sleuteldeel van die naam "Publiek Verifieerbaar", d.w.s. Enigeen kan berekeninge gebruik om bewys te kry dat die gevolglike getal wat op die blokketting geplaas is, die volgende eienskappe het:

  • Die resultaat moet 'n bewysbaar eenvormige verspreiding hê, dit wil sê gebaseer wees op bewysbaar sterk kriptografie.
  • Dit is nie moontlik om enige van die stukkies van die resultaat te beheer nie. Gevolglik kan die uitkoms nie vooraf voorspel word nie.
  • Jy kan nie die genereringsprotokol saboteer deur nie aan die protokol deel te neem of deur die netwerk met aanvalsboodskappe te oorlaai nie
  • Al die bogenoemde moet bestand wees teen samespanning van 'n toelaatbare aantal oneerlike protokoldeelnemers (byvoorbeeld 1/3 van die deelnemers).

Enige moontlikheid van 'n samespanning van minderjarige groep deelnemers om selfs 'n beheerde ewe/onewe ewekansigheid te produseer, is 'n sekuriteitsgat. Enige vermoë van die groep om die uitreiking van lukraak te stop, is 'n sekuriteitsgat. Oor die algemeen is daar baie probleme, en hierdie taak is nie 'n maklike een nie ...

Dit blyk dat die belangrikste toepassing vir PVRB verskeie speletjies, loterye en oor die algemeen enige tipe dobbelary op die blokketting is. Inderdaad, dit is 'n belangrike rigting, maar willekeurigheid in blokkettings het selfs belangriker toepassings. Kom ons kyk na hulle.

Konsensus Algoritmes

PVRB speel 'n groot rol in die organisering van netwerkkonsensus. Transaksies in blokkettings word deur 'n elektroniese handtekening beskerm, so 'n "aanval op 'n transaksie" is altyd die insluiting/uitsluiting van 'n transaksie in 'n blok (of verskeie blokke). En die hooftaak van die konsensusalgoritme is om ooreen te kom oor die volgorde van hierdie transaksies en die volgorde van die blokke wat hierdie transaksies insluit. 'n Noodsaaklike eienskap vir regte blokkettings is ook finaliteit - die vermoë van die netwerk om saam te stem dat die ketting tot by die voltooide blok finaal is, en nooit uitgesluit sal word nie as gevolg van die verskyning van 'n nuwe vurk. Gewoonlik, om saam te stem dat 'n blok geldig en, die belangrikste, finaal is, is dit nodig om handtekeninge van die meerderheid blokprodusente (hierna na verwys as BP - blokprodusente) in te samel, wat vereis dat ten minste die blokketting afgelewer word. aan alle BP'e, en die verspreiding van handtekeninge tussen alle BP'e. Soos die aantal BP's groei, groei die aantal nodige boodskappe in die netwerk eksponensieel, daarom werk konsensusalgoritmes wat finaliteit vereis, wat byvoorbeeld in die Hyperledger pBFT-konsensus gebruik word, nie teen die vereiste spoed nie, vanaf 'n paar dosyn BP's, wat vereis 'n groot aantal verbindings.

As daar 'n onmiskenbare en eerlike PVRB in die netwerk is, dan kan 'n mens, selfs in die eenvoudigste benadering, een van die blokprodusente op grond daarvan kies en hom tydens een rondte van die protokol as die "leier" aanstel. As ons het N blokprodusente, waarvan M: M > 1/2 N is eerlik, sensor nie transaksies nie en moenie die ketting vurk om 'n "dubbelbesteding"-aanval uit te voer nie, dan sal die gebruik van 'n eenvormig verspreide onbetwiste PVRB toelaat om 'n eerlike leier met waarskynlikheid te kies M / N (M / N > 1/2). As elke leier sy eie tydinterval toegewys word waartydens hy 'n blok kan produseer en die ketting kan valideer, en hierdie intervalle is gelyk in tyd, dan sal die blokketting van eerlike BP's langer wees as die ketting wat deur kwaadwillige BP'e gevorm word, en die konsensus algoritme staatmaak op die lengte van die ketting sal eenvoudig die "slegte" een weggooi. Hierdie beginsel om gelyke stukkies tyd aan elke BP toe te ken, is die eerste keer toegepas in Graphene (die voorganger van EOS), en laat die meeste blokke toe om met 'n enkele handtekening gesluit te word, wat die netwerklading aansienlik verminder en hierdie konsensus uiters vinnig laat werk en bestendig. Die EOS-netwerk moet egter nou spesiale blokke (Last Irreversible Block) gebruik, wat deur die handtekeninge van 2/3 BP bevestig word. Hierdie blokke dien om finaliteit te verseker (die onmoontlikheid van 'n kettingvurk wat voor die laaste Laaste Onomkeerbare Blok begin).

In werklike implementerings is die protokolskema ook meer ingewikkeld - die stemming vir voorgestelde blokke word in verskeie stadiums uitgevoer om die netwerk in stand te hou in die geval van ontbrekende blokke en probleme met die netwerk, maar selfs as dit in ag geneem word, vereis konsensusalgoritmes wat PVRB gebruik aansienlik minder boodskappe tussen BP's, wat dit moontlik maak om hulle vinniger te maak as tradisionele PVFT, of sy verskillende wysigings.

Die mees prominente verteenwoordiger van sulke algoritmes: Ouroboros van die Cardano-span, wat na bewering wiskundig bewysbaar teen BP-samespanning is.

In Ouroboros word PVRB gebruik om die sogenaamde "BP-skedule" te definieer - 'n skedule waarvolgens elke BP sy eie tydgleuf vir die publikasie van 'n blok toegeken word. Die groot voordeel van die gebruik van PVRB is die volledige "gelykheid" van BP'e (volgens die grootte van hul balansstate). Die integriteit van die PVRB verseker dat kwaadwillige BP'e nie die skedulering van tydgleuwe kan beheer nie, en dus nie die ketting kan manipuleer deur vooraf vurke van die ketting voor te berei en te ontleed nie, en om 'n vurk te kies is dit genoeg om bloot op die lengte van die ketting te vertrou. ketting, sonder om lastige maniere te gebruik om die "nut" van BP en "gewig" van sy blokke te bereken.

Oor die algemeen, in alle gevalle waar 'n ewekansige deelnemer in 'n gedesentraliseerde netwerk gekies moet word, is PVRB byna altyd die beste keuse, eerder as 'n deterministiese opsie gebaseer op, byvoorbeeld, 'n blokhash. Sonder PVRB lei die vermoë om 'n deelnemer se keuse te beïnvloed tot aanvalle waarin die aanvaller uit verskeie termynkontrakte kan kies om die volgende korrupte deelnemer of verskeie gelyktydig te kies om 'n groter aandeel in die besluit te verseker. Die gebruik van PVRB diskrediteer hierdie tipe aanvalle.

Skaal en lasbalansering

PVRB kan ook tot groot voordeel wees in take soos lasvermindering en betalingskaal. Om mee te begin, maak dit sin om jouself te vergewis van artikel Rivesta “Elektroniese loterykaartjies as mikrobetalings”. Die algemene idee is dat in plaas daarvan om 100 1c betalings van die betaler aan die ontvanger te maak, kan jy 'n eerlike lotto speel met 'n prys van 1$ = 100c, waar die betaler die bank een van 1 van sy "loterykaartjies" vir elke gee. 100c betaling. Een van hierdie kaartjies wen 'n pot van $1, en dit is hierdie kaartjie wat die ontvanger in die blokketting kan opneem. Die belangrikste ding is dat die oorblywende 99 kaartjies tussen die ontvanger en die betaler oorgedra word sonder enige eksterne deelname, deur 'n private kanaal en teen enige verlangde spoed. 'n Goeie beskrywing van die protokol gebaseer op hierdie skema op die Emercoin-netwerk kan gelees word hier.

Hierdie skema het 'n paar probleme, soos die ontvanger kan ophou om die betaler onmiddellik te bedien nadat hy 'n wenkaartjie ontvang het, maar vir baie spesiale toepassings, soos per-minuut-fakturering of elektroniese intekeninge op dienste, kan dit afgeskeep word. Die hoofvereiste is natuurlik die integriteit van die lotery, en vir die implementering daarvan is 'n PVRB absoluut noodsaaklik.

Die keuse van 'n ewekansige deelnemer is ook uiters belangrik vir sharding-protokolle, waarvan die doel is om die blokketting horisontaal te skaal, sodat verskillende BP's slegs hul omvang van transaksies kan verwerk. Dit is 'n uiters moeilike taak, veral in terme van sekuriteit wanneer skerwe saamgevoeg word. Billike keuse van 'n ewekansige BP met die doel om diegene wat verantwoordelik is vir 'n spesifieke skerf toe te ken, soos in konsensusalgoritmes, is ook die taak van die PVRB. In gesentraliseerde stelsels word skerwe deur 'n balanseerder toegeken; dit bereken eenvoudig die hash uit die versoek en stuur dit na die vereiste eksekuteur. In blokkettings kan die vermoë om hierdie opdrag te beïnvloed tot 'n aanval op konsensus lei. Die inhoud van transaksies kan byvoorbeeld deur 'n aanvaller beheer word, hy kan beheer watter transaksies na die skerf gaan wat hy beheer en die ketting blokke daarin manipuleer. Jy kan 'n bespreking van die probleem van die gebruik van ewekansige getalle vir die verdeling van take in Ethereum lees hier
Sharding is een van die mees ambisieuse en ernstige probleme op die gebied van blockchain; die oplossing daarvan sal dit moontlik maak om gedesentraliseerde netwerke van fantastiese werkverrigting en volume te bou. PVRB is net een van die belangrike blokke om dit op te los.

Speletjies, ekonomiese protokolle, arbitrasie

Die rol van ewekansige getalle in die dobbelbedryf is moeilik om te oorskat. Eksplisiete gebruik in aanlyn casino's, en implisiete gebruik wanneer die uitwerking van 'n speler se optrede bereken word, is almal uiters moeilike probleme vir gedesentraliseerde netwerke, waar daar geen manier is om op 'n sentrale bron van willekeurigheid staat te maak nie. Maar ewekansige seleksie kan ook baie ekonomiese probleme oplos en help om eenvoudiger en doeltreffender protokolle te bou. Gestel in ons protokol is daar dispute oor betaling vir sommige goedkoop dienste, en hierdie dispute kom redelik selde voor. In hierdie geval, as daar 'n onbetwiste PVRB is, kan kliënte en verkopers ooreenkom om dispute lukraak op te los, maar met 'n gegewe waarskynlikheid. Byvoorbeeld, met 'n 60% waarskynlikheid wen die kliënt, en met 'n 40% waarskynlikheid wen die verkoper. Hierdie benadering, wat uit die eerste oogpunt absurd is, laat toe dat dispute outomaties opgelos word met 'n presies voorspelbare deel van oorwinnings/verliese, wat beide partye pas sonder enige deelname van 'n derde party en onnodige tydmors. Boonop kan die waarskynlikheidsverhouding dinamies wees en afhang van sommige globale veranderlikes. Byvoorbeeld, as 'n maatskappy goed vaar, 'n lae aantal dispute en hoë winsgewendheid het, kan die maatskappy outomaties die waarskynlikheid om 'n dispuut op te los na kliëntgerigtheid verskuif, byvoorbeeld 70/30 of 80/20, en omgekeerd, as dispute baie geld verg en bedrieglik of onvoldoende is, kan jy die waarskynlikheid in die ander rigting skuif.

'n Groot aantal interessante gedesentraliseerde protokolle, soos token-gekureerde registers, voorspellingsmarkte, bindingskurwes en vele ander, is ekonomiese speletjies waarin goeie gedrag beloon word en slegte gedrag gepenaliseer word. Hulle bevat dikwels sekuriteitsprobleme waarvoor beskerming met mekaar bots. Wat beskerm word teen 'n aanval deur "walvisse" met miljarde tokens ("groot belang") is kwesbaar vir aanvalle deur duisende rekeninge met klein saldo's ("sybil-belang"), en maatreëls wat teen 'n enkele aanval geneem word, soos nie- lineêre fooie wat geskep word om werk met 'n groot belang onwinsgewend te maak, word gewoonlik gediskrediteer deur 'n ander aanval. Aangesien ons van 'n ekonomiese speletjie praat, kan die ooreenstemmende statistiese gewigte vooraf bereken word, en vervang eenvoudig die kommissies met ewekansiges met die toepaslike verspreiding. Sulke waarskynlikheidskommissies word uiters eenvoudig geïmplementeer as die blokketting 'n betroubare bron van ewekansigheid het en geen ingewikkelde berekeninge vereis nie, wat die lewe vir beide walvisse en sibile moeilik maak.
Terselfdertyd is dit nodig om voort te gaan om te onthou dat beheer oor 'n enkele bietjie in hierdie willekeurigheid jou toelaat om te kul, die waarskynlikhede met die helfte te verminder en te verhoog, so 'n eerlike PVRB is die belangrikste komponent van sulke protokolle.

Waar om die regte random te vind?

In teorie maak billike ewekansige seleksie in gedesentraliseerde netwerke byna enige protokol bewysbaar veilig teen samespanning. Die rasionaal is redelik eenvoudig - as die netwerk ooreenkom op 'n enkele 0 of 1 bis, en minder as die helfte van die deelnemers is oneerlik, dan, gegewe genoeg iterasies, is die netwerk gewaarborg om 'n konsensus oor daardie bietjie te bereik met 'n vaste waarskynlikheid. Bloot omdat 'n eerlike ewekansige 51 uit 100 deelnemers 51% van die tyd sal kies. Maar dit is in teorie, want ... in regte netwerke, om so 'n vlak van sekuriteit soos in die artikels te verseker, word baie boodskappe tussen gashere, komplekse multi-pass kriptografie vereis, en enige komplikasie van die protokol voeg onmiddellik nuwe aanvalvektore by.
Dit is hoekom ons nog nie 'n bewese weerstandbiedende PVRB in blokkettings sien nie, wat genoeg tyd gebruik sou gewees het om getoets te word deur werklike toepassings, veelvuldige oudits, vragte en natuurlik werklike aanvalle, waarsonder dit moeilik is om 'n produk werklik veilig.

Daar is egter verskeie belowende benaderings, hulle verskil in baie besonderhede, en een van hulle sal beslis die probleem oplos. Met moderne rekenaarhulpbronne kan kriptografiese teorie redelik slim in praktiese toepassings vertaal word. In die toekoms sal ons graag oor PVRB-implementerings praat: daar is nou verskeie van hulle, elkeen het sy eie stel belangrike eienskappe en implementeringskenmerke, en agter elkeen is daar 'n goeie idee. Daar is nie baie spanne betrokke by ewekansigheid nie, en die ervaring van elkeen van hulle is uiters belangrik vir almal anders. Ons hoop dat ons inligting ander spanne sal toelaat om vinniger te beweeg, met inagneming van die ervaring van hul voorgangers.

Bron: will.com

Voeg 'n opmerking