Satunnaisluvut ja hajautetut verkot: käytännön sovelluksia

Esittely

"Satunnaislukujen luominen on liian tärkeää jätettäväksi sattuman varaan."
Robert Cavue, 1970

Tämä artikkeli on omistettu kollektiivista satunnaislukugenerointia käyttävien ratkaisujen käytännön soveltamiseen epäluotettavassa ympäristössä. Lyhyesti sanottuna, kuinka ja miksi satunnaisuutta käytetään lohkoketjuissa, ja vähän siitä, kuinka erottaa "hyvä" satunnainen "huonosta". Todella satunnaisluvun luominen on äärimmäisen vaikea ongelma jopa yhdellä tietokoneella, ja kryptografit ovat sitä pitkään tutkineet. No, hajautetuissa verkoissa satunnaislukujen luominen on vielä monimutkaisempaa ja tärkeämpää.

Juuri verkostoissa, joissa osallistujat eivät luota toisiinsa, kyky tuottaa kiistaton satunnaisluku antaa meille mahdollisuuden ratkaista tehokkaasti monia kriittisiä ongelmia ja parantaa merkittävästi olemassa olevia järjestelmiä. Lisäksi rahapelit ja arpajaiset eivät ole ykköstavoitteet, kuten kokemattomalle lukijalle saattaa aluksi tuntua.

Satunnaislukujen sukupolvi

Tietokoneet eivät voi luoda satunnaislukuja itse, vaan ne tarvitsevat ulkopuolista apua tehdäkseen sen. Tietokone voi saada jonkin satunnaisen arvon esimerkiksi hiiren liikkeistä, käytetyn muistin määrästä, prosessorin nastojen hajavirroista ja monista muista lähteistä, joita kutsutaan entropialähteiksi. Nämä arvot eivät itsessään ole täysin satunnaisia, koska ne ovat tietyllä alueella tai niillä on ennakoitavissa oleva muutoskuvio. Tällaisten lukujen muuttamiseksi todella satunnaisiksi luvuiksi tietyllä alueella, niihin sovelletaan kryptomuunnoksia tasaisesti jakautuneiden pseudosatunnaisten arvojen tuottamiseksi entropialähteen epätasaisesti jakautuneista arvoista. Tuloksena olevia arvoja kutsutaan näennäissatunnaisiksi, koska ne eivät ole todella satunnaisia, vaan ne on johdettu deterministisesti entropiasta. Mikä tahansa hyvä salausalgoritmi, kun tietoja salataan, tuottaa salatekstejä, joiden ei pitäisi olla tilastollisesti erotettavissa satunnaisesta sekvenssistä, joten satunnaisuuden tuottamiseen voidaan ottaa entropialähde, joka tarjoaa vain hyvän toistettavuuden ja arvojen ennustamattomuuden pienilläkin alueilla. loput työstä on bittien hajottamista ja sekoittamista. Tuloksena oleva arvo siirtyy salausalgoritmille.

Lyhyen koulutusohjelman loppuun lisään vielä, että satunnaislukujen generointi jopa yhdellä laitteella on yksi tietoturvamme pilareista.. Luotuja näennäissatunnaisia ​​lukuja käytetään luotaessa suojattuja yhteyksiä eri verkkoihin, luomaan salausavaimet kuormituksen tasapainottamiseen, eheyden valvontaan ja moniin muihin sovelluksiin. Monien protokollien turvallisuus riippuu kyvystä luoda luotettava, ulkoisesti arvaamaton satunnainen, tallentaa se eikä paljastaa sitä ennen protokollan seuraavaa vaihetta, muuten turvallisuus vaarantuu. Hyökkäys näennäissatunnaisten arvojen generaattoriin on erittäin vaarallinen ja uhkaa välittömästi kaikkia ohjelmistoja, jotka käyttävät satunnaisuuden generointia.

Sinun pitäisi tietää tämä kaikki, jos olet suorittanut salauksen peruskurssin, joten jatketaan hajautetuista verkoista.

Satunnainen lohkoketjuissa

Ensinnäkin puhun älykkäitä sopimuksia tukevista lohkoketjuista, jotka voivat hyödyntää täysimääräisesti laadukkaan, kiistattoman satunnaisuuden tarjoamia mahdollisuuksia. Lisäksi kutsun tätä tekniikkaa lyhyyden vuoksi "Julkisesti tarkistettavat satunnaiset majakat” tai PVRB. Koska lohkoketjut ovat verkostoja, joissa kuka tahansa osallistuja voi tarkistaa tiedot, nimen keskeinen osa on "Julkisesti varmennettavissa", eli. Kuka tahansa voi käyttää laskelmia saadakseen todisteen siitä, että tuloksena olevalla lohkoketjuun lähetetyllä numerolla on seuraavat ominaisuudet:

  • Tuloksen tulee olla todistetusti tasainen jakauma, eli sen tulee perustua todistetusti vahvaan kryptografiaan.
  • Mitään tuloksen bittejä ei ole mahdollista ohjata. Tämän seurauksena lopputulosta ei voida ennustaa etukäteen.
  • Et voi sabotoida sukupolviprotokollaa olemalla osallistumatta protokollaan tai ylikuormittamalla verkkoa hyökkäysviesteillä
  • Kaiken edellä mainitun on kestettävä sallitun määrän epärehellisiä protokollaan osallistuneita (esimerkiksi 1/3 osallistujista) yhteistoimintaa.

Mikä tahansa mahdollisuus salaisen pienelle osallistujajoukolle tuottaa jopa kontrolloitu parillinen/pariton satunnainen on turvallisuusreikä. Kaikki ryhmän kyky pysäyttää satunnaisten antaminen on turva-aukko. Yleensä ongelmia on monia, eikä tämä tehtävä ole helppo...

Vaikuttaa siltä, ​​että PVRB:n tärkein sovellus on erilaiset pelit, arpajaiset ja yleensä kaikenlaiset uhkapelit lohkoketjussa. Tämä on todellakin tärkeä suunta, mutta satunnaisuudella lohkoketjuissa on vielä tärkeämpiä sovelluksia. Katsotaanpa niitä.

Konsensusalgoritmit

PVRB:llä on valtava rooli verkostokonsensuksen järjestämisessä. Lohkoketjuissa tapahtuvat tapahtumat on suojattu sähköisellä allekirjoituksella, joten "tapahtumaan kohdistuva hyökkäys" on aina tapahtuman sisällyttäminen/poissulkeminen lohkoon (tai useisiin lohkoihin). Ja konsensusalgoritmin päätehtävänä on sopia näiden tapahtumien järjestyksestä ja niiden lohkojen järjestyksestä, jotka sisältävät nämä tapahtumat. Myös todellisten lohkoketjujen välttämätön ominaisuus on lopullisuus – verkon kyky sopia, että ketju valmiiseen lohkoon asti on lopullinen, eikä sitä koskaan suljeta pois uuden haarukan ilmaantumisen vuoksi. Yleensä lohkon pätevyyden ja mikä tärkeintä lopullisen hyväksymiseksi on kerättävä allekirjoitukset suurimmalta osalta lohkon tuottajia (jäljempänä BP - lohkotuottajat), mikä edellyttää ainakin lohkoketjun toimittamista. kaikille BP:ille ja jakaa allekirjoitukset kaikkien BP:iden kesken. BP:ien määrän kasvaessa verkkoon tarvittavien viestien määrä kasvaa eksponentiaalisesti, joten lopullisuutta vaativat konsensusalgoritmit, joita käytetään esimerkiksi Hyperledger pBFT -konsensuksessa, eivät toimi vaaditulla nopeudella, alkaen useista kymmenistä BP:istä, jotka vaativat valtava määrä yhteyksiä.

Jos verkossa on kiistaton ja rehellinen PVRB, niin yksinkertaisimmallakin likiarvolla voidaan valita yksi lohkotuottajista sen perusteella ja nimittää hänet "johtajaksi" yhden protokollan kierroksen aikana. Jos meillä on N lohkotuottajia, joista M: M > 1/2 N ovat rehellisiä, älä sensuroi tapahtumia äläkä haaroittele ketjua "kaksinkertaisen kulutuksen" hyökkäykseen, silloin tasaisesti jakautuneen kiistattoman PVRB:n käyttäminen mahdollistaa rehellisen johtajan valitsemisen todennäköisyydellä M / N (M / N > 1/2). Jos kullekin johtajalle määrätään oma aikaväli, jonka aikana hän voi tuottaa lohkon ja validoida ketjun, ja nämä aikavälit ovat samat ajallisesti, rehellisten BP:iden lohkoketju on pidempi kuin haitallisten BP:iden muodostama ketju, ja konsensus Algoritmi perustuu ketjun pituuteen. yksinkertaisesti hylkää "huonon". Tätä periaatetta, jonka mukaan jokaiselle BP:lle jaetaan yhtäläiset siivut aika, sovellettiin ensimmäisen kerran Graphenessa (EOS:n edeltäjä), ja se mahdollistaa useimpien lohkojen sulkemisen yhdellä allekirjoituksella, mikä vähentää huomattavasti verkon kuormitusta ja mahdollistaa tämän konsensuksen toimimisen erittäin nopeasti ja tasaisesti. EOS-verkon on nyt kuitenkin käytettävä erityisiä lohkoja (Last Irreversible Block), jotka vahvistetaan 2/3 BP:n allekirjoituksilla. Nämä lohkot varmistavat lopullisuuden (ennen viimeistä peruuttamatonta lohkoa alkavan ketjuhaarukan mahdottomuus).

Myös todellisissa toteutuksissa protokollakaavio on monimutkaisempi - ehdotettujen lohkojen äänestäminen suoritetaan useassa vaiheessa verkon ylläpitämiseksi puuttuvien lohkojen ja verkon ongelmien varalta, mutta tämäkin huomioon ottaen PVRB:tä käyttävät konsensusalgoritmit vaativat. huomattavasti vähemmän viestejä BP:iden välillä, mikä mahdollistaa niiden nopeamman kuin perinteinen PVFT tai sen erilaiset modifikaatiot.

Näkyvin tällaisten algoritmien edustaja: Ouroboros Cardanon joukkueelta, jonka sanotaan olevan matemaattisesti todistettavissa BP:n salaista yhteistyötä vastaan.

Ouroboroksessa PVRB:tä käytetään määrittämään niin sanottu "BP-aikataulu" - aikataulu, jonka mukaan jokaiselle BP:lle osoitetaan oma aikaväli lohkon julkaisemista varten. PVRB:n käytön suuri etu on BP:iden täydellinen "tasa-arvo" (niiden taseiden koon mukaan). PVRB:n eheys varmistaa, että haitalliset BP:t eivät voi hallita aikavälien ajoitusta, eivätkä siten voi manipuloida ketjua valmistelemalla ja analysoimalla ketjun haarukat etukäteen, ja haarukan valinnassa riittää luottaa vain aikavälien pituuteen. ketjua käyttämättä hankalia tapoja laskea BP:n "hyötysuhde" ja sen lohkojen "paino".

Yleensä kaikissa tapauksissa, joissa hajautetussa verkossa on valittava satunnainen osallistuja, PVRB on lähes aina paras valinta, ei esimerkiksi lohkohajautusmenetelmään perustuva deterministinen vaihtoehto. Ilman PVRB:tä kyky vaikuttaa osallistujan valintaan johtaa hyökkäyksiin, joissa hyökkääjä voi valita useista tulevaisuudesta valitakseen seuraavan korruptoituneen osallistujan tai useamman kerralla varmistaakseen suuremman osuuden päätöksestä. PVRB:n käyttö häpäisee tämäntyyppisiä hyökkäyksiä.

Skaalaus ja kuormituksen tasaus

PVRB:stä voi olla suurta hyötyä myös tehtävissä, kuten kuormituksen vähentämisessä ja maksujen skaalauksessa. Aluksi on järkevää tutustua artikkeleita Rivesta "Sähköiset arpaliput mikromaksuina". Yleisenä ajatuksena on, että sen sijaan, että maksaisit 100 1c maksua maksajalta vastaanottajalle, voit pelata rehellistä lottoa, jonka voitto on 1$ = 100c, jossa maksaja antaa pankille yhden 1 "arpalipustaan" jokaista kohden. 100c maksu. Yksi näistä lipuista voittaa 1 dollarin purkin, ja tämän lipun vastaanottaja voi tallentaa lohkoketjuun. Tärkeintä on, että loput 99 lippua siirtyvät vastaanottajan ja maksajan välillä ilman ulkopuolista osallistumista, yksityisen kanavan kautta ja haluamallasi nopeudella. Hyvä kuvaus tähän malliin perustuvasta protokollasta Emercoin-verkossa on luettavissa täällä.

Tässä kaavassa on muutamia ongelmia, esimerkiksi vastaanottaja voi lopettaa maksajan palvelemisen heti voittolipun saatuaan, mutta monissa erikoissovelluksissa, kuten minuuttilaskutuksessa tai sähköisessä palvelujen tilauksessa, ne voidaan jättää huomiotta. Päävaatimus on tietysti arpajaisten rehellisyys, ja sen toteuttamiseksi PVRB on ehdottoman välttämätön.

Satunnaisen osallistujan valinta on erittäin tärkeä myös sharing-protokollien kannalta, joiden tarkoituksena on skaalata lohkoketju vaakasuunnassa, jolloin eri BP:t voivat käsitellä vain oman tapahtumaalueensa. Tämä on erittäin vaikea tehtävä, varsinkin sirpaleiden yhdistämisen turvallisuuden kannalta. PVRB:n tehtävänä on myös satunnaisen BP:n oikeudenmukainen valinta tietystä sirpaleesta vastaavien osoittamiseksi, kuten konsensusalgoritmeissa. Keskitetyissä järjestelmissä sirpaleet määrittää tasapainottaja; se yksinkertaisesti laskee hajautuspyynnön ja lähettää sen vaaditulle suorittajalle. Lohkoketjuissa kyky vaikuttaa tähän tehtävään voi johtaa hyökkäykseen konsensusta vastaan. Esimerkiksi hyökkääjä voi hallita tapahtumien sisältöä, hän voi hallita, mitkä tapahtumat menevät hänen hallitsemaansa sirpaleeseen ja manipuloida siinä olevaa lohkoketjua. Voit lukea keskustelun satunnaislukujen käytön ongelmasta Ethereumissa täällä
Sharding on yksi kunnianhimoisimmista ja vakavimmista ongelmista lohkoketjun alalla; sen ratkaisu mahdollistaa hajautettujen verkkojen rakentamisen fantastisella suorituskyvyllä ja volyymilla. PVRB on vain yksi tärkeimmistä lohkoista sen ratkaisemiseksi.

Pelit, taloudelliset pöytäkirjat, välimiesmenettely

Satunnaislukujen roolia pelialalla on vaikea yliarvioida. Eksplisiittinen käyttö nettikasinoissa ja implisiittinen käyttö pelaajan toiminnan vaikutuksia laskettaessa ovat kaikki äärimmäisen vaikeita ongelmia hajautetuille verkostoille, joissa ei ole mitään keinoa luottaa keskeiseen satunnaisuuden lähteeseen. Mutta satunnainen valinta voi myös ratkaista monia taloudellisia ongelmia ja auttaa rakentamaan yksinkertaisempia ja tehokkaampia protokollia. Oletetaan, että protokollissamme on erimielisyyksiä joidenkin halpojen palvelujen maksamisesta, ja näitä riitoja esiintyy melko harvoin. Tässä tapauksessa, jos PVRB on kiistaton, asiakkaat ja myyjät voivat sopia riitojen ratkaisemisesta satunnaisesti, mutta tietyllä todennäköisyydellä. Esimerkiksi 60 %:n todennäköisyydellä asiakas voittaa ja 40 %:n todennäköisyydellä myyjä voittaa. Tämä lähtökohtaisesti absurdi lähestymistapa mahdollistaa erimielisyyksien automaattisen ratkaisemisen tarkasti ennustettavalla voittojen/tappioiden osuudella, mikä sopii molemmille osapuolille ilman kolmannen osapuolen osallistumista ja turhaa ajanhukkaa. Lisäksi todennäköisyyssuhde voi olla dynaaminen ja riippuvainen joistakin globaaleista muuttujista. Esimerkiksi, jos yrityksellä menee hyvin, riitoja on vähän ja kannattavuus on korkea, yritys voi automaattisesti siirtää riidanratkaisun todennäköisyyttä asiakaslähtöisyyteen, esimerkiksi 70/30 tai 80/20 ja päinvastoin. Jos riidat vievät paljon rahaa ja ovat vilpillisiä tai riittämättömiä, voit muuttaa todennäköisyyttä toiseen suuntaan.

Suuri joukko mielenkiintoisia hajautettuja protokollia, kuten token kuratoidut rekisterit, ennustemarkkinat, sidoskäyrät ja monet muut, ovat taloudellisia pelejä, joissa hyvästä käytöksestä palkitaan ja huonosta käytöksestä rangaistaan. Ne sisältävät usein turvallisuusongelmia, joiden suojaukset ovat ristiriidassa keskenään. Se mikä on suojattu "valaiden" hyökkäyksiltä miljardeilla rahakkeilla ("iso panos") on alttiina tuhansien tilien hyökkäyksille, joilla on pieni saldo ("sybil stake") ja yksittäistä hyökkäystä vastaan ​​toteutetuille toimenpiteille, kuten ei- Lineaariset maksut, jotka on luotu suuren panoksen kanssa työskentelyn tekemiseksi kannattamattomaksi, ovat yleensä huonontuneet toisella hyökkäyksellä. Koska kyseessä on talouspeli, vastaavat tilastolliset painot voidaan laskea etukäteen ja yksinkertaisesti korvata palkkiot satunnaistetuilla, joilla on sopiva jakautuminen. Tällaiset todennäköisyyspalkkiot toteutetaan erittäin yksinkertaisesti, jos lohkoketjulla on luotettava satunnaisuuden lähde, eivätkä vaadi monimutkaisia ​​laskelmia, mikä vaikeuttaa sekä valaiden että sybileiden elämää.
Samalla on edelleen muistettava, että yhden bitin hallinta tässä satunnaisuudessa mahdollistaa huijaamisen vähentäen ja lisäämällä todennäköisyyksiä puoleen, joten rehellinen PVRB on tällaisten protokollien tärkein komponentti.

Mistä löytää oikea satunnainen?

Teoriassa oikeudenmukainen satunnainen valinta hajautetuissa verkoissa tekee lähes kaikista protokollista todistetusti suojattuja salaisia ​​vastaan. Perustelu on melko yksinkertainen - jos verkko on yhtä mieltä yhdestä 0 tai 1 bitistä ja alle puolet osallistujista on epärehellisiä, niin riittävällä iteraatiolla verkko taatusti saavuttaa konsensuksen siitä bitistä kiinteällä todennäköisyydellä. Yksinkertaisesti siksi, että rehellinen satunnainen valitsee 51 osallistujaa 100 osallistujasta 51 % ajasta. Mutta tämä on teoriassa, koska... todellisissa verkoissa artikkeleiden kaltaisen tietoturvatason varmistamiseksi tarvitaan monia viestejä isäntien välillä, monimutkaista monipäästösalausta, ja kaikki protokollan komplikaatiot lisäävät välittömästi uusia hyökkäysvektoreita.
Siksi emme vielä näe lohkoketjuissa todistetusti vastustuskykyistä PVRB:tä, jota olisi käytetty tarpeeksi kauan testattavaksi oikeilla sovelluksilla, useilla auditoinneilla, kuormituksilla ja tietysti todellisilla hyökkäyksillä, joita ilman on vaikea kutsua tuote todella turvallinen.

Lupaavia lähestymistapoja on kuitenkin useita, ne eroavat monista yksityiskohdista, ja yksi niistä ratkaisee varmasti ongelman. Nykyaikaisilla laskentaresursseilla kryptografinen teoria voidaan kääntää varsin taitavasti käytännön sovelluksiksi. Tulevaisuudessa puhumme mielellämme PVRB-toteutuksista: niitä on nyt useita, jokaisessa on omat tärkeät ominaisuudet ja toteutusominaisuudet, ja jokaisen takana on hyvä idea. Satunnaistuksessa ei ole mukana monia tiimejä, ja jokaisen kokemus on erittäin tärkeä kaikille muille. Toivomme, että tietomme antavat muille joukkueille mahdollisuuden edetä nopeammin, ottaen huomioon edeltäjiensä kokemukset.

Lähde: will.com

Lisää kommentti