Willekeurige nûmers en desintralisearre netwurken: praktyske applikaasjes

Ynlieding

"Generaasje fan willekeurige nûmers is te wichtich om oan it tafal oer te litten."
Robert Cavue, 1970

Dit artikel is wijd oan de praktyske tapassing fan oplossingen mei help fan kollektyf generaasje fan willekeurige getallen yn in net fertroude omjouwing. Koartsein, hoe en wêrom willekeurich wurdt brûkt yn blockchains, en in bytsje oer hoe't jo "goede" willekeurich fan "minne" ûnderskiede kinne. It generearjen fan in wirklik willekeurich getal is in ekstreem lestich probleem, sels op ien kompjûter, en is al lang studearre troch kryptografen. No, yn desintralisearre netwurken is de generaasje fan willekeurige getallen noch komplekser en wichtiger.

It is yn netwurken dêr't dielnimmers inoar net fertrouwe, dat de mooglikheid om in ûnbestriden willekeurich getal te generearjen lit ús in protte krityske problemen effektyf oplosse en besteande regelingen signifikant ferbetterje. Boppedat, gokken en Lotteries binne net it nûmer ien doel hjir, sa't it kin lykje earst foar de sûnder ûnderfining lêzer.

Random getal generaasje

Kompjûters kinne net sels willekeurige nûmers generearje; se hawwe help fan bûten nedich om dat te dwaan. De kompjûter kin krije wat willekeurige wearde út, bygelyks, mûs bewegings, de hoemannichte ûnthâld brûkt, stray streamingen op de prosessor pins, en in protte oare boarnen neamd entropy boarnen. Dizze wearden sels binne net folslein willekeurich, om't se yn in bepaald berik binne of in foarsisber patroan fan feroaringen hawwe. Om sokke sifers te feroarjen yn in wirklik willekeurich getal binnen in opjûn berik, wurde kryptotransformaasjes op har tapast om unifoarm ferdielde pseudo-willekeurige wearden te produsearjen fan 'e ûngelyk ferdielde wearden fan' e entropyboarne. De resultearjende wearden wurde pseudorandom neamd, om't se net echt willekeurich binne, mar deterministysk ôflaat binne fan entropy. Elk goed kryptografysk algoritme, by it fersiferjen fan gegevens, produseart siferteksten dy't statistysk net te ûnderskieden moatte fan in willekeurige folchoarder, dus om willekeurigens te produsearjen kinne jo in boarne fan entropy nimme, dy't allinich goede werhelling en ûnfoarspelberens fan wearden leveret, sels yn lytse berik, de rest fan it wurk is fersprieden en mingen bits yn De resultearjende wearde wurdt oernommen troch de fersifering algoritme.

Om in koart edukatyf programma te foltôgjen, sil ik tafoegje dat it generearjen fan willekeurige nûmers sels op ien apparaat ien fan 'e pylders is om de feiligens fan ús gegevens te garandearjen. kryptografyske kaaien, foar load balancing, yntegriteit monitoring, en foar folle mear applikaasjes. De feiligens fan in protte protokollen hinget ôf fan 'e mooglikheid om in betrouber, ekstern ûnfoarspelber willekeurich te generearjen, it op te slaan, en it net te iepenbierjen oant de folgjende stap fan it protokol, oars sil feiligens kompromittearre wurde. In oanfal op in pseudorandom wearde generator is ekstreem gefaarlik en fuortendaliks bedrige alle software dy't brûkt willekeurich generaasje.

Jo moatte dit alles witte as jo in basiskursus yn kryptografy hawwe nommen, dus litte wy trochgean oer desintralisearre netwurken.

Random yn blockchains

Alderearst sil ik prate oer blockchains mei stipe foar tûke kontrakten; it binne dejingen dy't folslein kinne profitearje fan 'e kânsen dy't wurde levere troch heechweardige, ûnbestriden willekeur. Fierder, foar koarteheid, sil ik dizze technology neame "Publyk ferifieare willekeurige beakens” of PVRB. Sûnt blockchains binne netwurken wêryn ynformaasje kin wurde ferifiearre troch eltse dielnimmer, it wichtichste diel fan 'e namme is "Publicly Verifiable", d.w.s. Elkenien kin berekkeningen brûke om bewiis te krijen dat it resultearjende nûmer pleatst op 'e blockchain de folgjende eigenskippen hat:

  • It resultaat moat in blykber unifoarme ferdieling hawwe, dus basearre op bewiisber sterke kryptografy.
  • It is net mooglik om ien fan 'e bits fan it resultaat te kontrolearjen. As gefolch, de útkomst kin net foarsizze wurde.
  • Jo kinne it generaasjeprotokol net sabotearje troch net mei te dwaan oan it protokol of troch it netwurk te oerladen mei oanfalsberjochten
  • Al it boppesteande moat resistint wêze foar gearspanning fan in tastien oantal ûnearlike protokol-dielnimmers (bygelyks 1/3 fan 'e dielnimmers).

Eltse mooglikheid fan in gearwurkjende lytse groep dielnimmers foar in produsearje sels in kontrolearre even / ûneven willekeurich is in feiligens gat. Elke mooglikheid fan 'e groep om de útjefte fan willekeurige te stopjen is in feiligens gat. Yn 't algemien binne d'r in protte problemen, en dizze taak is net maklik ...

It liket derop dat de wichtichste applikaasje foar PVRB is ferskate spultsjes, lotteries, en oer it algemien alle soarten gokken op de blockchain. Yndie, dit is in wichtige rjochting, mar willekeurich yn blockchains hat noch wichtiger applikaasjes. Litte wy nei se sjen.

Konsensus Algoritmen

PVRB spilet in grutte rol by it organisearjen fan netwurkkonsensus. Transaksjes yn blokken wurde beskerme troch in elektroanyske hantekening, dus in "oanfal op in transaksje" is altyd de ynklúzje / útsluting fan in transaksje yn in blok (of ferskate blokken). En de haadtaak fan it konsensusalgoritme is om oerien te kommen oer de folchoarder fan dizze transaksjes en de folchoarder fan 'e blokken dy't dizze transaksjes befetsje. Ek in needsaaklike eigenskip foar echte blockchains is finaliteit - de mooglikheid fan it netwurk om te iens dat de ketting oant it finalisearre blok is definityf, en sil nea wurde útsletten fanwege it uterlik fan in nije foarke. Meastentiids, om it iens te meitsjen dat in blok jildich is en, wichtichste, definityf, is it needsaaklik om hantekeningen te sammeljen fan 'e mearderheid fan blokprodusinten (hjirnei oantsjutten as BP - blokprodusinten), dy't op syn minst it leverjen fan de blokketen fereasket oan alle BP's, en it fersprieden fan hantekeningen tusken alle BP's. As it oantal BP's groeit, groeit it oantal nedige berjochten yn it netwurk eksponinsjele, dêrom wurkje konsensusalgoritmen dy't finaliteit nedich binne, bygelyks brûkt yn 'e Hyperledger pBFT-konsensus, net op 'e fereaske snelheid, begjinnend fan ferskate tsientallen BP's, dy't nedich binne in grut oantal ferbiningen.

As d'r in ûnbestriden en earlik PVRB yn it netwurk is, dan kin men, sels yn 'e ienfâldichste approximaasje, ien fan' e blokprodusinten kieze op basis dêrfan en him beneame as de "lieder" yn ien rûnte fan it protokol. As wy hawwe N blok produsinten, wêrfan M: M > 1/2 N binne earlik, net sensurearje transaksjes en net foarke de keatling te fieren in "dûbele besteging" oanfal, dan mei help fan in unifoarm ferspraat ûnbestriden PVRB sil tastean kieze in earlike lieder mei kâns M / N (M / N > 1/2). As elke lieder syn eigen tiidynterval wurdt tawiisd wêryn hy in blok kin produsearje en de ketting falidearje kin, en dizze yntervallen binne gelyk yn 'e tiid, dan sil de blokketen fan earlike BP's langer wêze as de keatling dy't foarme wurdt troch kweade BP's, en de konsensus algoritme fertrout op 'e lingte fan' e ketting. sil de "minne" gewoanwei wegerje. Dit prinsipe fan it tawizen fan gelikense plakjes tiid oan elke BP waard earst tapast yn Graphene (de foargonger fan EOS), en makket it mooglik om de measte blokken te sluten mei ien hântekening, wat de netwurkbelêsting sterk ferminderet en dizze konsensus ekstreem fluch en makket it mooglik om te wurkjen ekstreem fluch en stadichoan. It EOS-netwurk moat lykwols no spesjale blokken brûke (Last Irreversible Block), dy't befêstige wurde troch de hantekeningen fan 2/3 BP. Dizze blokken tsjinje om finaliteit te garandearjen (de ûnmooglikheid fan in kettingfoarke dy't begjint foar de lêste Last Irreversible Block).

Ek yn echte ymplemintaasjes is it protokolskema yngewikkelder - stimmen foar foarstelde blokken wurdt útfierd yn ferskate stadia om it netwurk te behâlden yn gefal fan ûntbrekkende blokken en problemen mei it netwurk, mar sels mei dit yn rekken brocht, fereaskje konsensusalgoritmen dy't PVRB brûke signifikant minder berjochten tusken BPs, dat makket it mooglik om se flugger as tradisjonele PVFT, of syn ferskate oanpassings.

De meast foaroansteande fertsjintwurdiger fan sokke algoritmen: Ouroboros út it Cardano team, dat wurdt sein wiskundich bewiisber tsjin BP collusion.

Yn Ouroboros wurdt PVRB brûkt om it saneamde "BP-skema" te definiearjen - in skema wêryn elke BP in eigen tiidslot wurdt tawiisd foar it publisearjen fan in blok. It grutte foardiel fan it brûken fan PVRB is de folsleine "gelikens" fan BP's (neffens de grutte fan har balâns). De yntegriteit fan 'e PVRB soarget derfoar dat kweade BP's it skema fan tiidslots net kinne kontrolearje, en de keatling kin dêrom net manipulearje troch foarôf te meitsjen en te analysearjen fan 'e keatling, en om in gabel te selektearjen is it genôch om gewoan te fertrouwe op 'e lingte fan 'e ketting. keten, sûnder lestige manieren te brûken om it "nut" fan BP en "gewicht" fan har blokken te berekkenjen.

Yn it algemien, yn alle gefallen dêr't in willekeurige dielnimmer moat wurde keazen yn in desintralisearre netwurk, PVRB is hast altyd de bêste kar, yn stee fan in deterministyske opsje basearre op bygelyks in blok hash. Sûnder PVRB liedt de mooglikheid om de kar fan in dielnimmer te beynfloedzjen ta oanfallen wêryn de oanfaller kin kieze út meardere futures om de folgjende korrupte dielnimmer of ferskate tagelyk te kiezen om in grutter oandiel yn 'e beslút te garandearjen. It brûken fan PVRB diskreditearret dizze soarten oanfallen.

Skaalfergrutting en load balancing

PVRB kin ek wêze fan grut foardiel yn taken lykas load reduksje en betelling skaalfergrutting. Om te begjinnen, is it logysk om josels fertroud te meitsjen artikels Rivesta "Elektronyske Lotterijkaarten as Micropayments". It algemiene idee is dat ynstee fan it meitsjen fan 100 1c betellingen fan de betaler oan de ûntfanger, kinne jo spylje in earlike lottery mei in priis fan 1 $ = 100c, dêr't de betaler jout de bank ien fan 1 fan syn "lottery tickets" foar eltse 100c betelling. Ien fan dizze kaartsjes wint in pot fan $ 1, en it is dit kaartsje dat de ûntfanger kin opnimme yn 'e blockchain. It wichtichste is dat de oerbleaune 99 kaartsjes wurde oerdroegen tusken de ûntfanger en de betaler sûnder eksterne dielname, fia in privee kanaal en op elke winske snelheid. In goede beskriuwing fan it protokol basearre op dit skema op it Emercoin netwurk kin lêzen wurde hjir.

Dit skema hat in pear problemen, lykas de ûntfanger kin stopje tsjinje de betaler fuortendaliks nei ûntfangst fan in winnende ticket, mar foar in protte spesjale applikaasjes, lykas per-minuut fakturearring of elektroanyske abonneminten op tsjinsten, dizze kinne wurde ferwaarleazge. De wichtichste eask is fansels de earlikens fan 'e lotterij, en foar de útfiering dêrfan is in PVRB perfoarst nedich.

De kar fan in willekeurige dielnimmer is ek ekstreem wichtich foar shardingprotokollen, wêrfan it doel is om de blokketen horizontaal te skaaljen, wêrtroch ferskate BP's allinich har omfang fan transaksjes kinne ferwurkje. Dit is in ekstreem drege taak, foaral yn termen fan feiligens by it fusearjen fan shards. Earlike seleksje fan in willekeurige BP foar it doel fan it tawizen fan dyjingen dy't ferantwurdlik binne foar in spesifike shard, lykas yn konsensusalgoritmen, is ek de taak fan 'e PVRB. Yn sintralisearre systemen wurde shards tawiisd troch in balancer; it berekkent gewoan de hash út it fersyk en stjoert it nei de fereaske útfierer. Yn blockchains kin de mooglikheid om dizze opdracht te beynfloedzjen liede ta in oanfal op konsensus. Bygelyks, de ynhâld fan transaksjes kin wurde kontrolearre troch in oanfaller, hy kin kontrolearje hokker transaksjes gean nei de shard hy kontrolearret en manipulearje de keatling fan blokken dêryn. Jo kinne in diskusje lêze oer it probleem fan it brûken fan willekeurige nûmers foar shardingtaken yn Ethereum hjir
Sharding is ien fan 'e meast ambisjeuze en serieuze problemen op it mêd fan blockchain; syn oplossing sil it bouwen fan desintralisearre netwurken fan fantastyske prestaasjes en folume meitsje. PVRB is mar ien fan 'e wichtige blokken om it op te lossen.

Games, ekonomyske protokollen, arbitraazje

De rol fan willekeurige getallen yn 'e gaming yndustry is dreech te oerskatte. Eksplisite gebrûk yn online kasino, en ymplisyt gebrûk by it berekkenjen fan de effekten fan in spiler syn aksje binne allegear ekstreem drege problemen foar desintralisearre netwurken, dêr't der gjin wei in berop dwaan op in sintrale boarne fan willekeurich. Mar willekeurige seleksje kin ek in protte ekonomyske problemen oplosse en helpe om ienfâldiger en effisjinter protokollen te bouwen. Stel yn ús protokol binne d'r skeel oer betelling foar guon goedkeape tsjinsten, en dizze skelen komme frij komselden foar. Yn dit gefal, as der in ûnbestriden PVRB, kinne klanten en ferkeapers akkoard te lossen skeel willekeurich, mar mei in opjûne kâns. Bygelyks, mei in kâns fan 60% wint de klant, en mei in kâns fan 40% wint de ferkeaper. Dizze oanpak, dy't út it earste eachpunt absurd is, makket it mooglik om konflikten automatysk op te lossen mei in krekt foarsisber oanpart fan winst/ferlies, dat past by beide partijen sûnder dielname fan in tredde partij en ûnnedige tiidfergriemerij. Boppedat kin de kânsferhâlding dynamysk wêze en ôfhinklik fan guon globale fariabelen. Bygelyks, as in bedriuw it goed docht, in leech oantal skelen en hege profitabiliteit hat, kin it bedriuw de kâns op it oplossen fan in skeel automatysk ferskowe nei klant-sintraal, bygelyks 70/30 of 80/20, en oarsom, as skelen nimme in soad jild en binne frauduleus of ûnfoldwaande, kinne jo ferskowe de kâns yn 'e oare rjochting.

In grut oantal nijsgjirrige desintralisearre protokollen, lykas token curated registries, foarsizzingsmerken, bonding curves en in protte oaren, binne ekonomyske spultsjes wêryn goed gedrach wurdt beleanne en min gedrach wurdt bestraft. Se befetsje faak befeiligingsproblemen dêr't beskermingen mei-inoar yn konflikt binne. Wat wurdt beskerme tsjin in oanfal troch "walfisken" mei miljarden tokens ("grutte stake") is kwetsber foar oanfallen troch tûzenen akkounts mei lytse saldo ("sybil stake"), en maatregels nommen tsjin ien oanfal, lykas net- lineêre fergoedingen makke om te wurkjen mei in grut belang net rendabel wurde meastal diskredytearre troch in oare oanfal. Om't wy it oer in ekonomysk spul hawwe, kinne de oerienkommende statistyske gewichten fan tefoaren berekkene wurde, en gewoan de kommisjes ferfange troch willekeurige mei de passende ferdieling. Sokke probabilistyske kommisjes wurde ekstreem ienfâldich útfierd as de blockchain in betroubere boarne fan willekeur hat en gjin komplekse berekkeningen nedich is, wat it libben lestich makket foar sawol walfisken as sybils.
Tagelyk is it nedich om fierder te ûnthâlden dat kontrôle oer in inkele bit yn dizze willekeurigens kinne jo cheat, ferminderjen en fergrutsjen fan de kânsen troch de helte, sadat in earlike PVRB is de wichtichste komponint fan sokke protokollen.

Wêr te finen de rjochter willekeurich?

Yn teory makket earlike willekeurige seleksje yn desintralisearre netwurken hast elk protokol bewiisber feilich tsjin gearspanning. De reden is frij simpel - as it netwurk it iens is mei ien 0 of 1 bit, en minder dan de helte fan 'e dielnimmers binne ûnearlik, dan, jûn genôch iteraasjes, wurdt it netwurk garandearre om in konsensus te berikken oer dat bit mei in fêste kâns. Gewoan omdat in earlike willekeurich sil kieze 51 fan 100 dielnimmers 51% fan 'e tiid. Mar dit is yn teory, om't ... yn echte netwurken, om sa'n nivo fan feiligens te garandearjen as yn 'e artikels, binne in protte berjochten tusken hosts, komplekse multi-pass kryptografy nedich, en elke komplikaasje fan it protokol foeget daliks nije oanfalfektors ta.
Dêrom sjogge wy noch gjin bewiisde resistinte PVRB yn blokken, dy't genôch tiid brûkt wurde soe om te testen troch echte applikaasjes, meardere kontrôles, loads, en fansels echte oanfallen, sûnder dat it lestich is om in te neamen. produkt echt feilich.

Lykwols, der binne ferskate kânsrike oanpak, se ferskille yn in protte details, en ien fan harren sil grif oplosse it probleem. Mei moderne kompjûterboarnen kin kryptografyske teory frij tûk oerset wurde yn praktyske tapassingen. Yn 'e takomst sille wy bliid wêze om te praten oer PVRB-ymplemintaasjes: d'r binne no ferskate fan har, elk hat in eigen set fan wichtige eigenskippen en ymplemintaasjefunksjes, en efter elk is d'r in goed idee. D'r binne net in protte teams belutsen by randomisaasje, en de ûnderfining fan elk fan harren is ekstreem wichtich foar alle oaren. Wy hoopje dat ús ynformaasje sil tastean oare teams te bewegen flugger, rekken hâldend mei de ûnderfining fan harren foargongers.

Boarne: www.habr.com

Add a comment