{"id":31729,"date":"2019-10-31T21:42:44","date_gmt":"2019-10-31T18:42:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sluchajnye-chisla-i-detsentralizovannye-seti-prakticheskoe-primenenie\/"},"modified":"2019-10-31T21:42:44","modified_gmt":"2019-10-31T18:42:44","slug":"sluchajnye-chisla-i-detsentralizovannye-seti-prakticheskoe-primenenie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-prakticheskoe-primenenie","title":{"rendered":"Liczne liczby i zdecentralizowane sieci: praktyczne zastosowanie","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2 id=\"vvedenie\">Wprowadzenie<\/h2>\n<p><\/p>\n<p><em>\u201eGenerowanie liczb losowych jest zbyt wa\u017cne, aby pozostawi\u0107 to przypadkowi\u201c<\/em><br \/>\n<em>Robert Caui, 1970<\/em><\/p>\n<p><\/p>\n<p>Artyku\u0142 ten po\u015bwi\u0119cony jest praktycznemu zastosowaniu rozwi\u0105za\u0144 wykorzystuj\u0105cych zbiorowe generowanie liczb losowych w nieufnej przestrzeni. W skr\u00f3cie \u2014 jak i dlaczego losowo\u015b\u0107 jest wykorzystywana w blockchainach, oraz kilka informacji na temat tego, jak odr\u00f3\u017cni\u0107 \u201edobr\u0105\u201d losowo\u015b\u0107 od \u201ez\u0142ej\u201d. Generowanie rzeczywi\u015bcie losowej liczby jest niezwykle trudnym problemem nawet na pojedynczym komputerze i od dawna jest przedmiotem bada\u0144 kryptograf\u00f3w. W zdecentralizowanych sieciach generowanie liczb losowych jest jeszcze bardziej skomplikowane i istotne.<\/p>\n<p><\/p>\n<p>W sieciach, w kt\u00f3rych uczestnicy sobie nawzajem nie ufaj\u0105, mo\u017cliwo\u015b\u0107 wygenerowania niepodwa\u017calnej liczby losowej pozwala skutecznie rozwi\u0105zywa\u0107 wiele kluczowych zada\u0144 i znacznie poprawi\u0107 ju\u017c istniej\u0105ce schematy. Warto jednak zauwa\u017cy\u0107, \u017ce hazard i loterie wcale nie s\u0105 tutaj g\u0142\u00f3wnym celem, jak mo\u017ce si\u0119 wydawa\u0107 niewprawnemu Czytelnikowi.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"generaciya-sluchaynyh-chisel\">Generowanie liczb losowych<\/h2>\n<p><\/p>\n<p>Komputery nie potrafi\u0105 same generowa\u0107 liczb losowych, potrzebuj\u0105 do tego pomocy z zewn\u0105trz. Komputer mo\u017ce uzyska\u0107 pewn\u0105 losow\u0105 warto\u015b\u0107, wykorzystuj\u0105c na przyk\u0142ad ruchy myszy, ilo\u015b\u0107 u\u017cywanej pami\u0119ci, szumy na stykach procesora i wiele innych \u017ar\u00f3de\u0142, zwanych \u017ar\u00f3d\u0142ami entropii. Same te warto\u015bci nie s\u0105 do ko\u0144ca losowe, poniewa\u017c mieszcz\u0105 si\u0119 w okre\u015blonym zakresie lub maj\u0105 przewidywalny charakter zmian. Aby przekszta\u0142ci\u0107 takie liczby w rzeczywiste liczby losowe w zadanym zakresie, stosuje si\u0119 kryptoprzekszta\u0142cenia, kt\u00f3re z nier\u00f3wnomiernie roz\u0142o\u017conych warto\u015bci \u017ar\u00f3d\u0142a entropii generuj\u0105 r\u00f3wnomiernie roz\u0142o\u017cone warto\u015bci pseudolosowe. Otrzymane warto\u015bci nazywa si\u0119 pseudolosowymi, poniewa\u017c nie s\u0105 one prawdziwie losowe, a deterministycznie wytworzone z entropii. Ka\u017cdy dobry algorytm kryptograficzny, szyfruj\u0105c dane, produkuje szyfrogramy, kt\u00f3re statystycznie nie powinny r\u00f3\u017cni\u0107 si\u0119 od losowej sekwencji, wi\u0119c do produkcji losowo\u015bci mo\u017cna u\u017cywa\u0107 \u017ar\u00f3d\u0142a entropii, kt\u00f3re zapewnia jedynie dobr\u0105 niepowtarzalno\u015b\u0107 i nieprzewidywalno\u015b\u0107 warto\u015bci, nawet w ma\u0142ych zakresach; reszt\u0119 pracy w rozpraszaniu i mieszaniu bit\u00f3w w otrzymanej warto\u015bci wykona algorytm szyfrowania.<\/p>\n<p><\/p>\n<p>Aby zako\u0144czy\u0107 kr\u00f3tki wyk\u0142ad, dodam, \u017ce generacja liczb losowych nawet na jednym urz\u0105dzeniu to jeden z filar\u00f3w zapewnienia bezpiecze\u0144stwa naszych danych. Wygenerowane pseudolosowe liczby s\u0105 u\u017cywane przy nawi\u0105zywaniu zabezpieczonych po\u0142\u0105cze\u0144 w r\u00f3\u017cnych sieciach, do generowania kluczy kryptograficznych, do balansowania obci\u0105\u017cenia, kontroli integralno\u015bci i wielu innych zastosowa\u0144. Bezpiecze\u0144stwo wielu protoko\u0142\u00f3w zale\u017cy od mo\u017cliwo\u015bci wygenerowania niezawodnego, nieprzewidywalnego losowego \u017ar\u00f3d\u0142a, zachowania go i nieujawniania go do nast\u0119pnego kroku protoko\u0142u, w przeciwnym razie bezpiecze\u0144stwo b\u0119dzie zagro\u017cone. Atak na generator pseudolosowych warto\u015bci jest niezwykle niebezpieczny i stawia pod znakiem zapytania ca\u0142e oprogramowanie korzystaj\u0105ce z generacji losowo\u015bci. <\/p>\n<p><\/p>\n<p>Wszystko to powinni\u015bcie wiedzie\u0107, je\u015bli przeszli\u015bcie podstawowy kurs kryptografii, dlatego kontynuujmy o sieciach zdecentralizowanych.<\/p>\n<p><\/p>\n<h2 id=\"random-v-blokcheynah\">Losowo\u015b\u0107 w blockchainach<\/h2>\n<p><\/p>\n<p>Na pocz\u0105tek om\u00f3wi\u0119 blockchainy z obs\u0142ug\u0105 inteligentnych kontrakt\u00f3w, poniewa\u017c to one w pe\u0142ni mog\u0105 wykorzysta\u0107 mo\u017cliwo\u015bci, jakie daje wysokiej jako\u015bci niepodwa\u017calna losowo\u015b\u0107. Nast\u0119pnie, dla skr\u00f3tu, b\u0119d\u0119 nazywa\u0107 t\u0119 technologi\u0119 \u201c<em>Publicznie Weryfikowalne Losowe Beacony<\/em>\u201d lub PVRB. Poniewa\u017c blockchainy to sieci, w kt\u00f3rych informacje mo\u017ce weryfikowa\u0107 ka\u017cdy uczestnik, kluczowym elementem nazwy jest \u201cPublicznie Weryfikowalne\u201d, tzn. ka\u017cdy, kto zechce, mo\u017ce przy u\u017cyciu oblicze\u0144 uzyska\u0107 dow\u00f3d na to, \u017ce otrzymana liczba umieszczona w blockchainie posiada takie w\u0142a\u015bciwo\u015bci:<\/p>\n<p><\/p>\n<ul>\n<li>Wynik musi mie\u0107 w spos\u00f3b udowodniony r\u00f3wnomierny rozk\u0142ad, tzn. oparty na udowodnionej odpornej kryptografii. <\/li>\n<li>Nie ma mo\u017cliwo\u015bci kontrolowania \u017cadnego z bit\u00f3w wyniku. W konsekwencji wynik nie mo\u017ce by\u0107 wcze\u015bniej przewidziany.<\/li>\n<li>Nie mo\u017cna sabotowa\u0107 protoko\u0142u generacji przez nieuczestniczenie w protokole ani przez przeci\u0105\u017cenie sieci atakuj\u0105cymi wiadomo\u015bciami.<\/li>\n<li>Wszystko, co wcze\u015bniej wymieniono, musi by\u0107 odporne na zmowy dozwolonej liczby nieuczciwych uczestnik\u00f3w protoko\u0142u (na przyk\u0142ad 1\/3 uczestnik\u00f3w).<\/li>\n<\/ul>\n<p><\/p>\n<p>Jakiekolwiek mo\u017cliwo\u015bci zorganizowanej grupy drobnych uczestnik\u00f3w do wyprodukowania nawet kontrolowanego parzystego\/nieparzystego losowania to luka w zabezpieczeniach. Jakiekolwiek mo\u017cliwo\u015bci grupy do zatrzymania wydania losowania to luka w zabezpieczeniach. Generalnie, problem\u00f3w jest wiele, a to zadanie nie nale\u017cy do \u0142atwych\u2026<\/p>\n<p><\/p>\n<p>Wydaje si\u0119, \u017ce najwa\u017cniejsze zastosowanie dla PVRB to r\u00f3\u017cne gry, loterie i w og\u00f3le wszelkiego rodzaju hazard w blockchainie. To rzeczywi\u015bcie wa\u017cny kierunek, ale losowo\u015b\u0107 w blockchainach ma i wa\u017cniejsze zastosowania. Rozwa\u017cmy je.<\/p>\n<p><\/p>\n<h2 id=\"algoritmy-konsensusa\">Algorytmy konsensusu<\/h2>\n<p><\/p>\n<p>PVRB ma ogromne znaczenie dla organizacji konsensusu sieciowego. Transakcje w blockchainach s\u0105 zabezpieczone podpisem elektronicznym, dlatego \"atak na transakcj\u0119\" zawsze oznacza w\u0142\u0105czenie\/wy\u0142\u0105czenie transakcji w blok (lub w kilka blok\u00f3w). G\u0142\u00f3wnym zadaniem algorytmu konsensusu jest uzgodnienie kolejno\u015bci tych transakcji oraz kolejno\u015bci blok\u00f3w, kt\u00f3re je zawieraj\u0105. Wa\u017cnym wymogiem dla rzeczywistych blockchain\u00f3w jest finalno\u015b\u0107 \u2014 mo\u017cliwo\u015b\u0107 sieci uzgodnienia, \u017ce \u0142a\u0144cuch do zfinalizowanego bloku jest ostateczny i nigdy nie b\u0119dzie wykluczony w wyniku pojawienia si\u0119 nowego forka. Zwykle, aby uzgodni\u0107, \u017ce blok jest wa\u017cny i co najwa\u017cniejsze, finalny, nale\u017cy uzyska\u0107 podpisy od wi\u0119kszo\u015bci producent\u00f3w blok\u00f3w (dalej BP \u2014 block-producers), co wymaga przynajmniej dostarczenia \u0142a\u0144cucha blok\u00f3w do wszystkich BP oraz rozsy\u0142ania podpis\u00f3w mi\u0119dzy wszystkimi BP. Wraz ze wzrostem liczby BP, liczba wymaganych wiadomo\u015bci w sieci ro\u015bnie wyk\u0142adniczo, dlatego algorytmy konsensusu wymagaj\u0105ce finalno\u015bci, u\u017cywane na przyk\u0142ad w konsensie pBFT Hyperledger, nie dzia\u0142aj\u0105 z wymagan\u0105 pr\u0119dko\u015bci\u0105, zaczynaj\u0105c od kilku dziesi\u0105tek BP, wymagaj\u0105c ogromnej liczby po\u0142\u0105cze\u0144. <\/p>\n<p><\/p>\n<p>Je\u015bli w sieci istnieje niekwestionowany i uczciwy PVRB, to nawet w najprostszym przybli\u017ceniu mo\u017cna na jego podstawie wybra\u0107 jednego z producent\u00f3w blok\u00f3w i mianowa\u0107 go \"liderem\" na czas jednego okr\u0105\u017cenia protoko\u0142u. Je\u015bli mamy <code>N<\/code> producent\u00f3w blok\u00f3w, z kt\u00f3rych <code>M: M &gt; 1\/2 N<\/code> jest uczciwy, nie cenzuruje transakcji i nie tworzy fork\u00f3w \u0142a\u0144cucha w celu przeprowadzenia ataku \"double spend\", to wykorzystanie r\u00f3wnomiernie roz\u0142o\u017conego niekwestionowanego PVRB pozwoli na wyb\u00f3r uczciwego lidera z prawdopodobie\u0144stwem <code>M \/ N (M \/ N &gt; 1\/2)<\/code>. Je\u015bli ka\u017cdemu przewodnicz\u0105cemu przypiszemy w\u0142asny przedzia\u0142 czasowy, w kt\u00f3rym mo\u017ce on zablokowa\u0107 i zweryfikowa\u0107 \u0142a\u0144cuch, a te przedzia\u0142y b\u0119d\u0105 r\u00f3wne czasowo, to \u0142a\u0144cuch blok\u00f3w uczciwych BP b\u0119dzie d\u0142u\u017cszy ni\u017c ten stworzony przez z\u0142o\u015bliwe BP, a algorytm konsensusu oparty na d\u0142ugo\u015bci \u0142a\u0144cucha po prostu odrzuci \u201ez\u0142y\u201d. Ta zasada przydzielania r\u00f3wnych kwant\u00f3w czasu ka\u017cdemu BP zosta\u0142a po raz pierwszy zastosowana w Graphene (poprzedniku EOS), co umo\u017cliwia zamykanie wi\u0119kszo\u015bci blok\u00f3w jednym podpisem, znacznie redukuj\u0105c obci\u0105\u017cenie sieci i pozwalaj\u0105c temu konsensusowi dzia\u0142a\u0107 ekstremalnie szybko i stabilnie. Niemniej jednak, sieci EOS musz\u0105 obecnie korzysta\u0107 ze specjalnych blok\u00f3w (Last Irreversible Block), kt\u00f3re s\u0105 potwierdzane przez podpisy 2\/3 BP. Bloki te s\u0142u\u017c\u0105 zapewnieniu finalno\u015bci (niemo\u017cno\u015bci pojawienia si\u0119 fork\u00f3w \u0142a\u0144cucha rozpoczynaj\u0105cych si\u0119 przed ostatnim Last Irreversible Block).<\/p>\n<p><\/p>\n<p>Ponadto, w rzeczywistych implementacjach schemat protoko\u0142u jest bardziej skomplikowany - g\u0142osowania nad proponowanymi blokami odbywaj\u0105 si\u0119 w kilku etapach, aby zachowa\u0107 dzia\u0142anie sieci w przypadku pomini\u0119cia blok\u00f3w i problem\u00f3w z sieci\u0105, ale nawet bior\u0105c pod uwag\u0119 to, algorytmy konsensusu wykorzystuj\u0105ce PVRB wymagaj\u0105 znacznie mniej wiadomo\u015bci mi\u0119dzy BP, co pozwala na ich szybsze dzia\u0142anie ni\u017c tradycyjne P\u0412FT lub r\u00f3\u017cne jego modyfikacje.<\/p>\n<p><\/p>\n<p>Najbardziej znanym przedstawicielem takich algorytm\u00f3w jest: <noindex><a rel=\"nofollow\" href=\"https:\/\/eprint.iacr.org\/2016\/889.pdf\">Ouroboros<\/a><\/noindex> od zespo\u0142u Cardano, kt\u00f3ry, jak og\u0142oszono, posiada matematycznie udowodnion\u0105 odporno\u015b\u0107 na istnienie zmowy w\u015br\u00f3d BP. <\/p>\n<p><\/p>\n<p>W Ouroboros PVRB jest u\u017cywane do okre\u015blenia tzw. \u201eharmonogramu BP\u201d - harmonogramu, wed\u0142ug kt\u00f3rego ka\u017cdemu BP przypisywany jest jego czasowy slot na publikacj\u0119 bloku. Wielk\u0105 zalet\u0105 u\u017cycia PVRB jest pe\u0142ne \u201er\u00f3wno\u015b\u0107\u201d BP (zgodnie z wielko\u015bciami ich sald). Uczciwo\u015b\u0107 PVRB gwarantuje, \u017ce z\u0142o\u015bliwe BP nie mog\u0105 kontrolowa\u0107 harmonogramu czasowych slot\u00f3w i w zwi\u0105zku z tym nie mog\u0105 manipulowa\u0107 \u0142a\u0144cuchem, uprzednio przygotowuj\u0105c i analizuj\u0105c forki \u0142a\u0144cucha, a do wyboru forka wystarczy polega\u0107 po prostu na d\u0142ugo\u015bci \u0142a\u0144cucha, nie pos\u0142uguj\u0105c si\u0119 z\u0142o\u017conymi metodami obliczania \u201eu\u017cyteczno\u015bci\u201d BP i \u201ewagi\u201d jego blok\u00f3w. <\/p>\n<p><\/p>\n<p>W wi\u0119kszo\u015bci przypadk\u00f3w, gdy w zdecentralizowanej sieci nale\u017cy wybra\u0107 losowego uczestnika, najlepszym rozwi\u0105zaniem jest niemal zawsze PVRB, a nie deterministyczna opcja oparta na przyk\u0142ad na hashu bloku. Bez PVRB mo\u017cliwo\u015b\u0107 wp\u0142ywania na wyb\u00f3r uczestnika prowadzi do atak\u00f3w, w kt\u00f3rych atakuj\u0105cy, wybieraj\u0105c spo\u015br\u00f3d kilku przysz\u0142ych opcji, mo\u017ce wybra\u0107 nast\u0119pnego skorumpowanego uczestnika lub od razu kilku, aby zapewni\u0107 sobie wi\u0119kszy udzia\u0142 w podejmowaniu decyzji. Wykorzystanie PVRB dyskredytuje tego typu ataki.<\/p>\n<p><\/p>\n<h2 id=\"masshtabirovanie-i-balansirovka-nagruzki\">Skalowanie i r\u00f3wnowa\u017cenie obci\u0105\u017cenia<\/h2>\n<p><\/p>\n<p>PVRB mo\u017ce przynie\u015b\u0107 istotne korzy\u015bci r\u00f3wnie\u017c w zadaniach zwi\u0105zanych ze zmniejszaniem obci\u0105\u017cenia i skalowaniem p\u0142atno\u015bci. Na pocz\u0105tek warto zapozna\u0107 si\u0119 z <noindex><a rel=\"nofollow\" href=\"https:\/\/people.csail.mit.edu\/rivest\/pubs\/Riv97b.pdf\">artyku\u0142em<\/a><\/noindex> artyku\u0142em Riwesty \u201eElektroniczne bilety loteryjne jako mikrop\u0142atno\u015bci\u201d. G\u0142\u00f3wna idea polega na tym, \u017ce zamiast dokonywa\u0107 100 p\u0142atno\u015bci po 1 groszu od p\u0142atnika do odbiorcy, mo\u017cna zagra\u0107 w uczciw\u0105 loteri\u0119 z nagrod\u0105 1 $ = 100 groszy, gdzie p\u0142atnik przy ka\u017cdej p\u0142atno\u015bci 1 grosz przekazuje bankowi jeden ze swoich 100 \u201ebilet\u00f3w loteryjnych\u201d. Jeden z tych bilet\u00f3w wygrywa bankowi 1 $, i to w\u0142a\u015bnie ten bilet odbiorca mo\u017ce zarejestrowa\u0107 w blockchainie. Najwa\u017cniejsze jest to, \u017ce pozosta\u0142e 99 bilet\u00f3w jest przekazywanych mi\u0119dzy odbiorc\u0105 a p\u0142atnikiem bez jakiegokolwiek zewn\u0119trznego udzia\u0142u, przez prywatny kana\u0142 i z dowoln\u0105 potrzebn\u0105 pr\u0119dko\u015bci\u0105. Dobre opisanie protoko\u0142u opartego na tym schemacie w sieci Emercoin mo\u017cna przeczyta\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@emer.tech\/randpay-6a028f16c82a\">tutaj<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Ta \u0441\u0445\u0435\u043c\u0430 ma kilka problem\u00f3w, na przyk\u0142ad odbiorca mo\u017ce przesta\u0107 obs\u0142ugiwa\u0107 p\u0142atnika natychmiast po otrzymaniu wygrywaj\u0105cego biletu, ale w wielu szczeg\u00f3lnych zastosowaniach, takich jak taryfikacja minutowa czy subskrypcje elektroniczne, mo\u017cna je zignorowa\u0107. Najwa\u017cniejszym wymaganiem jest oczywi\u015bcie uczciwo\u015b\u0107 prowadzonej loterii, a do jej przeprowadzenia niezb\u0119dne jest PVRB.<\/p>\n<p><\/p>\n<p>Wyb\u00f3r losowego uczestnika jest niezwykle istotny r\u00f3wnie\u017c dla protoko\u0142\u00f3w shardingu, kt\u00f3rych celem jest poziome skalowanie \u0142a\u0144cucha blok\u00f3w, pozwalaj\u0105c r\u00f3\u017cnym BP przetwarza\u0107 jedynie sw\u00f3j zakres transakcji. To bardzo skomplikowane zadanie, zw\u0142aszcza w kontek\u015bcie bezpiecze\u0144stwa przy \u0142\u0105czeniu shard\u00f3w. Uczciwy wyb\u00f3r losowego BP, kt\u00f3rego zadaniem jest odpowiedzialno\u015b\u0107 za okre\u015blony shard, podobnie jak w algorytmach konsensusu \u2014 jest tak\u017ce zadaniem PVRB. W systemach scentralizowanych shard\u00f3w przydziela balansuj\u0105cy, kt\u00f3ry po prostu oblicza hash zapytania i wysy\u0142a go do odpowiedniego wykonawcy. W blockchainach wp\u0142yw na to przydzielenie mo\u017ce prowadzi\u0107 do ataku na konsensus. Na przyk\u0142ad, zawarto\u015b\u0107 transakcji mo\u017ce by\u0107 kontrolowana przez napastnika, kt\u00f3ry ma mo\u017cliwo\u015b\u0107 kontrolowania, kt\u00f3re transakcje trafiaj\u0105 do kontrolowanego przez niego shardu i manipulowa\u0107 \u0142a\u0144cuchem blok\u00f3w w nim. Dyskusj\u0119 na temat problemu wykorzystania liczb losowych do zada\u0144 shardingu w Ethereum mo\u017cna przeczyta\u0107. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ethereum\/wiki\/wiki\/Sharding-FAQ#how-is-the-randomness-for-random-sampling-generated\">tutaj<\/a><\/noindex><br \/>\nSharding to jedno z najbardziej ambitnych i powa\u017cnych zada\u0144 w obszarze blockchain, a jego rozwi\u0105zanie pozwoli na budow\u0119 zdecentralizowanych sieci o fantastycznej wydajno\u015bci i skali. PVRB to tylko jeden z wa\u017cnych element\u00f3w umo\u017cliwiaj\u0105cych jego rozwi\u0105zanie.<\/p>\n<p><\/p>\n<h2 id=\"igry-ekonomicheskie-protokoly-arbitrazh\">Gry, protoko\u0142y ekonomiczne, arbitra\u017c<\/h2>\n<p><\/p>\n<p>Rola liczb losowych w przemy\u015ble gier jest trudna do przecenienia. Wyra\u017ane zastosowanie w kasynach online oraz niejawne przy obliczaniu efekt\u00f3w okre\u015blonego dzia\u0142ania gracza to bardzo skomplikowane problemy dla zdecentralizowanych sieci, gdzie nie ma mo\u017cliwo\u015bci polegania na centralnym \u017ar\u00f3dle losowo\u015bci. Niemniej jednak, losowy wyb\u00f3r mo\u017ce rozwi\u0105zywa\u0107 wiele problem\u00f3w ekonomicznych i pomaga\u0107 w budowaniu prostszych i bardziej efektywnych protoko\u0142\u00f3w. Za\u0142\u00f3\u017cmy, \u017ce w naszym protokole wyst\u0119puj\u0105 spory dotycz\u0105ce p\u0142atno\u015bci za jakie\u015b tanie us\u0142ugi, a te spory pojawiaj\u0105 si\u0119 stosunkowo rzadko. W takim przypadku, je\u015bli istnieje niepodwa\u017calny PVRB, klienci i sprzedawcy mog\u0105 um\u00f3wi\u0107 si\u0119 na losowe rozstrzyganie spor\u00f3w, ale z okre\u015blon\u0105 prawdopodobno\u015bci\u0105. Na przyk\u0142ad, z prawdopodobie\u0144stwem 60% wygrywa klient, a z prawdopodobie\u0144stwem 40% \u2014 sprzedawca. Podej\u015bcie to, na pierwszy rzut oka absurdalne, pozwala automatycznie rozstrzyga\u0107 spory z dok\u0142adnie przewidywalnym udzia\u0142em wygranych\/przegranych, co zadowala obie strony bez udzia\u0142u osoby trzeciej i niepotrzebnej straty czasu. Co wi\u0119cej, stosunek prawdopodobie\u0144stw mo\u017ce by\u0107 dynamiczny i zale\u017ce\u0107 od pewnych globalnych zmiennych. Na przyk\u0142ad, je\u015bli firma radzi sobie dobrze, obserwuje si\u0119 nisk\u0105 liczb\u0119 spor\u00f3w i wysok\u0105 rentowno\u015b\u0107, firma mo\u017ce automatycznie przesuwa\u0107 prawdopodobie\u0144stwo rozstrzygania spor\u00f3w w stron\u0119 orientacji na klienta, na przyk\u0142ad 70\/30 lub 80\/20, i odwrotnie, je\u015bli spory poch\u0142aniaj\u0105 du\u017co \u015brodk\u00f3w i s\u0105 oszuka\u0144cze lub nieadekwatne, mo\u017cna przesuwa\u0107 prawdopodobie\u0144stwo w drug\u0105 stron\u0119.<\/p>\n<p><\/p>\n<p>Wiele interesuj\u0105cych zdecentralizowanych protoko\u0142\u00f3w, takich jak tokenowe rejestry, rynki przewidywa\u0144, krzywe bondingowe i wiele innych, stanowi gry ekonomiczne, w kt\u00f3rych nagradzane jest dobre zachowanie, a z\u0142e jest karane. Cz\u0119sto wyst\u0119puj\u0105 w nich problemy z bezpiecze\u0144stwem, kt\u00f3rych zabezpieczenia s\u0105 sprzeczne. To, co jest chronione przed atakiem \u201ewieloryb\u00f3w\u201d z miliardami token\u00f3w (\u201ebig stake\u201d), jest podatne na ataki tysi\u0119cy kont z niewielkimi balansami (\u201esybil stake\u201d), a \u015brodki podejmowane przeciwko jednemu atakowi, takie jak nieliniowe op\u0142aty, maj\u0105ce na celu uczynienie pracy du\u017cego stawki nieop\u0142acalnej, zwykle s\u0105 obalane przez inny atak. Poniewa\u017c m\u00f3wimy o grze ekonomicznej, odpowiednie wagi statystyczne mo\u017cna obliczy\u0107 z wyprzedzeniem i po prostu zast\u0105pi\u0107 op\u0142aty zrandomizowanymi z odpowiednim rozk\u0142adem. Takie probabilistyczne op\u0142aty s\u0105 realizowane bardzo prosto, je\u015bli w blockchainie istnieje wiarygodne \u017ar\u00f3d\u0142o losowo\u015bci i nie wymagaj\u0105 \u017cadnych skomplikowanych oblicze\u0144, co komplikuje \u017cycie zar\u00f3wno wielorybom, jak i sybilom.<br \/>\nNale\u017cy jednocze\u015bnie pami\u0119ta\u0107, \u017ce kontrola nad jedn\u0105 bit jednego w tej losowo\u015bci pozwala oszukiwa\u0107, zmniejszaj\u0105c i zwi\u0119kszaj\u0105c prawdopodobie\u0144stwa dwukrotnie, wi\u0119c uczciwy PVRB jest najwa\u017cniejszym sk\u0142adnikiem takich protoko\u0142\u00f3w. <\/p>\n<p><\/p>\n<h2 id=\"gde-nayti-pravilnyy-random\">Gdzie znale\u017a\u0107 odpowiedni\u0105 losowo\u015b\u0107?<\/h2>\n<p><\/p>\n<p>W teorii, uczciwy losowy wyb\u00f3r w zdecentralizowanych sieciach pozwala zapewni\u0107 dowodow\u0105 bezpiecze\u0144stwo niemal ka\u017cdego protoko\u0142u przed zmow\u0105. Uzasadnienie jest do\u015b\u0107 proste \u2014 je\u015bli sie\u0107 umawia si\u0119 co do jednego bitu 0 lub 1, a w\u015br\u00f3d uczestnik\u00f3w mniej ni\u017c po\u0142owa jest nieuczciwa, to przy wystarczaj\u0105cej liczbie iteracji sie\u0107 z pewno\u015bci\u0105 osi\u0105gnie konsensus w sprawie tego bitu z ustalon\u0105 prawdopodobie\u0144stwem. Po prostu dlatego, \u017ce uczciwa losowo\u015b\u0107 wybierze 51 z 100 uczestnik\u00f3w w 51% przypadk\u00f3w. Ale to w teorii, poniewa\u017c w rzeczywistych sieciach, aby zapewni\u0107 taki poziom bezpiecze\u0144stwa, jak w artyku\u0142ach, wymagana jest ogromna liczba wiadomo\u015bci mi\u0119dzy hostami, skomplikowana kryptografia wieloetapowa, a ka\u017cde skomplikowanie protoko\u0142u od razu dodaje nowe wektory ataku.<br \/>\nDlatego wci\u0105\u017c nie widzimy w blockchainach udowodnionego, odpornego PVRB, kt\u00f3ry by\u0142by u\u017cywany na tyle d\u0142ugo, aby przeszed\u0142 testy prawdziwych aplikacji, wielu audyt\u00f3w, obci\u0105\u017ce\u0144, a co najwa\u017cniejsze, rzeczywistych atak\u00f3w, bez kt\u00f3rych trudno nazwa\u0107 produkt rzeczywi\u015bcie bezpiecznym.<\/p>\n<p><\/p>\n<p>Jednak\u017ce istnieje kilka obiecuj\u0105cych podej\u015b\u0107, kt\u00f3re r\u00f3\u017cni\u0105 si\u0119 wieloma szczeg\u00f3\u0142ami i kt\u00f3re z ca\u0142\u0105 pewno\u015bci\u0105 rozwi\u0105\u017c\u0105 ten problem. Przy nowoczesnych zasobach obliczeniowych, teoria kryptograficzna potrafi do\u015b\u0107 sprawnie przekszta\u0142ca\u0107 si\u0119 w zastosowania praktyczne. W przysz\u0142o\u015bci z przyjemno\u015bci\u0105 opowiemy o implementacjach PVRB: jest ich kilka, z ka\u017cd\u0105 wi\u0105\u017ce si\u0119 zestaw wa\u017cnych w\u0142a\u015bciwo\u015bci i szczeg\u00f3\u0142\u00f3w realizacji, a za ka\u017cd\u0105 stoi dobra idea. Tylko kilka zespo\u0142\u00f3w zajmuje si\u0119 generowaniem losowo\u015bci, a do\u015bwiadczenie ka\u017cdego z nich jest niezwykle wa\u017cne dla wszystkich pozosta\u0142ych. Mamy nadziej\u0119, \u017ce nasze informacje pozwol\u0105 innym zespo\u0142om dzia\u0142a\u0107 szybciej, uwzgl\u0119dniaj\u0105c do\u015bwiadczenia wcze\u015bniejszych.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/448330\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u00ab\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0430\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0451 \u043d\u0430 \u0432\u043e\u043b\u044e \u0441\u043b\u0443\u0447\u0430\u044f\u00bb \u0420\u043e\u0431\u0435\u0440\u0442 \u041a\u0430\u0432\u044c\u044e, 1970 \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0432 \u043d\u0435\u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e \u2014 \u043a\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u0434\u043e\u043c \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430\u0445, \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u201c\u0445\u043e\u0440\u043e\u0448\u0438\u0439\u201d \u0440\u0430\u043d\u0434\u043e\u043c \u043e\u0442 \u201c\u043f\u043b\u043e\u0445\u043e\u0433\u043e\u201d. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f [&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-31729","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u00ab\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0430\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0451 \u043d\u0430 \u0432\u043e\u043b\u044e \u0441\u043b\u0443\u0447\u0430\u044f\u00bb \u0420\u043e\u0431\u0435\u0440\u0442 \u041a\u0430\u0432\u044c\u044e, 1970 \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e.\" \/>\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\/pl\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-prakticheskoe-primenenie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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: \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u00ab\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0430\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0451 \u043d\u0430 \u0432\u043e\u043b\u044e \u0441\u043b\u0443\u0447\u0430\u044f\u00bb \u0420\u043e\u0431\u0435\u0440\u0442 \u041a\u0430\u0432\u044c\u044e, 1970 \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-prakticheskoe-primenenie\" \/>\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:42:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:42:44+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\udd47Liczby losowe i zdecentralizowane sieci: zastosowanie praktyczne | ProHoster","description":"Wprowadzenie \"Generowanie liczb losowych jest zbyt wa\u017cne, aby powierza\u0107 je przypadkowi\" Robert Cavy, 1970 Ta artyku\u0142 po\u015bwi\u0119cony jest praktycznemu zastosowaniu.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-prakticheskoe-primenenie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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: \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u00ab\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0430\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0451 \u043d\u0430 \u0432\u043e\u043b\u044e \u0441\u043b\u0443\u0447\u0430\u044f\u00bb \u0420\u043e\u0431\u0435\u0440\u0442 \u041a\u0430\u0432\u044c\u044e, 1970 \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/sluchajnye-chisla-i-detsentralizovannye-seti-prakticheskoe-primenenie","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:42:44+00:00","article:modified_time":"2019-10-31T18:42:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31729","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 07:32:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:04:45","updated":"2026-01-21 07:32:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/31729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=31729"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/31729\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=31729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=31729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=31729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}