{"id":33888,"date":"2019-10-31T21:55:15","date_gmt":"2019-10-31T18:55:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sluchajnye-chisla-i-detsentralizovannye-seti-implementatsii\/"},"modified":"2019-10-31T21:55:15","modified_gmt":"2019-10-31T18:55:15","slug":"sluchajnye-chisla-i-detsentralizovannye-seti-implementatsii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-implementatsii","title":{"rendered":"V\u00e9letlen sz\u00e1mok \u00e9s decentraliz\u00e1lt h\u00e1l\u00f3zatok: implement\u00e1ci\u00f3k","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1 id=\"vvedenie\">Bevezet\u00e9s<\/h1>\n<p><\/p>\n<pre><code class=\"plaintext\">function getAbsolutelyRandomNumer() {\n        return 4; \/\/ returns absolutely random number!\n}<\/code><\/pre>\n<p><\/p>\n<p>Ahogyan az abszol\u00fat ellen\u00e1ll\u00f3 titkos\u00edt\u00e1si koncepci\u00f3 eset\u00e9ben is, a val\u00f3s \"Nyilv\u00e1nosan Ellen\u0151rizhet\u0151 V\u00e9letlenszer\u0171 Jelz\u0151\" (PVRB) protokollok csak igyekeznek a lehet\u0151 legjobban megk\u00f6zel\u00edteni az ide\u00e1lis s\u00e9m\u00e1t, mivel a val\u00f3s h\u00e1l\u00f3zatokban tiszta form\u00e1jukban nem alkalmazhat\u00f3k: szigor\u00faan egy bitben kell meg\u00e1llapodni, sok k\u00f6rre van sz\u00fcks\u00e9g, \u00e9s minden \u00fczenetet t\u00f6k\u00e9letesen gyorsan kell k\u00e9zbes\u00edteni. Nyilv\u00e1nval\u00f3, hogy a val\u00f3s h\u00e1l\u00f3zatokban ez nem \u00edgy van. Ez\u00e9rt, a PVRB tervez\u00e9se sor\u00e1n a modern blockchainekhez, a megkapott v\u00e9letlen \u00e9s a kriptogr\u00e1fiai ellen\u00e1ll\u00e1s mellett sz\u00e1mos tiszt\u00e1n architektur\u00e1lis \u00e9s technikai probl\u00e9ma is felmer\u00fcl.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>A blokkl\u00e1nc l\u00e9nyeg\u00e9ben a PVRB kommunik\u00e1ci\u00f3s k\u00f6zege, ahol az \u00fczenetek tranzakci\u00f3kk\u00e9nt jelennek meg. Ez lehet\u0151v\u00e9 teszi a h\u00e1l\u00f3zati probl\u00e9m\u00e1kb\u00f3l, \u00fczenetkihagy\u00e1sokb\u00f3l \u00e9s k\u00f6ztes szoftverprobl\u00e9m\u00e1kb\u00f3l val\u00f3 r\u00e9szleges elvonatkoztat\u00e1st \u2014 minden ilyen kock\u00e1zatot a decentraliz\u00e1lt h\u00e1l\u00f3zat v\u00e1llal, \u00e9s a legf\u0151bb \u00e9rt\u00e9ke a PVRB sz\u00e1m\u00e1ra \u2014 hogy m\u00e1r elk\u00fcld\u00f6tt tranzakci\u00f3t visszavonni vagy elrontani nem lehet \u2014 ez megakad\u00e1lyozza, hogy a r\u00e9sztvev\u0151k visszautas\u00edts\u00e1k a protokollban val\u00f3 r\u00e9szv\u00e9telt, hacsak nem hajtottak v\u00e9gre sikeres t\u00e1mad\u00e1st a konszenzus ellen. Ez a biztons\u00e1gi szint elfogadhat\u00f3, \u00edgy a PVRB-nek meg kell felelnie a r\u00e9sztvev\u0151k \u00f6sszeesk\u00fcv\u00e9s\u00e9vel szembeni elt\u00e9r\u0151 ellen\u00e1ll\u00e1snak, pont \u00fagy, mint a blokkl\u00e1nc f\u0151 l\u00e1nca. Ez azt is jelenti, hogy a PVRB-nek r\u00e9sze kell, hogy legyen a konszenzusnak, ha a h\u00e1l\u00f3zat meg\u00e1llapodott a f\u0151 blokk l\u00e1ncr\u00f3l, akkor egyidej\u0171leg egyet kell \u00e9rtenie a tisztess\u00e9ges v\u00e9letlensz\u00e1mra is. Vagy a PVRB egyszer\u0171en egy \u00f6n\u00e1ll\u00f3 protokoll, amelyet okos szerz\u0151d\u00e9s val\u00f3s\u00edt meg, asszinkron m\u00f3don a blokkl\u00e1nchoz \u00e9s a blokkokhoz viszony\u00edtva. Mindk\u00e9t m\u00f3dszernek vannak el\u0151nyei \u00e9s h\u00e1tr\u00e1nyai, \u00e9s a v\u00e1laszt\u00e1s k\u00f6z\u00f6tt\u00fck rendk\u00edv\u00fcl nem trivi\u00e1lis. <\/p>\n<p><\/p>\n<h2 id=\"dva-sposoba-implementacii-pvrb\">K\u00e9t m\u00f3dszer a PVRB megval\u00f3s\u00edt\u00e1s\u00e1ra<\/h2>\n<p><\/p>\n<p>R\u00e9szletesebben bemutatjuk a PVRB k\u00e9t megval\u00f3s\u00edt\u00e1si m\u00f3dj\u00e1t \u2014 az \u00f6n\u00e1ll\u00f3 verzi\u00f3t, amely f\u00fcggetlen, blokkl\u00e1nct\u00f3l f\u00fcggetlen okos szerz\u0151d\u00e9st haszn\u00e1l, \u00e9s a konszenzusba integr\u00e1ltat, amely a protokollba van be\u00e9p\u00edtve, ahol a h\u00e1l\u00f3zat meg\u00e1llapodik a blokk l\u00e1ncr\u00f3l \u00e9s a bevon\u00e1sra ker\u00fcl\u0151 tranzakci\u00f3kr\u00f3l. Minden esetben a n\u00e9pszer\u0171 blokkl\u00e1nc motorokra fogok gondolni: Ethereum, EOS, \u00e9s minden hasonl\u00f3, az okos szerz\u0151d\u00e9sek elhelyez\u00e9s\u00e9nek \u00e9s feldolgoz\u00e1s\u00e1nak m\u00f3dja szerint. <\/p>\n<p><\/p>\n<h3 id=\"standalone-contract\">\u00d6n\u00e1ll\u00f3 szerz\u0151d\u00e9s<\/h3>\n<p><\/p>\n<p>Ebben a v\u00e1ltozatban a PVRB egy okosszerz\u0151d\u00e9s, amely a random-producer-ek (tov\u00e1bbiakban RP) tranzakci\u00f3it fogadja, feldolgozza \u0151ket, kombin\u00e1lja az eredm\u00e9nyeket, \u00e9s v\u00e9g\u00fcl egy olyan \u00e9rt\u00e9ket kap, amelyet b\u00e1rmely felhaszn\u00e1l\u00f3 kinyerhet ebb\u0151l a szerz\u0151d\u00e9sb\u0151l. Ez az \u00e9rt\u00e9k nem felt\u00e9tlen\u00fcl t\u00e1rol\u00f3dik k\u00f6zvetlen\u00fcl a szerz\u0151d\u00e9sben, hanem csak olyan adatok form\u00e1j\u00e1ban jelenik meg, amelyekb\u0151l determinisztikusan egyetlen eredeti v\u00e9letlensz\u00e1m nyerhet\u0151. Ebben a rendszerben az RP a blokkl\u00e1nc felhaszn\u00e1l\u00f3i, \u00e9s a gener\u00e1l\u00e1si folyamatban b\u00e1rki r\u00e9szt vehet.<\/p>\n<p><\/p>\n<p>Az \u00f6n\u00e1ll\u00f3 szerz\u0151d\u00e9s v\u00e1ltozata el\u0151ny\u00f6s:<\/p>\n<p><\/p>\n<ul>\n<li>\u00e1tj\u00e1rhat\u00f3s\u00e1g (a szerz\u0151d\u00e9sek \u00e1tvihet\u0151k a blokkl\u00e1ncb\u00f3l a blokkl\u00e1ncba)<\/li>\n<li>egyszer\u0171s\u00e9g a megval\u00f3s\u00edt\u00e1sban \u00e9s tesztel\u00e9sben (a szerz\u0151d\u00e9sek \u00edr\u00e1sa \u00e9s tesztel\u00e9se k\u00e9nyelmes)<\/li>\n<li>gazdas\u00e1gi rendszerek megval\u00f3s\u00edt\u00e1s\u00e1nak k\u00e9nyelme (k\u00f6nnyen l\u00e9trehozhat\u00f3 a saj\u00e1t tokenje, amelynek logik\u00e1ja a PVRB c\u00e9ljait szolg\u00e1lja)<\/li>\n<li>a lehet\u0151s\u00e9g, hogy m\u00e1r m\u0171k\u00f6d\u0151 blokkl\u00e1ncokban ind\u00edtsunk<\/li>\n<\/ul>\n<p><\/p>\n<p>De h\u00e1tr\u00e1nyai is vannak:<\/p>\n<p><\/p>\n<ul>\n<li>er\u0151s korl\u00e1toz\u00e1sok az er\u0151forr\u00e1sok tekintet\u00e9ben sz\u00e1m\u00edt\u00e1sokn\u00e1l, tranzakci\u00f3s mennyis\u00e9g \u00e9s t\u00e1rol\u00e1s (egyszer\u0171bben fogalmazva cpu\/mem\/io)<\/li>\n<li>korl\u00e1toz\u00e1sok a szerz\u0151d\u00e9sen bel\u00fcli m\u0171veletekre (nem minden utas\u00edt\u00e1s \u00e9rhet\u0151 el, neh\u00e9z k\u00fcls\u0151 k\u00f6nyvt\u00e1rakat csatlakoztatni)<\/li>\n<li>nem lehets\u00e9ges gyorsabb \u00fczenetv\u00e1lt\u00e1s megszervez\u00e9se, mint ahogy a tranzakci\u00f3k beilleszt\u00e9sre ker\u00fclnek a blokkl\u00e1ncba<\/li>\n<\/ul>\n<p><\/p>\n<p>Ez a v\u00e1ltozat alkalmas a PVRB megval\u00f3s\u00edt\u00e1s\u00e1ra, amelyet m\u00e1r l\u00e9tez\u0151 h\u00e1l\u00f3zaton kell ind\u00edtani, nem tartalmaz bonyolult kriptogr\u00e1fi\u00e1t, \u00e9s nem ig\u00e9nyel nagy mennyis\u00e9g\u0171 k\u00f6lcs\u00f6nhat\u00e1st.<\/p>\n<p><\/p>\n<h3 id=\"consensus-integrated\">Konszenzus-integr\u00e1lt<\/h3>\n<p><\/p>\n<p>Ebben a verzi\u00f3ban a PVRB a blokkl\u00e1nc csom\u00f3pont k\u00f3dj\u00e1ban van megval\u00f3s\u00edtva, be\u00e9p\u00edtve, vagy p\u00e1rhuzamosan m\u0171k\u00f6dik a blokkl\u00e1nc csom\u00f3pontjai k\u00f6z\u00f6tti \u00fczenetv\u00e1lt\u00e1ssal. A protokoll eredm\u00e9nyei k\u00f6zvetlen\u00fcl a l\u00e9trehozott blokkokba ker\u00fclnek r\u00f6gz\u00edt\u00e9sre, m\u00edg a protokoll \u00fczenetei p2p h\u00e1l\u00f3zaton kereszt\u00fcl k\u00fcld\u00e9sre ker\u00fclnek a csom\u00f3pontok k\u00f6z\u00f6tt. Mivel a protokoll eredm\u00e9nyei sz\u00e1mok, amelyeket a blokkokba kell r\u00f6gz\u00edteni, a h\u00e1l\u00f3zatnak konszenzusra kell jutnia ezekkel kapcsolatban. Ez\u00e9rt a PVRB \u00fczeneteknek, ak\u00e1rcsak a tranzakci\u00f3knak, valid\u00e1lva kell lenni\u00fck a csom\u00f3pontok \u00e1ltal, \u00e9s be kell ker\u00fclni\u00fck a blokkokba, hogy a h\u00e1l\u00f3zat b\u00e1rmely r\u00e9sztvev\u0151je valid\u00e1lni tudja a PVRB protokoll betart\u00e1s\u00e1t. Ez automatikusan nyilv\u00e1nval\u00f3 megold\u00e1shoz vezet minket \u2013 ha a h\u00e1l\u00f3zat konszenzusra jut a blokkkal \u00e9s annak tranzakci\u00f3ival kapcsolatban, akkor a PVRB-nek a konszenzus fontos r\u00e9sz\u00e9nek kell lennie, nem pedig egy k\u00fcl\u00f6n\u00e1ll\u00f3 protokollnak. K\u00fcl\u00f6nben el\u0151fordulhat, hogy a blokk \u00e9rv\u00e9nyes a konszenzus szempontj\u00e1b\u00f3l, de a PVRB protokollt nem tartj\u00e1k be, \u00e9s a PVRB szempontj\u00e1b\u00f3l a blokk nem fogadhat\u00f3 el. Teh\u00e1t ha a \u201ckonszenzus-integr\u00e1lt\u201d v\u00e1ltozatot v\u00e1lasztj\u00e1k, a PVRB a konszenzus l\u00e9nyeges r\u00e9sz\u00e9v\u00e9 v\u00e1lik.<\/p>\n<p><\/p>\n<p>A PVRB konszenzus szint\u0171 implement\u00e1ci\u00f3inak le\u00edr\u00e1sakor semmik\u00e9ppen sem szabad figyelmen k\u00edv\u00fcl hagyni a v\u00e9glegess\u00e9g k\u00e9rd\u00e9seit. A v\u00e9glegess\u00e9g egy olyan mechanizmus, amelyet a determinisztikus konszenzusokban haszn\u00e1lnak, r\u00f6gz\u00edtve egy blokkot (\u00e9s a hozz\u00e1 vezet\u0151 l\u00e1ncot), amely v\u00e9gleges, \u00e9s soha nem lesz elvetve, m\u00e9g akkor sem, ha p\u00e1rhuzamos fork jelenik meg. P\u00e9ld\u00e1ul a Bitcoinban nincs ilyen mechanizmus \u2013 ha egy nagyobb neh\u00e9zs\u00e9g\u0171 l\u00e1ncot publik\u00e1lunk, az felv\u00e1ltja b\u00e1rmelyik kevesebb neh\u00e9zs\u00e9g\u0171t, f\u00fcggetlen\u00fcl a l\u00e1ncok hossz\u00e1t\u00f3l. Az EOS-ban a v\u00e9gleges blokkokat \u00fagynevezett Utols\u00f3 Visszavonhatatlan Blokkoknak (Last Irreversible Blocks) nevezik, amelyek \u00e1tlagosan 432 blokkank\u00e9nt jelennek meg (12*21 + 12*15, el\u0151zetes szavaz\u00e1s + el\u0151zetes k\u00f6telezetts\u00e9gv\u00e1llal\u00e1s). Ez a folyamat l\u00e9nyeg\u00e9ben a block-producerek (BP) 2\/3 al\u00e1\u00edr\u00e1s\u00e1nak v\u00e1rakoz\u00e1sa. A forkok, amelyek id\u0151sebbek, mint az utols\u00f3 LIB, egyszer\u0171en elvet\u00e9sre ker\u00fclnek. Ez a mechanizmus lehet\u0151v\u00e9 teszi, hogy garant\u00e1ljunk, hogy a tranzakci\u00f3 be van z\u00e1rva a blokkl\u00e1ncba, \u00e9s soha nem fog elvontat\u00f3dni, b\u00e1rmilyen er\u0151forr\u00e1sokkal rendelkezzen is a t\u00e1mad\u00f3. Ezenk\u00edv\u00fcl a v\u00e9gleges blokkok a Hyperledgerben, Tendermintben \u00e9s m\u00e1s pBFT-alap\u00fa konszenzusokban a 2\/3 BP \u00e1ltal al\u00e1\u00edrt blokkok. <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/pdf\/1710.09437.pdf\">cikk<\/a><\/noindex> a v\u00e9geredm\u00e9ny az Ethereum-ban.<\/p>\n<p><\/p>\n<p>A v\u00e9geredm\u00e9ny rendk\u00edv\u00fcl fontos a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, akik en\u00e9lk\u00fcl a \"double spend\" t\u00e1mad\u00e1s \u00e1ldozataiv\u00e1 v\u00e1lhatnak, amikor a BP \"megtartja\" a blokkokat, \u00e9s azokat k\u00f6zz\u00e9teszi, miut\u00e1n a h\u00e1l\u00f3zat \"l\u00e1tott\" egy j\u00f3 tranzakci\u00f3t. Ha nincs v\u00e9geredm\u00e9ny, akkor a k\u00f6zz\u00e9tett fork felv\u00e1ltja a \"j\u00f3\" tranzakci\u00f3t tartalmaz\u00f3 blokkot egy m\u00e1sikkal a \"rossz\" forkb\u00f3l, ahol ugyanaz az \u00f6sszeg \u00e1tker\u00fcl a t\u00e1mad\u00f3 c\u00edm\u00e9re. A PVRB eset\u00e9n a v\u00e9geredm\u00e9ny k\u00f6vetelm\u00e9nyei m\u00e9g szigor\u00fabb\u00e1 v\u00e1lnak, mivel a PVRB forkok k\u00e9sz\u00edt\u00e9se lehet\u0151s\u00e9get ad a t\u00e1mad\u00f3nak, hogy t\u00f6bb v\u00e9letlen v\u00e1ltozatot k\u00e9sz\u00edtsen azzal a c\u00e9llal, hogy a sz\u00e1m\u00e1ra legkedvez\u0151bbet publik\u00e1lja, \u00e9s korl\u00e1tozza a t\u00e1mad\u00e1s idej\u00e9t \u2013 ez egy j\u00f3 megold\u00e1s.<\/p>\n<p><\/p>\n<p>Ez\u00e9rt a legjobb megold\u00e1s a PVRB \u00e9s a v\u00e9geredm\u00e9ny egy protokollba val\u00f3 egyes\u00edt\u00e9se \u2013 ekkor a v\u00e9gleges blokk = v\u00e9gleges v\u00e9letlen, ami pontosan az, amire sz\u00fcks\u00e9g volt. Most a j\u00e1t\u00e9kosok garant\u00e1lt v\u00e9letlent kapnak N m\u00e1sodperc alatt, \u00e9s biztosak lehetnek benne, hogy azt visszavonni vagy \u00fajraj\u00e1tszani lehetetlen.<\/p>\n<p><\/p>\n<p>A consensus-integr\u00e1lt megold\u00e1s j\u00f3:<\/p>\n<p><\/p>\n<ul>\n<li>az aszinkron v\u00e9grehajt\u00e1s lehet\u0151s\u00e9g\u00e9vel a blokkok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz k\u00e9pest \u2013 a blokkok a megszokott m\u00f3don k\u00e9sz\u00fclnek, de ezzel p\u00e1rhuzamosan a PVRB protokoll is m\u0171k\u00f6dhet, amely nem minden blokkhoz termel v\u00e9letleneket<\/li>\n<li>a neh\u00e9z kriptogr\u00e1fiai megold\u00e1sok implement\u00e1l\u00e1s\u00e1nak lehet\u0151s\u00e9g\u00e9vel, an\u00e9lk\u00fcl, hogy a smart contractok \u00e1ltal t\u00e1masztott korl\u00e1tok l\u00e9pn\u00e9nek fel<\/li>\n<li>a kommunik\u00e1ci\u00f3s csere megszervez\u00e9s\u00e9nek lehet\u0151s\u00e9g\u00e9vel gyorsabban, mint ahogy a tranzakci\u00f3k beker\u00fclnek a blokkl\u00e1ncba, p\u00e9ld\u00e1ul a protokoll egy r\u00e9sze a node-ok k\u00f6z\u00f6tt m\u0171k\u00f6dhet an\u00e9lk\u00fcl, hogy \u00fczeneteket terjesztene a h\u00e1l\u00f3zaton<\/li>\n<\/ul>\n<p><\/p>\n<p>De h\u00e1tr\u00e1nyai is vannak:<\/p>\n<p><\/p>\n<ul>\n<li>a tesztel\u00e9s \u00e9s fejleszt\u00e9s neh\u00e9zs\u00e9geivel \u2013 h\u00e1l\u00f3zati hib\u00e1k, el\u00e9rhetetlen node-ok, hard fork-ok emul\u00e1ci\u00f3j\u00e1t kell v\u00e9gezni<\/li>\n<li>a megval\u00f3s\u00edt\u00e1si hib\u00e1k hard fork-ot k\u00f6vetelnek meg a h\u00e1l\u00f3zaton<\/li>\n<\/ul>\n<p><\/p>\n<p>Mindk\u00e9t PVRB implement\u00e1l\u00e1si m\u00f3dnak van l\u00e9tjogosults\u00e1ga, de a modern blokkl\u00e1ncokban a smart contractok megval\u00f3s\u00edt\u00e1sa m\u00e9g mindig jelent\u0151sen korl\u00e1tozott az er\u0151forr\u00e1sok szempontj\u00e1b\u00f3l, \u00e9s b\u00e1rmilyen komolyabb kriptogr\u00e1fiai \u00e1tt\u00e9r\u00e9s gyakran egyszer\u0171en lehetetlen. A komoly kriptogr\u00e1fi\u00e1ra sz\u00fcks\u00e9g\u00fcnk lesz, ahogyan azt a tov\u00e1bbiakban be fogjuk mutatni. B\u00e1r ez a probl\u00e9ma egy\u00e9rtelm\u0171en \u00e1tmeneti, a komoly kriptogr\u00e1fia a szerz\u0151d\u00e9sekben sz\u00e1mos feladat megold\u00e1s\u00e1hoz sz\u00fcks\u00e9ges, \u00e9s fokozatosan megjelenik (p\u00e9ld\u00e1ul a zkSNARKs rendszerszerz\u0151d\u00e9sei az Ethereum-ban)<\/p>\n<p><\/p>\n<p>A blokkl\u00e1nc, amely \u00e1tl\u00e1that\u00f3 \u00e9s megb\u00edzhat\u00f3 \u00fczenetk\u00fcld\u00e9si csatorn\u00e1t biztos\u00edt a protokoll sz\u00e1m\u00e1ra, nem ingyenes. B\u00e1rmely decentraliz\u00e1lt protokollnak figyelembe kell vennie a Sybil t\u00e1mad\u00e1s lehet\u0151s\u00e9g\u00e9t, b\u00e1rmilyen cselekv\u00e9st egyes fi\u00f3kok sz\u00e1mos\u00e1val, \u00f6sszehangolt er\u0151vel lehet v\u00e9grehajtani, ez\u00e9rt a tervez\u00e9s sor\u00e1n figyelembe kell venni a t\u00e1mad\u00f3k lehet\u0151s\u00e9geit, akik tetsz\u0151leges sz\u00e1m\u00fa r\u00e9sztvev\u0151t k\u00e9pesek l\u00e9trehozni a protokollban, akik \u00f6sszej\u00e1tszanak. <\/p>\n<p><\/p>\n<h2 id=\"pvrb-i-peremennye-bloka\">PVRB \u00e9s blokk v\u00e1ltoz\u00f3k.<\/h2>\n<p><\/p>\n<p>Nem hazudtam, amikor azt mondtam, hogy j\u00f3 PVRB, amelyet sz\u00e1mos szerencsej\u00e1t\u00e9k-alkalmaz\u00e1s tesztelt, a blokkl\u00e1ncokban eddig m\u00e9g senki sem val\u00f3s\u00edtott meg. Honnan van akkor annyi szerencsej\u00e1t\u00e9k-alkalmaz\u00e1s az Ethereumon \u00e9s az EOS-on? Ez engem ugyan\u00fagy meglep, mint t\u00e9ged, h\u00e1t honnan ker\u00fclt el\u0151 ennyi \u201eellen\u00e1ll\u00f3\u201d v\u00e9letlensz\u00e1m egy teljesen determinisztikus k\u00f6rnyezetben?<\/p>\n<p><\/p>\n<p>A blokkl\u00e1ncon t\u00f6rt\u00e9n\u0151 v\u00e9letlensz\u00e1m-gener\u00e1l\u00e1s kedvenc m\u00f3dja az, hogy valamilyen \u201emegj\u00f3solhatatlan\u201d inform\u00e1ci\u00f3t vesz\u00fcnk a blokkb\u00f3l, \u00e9s annak alapj\u00e1n gener\u00e1lunk v\u00e9letlensz\u00e1mot \u2013 egyszer\u0171en hash-elj\u00fck egy vagy t\u00f6bb \u00e9rt\u00e9k\u00e9t. J\u00f3 cikk a hasonl\u00f3 sch\u00e9m\u00e1k probl\u00e9m\u00e1ir\u00f3l. <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.positive.com\/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620\">itt<\/a><\/noindex>V\u00e1laszthatunk valamilyen \u201emegj\u00f3solhatatlan\u201d \u00e9rt\u00e9ket a blokkban, p\u00e9ld\u00e1ul a blokk hash-j\u00e9t, a tranzakci\u00f3k sz\u00e1m\u00e1t, a h\u00e1l\u00f3zat neh\u00e9zs\u00e9g\u00e9t \u00e9s egy\u00e9b, el\u0151re nem l\u00e1that\u00f3 \u00e9rt\u00e9keket. Ezeket ezut\u00e1n hash-elj\u00fck, egyet vagy t\u00f6bbet, \u00e9s elvileg igazi v\u00e9letlensz\u00e1mot kellene kapnunk. M\u00e9g azt is hozz\u00e1adhatjuk a whitepaperhez, hogy az \u00d6n terve \u201eposzt-kvantum biztons\u00e1gos\u201d (hiszen l\u00e9teznek kvantumbiztos hash f\u00fcggv\u00e9nyek :)).<\/p>\n<p><\/p>\n<p>De sajnos m\u00e9g a poszt-kvantum biztons\u00e1g\u00fa hash-ek sem elegend\u0151k. A titok a PVRB k\u00f6vetelm\u00e9nyeiben rejlik, eml\u00e9keztetek a kor\u00e1bbi cikkemben eml\u00edtettekre:<\/p>\n<p><\/p>\n<ol>\n<li>Az eredm\u00e9nynek bizony\u00edthat\u00f3an egyenletes eloszl\u00e1s\u00fanak kell lennie, azaz bizony\u00edthat\u00f3an ellen\u00e1ll\u00f3 kriptogr\u00e1fi\u00e1n kell alapulnia.<\/li>\n<li>Nem lehet ellen\u0151rizni az eredm\u00e9ny egyetlen bitj\u00e9t sem. Ennek k\u00f6vetkezt\u00e9ben az eredm\u00e9ny el\u0151re nem tudhat\u00f3.<\/li>\n<li>A gener\u00e1l\u00e1si protokoll szabot\u00e1l\u00e1sa nem lehets\u00e9ges a protokollban val\u00f3 r\u00e9szv\u00e9tel elmulaszt\u00e1s\u00e1val vagy a h\u00e1l\u00f3zat t\u00falterhel\u00e9s\u00e9vel t\u00e1mad\u00f3 \u00fczenetek r\u00e9v\u00e9n.<\/li>\n<li>Mindezeknek ellen\u00e1ll\u00f3nak kell lenni\u00fck a protokollban r\u00e9szt vev\u0151 becstelen r\u00e9sztvev\u0151k elfogadhat\u00f3 sz\u00e1m\u00fa \u00f6sszehangolt t\u00e1mad\u00e1saival szemben (p\u00e9ld\u00e1ul a r\u00e9sztvev\u0151k 1\/3-a).<\/li>\n<\/ol>\n<p><\/p>\n<p>Ebben az esetben csak az 1. k\u00f6vetelm\u00e9ny teljes\u00fcl, a 2. viszont nem. Ha a blokkb\u00f3l el\u0151re nem l\u00e1that\u00f3 \u00e9rt\u00e9keket hash-elj\u00fck, egyenletes eloszl\u00e1st \u00e9s j\u00f3 v\u00e9letlenszer\u0171s\u00e9get kapunk. De az BP-nek legal\u00e1bb van lehet\u0151s\u00e9ge \"publik\u00e1lni a blokkot, vagy sem\". \u00cdgy BP legal\u00e1bb v\u00e1laszthat K\u00c9T v\u00e9letlenszer\u0171s\u00e9g k\u00f6z\u00fcl: a \"saj\u00e1t\" \u00e9s a \"m\u00e1s \u00e1ltal l\u00e9trehozott\" opci\u00f3 k\u00f6z\u00fcl. BP el\u0151re \"meglesheti\", hogy mi fog t\u00f6rt\u00e9nni, ha publik\u00e1lja a blokkot, \u00e9s egyszer\u0171en d\u00f6nthet r\u00f3la, hogy megteszi-e vagy sem. \u00cdgy amikor p\u00e9ld\u00e1ul \"p\u00e1ratlan-p\u00e1ros\" vagy \"piros\/fekete\" j\u00e1t\u00e9kot j\u00e1tszik a rulettben, csak akkor publik\u00e1lja a blokkot, ha nyer\u00e9st l\u00e1t. Ez egy\u00fattal meghi\u00fas\u00edtja a blokk \"j\u00f6v\u0151beli\" hash-\u00e1nak haszn\u00e1lat\u00e1ra vonatkoz\u00f3 strat\u00e9gi\u00e1t is. Ilyen esetben azt mondj\u00e1k, hogy \"a v\u00e9letlensz\u00e1mtartalom a jelenlegi adatok \u00e9s a j\u00f6v\u0151beli blokk hash-\u00e1nak hash-el\u00e9s\u00e9vel l\u00e9trej\u00f6tt v\u00e9letlensz\u00e1m lesz, amelynek magass\u00e1ga p\u00e9ld\u00e1ul N + 42, ahol N a blokk jelenlegi magass\u00e1ga. Ez kicsit meger\u0151s\u00edti a s\u00e9m\u00e1t, de BP-t \u00edgy is engedi, hogy a j\u00f6v\u0151ben d\u00f6nt\u00e9st hozzon a blokk visszatart\u00e1s\u00e1r\u00f3l vagy publik\u00e1l\u00e1s\u00e1r\u00f3l.<\/p>\n<p><\/p>\n<p>BP szoftvere ebben az esetben bonyolultabb\u00e1 v\u00e1lik, de nem jelent\u0151sen. Csak a tranzakci\u00f3k \u00e9rv\u00e9nyes\u00edt\u00e9se \u00e9s a blokkba val\u00f3 felv\u00e9tele sor\u00e1n gyors ellen\u0151rz\u00e9st v\u00e9geznek arr\u00f3l, hogy lesz-e nyer\u00e9s, \u00e9s esetleg egy tranzakci\u00f3s param\u00e9tert is optimaliz\u00e1lnak a magas nyer\u00e9si val\u00f3sz\u00edn\u0171s\u00e9g \u00e9rdek\u00e9ben. Ezzel egy\u00fctt, hogy elkapjunk egy okos BP-t, az ilyen manipul\u00e1ci\u00f3kat szinte lehetetlens\u00e9g \u00e9szlelni, mindig \u00faj c\u00edmeket haszn\u00e1lhatunk, \u00e9s fokozatosan nyerhet\u00fcnk an\u00e9lk\u00fcl, hogy gyan\u00fat kelten\u00e9nk.<\/p>\n<p><\/p>\n<p>\u00cdgy a blokk inform\u00e1ci\u00f3inak felhaszn\u00e1l\u00e1s\u00e1val kapcsolatos m\u00f3dszerek nem alkalmasak az \u00e1ltal\u00e1nos PVRB implement\u00e1ci\u00f3 szerep\u00e9re. Korl\u00e1tozott lehet\u0151s\u00e9gekkel, t\u00e9tm\u00e9ret-korl\u00e1tokkal, a j\u00e1t\u00e9kosok sz\u00e1m\u00e1nak korl\u00e1toz\u00e1s\u00e1val \u00e9s\/vagy KYC regisztr\u00e1l\u00e1ssal (hogy ne engedj\u00fck meg egy j\u00e1t\u00e9kosnak, hogy t\u00f6bb c\u00edmet haszn\u00e1ljon), ezek a s\u00e9m\u00e1k kisebb j\u00e1t\u00e9kokn\u00e1l m\u0171k\u00f6dhetnek, de nem t\u00f6bbre.<\/p>\n<p><\/p>\n<h2 id=\"pvrb-i-commit-reveal\">PVRB \u00e9s commit-reveal.<\/h2>\n<p><\/p>\n<p>Rendben, k\u00f6sz\u00f6nj\u00fck a hash-nek \u00e9s legal\u00e1bb a blokk hash-\u00e1nak \u00e9s m\u00e1s v\u00e1ltoz\u00f3knak a relat\u00edv kisz\u00e1m\u00edthatatlans\u00e1g\u00e1t. Ha megoldjuk a b\u00e1ny\u00e1szok el\u00f6l fut\u00e1s\u00e1nak probl\u00e9m\u00e1j\u00e1t, valami \u00e9rt\u00e9kesebbet kellene kapnunk. Adjunk hozz\u00e1 ebbe a s\u00e9m\u00e1ba a felhaszn\u00e1l\u00f3kat is \u2013 hadd befoly\u00e1solj\u00e1k \u0151k is a v\u00e9letlent: b\u00e1rmelyik \u00fcgyf\u00e9lszolg\u00e1lati munkat\u00e1rs elmondja, hogy az IT rendszerekben a legv\u00e9letlenszer\u0171bb dolog a felhaszn\u00e1l\u00f3k cselekedetei \ud83d\ude42<\/p>\n<p><\/p>\n<p>A naivete scheme where users simply send random numbers, and the result is calculated as, for example, the hash of their sum, is not suitable. In this case, the last player can control what the outcome will be by choosing their own random number. Therefore, a widely used pattern called commit-reveal is employed. Participants first send hashes of their randoms (commits), and then reveal their actual random numbers (reveals). The 'reveal' phase only starts after the necessary commits have been collected, so participants can send the exact random number from which they previously sent the hash. Now, let's combine all this with the parameters of the block, preferably taken from the future (the random number can be known only in one of the future blocks), and voila \u2014 the random number is ready! Now any player influences the resulting random number and can 'defeat' the malicious BP by overriding their random number with their own, which is unknown in advance\u2026 It is also possible to add protection against protocol sabotage by requiring a certain amount to be attached to the transaction during the commit phase as an insurance deposit, which will only be returned during the reveal process. In this case, making a commit but not revealing it would be disadvantageous.<\/p>\n<p><\/p>\n<p>This was a good attempt, and such schemes also exist in gaming DApps, but unfortunately, it is still not enough. Now, not only the miner but also any participant in the protocol can influence the outcome. The value can still be controlled, albeit with less variability and at a cost, but just like with the miner, if the lottery results are worth more than the fee for participating in the PVRB protocol, then the random producer (RP) can decide whether to reveal and can still choose from at least two random options.<br \/>\nHowever, there is now the possibility to punish those who make a commit and do not do a reveal, and this scheme will still be useful. Its simplicity is a significant advantage \u2014 more serious protocols require much more powerful computations.<\/p>\n<p><\/p>\n<h2 id=\"pvrb-i-determinirovannye-podpisi\">PVRB and deterministic signatures.<\/h2>\n<p><\/p>\n<p>Van egy m\u00e1sik m\u00f3dja is annak, hogy a RP olyan pszeudo-v\u00e9letlen sz\u00e1mot adjon, amelyre nem tud hat\u00e1ssal lenni, ha egy \u201eprotot\u00edpust\u201d adunk neki \u2013 ez a determinisztikus al\u00e1\u00edr\u00e1s. Az RSA p\u00e9ld\u00e1ul egy ilyen al\u00e1\u00edr\u00e1s, m\u00edg az ECS nem. Ha a RP rendelkezik egy RSA \u00e9s egy ECC kulcsp\u00e1rral, \u00e9s a mag\u00e1nkulcs\u00e1val al\u00e1\u00edr egy \u00e9rt\u00e9ket, akkor az RSA eset\u00e9n EGY \u00c9S CSAK EGY al\u00e1\u00edr\u00e1st kap, m\u00edg az ECS eset\u00e9n sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 \u00e9rv\u00e9nyes al\u00e1\u00edr\u00e1st gener\u00e1lhat. Ez az\u00e9rt t\u00f6rt\u00e9nik, mert az ECS al\u00e1\u00edr\u00e1s l\u00e9trehoz\u00e1sakor egy v\u00e9letlen sz\u00e1mot v\u00e1lasztanak ki, amelyet az al\u00e1\u00edr\u00f3 v\u00e1laszthat, lehet\u0151v\u00e9 t\u00e9ve, hogy az al\u00e1\u00edr\u00f3 egy t\u00f6bb al\u00e1\u00edr\u00e1s k\u00f6z\u00fcl v\u00e1lasszon. RSA eset\u00e9ben: \u201eegy bemeneti \u00e9rt\u00e9k\u201d + \u201eegy kulcsp\u00e1r\u201d = \u201eegy al\u00e1\u00edr\u00e1s\u201d. Nem lehet megj\u00f3solni, hogy milyen al\u00e1\u00edr\u00e1st gener\u00e1l a m\u00e1sik RP, ez\u00e9rt a determinisztikus al\u00e1\u00edr\u00e1sokkal rendelkez\u0151 PVRB egyes r\u00e9sztvev\u0151k RSA al\u00e1\u00edr\u00e1sainak kombin\u00e1l\u00e1s\u00e1val szervezhet\u0151, akik ugyanazt az \u00e9rt\u00e9ket \u00edrt\u00e1k al\u00e1. P\u00e9ld\u00e1ul \u2013 a kor\u00e1bbi v\u00e9letlen. Ezen a scheme jelent\u0151s er\u0151forr\u00e1sok takar\u00edthat\u00f3k meg, mivel az al\u00e1\u00edr\u00e1sok egyben a protokoll szerinti helyes viselked\u00e9s igazol\u00e1sak\u00e9nt \u00e9s a v\u00e9letlen forr\u00e1sak\u00e9nt is szolg\u00e1lnak.<\/p>\n<p><\/p>\n<p>Mindazon\u00e1ltal, m\u00e9g a determinisztikus al\u00e1\u00edr\u00e1sokkal is, a rendszer tov\u00e1bbra is sebezhet\u0151 az \u201eutols\u00f3 szerepl\u0151\u201d probl\u00e9m\u00e1j\u00e1ra. Az utols\u00f3 r\u00e9sztvev\u0151 tov\u00e1bbra is eld\u00f6ntheti, hogy k\u00f6zz\u00e9teszi-e az al\u00e1\u00edr\u00e1s\u00e1t vagy sem, ez\u00e1ltal ir\u00e1ny\u00edtva az eredm\u00e9nyt. A rendszert tov\u00e1bb lehet fejleszteni, blokkok hash \u00e9rt\u00e9keivel, k\u00f6r\u00f6kkel, hogy az eredm\u00e9ny el\u0151re ne legyen kisz\u00e1m\u00edthat\u00f3, de ezek az elj\u00e1r\u00e1sok, m\u00e9g sz\u00e1mos m\u00f3dos\u00edt\u00e1s figyelembev\u00e9tel\u00e9vel is, tov\u00e1bbra is megoldatlanul hagyj\u00e1k egy r\u00e9sztvev\u0151 befoly\u00e1s\u00e1nak probl\u00e9m\u00e1j\u00e1t a kollekt\u00edv eredm\u00e9nyre megb\u00edzhatatlan k\u00f6rnyezetben, \u00e9s csak gazdas\u00e1gi \u00e9s id\u0151beli korl\u00e1toz\u00e1sok k\u00f6z\u00f6tt m\u0171k\u00f6dhetnek. Ezen k\u00edv\u00fcl az RSA kulcsm\u00e9rete (1024 \u00e9s 2048 bit) meglehet\u0151sen nagy, m\u00edg a blokkl\u00e1nc tranzakci\u00f3k m\u00e9rete rendk\u00edv\u00fcl fontos param\u00e9ter. L\u00e1that\u00f3an, a probl\u00e9m\u00e1t nem lehet egyszer\u0171en megoldani, folytatjuk.<\/p>\n<p><\/p>\n<h2 id=\"pvrb-i-secret-sharing-shemy\">PVRB \u00e9s titkos megoszt\u00e1si rendszerek<\/h2>\n<p><\/p>\n<p>A kriptogr\u00e1fi\u00e1ban l\u00e9teznek olyan s\u00e9m\u00e1k, amelyek lehet\u0151v\u00e9 teszik, hogy a h\u00e1l\u00f3zat megegyezzen egyetlen, \u00e9s csak egyetlen PVRB \u00e9rt\u00e9kben, mik\u00f6zben ezek a s\u00e9m\u00e1k ellen\u00e1llnak b\u00e1rmilyen rosszindulat\u00fa cselekv\u00e9snek a r\u00e9sztvev\u0151k k\u00f6z\u00fcl. Az egyik hasznos protokoll, amellyel \u00e9rdemes megismerkedni, a Shamir titkos\u00edt\u00e1si s\u00e9ma. Ez a titok (p\u00e9ld\u00e1ul egy titkos kulcs) t\u00f6bb r\u00e9szre oszt\u00e1s\u00e1t szolg\u00e1lja, amelyeket N r\u00e9sztvev\u0151nek osztanak ki. A titok \u00fagy van elosztva, hogy a helyre\u00e1ll\u00edt\u00e1s\u00e1hoz elegend\u0151 M r\u00e9sz az N-b\u0151l, amely b\u00e1rmely M r\u00e9sz lehet. Ha egyszer\u0171en fogalmazva, akkor a r\u00e9sztvev\u0151k pontokat cser\u00e9lnek egy ismeretlen funkci\u00f3 grafikonj\u00e1n, \u00e9s M pont megszerz\u00e9se ut\u00e1n a teljes funkci\u00f3 helyre\u00e1ll\u00edthat\u00f3.<br \/>\nJ\u00f3 magyar\u00e1zat tal\u00e1lhat\u00f3 itt: <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Shamir%27s_Secret_Sharing\">wiki<\/a><\/noindex> \u00e9s \u00e9rdemes vele gyakorolni, hogy a protokollt a fej\u00fcnkben elj\u00e1tszhassuk a <noindex><a rel=\"nofollow\" href=\"http:\/\/point-at-infinity.org\/ssss\/demo.html\">demo<\/a><\/noindex> oldalon.<\/p>\n<p><\/p>\n<p>Ha a FSSS (Fiat-Shamir Secret Sharing) s\u00e9ma tiszt\u00e1n alkalmazhat\u00f3 lenne \u2014 akkor ez lenne a megsemmis\u00edthetetlen PVRB. A legegyszer\u0171bb v\u00e1ltozatban a protokoll \u00edgy n\u00e9zne ki:<\/p>\n<p><\/p>\n<ul>\n<li>Minden r\u00e9sztvev\u0151 gener\u00e1l egy saj\u00e1t randomot, \u00e9s megosztja a t\u00f6bbi r\u00e9sztvev\u0151vel a kapott r\u00e9szeket.<\/li>\n<li>Minden r\u00e9sztvev\u0151 feloldja a t\u00f6bbi r\u00e9sztvev\u0151 titkait.<\/li>\n<li>Ha egy r\u00e9sztvev\u0151nek t\u00f6bb mint M r\u00e9sze gy\u0171lt \u00f6ssze, akkor a r\u00e9sztvev\u0151 sz\u00e1ma kisz\u00e1m\u00edthat\u00f3, \u00e9s ez egyed\u00fcl\u00e1ll\u00f3 lesz, f\u00fcggetlen\u00fcl a feloldott r\u00e9sztvev\u0151k \u00f6sszess\u00e9g\u00e9t\u0151l.<\/li>\n<li>A feloldott randomok kombin\u00e1ci\u00f3ja adja meg a keresett PVRB-t.<\/li>\n<\/ul>\n<p><\/p>\n<p>Itt egy k\u00fcl\u00f6n r\u00e9sztvev\u0151 m\u00e1r nem befoly\u00e1solja a protokoll eredm\u00e9nyeit, kiv\u00e9ve azokat az eseteket, amikor a random felold\u00e1sa sor\u00e1n a threshold el\u00e9r\u00e9s\u00e9hez csak t\u0151le f\u00fcgg. Ennek a protokollnak, a sz\u00fcks\u00e9ges ar\u00e1ny\u00fa dolgoz\u00f3k \u00e9s el\u00e9rhet\u0151 RP megl\u00e9t\u00e9vel, teljes\u00edtenie kell a kriptogr\u00e1fiai ellen\u00e1ll\u00e1sra vonatkoz\u00f3 k\u00f6vetelm\u00e9nyeket, \u00e9s ellen\u00e1ll a \u201clegutols\u00f3 sz\u00edn\u00e9sz\u201d probl\u00e9m\u00e1nak.<\/p>\n<p><\/p>\n<p>Ez lenne az ide\u00e1lis v\u00e1ltozat, ez a PVRB s\u00e9ma a Fiat-Shamir titkos\u00edt\u00e1si elj\u00e1r\u00e1s alapj\u00e1n le van \u00edrva p\u00e9ld\u00e1ul itt: <noindex><a rel=\"nofollow\" href=\"https:\/\/eprint.iacr.org\/2017\/216.pdf\">ebben<\/a><\/noindex> cikkben. De ahogy fentebb eml\u00edtett\u00fck, ha megpr\u00f3b\u00e1ljuk k\u00f6zvetlen\u00fcl alkalmazni a blokkl\u00e1ncon, technikai korl\u00e1tok mer\u00fclnek fel. \u00cdme egy p\u00e9lda a protokoll tesztel\u00e9si megval\u00f3s\u00edt\u00e1s\u00e1ra az EOS okosszerz\u0151d\u00e9s\u00e9ben, \u00e9s a legfontosabb r\u00e9sze \u2014 a r\u00e9sztvev\u0151 \u00e1ltal k\u00f6zz\u00e9tett share ellen\u0151rz\u00e9se: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mixbytes\/eoscraper\/blob\/master\/Proof.hh#L23\">a k\u00f3dot<\/a><\/noindex>A k\u00f3d alapj\u00e1n l\u00e1that\u00f3, hogy a proof valid\u00e1l\u00e1s\u00e1hoz t\u00f6bb skal\u00e1ris szorz\u00e1s sz\u00fcks\u00e9ges, \u00e9s a sz\u00e1mok nagyon nagyok. Ezzel egy\u00fctt meg kell \u00e9rteni, hogy a blokkl\u00e1ncokban a verify akkor t\u00f6rt\u00e9nik, amikor a block-producer feldolgozza a tranzakci\u00f3t, \u00e9s b\u00e1rki, aki r\u00e9szt vesz, k\u00f6nnyen ellen\u0151rizheti a protokoll helyess\u00e9g\u00e9t, ez\u00e9rt a verify funkci\u00f3 sebess\u00e9g\u00e9re vonatkoz\u00f3 k\u00f6vetelm\u00e9nyek nagyon szigor\u00faak. Ebben a v\u00e1ltozatban a megold\u00e1s nem m\u0171k\u00f6d\u00f6tt, mivel a verifik\u00e1ci\u00f3 nem f\u00e9rt bele a tranzakci\u00f3 (0,5 m\u00e1sodperc) korl\u00e1tok k\u00f6z\u00e9.<\/p>\n<p><\/p>\n<p>A verifik\u00e1ci\u00f3 hat\u00e9konys\u00e1ga \u2014 az egyik legfontosabb k\u00f6vetelm\u00e9ny a blockchainben b\u00e1rmilyen fejlett kriptogr\u00e1fiai s\u00e9ma haszn\u00e1latakor. A proof-ok l\u00e9trehoz\u00e1sa, az \u00fczenetek el\u0151k\u00e9sz\u00edt\u00e9se \u2014 ezeket a folyamatokat off-chain lehet v\u00e9gezni \u00e9s nagy teljes\u00edtm\u00e9ny\u0171 sz\u00e1m\u00edt\u00f3g\u00e9peken v\u00e9grehajtani, de a verifik\u00e1ci\u00f3t nem lehet megker\u00fclni \u2014 ez m\u00e9g egy fontos k\u00f6vetelm\u00e9ny a PVRB sz\u00e1m\u00e1ra. <\/p>\n<p><\/p>\n<h2 id=\"pvrb-i-threshold-signatures\">PVRB \u00e9s threshold al\u00e1\u00edr\u00e1sok<\/h2>\n<p><\/p>\n<p>A secret sharing s\u00e9ma megismer\u00e9s\u00e9vel egy eg\u00e9sz protokolloszt\u00e1lyra bukkantunk, amelyet a \"threshold\" kulcssz\u00f3 k\u00f6t \u00f6ssze. Amikor bizonyos inform\u00e1ci\u00f3k felfed\u00e9s\u00e9hez M becs\u00fcletes r\u00e9sztvev\u0151 r\u00e9szv\u00e9tele sz\u00fcks\u00e9ges N-b\u0151l, \u00e9s a becs\u00fcletes r\u00e9sztvev\u0151k halmaza b\u00e1rmilyen T r\u00e9szhalmaz lehet N-b\u0151l, threshold s\u00e9m\u00e1kr\u00f3l besz\u00e9l\u00fcnk. Ezek seg\u00edtenek megoldani az \u201eutols\u00f3 sz\u00edn\u00e9sz\u201d probl\u00e9m\u00e1t; most, ha a t\u00e1mad\u00f3 nem fedi fel titka egy r\u00e9sz\u00e9t, ezt egy m\u00e1sik, becs\u00fcletes r\u00e9sztvev\u0151 megteszi. Ezek a s\u00e9m\u00e1k lehet\u0151v\u00e9 teszik, hogy egy \u00e9s csak egy \u00e9rt\u00e9kr\u0151l \u00e1llapodjanak meg, m\u00e9g akkor is, ha a protokollt egyes r\u00e9sztvev\u0151k szabot\u00e1lj\u00e1k. <\/p>\n<p><\/p>\n<p>A determinisztikus al\u00e1\u00edr\u00e1sok \u00e9s threshold s\u00e9m\u00e1k kombin\u00e1ci\u00f3ja lehet\u0151v\u00e9 tette egy nagyon k\u00e9nyelmes \u00e9s \u00edg\u00e9retes s\u00e9ma kifejleszt\u00e9s\u00e9t a PVRB megval\u00f3s\u00edt\u00e1s\u00e1hoz \u2014 ez a determinisztikus threshold-al\u00e1\u00edr\u00e1sok. \u00cdme <noindex><a rel=\"nofollow\" href=\"https:\/\/eprint.iacr.org\/2002\/081.pdf\">cikk<\/a><\/noindex> k\u00fcl\u00f6nb\u00f6z\u0151 threshold-al\u00e1\u00edr\u00e1sok alkalmaz\u00e1s\u00e1r\u00f3l, itt van m\u00e9g egy j\u00f3 <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.dash.org\/secret-sharing-and-threshold-signatures-with-bls-954d1587b5f\">hossz\u00fa olvasm\u00e1nyomat<\/a><\/noindex> a Dash-t\u0151l. <\/p>\n<p><\/p>\n<p>Az utols\u00f3 cikkben BLS al\u00e1\u00edr\u00e1sokat \u00edrnak le (a BLS a Boneh-Lynn-Shacham r\u00f6vid\u00edt\u00e9se). <noindex><a rel=\"nofollow\" href=\"https:\/\/www.iacr.org\/archive\/asiacrypt2001\/22480516.pdf\">itt van<\/a><\/noindex> cikk ), amelyek rendk\u00edv\u00fcl fontos \u00e9s rendk\u00edv\u00fcl k\u00e9nyelmes tulajdons\u00e1ggal b\u00edrnak a programoz\u00f3k sz\u00e1m\u00e1ra \u2013 a nyilv\u00e1nos, titkos, nyilv\u00e1nos kulcsok \u00e9s a BLS al\u00e1\u00edr\u00e1sok egyszer\u0171 matematikai m\u0171veletekkel kombin\u00e1lhat\u00f3k egym\u00e1ssal, ugyanakkor a kombin\u00e1ci\u00f3ik \u00e9rv\u00e9nyes kulcsok \u00e9s al\u00e1\u00edr\u00e1sok maradnak, lehet\u0151v\u00e9 t\u00e9ve, hogy k\u00f6nnyen aggreg\u00e1lj sok al\u00e1\u00edr\u00e1st egybe \u00e9s sok nyilv\u00e1nos kulcsot egybe. Emellett rendelkeznek determin\u00e1lhat\u00f3s\u00e1ggal is, \u00e9s azonos bemeneti adatokra azonos eredm\u00e9nyt adnak. Ennek a tulajdons\u00e1gnak k\u00f6sz\u00f6nhet\u0151en a BLS al\u00e1\u00edr\u00e1sok kombin\u00e1ci\u00f3i maguk \u00e9rv\u00e9nyes kulcsok, ami lehet\u0151v\u00e9 teszi, hogy megval\u00f3s\u00edtsuk azt a v\u00e1ltozatot, amelyben M a N r\u00e9sztvev\u0151 egyetlen \u00e9s egyed\u00fcl\u00e1ll\u00f3 al\u00e1\u00edr\u00e1st hoz l\u00e9tre, amely determin\u00e1lt, nyilv\u00e1nosan ellen\u0151rizhet\u0151 \u00e9s el\u0151re nem l\u00e1that\u00f3, am\u00edg ki nem der\u00fcl az M-edik r\u00e9sztvev\u0151 \u00e1ltal.<\/p>\n<p><\/p>\n<p>A threshold BLS al\u00e1\u00edr\u00e1sok s\u00e9m\u00e1ban minden r\u00e9sztvev\u0151 BLS seg\u00edts\u00e9g\u00e9vel al\u00e1\u00edr valamit (p\u00e9ld\u00e1ul a kor\u00e1bbi v\u00e9letlent), \u00e9s a teljes threshold-al\u00e1\u00edr\u00e1s az keresett v\u00e9letlen. A BLS al\u00e1\u00edr\u00e1sok kriptogr\u00e1fiai tulajdons\u00e1gai megfelelnek a v\u00e9letlen min\u0151s\u00e9gi k\u00f6vetelm\u00e9nyeknek, a threshold r\u00e9sz v\u00e9di a \"last-actor\" helyzett\u0151l, \u00e9s az egyedi kulcskombin\u00e1ci\u00f3k lehet\u0151v\u00e9 teszik sz\u00e1mos \u00e9rdekes algoritmus megval\u00f3s\u00edt\u00e1s\u00e1t, amelyek p\u00e9ld\u00e1ul hat\u00e9konyan aggreg\u00e1lj\u00e1k a protokoll \u00fczeneteit.<\/p>\n<p><\/p>\n<p>Teh\u00e1t, ha PVRB-t \u00e9p\u00edtesz a blokkl\u00e1ncodban, nagy val\u00f3sz\u00edn\u0171s\u00e9ggel egy BLS threshold signature s\u00e9m\u00e1hoz jutsz, amelyet m\u00e1r t\u00f6bb projekt is haszn\u00e1l. P\u00e9ld\u00e1ul a DFinity (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dfinity\/random-beacon\">itt<\/a><\/noindex> benchmark, amely megval\u00f3s\u00edtja a s\u00e9m\u00e1t, valamint <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dfinity\/vss\/blob\/master\/docs\/index.md\">itt<\/a><\/noindex> az verifiable secret sharing megval\u00f3s\u00edt\u00e1sa) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/keep-network\/random-beacon-yellowpaper\">yellowpaper<\/a><\/noindex>, de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/keep-network\/random-beacon-box\">p\u00e9ld\u00e1m<\/a><\/noindex> a protokollt kiszolg\u00e1l\u00f3 okosszerz\u0151d\u00e9s.<\/p>\n<p><\/p>\n<h2 id=\"implementaciya-pvrb\">A PVRB megval\u00f3s\u00edt\u00e1sa<\/h2>\n<p><\/p>\n<p>Sajnos eddig m\u00e9g nem l\u00e1tunk olyan PVRB protokollt, amely a blokkl\u00e1ncokban megval\u00f3sult, bizony\u00edtva ezzel biztons\u00e1g\u00e1t \u00e9s ellen\u00e1ll\u00f3s\u00e1g\u00e1t. Annak ellen\u00e9re, hogy maguk a protokollok k\u00e9szen \u00e1llnak, technikailag neh\u00e9z azokat megl\u00e9v\u0151 megold\u00e1sokhoz alkalmazni. A k\u00f6zpontos\u00edtott rendszerekhez a PVRB jelent\u0151s\u00e9ge nem \u00e1ll fenn, \u00e9s a decentraliz\u00e1lt megold\u00e1sok szigor\u00faan korl\u00e1tozottak minden sz\u00e1m\u00edt\u00e1si er\u0151forr\u00e1s tekintet\u00e9ben: CPU, mem\u00f3ria, t\u00e1rol\u00e1s, I\/O. A PVRB tervez\u00e9se k\u00fcl\u00f6nb\u00f6z\u0151 protokollok kombin\u00e1ci\u00f3j\u00e1t jelenti, hogy olyan megold\u00e1st nyerj\u00fcnk, ami megfelel legal\u00e1bb valamelyik \u00e9letk\u00e9pes blokkl\u00e1nc k\u00f6vetelm\u00e9nyeinek. Az egyik protokoll hat\u00e9konyabban sz\u00e1m\u00edt, de t\u00f6bb \u00fczenetet ig\u00e9nyel az RP k\u00f6z\u00f6tt, m\u00edg a m\u00e1sik rendk\u00edv\u00fcl kev\u00e9s \u00fczenetet ig\u00e9nyel, de a proof l\u00e9trehoz\u00e1sa \u00f3r\u00e1kig is eltarthat.<\/p>\n<p><\/p>\n<p>Felsorolom azokat a t\u00e9nyez\u0151ket, amelyeket figyelembe kell venni egy min\u0151s\u00e9gi PVRB kiv\u00e1laszt\u00e1sakor:<\/p>\n<p><\/p>\n<ul>\n<li><em>Kiberv\u00e9delmi ellen\u00e1ll\u00f3s\u00e1g<\/em>. A PVRB-nek szigor\u00faan torz\u00edtatlanul kell m\u0171k\u00f6dnie, an\u00e9lk\u00fcl, hogy b\u00e1rmelyik bitet ir\u00e1ny\u00edtani lenne lehet\u0151s\u00e9g. Egyes s\u00e9m\u00e1kban ez nem \u00edgy van, ez\u00e9rt h\u00edvjon kriptogr\u00e1fust.<\/li>\n<li><em>Az \"utols\u00f3 szerepl\u0151\" probl\u00e9m\u00e1ja<\/em>. A PVRB-nek ellen\u00e1ll\u00f3nak kell lennie azokkal a t\u00e1mad\u00e1sokkal szemben, amikor a t\u00e1mad\u00f3, aki egy vagy t\u00f6bb RP-t ir\u00e1ny\u00edt, az eredm\u00e9ny egyik vagy m\u00e1sik lehet\u0151s\u00e9g\u00e9t v\u00e1laszthatja.<\/li>\n<li><em>A protokoll ellehetetlen\u00edt\u00e9se<\/em>. A PVRB-nek ellen\u00e1ll\u00f3nak kell lennie azokkal a t\u00e1mad\u00e1sokkal szemben, amikor a t\u00e1mad\u00f3, aki egy vagy t\u00f6bb RP-t ir\u00e1ny\u00edt, d\u00f6nt arr\u00f3l, hogy legyen-e v\u00e9letlenszer\u0171s\u00e9g, vagy sem, \u00e9s garant\u00e1ltan, vagy megadott val\u00f3sz\u00edn\u0171s\u00e9ggel befoly\u00e1solhatja ezt.<\/li>\n<li><em>\u00dczenetek sz\u00e1m\u00e1nak probl\u00e9m\u00e1ja<\/em>. Az RP-knek a blokkl\u00e1ncra minim\u00e1lis sz\u00e1m\u00fa \u00fczenetet kell k\u00fcldeni\u00fck, \u00e9s maxim\u00e1lisan ker\u00fclj\u00e9k az olyan szinkron m\u0171veleteket, mint a \"k\u00fcldtem n\u00e9mi inform\u00e1ci\u00f3t, v\u00e1rom a v\u00e1laszt egy adott r\u00e9sztvev\u0151t\u0151l\". A p2p h\u00e1l\u00f3zatokban, k\u00fcl\u00f6n\u00f6sen f\u00f6ldrajzilag elosztottakban, nem \u00e9rdemes gyors v\u00e1laszra sz\u00e1m\u00edtani.<\/li>\n<li><em>Sz\u00e1m\u00edt\u00e1si \u00f6sszetetts\u00e9g probl\u00e9m\u00e1ja<\/em>. A PVRB b\u00e1rmely szakasz\u00e1nak on-chain ellen\u0151rz\u00e9se nagyon egyszer\u0171nek kell lennie, mivel azt a h\u00e1l\u00f3zat \u00f6sszes teljes kliense v\u00e9gzi. Ha a megval\u00f3s\u00edt\u00e1st okos szerz\u0151d\u00e9ssel hajtj\u00e1k v\u00e9gre, a sebess\u00e9gre vonatkoz\u00f3 k\u00f6vetelm\u00e9nyek nagyon szigor\u00faak.<\/li>\n<li><em>Hozz\u00e1f\u00e9r\u00e9s \u00e9s \u00e9letk\u00e9pess\u00e9g probl\u00e9m\u00e1ja<\/em>. A PVRB-nek arra kell t\u00f6rekednie, hogy ellen\u00e1ll\u00f3nak bizonyuljon azokkal a helyzetekkel szemben, amikor a h\u00e1l\u00f3zat egy r\u00e9sze egy id\u0151re el\u00e9rhetetlenn\u00e9 v\u00e1lik, \u00e9s egyes RP-k egyszer\u0171en le\u00e1llnak.<\/li>\n<li><em>A megb\u00edzhat\u00f3 be\u00e1ll\u00edt\u00e1s \u00e9s a kulcsok kezdeti eloszt\u00e1s\u00e1nak probl\u00e9m\u00e1ja<\/em>. Ha a PVRB els\u0151dleges protokollbe\u00e1ll\u00edt\u00e1ssal m\u0171k\u00f6dik, az egy m\u00e1sik nagy \u00e9s komoly t\u00e9ma. \u00cdme <noindex><a rel=\"nofollow\" href=\"https:\/\/z.cash\/ru\/blog\/the-design-of-the-ceremony\/\">p\u00e9ld\u00e1m<\/a><\/noindex>. Ha a r\u00e9sztvev\u0151knek a protokoll megkezd\u00e9se el\u0151tt meg kell osztaniuk egym\u00e1ssal a kulcsaikat, az is probl\u00e9ma, ha a r\u00e9sztvev\u0151k \u00f6sszet\u00e9tele v\u00e1ltozik<\/li>\n<li><em>Fejleszt\u00e9si probl\u00e9m\u00e1k<\/em>. A megfelel\u0151 nyelveken el\u00e9rhet\u0151 k\u00f6nyvt\u00e1rak, azok biztons\u00e1ga \u00e9s teljes\u00edtm\u00e9nye, nyilv\u00e1noss\u00e1g, \u00f6sszetett tesztek stb.<\/li>\n<\/ul>\n<p><\/p>\n<p>P\u00e9ld\u00e1ul a threshold BLS al\u00e1\u00edr\u00e1sokn\u00e1l van egy jelent\u0151s probl\u00e9ma \u2014 a munka megkezd\u00e9se el\u0151tt a r\u00e9sztvev\u0151knek k\u00f6telez\u0151en \u00e1t kell adniuk egym\u00e1snak a kulcsokat, \u00edgy l\u00e9trehozva egy csoportot, amelyen bel\u00fcl dolgozni fognak. Ez azt jelenti, hogy legal\u00e1bb egy k\u00f6rt v\u00e1rni kell a decentraliz\u00e1lt h\u00e1l\u00f3zatban, \u00e9s figyelembe v\u00e9ve, hogy a gener\u00e1lt v\u00e9letlensz\u00e1mra, p\u00e9ld\u00e1ul, sz\u00fcks\u00e9g van a j\u00e1t\u00e9kokban, gyakorlatilag val\u00f3s id\u0151ben, ez azt jelenti, hogy a protokoll megszak\u00edt\u00e1sa lehets\u00e9ges ebben a szakaszban, \u00e9s a threshold s\u00e9ma el\u0151nyei elvesznek. Ez a probl\u00e9ma egyszer\u0171bb, mint az el\u0151z\u0151, de m\u00e9g mindig k\u00fcl\u00f6n elj\u00e1r\u00e1st ig\u00e9nyel a threshold csoportok kialak\u00edt\u00e1s\u00e1ra, amelyet gazdas\u00e1gilag is v\u00e9deni kell, bet\u00e9tekkel \u00e9s a protokollt be nem tart\u00f3 r\u00e9sztvev\u0151k p\u00e9nzeszk\u00f6zeinek visszav\u00e9tel\u00e9vel (slashing). Ezenk\u00edv\u00fcl a BLS verifik\u00e1ci\u00f3 megfelel\u0151 biztons\u00e1gi szinttel egyszer\u0171en nem f\u00e9r el p\u00e9ld\u00e1ul az EOS vagy az Ethereum standard tranzakci\u00f3iban \u2014 egyszer\u0171en nem elegend\u0151 id\u0151 \u00e1ll rendelkez\u00e9sre a verifik\u00e1ci\u00f3hoz. A szerz\u0151d\u00e9s k\u00f3dja WebAssembly vagy EVM, amelyet virtu\u00e1lis g\u00e9p hajt v\u00e9gre. A kriptogr\u00e1fiai funkci\u00f3k jelenleg nem nat\u00edvan val\u00f3sulnak meg, \u00e9s t\u00edzszer lassabban m\u0171k\u00f6dnek, mint a szok\u00e1sos kriptogr\u00e1fiai k\u00f6nyvt\u00e1rak. Sz\u00e1mos protokoll nem felel meg a k\u00f6vetelm\u00e9nyeknek, puszt\u00e1n a kulcsok mennyis\u00e9ge miatt, p\u00e9ld\u00e1ul ez 1024 \u00e9s 2048 bit az RSA eset\u00e9ben, 4-8-szor nagyobb, mint a Bitcoin \u00e9s Ethereum standard tranzakci\u00f3s al\u00e1\u00edr\u00e1sa.<\/p>\n<p><\/p>\n<p>Szerepet j\u00e1tszik emellett a k\u00fcl\u00f6nb\u00f6z\u0151 programoz\u00e1si nyelveken val\u00f3 implement\u00e1ci\u00f3k el\u00e9rhet\u0151s\u00e9ge is \u2014 ezekb\u0151l van kev\u00e9s, k\u00fcl\u00f6n\u00f6sen az \u00faj protokollok eset\u00e9ben. Az integr\u00e1ci\u00f3s lehet\u0151s\u00e9g a konszenzusba megk\u00f6veteli, hogy a protokollt a platform nyelv\u00e9n \u00edrj\u00e1k, \u00edgy keresi az ember a Go k\u00f3dot a geth-hez, Rustot a Parity-hez, C++-t az EOS-hoz. A JavaScript k\u00f3dot mindenkinek meg kell keresnie, \u00e9s mivel a JavaScript \u00e9s a kriptogr\u00e1fia nem igaz\u00e1n bar\u00e1tok, a WebAssembly seg\u00edt, amely most m\u00e1r biztosan a k\u00f6vetkez\u0151 fontos internetes szabv\u00e1ny szerep\u00e9re aspir\u00e1l.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">Z\u00e1r\u00e1s<\/h2>\n<p><\/p>\n<p>Rem\u00e9lem, az el\u0151z\u0151ben <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/448330\/\">a Spotify d\u00f6nt\u00e9shozatali m\u00f3dszertan\u00e1r\u00f3l. Egyre t\u00f6bb felhaszn\u00e1l\u00f3 prefer\u00e1lja a zenehallgat\u00e1st mobilon a streaming szolg\u00e1ltat\u00e1sban, de a c\u00e9gn\u00e9l t\u00falnyom\u00f3r\u00e9szt webprogramoz\u00f3k dolgoznak. A Spotify elemezte ezt a helyzetet, \u00e9s \u00fagy d\u00f6nt\u00f6tt, hogy t\u00f6bb mobilfejleszt\u0151t vesz fel, valamint \u00e1tnevezi a webes szakembereket \u00faj ir\u00e1nyba:<\/a><\/noindex> Siker\u00fclt meggy\u0151zn\u00f6m \u00d6nt, hogy a blokkl\u00e1ncon t\u00f6rt\u00e9n\u0151 v\u00e9letlensz\u00e1m-gener\u00e1l\u00e1s kritikus fontoss\u00e1g\u00fa sz\u00e1mos, a decentraliz\u00e1lt rendszerek \u00e9let\u00e9ben rejlik, \u00e9s ez a cikk bemutatja, hogy ez a feladat rendk\u00edv\u00fcl ambici\u00f3zus \u00e9s nem egyszer\u0171, de m\u00e1r l\u00e9teznek j\u00f3 megold\u00e1sok. Az alap protokoll v\u00e9gleges tervez\u00e9se \u00e1ltal\u00e1ban csak jelent\u0151s tesztel\u00e9s ut\u00e1n lehets\u00e9ges, amely figyelembe veszi a setup-t\u00f3l kezdve a hib\u00e1k szimul\u00e1l\u00e1s\u00e1ig minden aspektust, \u00edgy val\u00f3sz\u00edn\u0171leg nem tal\u00e1l k\u00e9sz recepteket a csapatok whitepapereiben \u00e9s cikkeiben, s\u0151t, mi sem mer\u00fcnk \u201ccsin\u00e1lja \u00edgy, \u00edgy helyes\u201d kijelent\u00e9seket tenni az elk\u00f6vetkez\u0151 egy-k\u00e9t \u00e9vben. <\/p>\n<p><\/p>\n<p>Jelenleg a fejleszt\u00e9s alatt \u00e1ll\u00f3 blokkl\u00e1ncunkn\u00e1l, a PVRB-n\u00e9l <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mixbytes\/haya\">Haya<\/a><\/noindex>, a threshold BLS al\u00e1\u00edr\u00e1sok alkalmaz\u00e1s\u00e1n\u00e1l d\u00f6nt\u00f6tt\u00fcnk, \u00e9s a PVRB-t a konszenzus szintj\u00e9n k\u00edv\u00e1njuk megval\u00f3s\u00edtani, mivel a beleegyez\u00e9sek okosszerz\u0151d\u00e9sekben megfelel\u0151 biztons\u00e1gi szinttel m\u00e9g nem lehets\u00e9gesek. Lehets\u00e9ges, hogy egyszerre k\u00e9t megold\u00e1st fogunk alkalmazni: el\u0151sz\u00f6r a dr\u00e1ga titkos megoszt\u00e1st a hossz\u00fa t\u00e1v\u00fa random_seed l\u00e9trehoz\u00e1s\u00e1ra, majd ezt haszn\u00e1ljuk a magas frekvenci\u00e1j\u00fa v\u00e9letlensz\u00e1m-gener\u00e1l\u00e1shoz a determinisztikus threshold BLS al\u00e1\u00edr\u00e1sok seg\u00edts\u00e9g\u00e9vel, b\u00e1r lehet, hogy v\u00e9g\u00fcl csak az egyik rendszert alkalmazzuk. El\u0151re megmondani, hogy milyen lesz a protokoll, sajnos lehetetlen, \u00e1m ami megnyugtat\u00f3, hogy ahogyan a tudom\u00e1nyban, az m\u00e9rn\u00f6ki feladatokban egy negat\u00edv eredm\u00e9ny is eredm\u00e9ny, \u00e9s minden \u00fajabb pr\u00f3b\u00e1lkoz\u00e1s a probl\u00e9ma megold\u00e1s\u00e1ra egy \u00fajabb l\u00e9pcs\u0151fok a kutat\u00e1sok sz\u00e1m\u00e1ra, akik ezzel a k\u00e9rd\u00e9ssel foglalkoznak. Az \u00fczleti k\u00f6vetelm\u00e9nyek teljes\u00edt\u00e9se \u00e9rdek\u00e9ben egy konkr\u00e9t gyakorlati probl\u00e9m\u00e1t oldunk meg \u2014 megb\u00edzhat\u00f3 entropiaforr\u00e1st biztos\u00edtunk a j\u00e1t\u00e9kalkalmaz\u00e1sok sz\u00e1m\u00e1ra, ez\u00e9rt figyelmet kell ford\u00edtanunk mag\u00e1ra a blokkl\u00e1ncra is, k\u00fcl\u00f6n\u00f6sen a l\u00e1nc v\u00e9glegess\u00e9gi k\u00e9rd\u00e9seire \u00e9s a h\u00e1l\u00f3zat ir\u00e1ny\u00edt\u00e1s\u00e1ra. <\/p>\n<p><\/p>\n<p>B\u00e1r jelenleg m\u00e9g nem l\u00e1tunk olyan blokkl\u00e1ncokat, amelyek bizony\u00edtottan tart\u00f3s PVRB-t alkalmaznak, \u00e9s amelyek m\u00e1r elegend\u0151 ideje m\u0171k\u00f6dnek ahhoz, hogy \u00e1testek a val\u00f3s alkalmaz\u00e1sok, t\u00f6bbsz\u00f6r\u00f6s audit\u00e1l\u00e1s, terhel\u00e9sek \u00e9s term\u00e9szetesen val\u00f3s t\u00e1mad\u00e1sok pr\u00f3b\u00e1in, a lehets\u00e9ges megold\u00e1sok sz\u00e1ma meger\u0151s\u00edti, hogy l\u00e9tezik megold\u00e1s, \u00e9s ezek k\u00f6z\u00fcl valamikor egy algoritmus meg fogja oldani a probl\u00e9m\u00e1t. \u00d6r\u00f6mmel osztjuk meg az eredm\u00e9nyeket, \u00e9s k\u00f6sz\u00f6nj\u00fck a t\u00f6bbi csapatnak is, akik szint\u00e9n foglalkoznak ezzel a k\u00e9rd\u00e9ssel, a cikkek\u00e9rt \u00e9s a k\u00f3d\u00e9rt, amelyek lehet\u0151v\u00e9 teszik az m\u00e9rn\u00f6k\u00f6k sz\u00e1m\u00e1ra, hogy ne l\u00e9pjenek k\u00e9tszer ugyanabba a hib\u00e1ba. <\/p>\n<p><\/p>\n<p>Amikor tal\u00e1lkozol egy programoz\u00f3val, aki decentraliz\u00e1lt v\u00e9letlent tervez, l\u00e9gy \u00f3vatos \u00e9s figyelmes, \u00e9s ha sz\u00fcks\u00e9ges, ny\u00fajts pszichol\u00f3giai t\u00e1mogat\u00e1st \ud83d\ude42<\/p>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/452340\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 function getAbsolutelyRandomNumer() { return 4; \/\/ returns absolutely random number! } \u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0435\u0439 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0441\u0442\u043e\u0439\u043a\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u0430 \u0438\u0437 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u201cPublicly Verifiable Random Beacon\u201d (\u0434\u0430\u043b\u0435\u0435 PVRB) \u043b\u0438\u0448\u044c \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c\u0441\u044f \u043a \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435, \u0442.\u043a. \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u043e\u043d\u0430 \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u0430: \u0434\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0434\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0431\u0438\u0442\u0435, \u0440\u0430\u0443\u043d\u0434\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33888","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 function getAbsolutelyRandomNumer() { return 4; \/\/ returns absolutely random number!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-implementatsii\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438: \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 function getAbsolutelyRandomNumer() { return 4; \/\/ returns absolutely random number!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-implementatsii\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:55:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:55:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47V\u00e9letlen sz\u00e1mok \u00e9s decentraliz\u00e1lt h\u00e1l\u00f3zatok: implement\u00e1ci\u00f3k | ProHoster","description":"Bevezet\u00e9s function getAbsolutelyRandomNumer() { return 4; \/\/ visszaadja az teljesen v\u00e9letlen sz\u00e1mot!","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-implementatsii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438: \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 function getAbsolutelyRandomNumer() { return 4; \/\/ returns absolutely random number!","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-implementatsii","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:55:15+00:00","article:modified_time":"2019-10-31T18:55:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33888","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 17:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:31:23","updated":"2026-01-21 17:06:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/33888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=33888"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/33888\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=33888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=33888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=33888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}