Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 1

Ndewo, Habr!

N'isiokwu a, m ga-ekwu maka ọgbọ nke nọmba pseudo-random site na ndị sonyere na-atụkwasịghị ibe ha obi. Dị ka anyị ga-ahụ n'okpuru ebe a, imejuputa "ihe fọrọ nke nta ka ọ bụrụ" ezigbo generator dị nnọọ mfe, ma nke dị mma siri ike.

Kedu ihe kpatara ọ ga-eji dị mkpa ịmepụta ọnụọgụ ọnụọgụ n'etiti ndị sonyere na-atụkwasịghị ibe ha obi? Otu mpaghara ngwa bụ ngwa ewepụrụ. Dịka ọmụmaatụ, ngwa na-anabata nzọ n'aka onye so na ya ma jiri ohere 49% were okpukpu abụọ ma ọ bụ wepụ ya na ihe gbasara puru omume 51% ga-arụ ọrụ naanị ma ọ bụrụ na ọ nwere ike nweta nọmba enweghị mmasị na ya. Ọ bụrụ na onye na-awakpo nwere ike imetụta nsonaazụ nke onye na-emepụta nọmba random, na ọbụna na-abawanye ohere ya ịnweta ụgwọ na ngwa ahụ, ọ ga-adị mfe ibibi ya.

Mgbe anyị chepụtara usoro ọgbọ ọgbọ nke kesara, anyị chọrọ ka ọ nwee ihe atọ:

  1. Ọ ghaghị ịbụ onye na-adịghị ele mmadụ anya n'ihu. N'ikwu ya n'ụzọ ọzọ, ọ dịghị onye so na ya kwesịrị imetụta nsonaazụ nke generator nọmba random.

  2. Ọ ga-abụrịrị onye a na-atụghị anya ya. N'ikwu ya n'ụzọ ọzọ, ọ dịghị onye so na ya ga-enwe ike ịkọ ọnụ ọgụgụ a ga-emepụta (ma ọ bụ tụlee ihe ọ bụla n'ime ihe onwunwe ya) tupu emee ya.

  3. Usoro ahụ ga-enwerịrị ike, ya bụ, na-eguzogide eziokwu ahụ na pasent ụfọdụ nke ndị sonyere na-akwụsị na netwọk ma ọ bụ kpachaara anya na-agbalị ịkwụsị protocol.

N'isiokwu a, anyị ga-eleba anya n'ụzọ abụọ: RNDAO + VDF na erasure codes. N'akụkụ na-esote, anyị ga-enyocha nke ọma ụzọ dabere na mbinye aka ọnụ ụzọ.

Mana nke mbụ, ka anyị leba anya na algọridim dị mfe na nke a na-ejikarị eme ihe bụ nke nwere ike ime, enweghị atụ, mana enweghị isi.

RNDAO

RNDAO bụ ụzọ dị mfe ya mere a na-ejikarị eme ihe maka ịmepụta enweghị usoro. Ndị so na netwọkụ niile na-ebu ụzọ họrọ nọmba pseudorandom na mpaghara, mgbe ahụ onye ọ bụla so na ya na-eziga hash nke nọmba ahọpụtara. Na-esote, ndị sonyere na-egosiputa nọmba ha họọrọ ma na-arụ ọrụ XOR na ọnụọgụ ekpughere, nsonaazụ nke ọrụ a na-aghọ nsonaazụ nke protocol.

Nzọụkwụ nke ibipụta hashes tupu ikpughe ọnụọgụ dị mkpa ka onye na-awakpo enweghị ike ịhọrọ nọmba ya mgbe ọ hụchara ọnụọgụ nke ndị ọzọ sonyere. Nke a ga-enye ya ohere iji aka ya kpebie ihe nrụpụta ọnụọgụ ọnụọgụgụ.

N'oge usoro protocol, ndị sonyere kwesịrị ịbịaru otu mkpebi (nke a na-akpọ nkwenye) ugboro abụọ: mgbe ịmalite ikpughe nọmba ahọpụtara, ya mere kwụsị ịnakwere hashes, na mgbe ịkwụsị ịnakwere nọmba ahọpụtara na ịgbakọ ihe na-esi na ya pụta. nọmba. Ime mkpebi ndị dị otú ahụ n'etiti ndị sonyere na-atụkwasịghị ibe ha obi abụghị ọrụ dị mfe n'onwe ya, anyị ga-alaghachikwa na ya na isiokwu ndị dị n'ihu; n'isiokwu a, anyị ga-eche na algorithm nkwekọrịta dị otú ahụ dị anyị.

Kedu n'ime akụrụngwa anyị kọwara n'elu ka RNDAO nwere? Ọ bụ ihe a na-atụghị anya ya, nwere otu ike dị ka usoro nkwekọrịta nkwekọrịta dị n'okpuru, mana ọ na-enweghị isi. Kpọmkwem, onye na-awakpo nwere ike lelee netwọkụ ahụ, ma mgbe ndị ọzọ sonyere kpughee ọnụọgụ ha, ọ nwere ike gbakọọ XOR ha, wee kpebie ma ọ ga-ekpughe nọmba ya ma ọ bụ na ọ gaghị emetụta nsonaazụ ya. Ọ bụ ezie na nke a na-egbochi onye na-awakpo ahụ site n'otu aka na-ekpebi mmepụta nke generator nọmba random, ọ ka na-enye ya mmetụta 1. Ma ọ bụrụ na ndị mwakpo na-achịkwa ọtụtụ ndị so na ya, mgbe ahụ ọnụọgụ nke ibe ha na-achịkwa ga-adaba na ọnụ ọgụgụ ndị sonyere n'okpuru ha.

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 1

Enwere ike ibelata mmetụta nke ndị mwakpo site n'ịchọ ka ndị sonyere kpughee ọnụọgụgụ n'usoro. Mgbe ahụ, onye na-awakpo ahụ ga-enwe ike imetụta ihe ga-esi na ya pụta naanị ma ọ bụrụ na emepee ya n'ikpeazụ. Ọ bụ ezie na mmetụta ahụ dị ntakịrị ntakịrị, algọridim ka na-enweghị isi.

RNDAO+VDF

Otu ụzọ isi mee RNDAO enweghị mmasị bụ nke a: mgbe ekpughere ọnụọgụ niile wee gbakọọ XOR, a na-etinye nsonaazụ ya na ntinye nke ọrụ, nke na-ewe ogologo oge iji gbakọọ, mana na-enye gị ohere ịlele izi ezi nke ngụkọta oge ngwa ngwa.

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

A na-akpọ ọrụ a arụmọrụ igbu oge, ma ọ bụ VDF. Ọ bụrụ na ịgbakọ nsonaazụ ikpeazụ na-ewe ogologo oge karịa ọkwa ngosi ọnụọgụ, mgbe ahụ onye na-awakpo ahụ agaghị enwe ike ịkọ mmetụta nke igosi ma ọ bụ zoo nọmba ya, ya mere ọ ga-efunahụ ohere iji metụta nsonaazụ ya.

Ịmepụta ezigbo VDF siri ezigbo ike. Enweela ọtụtụ ọganihu n'oge na-adịbeghị anya, dịka ọmụmaatụ. nke a и nke a, nke mere ka VDF dịkwuo irè na omume, na Ethereum 2.0 na-ezube iji RNDAO na VDF dị ka ọnụọgụ ọnụọgụgụ na ogologo oge. Ewezuga n'eziokwu na usoro a bụ ihe a na-atụghị anya ya na enweghị mmasị, ọ nwere uru bara uru nke ịbụ onye nwere ike ime ma ọ bụrụ na ọ dịkarịa ala mmadụ abụọ dị na netwọk (na-eche na nkwekọrịta nkwekọrịta ejiri mee ihe mgbe ị na-emeso ọnụ ọgụgụ dị nta nke ndị sonyere).

Ihe ịma aka kasịnụ nke ụzọ a bụ ịtọlite ​​​​VDF nke na ọbụna onye so na ya nwere ngwaike pụrụ iche dị oke ọnụ agaghị enwe ike ịgbakọ VDF tupu njedebe nke usoro nchọpụta ahụ. Dị ka o kwesịrị, algọridim kwesịrị ịnwe oke nchekwa dị mkpa, kwuo 10x. Ọnụ ọgụgụ dị n'okpuru ebe a na-egosi mwakpo nke onye na-eme ihe nkiri nwere ASIC pụrụ iche nke na-enye ya ohere ịgba ọsọ VDF ngwa ngwa karịa oge ekenyela iji kpughee nkwenye RNDAO. Onye so na ya ka nwere ike gbakọọ nsonaazụ ikpeazụ site na iji ma ọ bụ na-ejighị nọmba ya, mgbe ahụ, dabere na ngụkọta oge, họrọ ma ọ ga-egosi ya ma ọ bụ na ọ gaghị.

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 1

Maka ezinụlọ VDF ndị a kpọtụrụ aha n'elu, arụmọrụ nke ASIC raara onwe ya nye nwere ike ịdị elu 100+ karịa ngwa ngwa. Ya mere, ọ bụrụ na oge ntinye aka na-adị 10 sekọnd, mgbe ahụ, VDF gbakọrọ na ASIC dị otú ahụ ga-ewe ihe karịrị 100 sekọnd iji nweta oke nchekwa 10x, ya mere otu VDF a gbakọrọ na ngwaike ngwa ahịa ga-ewe 100x 100 sekọnd = ~ 3 awa.

Ntọala Ethereum na-ezube idozi nsogbu a site n'ịmepụta onwe ya n'ihu ọha, ASIC n'efu. Ozugbo nke a mere, usoro iwu ndị ọzọ niile nwekwara ike iji nkà na ụzụ a mee ihe, ma ruo mgbe ahụ, usoro RNDAO + VDF agaghị adị irè maka ụkpụrụ ndị na-enweghị ike itinye ego na ịmepụta ASIC nke ha.

Achịkọtala ọtụtụ akụkọ, vidiyo na ozi ndị ọzọ gbasara VDF saịtị a.

Anyị na-eji koodu ihichapụ

N'akụkụ a, anyị ga-eleba anya n'usoro usoro ọgbọ nke ọnụọgụ ọnụọgụ nke na-eji Koodu ihichapụ. Ọ nwere ike ịnabata ihe ruru ndị na-awakpo ⅓ ka ha ka na-adị mma, ma na-enye ohere ka ndị na-awakpo ⅔ dịrị tupu ha enwee ike ịkọ ma ọ bụ mebie nsonaazụ ya.

Isi echiche nke protocol bụ ndị a. Maka mfe, ka anyị were na e nwere ndị sonyere otu narị. Ka anyị werekwa na ndị niile sonyere na mpaghara nwere igodo nzuzo, na igodo ọha nke ndị niile sonyere bụ ndị niile sonyere:

  1. Onye ọ bụla so na mpaghara ahụ na-ewepụta eriri ogologo, gbajie ya n'ime akụkụ 67, mepụta koodu ihichapụ iji nweta 100 mbak nke na 67 ọ bụla zuru ezu iji nwetaghachi eriri ahụ, nye onye ọ bụla n'ime 100 mbak na otu n'ime ndị sonyere, wee zoo ha na nzuzo. igodo ọha otu onye so na ya. A na-ebipụta mbak niile etinyere.

  2. Ndị so na ya na-eji ụdị nkwenye dị iche iche nweta nkwekọrịta na koodu ederede sitere na ndị sonyere 67 akọwapụtara.

  3. Ozugbo e nwetara nkwenye, onye ọ bụla so na ya na-ewere òkè ezoro ezo na nke ọ bụla n'ime usoro 67 ahụ ejiri igodo ọha ha ezoro ezo, wepụ ihe niile dị otú ahụ, ma bipụta òkè niile ezoro ezo.

  4. Ozugbo ndị sonyere 67 mechara nzọụkwụ (3), enwere ike dezie usoro niile ekwenyero ma wughachi ya n'ihi njirimara nke koodu mkpochapụ, enwere ike nweta ọnụọgụ ikpeazụ dị ka XOR nke ahịrị mbụ nke ndị sonyere malitere na (1) .

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 1

Enwere ike igosi protocol a enweghị mmasị na enweghị atụ. A na-ekpebi ọnụọgụ enweghị usoro ga-esi na ya pụta mgbe emechara nkwenye, mana ọ bụghị onye ọ bụla maara ruo mgbe ⅔ ndị sonyere na igodo ọha ha ezoro ezoro ezo. Ya mere, a na-ekpebi ọnụọgụ na-enweghị usoro tupu ebipụta ozi zuru ezu iji wughachi ya.

Kedu ihe ga - eme ma ọ bụrụ na nzọụkwụ (1) otu n'ime ndị sonyere zigara ndị ọzọ so na ha na-abụghị koodu mkpochapụ ziri ezi maka ụfọdụ eriri? Enweghị mgbanwe ndị ọzọ, ndị sonyere dị iche iche agaghị enwe ike iweghachi eriri ahụ ma ọlị, ma ọ bụ na ha ga-agbake ụdọ dị iche iche, nke ga-eme ka ndị sonyere dị iche iche nweta nọmba ọnụọgụ dị iche. Iji gbochie nke a, ị nwere ike ime ihe ndị a: onye ọ bụla so na ya, na mgbakwunye na mbak edenyekwara, na-agbakọkwa. Osisi Merkla niile dị otú ahụ mbak, na-eziga onye ọ bụla so na ma ndị encoded òkè onwe ya na mgbọrọgwụ nke merkle osisi, na ihe àmà nke nsonye nke òkè na merkle osisi. Na otutu mmadu kwenyere na nzọụkwụ (2), ndị sonyere mgbe ahụ ọ bụghị nanị na-ekweta na a set nke tent, ma na a set nke kpọmkwem mgbọrọgwụ nke osisi ndị dị otú ahụ (ma ọ bụrụ na ụfọdụ soònye deviated si protocol, na zitere dị iche iche merkle osisi mgbọrọgwụ dị iche iche sonyere, na abụọ dị otú ahụ mgbọrọgwụ na-egosi n'oge nkwenye, ya ahịrị na-adịghị gụnyere na N'ihi set). N'ihi nke otutu mmadu kwenyere, anyị ga-enwe 67 encoded ahịrị na kwekọrọ ekwekọ mgbọrọgwụ osisi merkle dị otú ahụ na e nwere ma ọ dịkarịa ala 67 sonyere (ọ bụchaghị otu ndị tụrụ aro kwekọrọ ekwekọ), onye ọ bụla nke 67 ahịrị nwere. ozi nwere òkè nke koodu mkpochapụ, na ihe akaebe na-egosi na ha nwere òkè na osisi kwekọrọ ekwekọ.

Mgbe na nzọụkwụ (4) onye so na ya deciphers 67 na-akụ maka ụfọdụ eriri wee gbalịa ịmaliteghachi eriri mbụ site na ha, otu n'ime nhọrọ ga-ekwe omume:

  1. A na-eweghachi eriri ahụ, ma ọ bụrụ na a na-ehichapụ ya ọzọ, a na-agbakọkwa osisi Merkle maka òkè ndị a na-agbakọ na mpaghara, mgbọrọgwụ na-adaba na nke a kwadoro nkwenye.

  2. A na-eweghachi ahịrị ahụ, mana mgbọrọgwụ a gbakọrọ n'ime obodo adabaghị n'ụdị nkwekọrịta ahụ.

  3. Ahịrị anaghị eweghachi.

Ọ dị mfe igosi na ọ bụrụ na nhọrọ (1) mere maka opekata mpe otu onye sonyere n'elu, mgbe ahụ nhọrọ (1) mere maka ndị niile sonyere, na nke ọzọ, ọ bụrụ na nhọrọ (2) ma ọ bụ (3) mere opekata mpe otu onye so na ya, mgbe ahụ maka ndị niile sonyere nhọrọ (2) ma ọ bụ (3) ga-eme. Ya mere, maka ahịrị ọ bụla dị na setịpụ, ma ndị niile sonyere ga-enwetaghachi ya nke ọma, ma ọ bụ ndị niile sonyere agaghị enwetaghachi ya. Nọmba enweghị usoro arụpụta bụ XOR nke naanị ahịrị ndị sonyere na-enwetaghachi.

mbinye aka oke

Ụzọ ọzọ maka enweghị usoro bụ iji ihe akpọrọ BLS mbinye aka. Onye na-emepụta nọmba enweghị usoro dabere na mbinye aka ọnụ ụzọ nwere otu nkwa ahụ dị ka algọridim nke koodu ihichapụ akọwara n'elu, mana ọ nwere ọnụọgụ asymptotic dị obere nke ezigara na netwọk maka ọnụọgụ ọ bụla emepụtara.

Mbinye aka BLS bụ atụmatụ na-enye ọtụtụ ndị sonyere aka ịmepụta otu mbinye aka maka ozi. A na-ejikarị mbinye aka ndị a iji chekwaa ohere na bandwit site n'ịchọghị ka ezipụ ọtụtụ mbinye aka. 

Ngwa a na-ahụkarị maka mbinye aka BLS na blockchain protocols, na mgbakwunye na iwepụta ọnụọgụ ọnụọgụ, bụ ngọngọ mbinye aka na ụkpụrụ BFT. Ka anyị kwuo na ndị sonyere 100 na-emepụta ngọngọ, a na-ewerekwa ngọngọ nke ikpeazụ ma ọ bụrụ na 67 n'ime ha bịanyere aka na ya. Ha niile nwere ike nyefee akụkụ ha nke mbinye aka BLS wee jiri ụfọdụ nkwekọrịta nkwekọrịta kwenye na 67 n'ime ha wee jikọta ha na otu mbinye aka BLS. Enwere ike iji akụkụ 67 (ma ọ bụ karịa) mee ihe iji mepụta mbinye aka ikpeazụ, nke ga-adabere na nke 67 mbinye aka jikọtara ya mere nwere ike ịdị iche iche, ọ bụ ezie na nhọrọ dị iche iche nke ndị sonyere 67 ga-emepụta mbinye aka dị iche , ụdị mbinye aka ọ bụla ga-abụ ihe ziri ezi. mbinye aka maka ngọngọ. Ndị ọzọ so na ya kwesịrị ịnata na nyochaa naanị otu mbinye aka kwa ngọngọ, kama 67, n'elu netwọk, nke na-ebelata ibu na netwọk.

Ọ na-apụta na ọ bụrụ na emepụtara igodo nzuzo nke ndị sonyere na-eji n'ụzọ ụfọdụ, n'agbanyeghị mbinye aka 67 (ma ọ bụ karịa, ma ọ bụghị obere) agbakọtara, mbinye aka ga-esi na ya pụta ga-abụ otu. Enwere ike iji nke a mee ihe dị ka isi iyi nke randomness: ndị sonyere na-ebu ụzọ kwenye na ụfọdụ ozi na ha ga-abanye (nke a nwere ike ịbụ mmepụta nke RNDAO ma ọ bụ naanị hash nke ngọngọ ikpeazụ, ọ dịghị mkpa n'ezie ma ọ bụrụhaala na ọ na-agbanwe oge ọ bụla. ma na-agbanwe agbanwe) ma mepụta mbinye aka BLS maka ya. Nsonaazụ nke ọgbọ ahụ ga-abụ ihe a na-atụghị anya ya ruo mgbe ndị na-eso 67 na-enye akụkụ ha, mgbe nke ahụ gasịrị, a kara aka na mmepụta na enweghị ike ịdabere na omume nke onye ọ bụla so na ya.

Usoro a maka enweghị usoro ga-ekwe omume ma ọ bụrụhaala na opekata mpe ⅔ nke ndị sonyere na ntanetị, ha abụọ na-agbaso ụkpụrụ ahụ, na enweghị mmasị na enweghị atụ ma ọ bụrụhaala na opekata mpe ⅓ nke ndị sonyere na-agbaso ụkpụrụ ahụ. Ọ dị mkpa ịmara na onye na-awakpo nke na-achịkwa ihe karịrị ⅓ mana ihe na-erughị ⅔ nke ndị sonyere nwere ike ịkwụsị protocol, mana enweghị ike ịkọ ma ọ bụ imetụta mmepụta ya.

mbinye aka ọnụ ụzọ n'onwe ya bụ isiokwu na-atọ ụtọ nke ukwuu. N'akụkụ nke abụọ nke isiokwu ahụ, anyị ga-enyocha n'ụzọ zuru ezu ka ha si arụ ọrụ, yana otu ọ dị mkpa ka ịmepụta igodo ndị so na ya ka e wee nwee ike iji akara mbinye aka dị ka onye na-emepụta ọnụọgụ nọmba.

N'ikpeazụ

Edemede a bụ nke mbụ n'ime usoro isiokwu blọgụ teknụzụ NEAR. NEAR bụ usoro blockchain na ikpo okwu maka ịmepụta ngwa ndị etinyere n'otu n'otu na-emesi ike na ịdị mfe mmepe yana ịdị mfe iji maka ndị ọrụ njedebe.

The protocol code na-emeghe, anyị mmejuputa iwu e dere na Rust, ọ nwere ike ịchọta ebe a.

Ị nwere ike ịhụ ihe mmepe maka NEAR dị ka wee nwalee na IDE dị n'ịntanetị ebe a.

Ị nwere ike soro akụkọ niile na Russian na otu telegram na na otu na VKontakte, na n'asụsụ Bekee n'asụsụ gọọmentị twitter.

Ka ahụ oge n'adịghị anya!

isi: www.habr.com

Tinye a comment