Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 1

Haye Habr!

Maqaalkan waxaan ka hadli doonaa jiilka tirooyinka random-ka ee ka qaybgalayaasha kuwaas oo aan isku kalsoonayn. Sida aan hoos ku arki doono, hirgelinta "ku dhawaad" koronto-dhaliye wanaagsan waa wax fudud, laakiin kan aad u wanaagsan waa adag yahay.

Waa maxay sababta ay lama huraan ugu noqonayso in la abuuro tirooyin aan kala sooc lahayn oo ka mid ah ka qaybgalayaasha aan is aaminin? Mid ka mid ah aagagga codsiga waa codsiyada baahsan. Tusaale ahaan, arjiga aqbala sharad ka qaybqaataha oo labanlaabma lacagta leh 49% ixtimaalka ama ka qaada 51% suurtogalnimada waxa kaliya oo shaqayn doona haddii ay si aan eex lahayn u heli karto lambar random. Haddii weeraryahanku saameyn ku yeesho natiijada koronto-dhaliye lambarka random-ka, oo xitaa inyar kordhin karo fursadda uu ku heli karo lacag-bixinta codsiga, si fudud ayuu u burburin doonaa.

Marka aan naqshadeyno borotokoolka jiilka tirada random-ka ee qaybsan, waxaan rabnaa in uu yeesho saddex guri:

  1. Waa inuu ahaado mid aan eex lahayn. Si kale haddii loo dhigo, ka qaybqaataha waa inuusan sinaba saameyn ugu yeelan natiijada dhaliye nambarka random-ka.

  2. Waa inuu yahay mid aan la saadaalin karin. Si kale haddii loo dhigo, ka qaybqaataha waa inuusan awoodin inuu saadaaliyo tirada la soo saari doono (ama qiyaasi karo mid ka mid ah hantideeda) ka hor inta aan la soo saarin.

  3. Nidaamku waa inuu noqdaa mid shaqayn kara, taas oo ah, adkaysi u leh xaqiiqda ah in boqolkiiba qaar ka mid ah ka qaybgalayaashu ay ka gooyaan shabakadda ama ay si ula kac ah isku dayaan inay joojiyaan borotokoolka.

Maqaalkan waxaan ku eegi doonaa laba hab: RNDAO + VDF iyo habka codes-ka tirtirka. Qeybta soo socota, waxaan si faahfaahsan u baari doonaa habka ku saleysan saxiixyada bilowga.

Laakiin marka hore, aynu eegno algorithm fudud oo caadi ahaan la isticmaalo, taas oo ah wax la heli karo, aan la saadaalin karin, laakiin eex leh.

RANDO

RNDAO waa hab aad u fudud oo sidaas awgeed si caadi ah loo isticmaalo si loo dhaliyo randomity. Dhammaan ka qaybgalayaasha shabakadu marka hore waxay doortaan nambar been abuur ah, ka dibna ka qaybgale kastaa wuxuu soo diraa xashiish lambarka la doortay. Marka xigta, ka qaybgalayaashu waxay si isdaba joog ah u muujinayaan lambarada ay doorteen oo ay ku sameeyaan hawlgal XOR ah nambarada la soo bandhigay, natiijadii hawlgalkani waxay noqotaa natiijada nidaamka.

Tallaabada daabacaadda xashiishadaha ka hor inta aan la shaacin tirooyinka waa lagama maarmaan si uusan weerarku u dooran nambarkiisa ka dib marka uu arko nambarada ka qaybgalayaasha kale. Tani waxay u oggolaanaysaa inuu si keligiis ah u go'aamiyo wax-soo-saarka koronto-dhaliye nambarka random-ka.

Inta uu socdo nidaamka, ka qaybgalayaashu waxay u baahan yihiin inay gaadhaan go'aan guud (waxa loogu yeero is-afgarad) laba jeer: goorta la bilaabayo muujinta tirooyinka la doortay, oo sidaas darteed joojiya aqbalida xashiishka, iyo goorta ay joojinayaan aqbalaadda lambarrada la doortay iyo xisaabinta natiijada random. tirada. Go'aannada noocan ah ee ka dhexeeya ka qaybgalayaasha aan is-aaminaynin maaha hawl sahlan lafteeda, waxaanan ku soo laaban doonaa maqaallada mustaqbalka, maqaalkan waxaan u qaadan doonaa in algorithm-ka la isku raacsan yahay uu noo diyaar yahay.

Guryaha aan kor ku soo xusnay kee baa RANDO ku leh? Waa wax aan la saadaalin karin, waxay leedahay firfircooni la mid ah tan hab-maamuuska la isku raacsan yahay, laakiin waa eex. Gaar ahaan, weeraryahanku wuxuu u eegi karaa shabakadda, ka dib markii ka qaybgalayaasha kale ay muujiyaan nambaradooda, wuxuu xisaabin karaa XOR-kooda, oo uu go'aamin karaa haddii uu muujinayo lambarkiisa si uu saameyn ugu yeesho natiijada. Iyadoo tani ay ka hortagayso weeraryahanku inuu keligiis go'aamiyo wax-soo-saarka koronto-dhaliye nambarka random, waxay weli siinaysaa 1 xoogaa saameyn ah. Oo haddii weerarayaashu ay xakameeyaan kaqeybgalayaal dhowr ah, markaa tirada jajabyada ay maamulaan waxay la mid noqon doontaa tirada kaqeybgalayaasha ay gacanta ku hayaan.

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 1

Saamaynta weeraryahanadu aad baa loo yarayn karaa iyadoo laga rabo in ka qaybgalayaashu ay soo bandhigaan tirooyinka siday u kala horreeyaan. Kadibna weeraryahanku wuxuu awood u yeelan doonaa inuu saameyn ku yeesho natiijada kaliya haddii la furo ugu dambeyntii. Iyadoo saameyntu ay aad u yar tahay, algorithm-ka ayaa weli ah mid eex ah.

RANDO+VDF

Hal dariiqo oo RNDAO looga dhigo mid aan dhinacna u xaglin ayaa ah tan: ka dib marka dhammaan tirooyinka la muujiyo lana xisaabiyo XOR, natiijadeeda waxaa lagu shubaa gelinta shaqada, taas oo qaadaneysa waqti aad u dheer in la xisaabiyo, laakiin waxay kuu oggolaaneysaa inaad hubiso saxnaanta shaqada. xisaabinta si degdeg ah.

(vdf_output, vdf_proof) = VDF_compute(input) // это очень медленно
correct = VDF_verify(input, vdf_output, vdf_proof) // это очень быстро

Hawshan waxa loo yaqaan shaqada dib u dhigista la xaqiijin karo, ama VDF. Haddii xisaabinta natiijada kama dambaysta ah ay qaadato waqti ka badan heerka shaacinta lambarka, markaa weeraryahanku ma awoodi doono inuu saadaaliyo saameynta muujinta ama qarinta lambarkiisa, sidaas darteed wuxuu lumin doonaa fursad uu ku saameynayo natiijada.

Horumarinta VDF-yada wanaagsan aad ayay u adag tahay. Dhawr horumar ayaa dhowaan dhacay, tusaale; tan и tan, taas oo ka dhigtay VDF mid ficil ahaan wax ku ool ah, iyo Ethereum 2.0 waxay qorsheyneysaa inay u isticmaasho RANDO oo leh VDF si ay u noqoto isha nambarka random ee mustaqbalka fog. Marka laga reebo xaqiiqda ah in habkani yahay mid aan la saadaalin karin oo aan eex lahayn, waxay leedahay faa'iido dheeraad ah oo ah in la hirgeliyo haddii ugu yaraan laba kaqeybgale laga heli karo shabakada (iyadoo loo maleynayo in nidaamka la isku raacsan yahay ee la isticmaalo uu shaqeyn karo marka la macaamilayo tiro yar oo ka mid ah ka qaybgalayaasha).

Caqabadda ugu weyn ee habkan waa dejinta VDF sida xitaa ka-qaybgalaha qalab khaas ah oo aad qaali u ah ma awoodi doono inuu xisaabiyo VDF ka hor dhammaadka marxaladda daahfurka. Fikrad ahaan, algorithmisku waa inuu lahaadaa xad badbaado oo weyn, dheh 10x. Sawirka hoose wuxuu muujinayaa weerar uu qaaday jilaa leh ASIC takhasus u leh oo u ogolaanaya inuu ku shaqeeyo VDF ka dhaqsiyaha badan waqtiga loo qoondeeyay inuu muujiyo xaqiijinta RANDO. Ka qaybgalaha noocan oo kale ah wuxuu weli xisaabin karaa natiijada kama dambaysta ah isagoo isticmaalaya ama aan isticmaalin nambarkiisa, ka dibna, iyada oo ku saleysan xisaabinta, dooro in uu muujiyo iyo in kale.

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 1

Qoyska VDF ee kor ku xusan, waxqabadka ASIC ee heeganka ah wuxuu noqon karaa 100+ jeer ka sarreeya qalabka caadiga ah. Markaa haddii marxaladda geyntu ay socoto 10 ilbiriqsi, markaa VDF ee lagu xisaabiyay ASIC waa inay qaadataa in ka badan 100 ilbiriqsi si loo helo 10x badbaado, sidaas darteed isla VDF lagu xisaabiyay qalabka badeecada waa inuu qaataa 100x 100 ilbiriqsi = ~ 3 saacadood.

Aasaaska Ethereum waxay qorsheyneysaa inay xalliso dhibaatadan iyadoo abuuraysa si guud oo la heli karo, ASICs bilaash ah. Marka tani dhacdo, dhammaan borotokoollada kale waxay sidoo kale ka faa'iideysan karaan tignoolajiyadan, laakiin ilaa markaas habka RANDO+VDF ma noqon doono mid waxtar u leh borotokoollada aan maalgelin karin si ay u horumariyaan ASICs iyaga u gaar ah.

Maqaallo badan, fiidiyowyo iyo macluumaad kale oo ku saabsan VDF ayaa lagu ururiyay bartaan.

Waxaan isticmaalnaa koodka tirtiridda

Qaybtan, waxaynu ku eegi doonaa hab-maamuuska jiilka tirada random ee isticmaala codes tirtiridda. Waxay u dulqaadan kartaa ilaa ⅓ weeraryahannada inta ay sii jiri karto, waxayna u ogolaataa ilaa ⅔ weeraryahanadu inay jiraan ka hor inta aanay saadaalin ama saamayn natiijada.

Fikradda ugu weyn ee borotokoolka waa sida soo socota. Si ay u fududaato, aan ka soo qaadno inay jiraan 100 ka-qaybgalayaal ah. Aynu sidoo kale u qaadanno in dhammaan ka qaybgalayaasha gudaha ay haystaan ​​fure gaar ah, furayaasha guud ee dhammaan ka qaybgalayaashuna ay yaqaaniin dhammaan ka qaybgalayaasha:

  1. Ka qaybgale kasta oo maxalli ah wuxuu la yimaadaa xadhig dheer, wuxuu u kala qaybiyaa 67 qaybood, wuxuu abuuraa codes tirtiris si uu u helo 100 saamiyo sida 67 kasta oo ku filan inuu dib u soo celiyo xadhigga, wuxuu u qoondeeyaa mid kasta oo ka mid ah 100ka saamiga mid ka mid ah ka qaybgalayaasha, oo ku siraysa iyaga isla ka qaybgalaha furaha guud. Dhammaan saamiyada la calaamadeeyay ayaa markaa la daabacayaa.

  2. Ka qaybgalayaashu waxay adeegsadaan nooc ka mid ah is-afgaradka si ay heshiis uga gaadhaan jaangooyooyin calaamadaysan oo ka yimid 67 ka qaybgalayaal gaar ah.

  3. Marka la isku waafaqo, ka qaybgale kastaa wuxuu qaataa saamiyada 67-ka qaybood ee lagu sireeyay furehooda dadweynaha, wuxuu furfuraa dhammaan saamiyadaas, wuxuuna daabacaa dhammaan saamiyada la furay.

  4. Marka 67 ka qaybgalayaashu ay dhammeeyaan tallaabada (3), dhammaan qaybaha lagu heshiiyey si dhammaystiran ayaa loo kala saari karaa oo dib loo dhisi karaa iyadoo ay ugu wacan tahay sifooyinka furayaasha tirtirka, lambarka u dambeeyana waxa loo heli karaa XOR oo ah safafka hore ee ka qaybgalayaashu ku bilaabeen (1) .

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 1

Hab-maamuuska waxa loo tusi karaa mid aan eex lahayn oo aan la saadaalin karin. Nambarka random-ka ee soo baxay waxaa la go'aamiyaa ka dib marka la gaaro is afgarad, laakiin qofna ma yaqaan ilaa ⅔ ka qaybgalayaashu ay go'aamiyaan qaybaha lagu sireeyay furahooda dadweynaha. Haddaba, lambarka random-ka ayaa la go'aamiyaa ka hor inta aan la daabicin macluumaadka ku filan dib-u-dhiska.

Maxaa dhacaya haddii tallaabada (1) mid ka mid ah ka qaybgalayaasha uu u soo diro saamiyo codeed ka qaybgalayaasha kale ee aan ahayn xeerka tirtirka saxda ah ee xadhigga? Haddii aan isbeddelo dheeraad ah la helin, ka qaybgalayaasha kala duwani ma awoodi doonaan inay soo ceshadaan xadhigga gabi ahaanba, ama waxay soo kabsan doonaan xadhkaha kala duwan, taas oo keeni doonta ka qaybgalayaasha kala duwan inay helaan lambar aan sugnayn oo ka duwan. Si taas looga hortago, waxaad samayn kartaa kuwan soo socda: ka qaybgale kasta, marka lagu daro saamiyada la calaamadeeyay, sidoo kale wuxuu xisaabiyaa Geedka Merkla dhammaan saamiyada noocaas ah, oo u dira ka qaybgale kasta labadaba saamiga la isku duubay iyo xididka geedka meerka ah, iyo caddaynta ka mid noqoshada saamiga geedka merkle. In la isku raacsan yahay in tallaabo (2), ka qaybgalayaashu markaas ma aha oo kaliya ku heshiiyaan on set of sets, laakiin on set oo ah xididada gaarka ah ee geedaha sida (haddii ka qaybqaataha qaar ka mid ah ka leexday hab maamuuska, iyo soo diray xididdo merkle kala duwan ka qaybgalayaasha kala duwan, iyo laba xidid oo noocan oo kale ah ayaa la muujiyaa inta lagu jiro is-afgaradka, safkiisa kuma jiraan natiijada natiijada). Natiijadii heshiiska, waxaan yeelan doonnaa 67 xarriiq oo la isku dhejiyay iyo xididdada u dhigma ee geedka merkle si ay u jiraan ugu yaraan 67 kaqeybgalayaasha (ma ahan kuwa la mid ah kuwa soo jeediyay khadadka u dhigma), kuwaas oo mid kasta oo ka mid ah 67 sadar uu leeyahay. fariin leh qayb ka mid ah koodka tirtirka, iyo caddaynta dhacdadii qaybtooda geedka u dhigma ayaa libdhay.

Marka tallaabada (4) ka qaybqaataha uu 67 garaaco xadhig gaar ah oo uu isku dayo in uu dib u dhiso xadhiggii asalka ahaa iyaga, mid ka mid ah xulashooyinka ayaa suurtagal ah:

  1. Xadhiga ayaa dib loo soo celiyaa, oo haddii markaas la tirtiro mar kale, oo geedka Merkle loo xisaabiyo saamiyada maxalliga ah, xididku wuxuu ku soo beegmayaa kii la isku raacay.

  2. Safka dib ayaa loo soo celiyay, laakiin xididka la xisaabiyay ee maxaliga ah kuma habboona kii lagu heshiiyay.

  3. Safka lama soo celin

Way fududahay in la muujiyo in haddii ikhtiyaarka (1) uu ku dhacay ugu yaraan hal kaqeybgale oo kor ku xusan, markaa ikhtiyaarka (1) wuxuu ku dhacay dhammaan kaqeybgalayaasha, iyo taa beddelkeeda, haddii ikhtiyaarka (2) ama (3) uu ku dhacay ugu yaraan hal kaqeybgale, markaa Dhammaan ka qaybgalayaasha doorashada (2) ama (3) way dhici doontaa. Haddaba, saf kasta oo ku jira shaxda, dhammaan ka qaybgalayaasha ayaa si guul leh u soo kabsan doona, ama dhammaan ka qaybgalayaashu way ku guul darraysan doonaan inay soo kabtaan. Nambarka random-ka ee soo baxay ayaa markaa ah XOR oo keliya safafka ay ka qaybgalayaashu awoodeen inay soo kabtaan.

Saxiixa bilowga

Habka kale ee randomity waa in la isticmaalo waxa loo yaqaan BLS saxeexyada bilowga. Soosaaraha nambarka random-ka ah ee ku salaysan saxeexyada bilowga waxa uu leeyahay dammaanad la mid ah tan algoorithm-ku-salaysan tirtirka kor lagu sharraxay, laakiin waxa uu leeyahay farriimaha farriimaha asymptotic-ka ah oo aad hoos ugu hooseeya oo loo diro shabakadda lambar kasta oo la soo saaro.

Saxiixa BLS waa naqshad u oggolaanaysa ka qaybgalayaasha badan inay abuuraan hal saxeex oo guud oo farriin ah. Saxiixahan waxaa badanaa loo isticmaalaa in lagu badbaadiyo meel bannaan iyo xajmiyeedka iyadoo aan loo baahnayn saxiixyo badan in la diro. 

Codsiga caadiga ah ee saxeexyada BLS ee borotokoolka blockchain, marka lagu daro abuurista lambarada random, waa xannibaadda saxeexa borotokoolka BFT. Aynu nidhaahno 100 ka qaybgalayaashu waxay abuuraan baloogyo, baloogguna waxa loo tixgalinayaa kama dambeys haddii 67 ka mid ahi saxeexaan. Dhammaantood waxay soo gudbin karaan qaybahooda saxeexa BLS oo ay isticmaalaan algorithm la isku raacsan yahay si ay ugu heshiiyaan 67 iyaga ka dibna ku daraan hal saxeex BLS. Qayb kasta oo 67 ah (ama ka badan) ayaa loo isticmaali karaa si loo abuuro saxeexa kama dambaysta ah, taas oo ku xirnaan doonta saxiixyada 67 ee la isku daray oo sidaas darteed way kala duwanaan karaan, inkastoo doorashooyin kala duwan oo kaqeybgalayaasha 67 ay abuuri doonaan saxiix ka duwan, saxiix kasta oo noocaas ah wuxuu noqon doonaa mid ansax ah. saxiixa block. Ka qaybgalayaasha soo hadhay waxay u baahan yihiin oo kaliya inay helaan oo ay xaqiijiyaan hal saxeex halkii block, halkii ay ka ahaan lahaayeen 67, shabakada, taas oo si weyn u yaraynaysa culeyska shabakada.

Waxaa soo baxday in haddii furayaasha gaarka ah ee kaqeybgalayaashu ay isticmaalaan si gaar ah loo soo saaro, markaa iyada oo aan loo eegin 67 saxiix (ama ka badan, laakiin aan ka yarayn) la isku daro, saxiixa ka soo baxaa wuxuu noqonayaa mid isku mid ah. Tan waxa loo isticmaali karaa il random-ka: ka qaybgalayaashu marka hore waxay ku heshiiyaan fariinta qaar inay saxeexi doonaan (tani waxay noqon kartaa soo saarida RANDO ama kaliya xashiishkii baloogii ugu danbeeyay, wax macno ah maaha ilaa inta uu isbedelayo mar kasta oo joogto ah) oo u samee saxeex BLS. Natiijada jiilku waxay noqon doontaa mid aan la saadaalin karin ilaa 67 kaqeybgalayaashu ay bixiyaan qaybtooda, ka dibna wax soo saarka ayaa horay loo sii go'aamiyay oo kuma xirna ficilka ka qaybgalayaasha.

Habkan si aan kala sooc lahayn waa mid socon kara ilaa iyo inta ugu yaraan ⅔ ka qaybgalayaasha internetka labaduba ay raacaan borotokoolka, waana mid aan eex lahayn oo aan la saadaalin karin ilaa iyo inta ugu yaraan ⅓ ka mid ah ka qaybgalayaashu ay raacaan borotokoolka. Waxaa muhiim ah in la ogaado in weeraryahan kantaroola in ka badan ⅓ laakiin in ka yar ⅔ ka qaybgalayaasha uu joojin karo borotokoolka, laakiin ma saadaalin karo mana saameyn karo wax soo saarkiisa.

Saxiixa bilowga laftoodu waa mawduuc aad u xiiso badan. Qaybta labaad ee maqaalka, waxaan si faahfaahsan u falanqeyn doonaa sida ay u shaqeeyaan, iyo sida saxda ah ee ay lagama maarmaanka u tahay in la dhaliyo furayaasha ka qaybqaatayaasha si saxiixyada bilowga loogu isticmaalo soosaaraha nambarka random.

Gabagabada

Maqaalkani waa kii ugu horreeyay ee taxane ah maqaallo farsamo NEAR. NEAR waa hab-maamuuska blockchain iyo madal loogu talagalay horumarinta codsiyada baahsan iyadoo xoogga la saarayo fududaynta horumarinta iyo fududaynta isticmaalka isticmaalayaasha dhamaadka.

Koodhka borotokoolku wuu furan yahay, hirgalintayadu waxay ku qoran tahay Rust, waa la heli karaa halkan.

Waxaad ka arki kartaa sida uu u eg yahay horumarka DHAW oo tijaabi IDE khadka tooska ah halkan.

Waxaad kala socon kartaa dhammaan wararka Ruushka at kooxda telegram iyo kooxda VKontakte, iyo Ingiriisi ee rasmiga ah twitter.

Со скорых встреч!

Source: www.habr.com

Add a comment