Zvinoita here kugadzira nhamba dzisina kurongeka kana tisingavimbani? Chikamu 1

Hei Habr!

Muchikamu chino ini ndichataura nezve chizvarwa che pseudo-random nhamba nevatori vechikamu vasingavimbani. Sezvatichaona pazasi, kuita "inenge" jenareta yakanaka iri nyore, asi yakanaka kwazvo yakaoma.

Sei zvingave zvakakosha kugadzira nhamba dzisina kurongeka pakati pevatori vechikamu vasingavimbani? Imwe nzvimbo yekushandisa ndeye decentralized application. Semuenzaniso, application inogamuchira bheji kubva kune ari kutora chikamu uye inopeta kaviri huwandu ne 49% mukana kana kutora ne 51% mukana inongoshanda chete kana ichigona kugashira nhamba isina kurerekera. Kana munhu anorwisa achigona kupesvedzera mhedzisiro yejenareta yenhamba isina kujairika, uye kunyange zvishoma akawedzera mukana wake wekugamuchira mubhadharo mukushandisa, anoiparadza nyore nyore.

Kana isu tikagadzira yakagovaniswa nhamba yechizvarwa protocol, isu tinoda kuti ive nezvinhu zvitatu:

  1. Anofanira kunge asina rusarura. Mune mamwe mazwi, hapana mutori wechikamu anofanirwa nenzira ipi neipi kukanganisa mhedzisiro yejenareta yenhamba.

  2. Anofanira kunge asina kufungidzira. Mune mamwe mazwi, hapana mutori wechikamu anofanirwa kukwanisa kufanotaura kuti ndeipi nhamba ichagadzirwa (kana kufungidzira chero yezvivakwa zvayo) isati yagadzirwa.

  3. Iyo protocol inofanirwa kuve inoshanda, ndiko kuti, inopokana nenyaya yekuti imwe muzana yevatori vechikamu vanobvisa kubva kunetiweki kana nemaune kuedza kumisa protocol.

Muchikamu chino tichatarisa nzira mbiri: RANDAO + VDF uye erasure codes nzira. Muchikamu chinotevera, tichaongorora zvakadzama nzira yakavakirwa pamasaini echikumbaridzo.

Asi chekutanga, ngatitarisei iri nyore uye rinowanzo shandiswa algorithm inogoneka, isingatarisike, asi yakarerekera.

RANDAO

RANDAO inzira yakapusa uye saka inowanzo shandiswa kugadzira zvisina tsarukano. Vese vatori vechikamu venetiweki vanotanga vasarudza munharaunda nhamba yepseudorandom, ipapo mumwe nemumwe anotora chikamu anotumira hashi yenhamba yakasarudzwa. Tevere, vatori vechikamu vanochinjana kuburitsa nhamba dzavakasarudza uye kuita XOR oparesheni panhamba dzakaratidzwa, uye mhedzisiro yekuvhiya uku inova mhedzisiro yeprotocol.

Nhanho yekutsikisa masheshi isati yaburitsa nhamba inodiwa kuitira kuti anorwisa asasarudza nhamba yake mushure mekunge aona nhamba dzevamwe vatori vechikamu. Izvi zvaizomubvumira kuti aite senge-handedly kuona kubuda kweiyo random number jenareta.

Munguva yeprotocol, vatori vechikamu vanofanirwa kuuya kune imwe sarudzo (inonzi kubvumirana) kaviri: kutanga riini kuburitsa nhamba dzakasarudzwa, uye nekudaro rega kubvuma hashi, uye nguva yekumira kugamuchira nhamba dzakasarudzwa uye kuverenga zvakazoitika. nhamba. Kuita sarudzo dzakadaro pakati pevatori vechikamu vasingavimbi kune mumwe nemumwe harisi basa riri nyore pacharo, uye isu tichadzokera kwariri mune zvinotevera zvinyorwa; mune ino chinyorwa tichafunga kuti kubvumirana kwakadaro algorithm iripo kwatiri.

Ndechipi chezvivakwa zvatatsanangura pamusoro chine RANDAO? Izvo hazvifungidzike, zvine simba rakafanana nezviri pasi pekubvumirana protocol, asi yakarerekera. Kunyanya, munhu anorwisa anogona kuona network, uye mushure mekunge vamwe vatori vechikamu varatidza nhamba dzavo, anogona kuverenga XOR yavo, uye osarudza kana kusazivisa nhamba yake kuti iite mhedzisiro. Nepo izvi zvichidzivirira anorwisa kubva kumunhu mumwe chete kuona kubuda kweiyo random number jenareta, zvichiri kumupa 1 bit pesvedzero. Uye kana vanorwisa vakadzora vatori vechikamu vakati wandei, ipapo huwandu hwemabhiti avanodzora huchaenzana nenhamba yevatori vechikamu vari pasi pekutonga kwavo.

Zvinoita here kugadzira nhamba dzisina kurongeka kana tisingavimbani? Chikamu 1

Kufurira kwevanorwisa kunogona kuderedzwa zvakanyanya nekuda kuti vatori vechikamu vaburitse nhamba dzakarongeka. Ipapo anorwisa achakwanisa kupesvedzera mhedzisiro chete kana yakavhurwa kwekupedzisira. Nepo pesvedzero iri shoma zvakanyanya, iyo algorithm ichiri yakarerekera.

RANDAO+VDF

Imwe nzira yekuita kuti RANDAO ive isina rusarura ndeiyi: mushure mekunge nhamba dzese dzaratidzwa uye XOR yakaverengerwa, chigumisiro chayo chinodyiswa mukati mekupinda kwebasa, iyo inotora nguva yakareba kwazvo kuverenga, asi inokubvumira kuti utarise kururamisa kwe kuverenga nekukurumidza.

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

Iri basa rinonzi Verifiable Delay Function, kana VDF. Kana kuverenga chigumisiro chekupedzisira kuchitora nguva yakareba kudarika nhamba yekuzivisa nhamba, zvino anorwisa haazokwanisi kufanotaura mhedzisiro yekuratidza kana kuvanza nhamba yake, uye naizvozvo acharasikirwa nemukana wekupesvedzera mhedzisiro.

Kugadzira maVDF akanaka kwakaoma zvakanyanya. Pakave nebudiriro dzakawanda munguva pfupi yapfuura, semuenzaniso. izvi и izvi, iyo yakaita kuti VDF iwedzere kushanda mukuita, uye Ethereum 2.0 inoronga kushandisa RANDAO neVDF sechinhu chisina kujairika nhamba munguva refu. Kunze kwekuti nzira iyi haifungidzirike uye haina rusaruro, ine bhenefiti yakawedzerwa yekuve inoshanda kana vangangoita vaviri vatori vechikamu varipo pane network (tichifunga kuti chibvumirano chebvumirano chinoshandiswa chinogoneka kana uchibata nenhamba shoma yevatori vechikamu).

Dambudziko hombe reiyi nzira kumisa VDF zvekuti kunyangwe mutori wechikamu anodhura zvakanyanya zvehunyanzvi haakwanise kuverenga VDF isati yapera chikamu chekuwanikwa. Sezvineiwo, iyo algorithm inofanirwa kunge iine yakakosha kuchengetedza muganho, taura 10x. Mufananidzo uri pazasi unoratidza kurwiswa kwemutambi ane nyanzvi yeASIC inomutendera kuti amhanye VDF nekukurumidza kupfuura nguva yakapihwa kuratidza RANDAO simbiso. Mutori wechikamu akadaro anogona achiri kuverenga chigumisiro chekupedzisira achishandisa kana kusashandisa nhamba yake, uye ipapo, zvichienderana nekuverenga, sarudza kuti uchairatidza here kana kuti kwete.

Zvinoita here kugadzira nhamba dzisina kurongeka kana tisingavimbani? Chikamu 1

Kumhuri yeVDF yataurwa pamusoro, kuita kweASIC yakatsaurirwa kunogona kuve 100+ nguva yakakwirira kupfuura yakajairwa hardware. Saka kana chikamu chekuendesa chikatora masekonzi gumi, saka VDF yakaverengerwa paASIC yakadai inofanirwa kutora anopfuura masekonzi zana kuti ive negumi rekuchengetedza muganho, uye nekudaro VDF imwecheteyo yakaverengerwa pahardware yezvigadzirwa inofanira kutora 10x 100 masekonzi = ~ maawa matatu.

Iyo Ethereum Foundation inoronga kugadzirisa dambudziko iri nekugadzira yayo inowanikwa pachena, yemahara ASICs. Kana izvi zvangoitika, mamwe ese maprotocol anogona zvakare kutora mukana weiyo tekinoroji, asi kusvika ipapo iyo RANDAO + VDF maitiro haizogone kushanda kune maprotocol asingagone kuisa mari mukugadzira yavo ASICs.

Zvakawanda zvinyorwa, mavhidhiyo uye rumwe ruzivo nezve VDF zvakaunganidzwa pa saiti iyi.

Isu tinoshandisa erasure macode

Muchikamu chino, isu tichatarisa kune isingaverengeki nhamba yechizvarwa protocol inoshandisa erasing codes. Inogona kushivirira kusvika ⅓ vanorwisa ichiri kushanda, uye inobvumira vanosvika ⅔ vanorwisa kuti vavepo vasati vafanotaura kana kufurira mhedzisiro.

Pfungwa huru yeprotocol ndeiyi inotevera. Kuti zvive nyore, ngatifungei kuti pane vatori vechikamu zana. Ngatifungeiwo kuti vese vatori vechikamu munharaunda vane kiyi yakavanzika, uye makiyi eruzhinji evose vatori vechikamu anozivikanwa kune vese vatori vechikamu:

  1. Mumwe nemumwe anotora chikamu munharaunda anouya netambo refu, oityora kuita zvikamu makumi matanhatu nenomwe, anogadzira macode erasure kuti awane 67 migove zvekuti chero makumi matanhatu nenomwe anokwana kudzoreredza tambo, inopa imwe neimwe yezvikamu zana kune mumwe wevatori vechikamu, uye encryptic navo. kiyi imwe chete yevatori vechikamu. Ese encoded shares anobva aburitswa.

  2. Vatori vechikamu vanoshandisa imwe mhando yekubvumirana kusvika pakubvumirana pane macoded seti kubva kune chaivo vatori vechikamu 67.

  3. Kana kubvumirana kwasvika, mumwe nemumwe anotora chikamu anotora zvikamu zvakavharwa mune imwe neimwe yemaseti makumi matanhatu nemanomwe akavharidzirwa nekiyi yavo yeruzhinji, anobvisa migove yese yakadai, uye anoshambadza ese akacheneswa zvikamu.

  4. Kana vatori vechikamu makumi matanhatu nevanomwe vapedza nhanho (67), ese akabvumirana seti anogona kudhindwa zvachose uye kuvakwa patsva nekuda kwezvivakwa zvemakodhi erasure, uye nhamba yekupedzisira inogona kuwanikwa seXOR yemitsara yekutanga iyo vatori vechikamu vakatanga nayo mu (3) .

Zvinoita here kugadzira nhamba dzisina kurongeka kana tisingavimbani? Chikamu 1

Iyi protocol inogona kuratidzwa isina rusarura uye isingatarisirwi. Nhamba inokonzeresa inotemerwa mushure mekunge kubvumirana kwasvika, asi hazvizivikanwe kune chero munhu kusvika ⅔ yevatori vechikamu vasarudza zvikamu zvakavharidzirwa nekiyi yavo yeruzhinji. Nekudaro, iyo nhamba isina kurongeka inotemerwa ruzivo rusati rwakwana kuti ivakezve rwaburitswa.

Chii chinoitika kana mudanho (1) mumwe wevatori vechikamu akatumira migove yakavharidzirwa kune vamwe vatori vechikamu isiri iyo yekudzima kodhi yeimwe tambo? Pasina dzimwe shanduko, vatori vechikamu vakasiyana havazokwanisa kudzoreredza tambo yacho zvachose, kana kuti vanodzoreredza tambo dzakasiyana, izvo zvinozoita kuti vatori vechikamu vakasiyana vagamuchire imwe nhamba isina kurongeka. Kuti udzivise izvi, unogona kuita zvinotevera: mumwe nemumwe anotora chikamu, kuwedzera kune encoded shares, zvakare anoverengera. Merkla tree migove yose yakadaro, uye inotumira mumwe nomumwe anotora chikamu zvose encoded share pachayo uye mudzi we merkle tree, uye humbowo hwekubatanidzwa kwemugove mumuti wemerkle. Mukubvumirana munhanho (2), vatori vechikamu havazongobvumirana pane seti, asi pane seti yemidzi yemiti yakadaro (kana mumwe mubati akatsauka kubva paprotocol, uye akatumira midzi yemiti yemerkle yakasiyana kune vatori vechikamu vakasiyana, uye midzi miviri yakadaro inoratidzwa panguva yekubvumirana, mutsara wake hauna kubatanidzwa mumigumisiro yakatarwa). Nekuda kwekubvumirana, tichava nemitsara makumi matanhatu nenomwe yakavharidzirwa uye midzi inoenderana yemuti wemerkle zvekuti pane vanosvika makumi matanhatu nevanomwe vatori vechikamu (kwete ivo vakafanana vakaronga mitsara inoenderana), avo kune imwe neimwe ye67 mitsara vane. meseji ine chikamu chekodhi yekudzima, uye humbowo hwekuitika kwemugove wavo mumuti unoenderana nawo zvakadzima.

Kana ari munhanho (4) mubatanidzwa anodudzira 67 kurova kweimwe tambo uye oedza kugadzira patsva tambo yepakutanga kubva kwavari, imwe yesarudzo inogoneka:

  1. Tambo inodzoreredzwa, uye kana ichibva yadzimwa-encoded zvakare, uye muti weMerkle unoverengerwa kumatunhu akaverengerwa munharaunda, mudzi unopindirana neiyo iyo kubvumirana kwakasvikwa.

  2. Mutsara unodzoserwa, asi mudzi wakaverengerwa munharaunda hauenderane newakawiriranwa.

  3. Mutsara haudzoserwe.

Zviri nyore kuratidza kuti kana sarudzo (1) yakaitika kune mumwe chete atora chikamu pamusoro, zvino sarudzo (1) yakaitika kune vese vatori vechikamu, uye neimwe nzira, kana sarudzo (2) kana (3) yakaitika kune mumwe chete atora chikamu, ipapo. kune vese vatori vechikamu sarudzo (2) kana (3) ichaitika. Saka, pamutsara wega wega museti, vangave vese vatori vechikamu vachabudirira kuidzosera, kana vese vatori vechikamu vachatadza kuidzosera. Iyo yakaguma yakaitika nhamba inozove XOR yemitsara chete iyo vatori vechikamu vakakwanisa kupora.

Threshold signatures

Imwe nzira yekusarongeka ndeye kushandisa izvo zvinonzi BLS chikumbaridzo siginicha. Jenareta yenhamba isina kujairika yakavakirwa pachikumbaridzo siginicha ine chaiyo vimbiso yakafanana neyekudzima kodhi-yakavakirwa algorithm inotsanangurwa pamusoro, asi ine yakanyanya kuderera asymptotic nhamba yemeseji inotumirwa pamusoro petiweki kune yega yega inogadzirwa nhamba.

BLS siginicha dhizaini inobvumira vatori vechikamu vazhinji kugadzira siginecha imwechete yemeseji. Aya masiginicha anowanzo shandiswa kuchengetedza nzvimbo uye bandwidth nekusada akawanda masaini kuti atumirwe kunze. 

Chikumbiro chakajairwa chemasaini eBLS mu blockchain protocol, mukuwedzera pakugadzira nhamba dzisina kurongeka, kusaina block muBFT protocol. Ngatitii vatori vechikamu zana vanogadzira mabhuroko, uye bhuroka inoonekwa seyekupedzisira kana makumi matanhatu nevanomwe vakasaina. Vese vanogona kuendesa zvikamu zvavo zve BLS siginicha uye voshandisa imwe algorithm yekubvumirana kubvumirana pane makumi matanhatu nenomwe uye vozobatanidza kuita siginecha imwe yeBLS. Chero zvikamu makumi matanhatu nenomwe (kana kupfuura) zvinogona kushandiswa kugadzira siginecha yekupedzisira, izvo zvinoenderana nekuti ndeapi masiginecha makumi matanhatu nenomwe akasanganiswa uye nekudaro anogona kusiyana, kunyangwe sarudzo dzakasiyana dzevatori vechikamu makumi matanhatu nenomwe dzichagadzira siginecha yakasiyana, chero siginicha yakadaro ichave inoshanda. siginecha ye block. Vakasara vatori vechikamu vanongoda kugamuchira uye simbisa siginecha imwe chete pa block, panzvimbo ye100, pamusoro pemambure, izvo zvinoderedza zvakanyanya mutoro pane network.

Zvinoitika kuti kana makiyi epachivande anoshandiswa nevatori vechikamu akagadzirwa neimwe nzira, saka zvisinei kuti ndeapi masiginecha 67 (kana anopfuura, asi asiri pasi) akaunganidzwa, siginecha inoguma ichave yakafanana. Izvi zvinogona kushandiswa sechitubu chekusagadzikana: vatori vechikamu vanotanga vabvumirana pane imwe meseji yavachasaina (iyi inogona kunge iri kubuda kweRANDAO kana kungova hashi yebhuroko rekupedzisira, hazvina basa chero bedzi ichichinja nguva dzese. uye inowirirana) uye gadzira siginecha yeBLS yayo. Mhedzisiro yechizvarwa ichave isingafungidzike kusvikira vatori vechikamu makumi matanhatu nevanomwe vapa zvikamu zvavo, uye mushure meizvozvo zvakabuda zvakagara zvakatemerwa uye hazvigone kutsamira pane zviito zvemumwe mubatanidzwa.

Iyi nzira yekuita zvisina tsarukano inoshanda chero ⅔ yevatori vechikamu pamhepo vese vachitevera protocol, uye haina rusaruro uye isingafungidzike chero ⅓ yevatori vechikamu ichitevera protocol. Zvakakosha kuziva kuti munhu anorwisa anodzora zvinopfuura ⅓ asi asingasviki ⅔ yevatori vechikamu anogona kumisa protocol, asi haakwanise kufanotaura kana kufurira zvazvinobuda.

Threshold siginicha pachayo inyaya inonakidza kwazvo. Muchikamu chechipiri chechinyorwa, isu tichaongorora zvakadzama mashandiro avanoita, uye kuti chaizvo zvinodikanwa sei kugadzira makiyi evatori vechikamu kuitira kuti masaini echikumbaridzo agone kushandiswa seasina kurongeka nhamba jenareta.

Mukupedzisa

Ichi chinyorwa ndicho chekutanga munhevedzano yezvinyorwa zveblog blog PEDYO. PEDYO ndeye blockchain protocol uye chikuva chekuvandudza dhizaini maapplication achisimbisa kusununguka kwekusimudzira uye nyore kushandisa kwevashandisi vekupedzisira.

Iyo protocol kodhi yakavhurika, kuita kwedu kwakanyorwa muRust, inogona kuwanikwa pano.

Iwe unogona kuona kuti budiriro yeNEAR inoita sei uye kuyedza muIDE yepamhepo pano.

Unogona kutevera nhau dzose muchiRussia pa telegraph group and in boka VKontakte, uye muchirungu mumukuru twitter.

Ndinokuwona manje manje!

Source: www.habr.com

Voeg