Hiki paha ke hana i nā helu maʻamau inā ʻaʻole mākou hilinaʻi kekahi i kekahi? Mahele 1

E Habr!

Ma kēia ʻatikala e kamaʻilio wau e pili ana i ka hanauna o nā helu pseudo-random e nā poʻe i hilinaʻi ʻole kekahi i kekahi. E like me kā mākou e ʻike ai ma lalo nei, maʻalahi ka hoʻokō ʻana i kahi mea hana "kokoke" maikaʻi, akā paʻakikī kahi mea maikaʻi loa.

No ke aha e pono ai e hoʻopuka i nā helu maʻamau i waena o nā poʻe i hilinaʻi ʻole kekahi i kekahi? Hoʻokahi wahi noi ʻo nā noi decentralized. No ka laʻana, ʻo kahi noi e ʻae i ka bet mai kahi mea komo a pāpālua i ka nui me ka 49% probability a i ʻole ka lawe ʻana me ka probability 51% e hana wale nō inā hiki iā ia ke loaʻa i kahi helu maʻamau. Inā hiki i ka mea hoʻouka ke hoʻoikaika i ka hopena o ka mea hoʻopuka helu maʻamau, a hoʻonui iki i kona manawa e loaʻa ai kahi uku ma ka noi, e hoʻopau maʻalahi ʻo ia.

Ke hoʻolālā mākou i kahi protocol generation generation, makemake mākou e loaʻa iā ia ʻekolu mau waiwai:

  1. Pono ʻo ia e ʻae ʻole. I nā huaʻōlelo ʻē aʻe, ʻaʻohe mea komo e hoʻohuli i ka hopena o ka mea hoʻoheheʻe helu random.

  2. Pono ʻole ʻo ia e wānana. Ma nā huaʻōlelo ʻē aʻe, ʻaʻohe mea komo e hiki ke wānana i ka helu e hana ʻia (a i ʻole e hoʻohālikelike i kekahi o kāna mau waiwai) ma mua o ka hana ʻia ʻana.

  3. Pono pono ka protocol, ʻo ia hoʻi, kūʻē i ka ʻoiaʻiʻo o ka haʻalele ʻana o kekahi hapa o nā mea komo mai ka pūnaewele a i ʻole e hoʻāʻo e hoʻōki i ka protocol.

Ma kēia ʻatikala e nānā mākou i ʻelua ala: RANDAO + VDF a me nā code erasure. Ma ka ʻāpana aʻe, e nānā kikoʻī mākou i ke ala e pili ana i nā pūlima paepae.

Akā ʻo ka mea mua, e nānā kāua i kahi algorithm maʻalahi a hoʻohana maʻamau i hiki ke ʻike ʻia, ʻike ʻole ʻia, akā pili ʻole.

RANDAO

He mea maʻalahi loa ʻo RANDAO a no laila e hoʻohana mau ʻia i ka hana ʻana i ka randomness. E koho mua nā mea hui pūnaewele i kahi helu pseudorandom, a laila hoʻouna kēlā me kēia mea i ka hash o ka helu i koho ʻia. A laila, huli ka poʻe hui e hōʻike i kā lākou mau helu i koho ʻia a hana i kahi hana XOR ma nā helu i hōʻike ʻia, a lilo ka hopena o kēia hana i ka hopena o ka protocol.

ʻO ka pae o ka paʻi ʻana i nā hashes ma mua o ka hōʻike ʻana i nā helu he mea pono ia i hiki ʻole i ka mea hoʻouka ke koho i kāna helu ma hope o kona ʻike ʻana i nā helu o nā mea ʻē aʻe. ʻAe kēia iā ia e hoʻoholo hoʻokahi i ka hoʻopuka ʻana o ka mea hoʻoheheʻe helu random.

I ka wā o ka protocol, pono nā poʻe e komo i kahi hoʻoholo maʻamau (i kapa ʻia ʻo consensus) ʻelua: i ka wā e hoʻomaka ai e hōʻike i nā helu i koho ʻia, a no laila e hoʻōki i ka ʻae ʻana i nā hashes, a i ka wā e hoʻōki ai i ka ʻae ʻana i nā helu i koho ʻia a me ka helu ʻana i ka hopena. helu. ʻO ka hoʻoholo ʻana i kēlā mau hoʻoholo ma waena o nā poʻe i hilinaʻi ʻole kekahi i kekahi, ʻaʻole ia he hana maʻalahi iā ia iho, a e hoʻi mākou iā ia i nā ʻatikala e hiki mai ana; ma kēia ʻatikala e manaʻo mākou ua loaʻa iā mākou kahi algorithm consensus.

ʻO wai o nā waiwai a mākou i hōʻike ai ma luna nei iā RANDAO? ʻAʻole hiki ke manaʻo ʻia, loaʻa i ka ikaika like me ka protocol consensus underlying, akā ʻo ia ke ʻano. Ma keʻano kūikawā, hiki i ka mea hoʻouka ke nānā i ka pūnaewele, a ma hope o ka hōʻikeʻana o nā poʻe'ē aʻe i kā lākou helu, hiki iā ia ke helu i kā lākou XOR, a hoʻoholo i ka hōʻikeʻana i kāna helu e hoʻoikaika i ka hopena. ʻOiai ke pale nei kēia i ka mea hoʻouka mai ka hoʻoholo ʻana i ka hoʻopuka o ka mea hoʻoheheʻe helu maʻamau, hāʻawi mau iā ia i 1 mau mana. A inā e hoʻomalu ka poʻe hoʻouka i kekahi mau mea komo, a laila e like ka helu o nā bits a lākou e mālama ai me ka helu o nā mea komo ma lalo o kā lākou mana.

Hiki paha ke hana i nā helu maʻamau inā ʻaʻole mākou hilinaʻi kekahi i kekahi? Mahele 1

Hiki ke hoʻemi nui ʻia ka mana o ka poʻe hoʻouka kaua ma ke koi ʻana i nā mea komo e hōʻike i nā helu ma ke ʻano. A laila hiki i ka mea hoʻouka ke hoʻoikaika i ka hopena inā wehe ʻia ma hope. ʻOiai ʻoi aku ka liʻiliʻi o ka hopena, ʻoi aku ka ʻino o ka algorithm.

RANDAO+VDF

ʻO kahi ala e hoʻokaʻawale ʻole ai iā RANDAO, ʻo ia kēia: ma hope o ka hōʻike ʻia ʻana o nā helu āpau a helu ʻia ka XOR, hāʻawi ʻia kāna hopena i loko o ka hoʻokomo o kahi hana, e lōʻihi loa ka manawa e helu ai, akā hiki iā ʻoe ke nānā i ka pololei o ka. helu wikiwiki loa.

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

Kapa ʻia kēia hana ʻo Verifiable Delay Function, a i ʻole VDF. Inā ʻoi aku ka lōʻihi o ka helu ʻana i ka hopena hope ma mua o ka pae hōʻike helu, a laila ʻaʻole hiki i ka mea hoʻouka ke wānana i ka hopena o ka hōʻike ʻana a huna ʻana paha i kāna helu, a no laila e nalowale ʻo ia i ka manawa e hoʻohuli ai i ka hopena.

He paʻakikī loa ka hoʻomohala ʻana i nā VDF maikaʻi. He nui nā mea hoʻokō i kēia manawa, e.g. kēia и keia, ka mea i hoʻohana i ka VDF i ʻoi aku ka hoʻomaʻamaʻa, a hoʻolālā ʻo Ethereum 2.0 e hoʻohana iā RANDAO me VDF ma ke ʻano he kumu helu maʻamau i ka wā lōʻihi. Ma waho aʻe o ka ʻike ʻole ʻana o kēia ala a me ka ʻole ʻole, loaʻa iā ia ka pōmaikaʻi hou o ka hiki ke hiki ke loaʻa ma ka liʻiliʻi o ʻelua mau mea komo ma ka pūnaewele (e manaʻo ʻia e hiki ke hoʻohana ʻia ka protocol consensus i ka wā e pili ana i kahi helu liʻiliʻi o nā mea komo).

ʻO ka paʻakikī nui loa o kēia ala ʻo ka hoʻonohonoho ʻana i ka VDF i hiki ʻole i kahi mea komo me nā lako loea kūikawā ke helu i ka VDF ma mua o ka pau ʻana o ka pae ʻike. ʻO ke kūpono, pono e loaʻa i ka algorithm kahi palena palekana koʻikoʻi, e ʻōlelo iā 10x. Hōʻike ka kiʻi ma lalo nei i ka hoʻouka ʻana o kahi mea hana i loaʻa kahi ASIC kūikawā e hiki ai iā ia ke holo wikiwiki i kahi VDF ma mua o ka manawa i hāʻawi ʻia e hōʻike i ka hōʻoia RANDAO. Hiki i kēlā me kēia mea ke helu i ka hopena hope me ka hoʻohana ʻana a i ʻole ka hoʻohana ʻana i kāna helu, a laila, ma muli o ka helu ʻana, koho i ka hōʻike ʻana a i ʻole.

Hiki paha ke hana i nā helu maʻamau inā ʻaʻole mākou hilinaʻi kekahi i kekahi? Mahele 1

No ka ʻohana VDF i ʻōlelo ʻia ma luna nei, hiki i ka hana o kahi ASIC i hoʻolaʻa ʻia ke 100+ mau manawa kiʻekiʻe ma mua o nā lako hana maʻamau. No laila, inā he 10 kekona ka manawa hōʻike, a laila pono ka VDF i helu ʻia ma ia ASIC e ʻoi aku ma mua o 100 kekona no ka loaʻa ʻana o kahi palena palekana 10x, a no laila ʻo ka VDF i helu ʻia ma nā lako waiwai pono e lawe i 100x 100 kekona = ~3 hola.

Hoʻolālā ka Ethereum Foundation e hoʻoponopono i kēia pilikia ma o ka hoʻokumu ʻana i kāna mau ASIC i loaʻa i ka lehulehu. Ke hiki mai kēia, hiki i nā protocols ʻē aʻe ke hoʻohana pono i kēia ʻenehana, akā a hiki i ia manawa ʻaʻole hiki ke hoʻohana ʻia ka RANDAO+VDF no nā protocols ʻaʻole hiki ke hoʻolilo i ka hoʻomohala ʻana i kā lākou mau ASIC.

Nui nā ʻatikala, wikiō a me nā ʻike ʻē aʻe e pili ana iā VDF i hōʻiliʻili ʻia ma kēia pūnaewele.

Hoʻohana mākou i nā code erasure

Ma kēia ʻāpana, e nānā mākou i kahi protocol generation number random e hoʻohana nei holoi i nā code. Hiki iā ia ke ʻae a hiki i ka ⅓ mau mea hoʻouka ʻoiai e noho mau ana, a hiki i ka ⅔ mau mea hoʻouka kaua e noho ma mua o ka hiki ke wānana a hoʻololi paha i ka hopena.

ʻO ka manaʻo nui o ka protocol penei. No ka maʻalahi, e noʻonoʻo kākou he 100 mau mea komo. E noʻonoʻo nō hoʻi kākou he kī pilikino nā mea komo a pau ma ka ʻāina, a ua ʻike ʻia nā kī ākea o nā mea komo a pau e nā mea komo.

  1. Hoʻopili ʻia kēlā me kēia mea komo i kahi kaula lōʻihi, wāwahi iā ia i 67 mau ʻāpana, hana i nā code holoi ʻia e loaʻa ai nā ʻāpana 100 i lawa ai nā 67 e hoʻihoʻi i ke kaula, hāʻawi i kēlā me kēia o nā ʻāpana 100 i kekahi o nā mea komo, a hoʻopili iā lākou me ka kī lehulehu o ka mea komo like. Hoʻopuka ʻia nā ʻāpana hoʻopaʻa ʻia a pau.

  2. Hoʻohana nā mea komo i kekahi ʻano kuʻikahi e loaʻa ai ka ʻaelike ma nā pūʻulu coded mai 67 mau mea komo.

  3. Ke loaʻa ka ʻae ʻana, lawe kēlā me kēia mea i nā ʻāpana i hoʻopaʻa ʻia i kēlā me kēia o nā pūʻulu 67 i hoʻopili ʻia me kā lākou kī lehulehu, wehe i nā ʻāpana āpau, a hoʻolaha i kēlā mau ʻāpana decrypted.

  4. I ka pau ana o ka 67 mau mea komo i ka hana (3), hiki ke wehe a hana hou ia na hoonohonoho a pau ma muli o na waiwai o na code holoi, a hiki ke loaa ka helu hope ma ke ano he XOR o na lalani mua i hoomaka ai na mea komo ma (1) .

Hiki paha ke hana i nā helu maʻamau inā ʻaʻole mākou hilinaʻi kekahi i kekahi? Mahele 1

Hiki ke hōʻike ʻia kēia protocol me ka ʻole a me ka ʻike ʻole. Hoʻoholo ʻia ka helu maʻamau ma hope o ka loaʻa ʻana o ka ʻae ʻana, akā ʻaʻole ʻike ʻia e kekahi a hiki i ka ⅔ o nā mea komo e hoʻokaʻawale i nā ʻāpana i hoʻopili ʻia me kā lākou kī lehulehu. No laila, hoʻoholo ʻia ka helu maʻamau ma mua o ka paʻi ʻia ʻana o ka ʻike i lawa no ke kūkulu hou ʻana.

He aha ka hopena inā ma ka ʻanuʻu (1) hoʻouna kekahi o nā mea komo i nā ʻāpana i hoʻopaʻa ʻia i nā poʻe ʻē aʻe ʻaʻole ke code holoi pono no kekahi kaula? Me ka ʻole o nā hoʻololi hou, ʻaʻole hiki i nā mea komo ʻokoʻa ke hoʻihoʻi hou i ke kaula, a i ʻole e hoʻihoʻi hou i nā kaula like ʻole, a laila e loaʻa i nā poʻe ʻokoʻa kahi helu ʻokoʻa. No ka pale ʻana i kēia, hiki iā ʻoe ke hana i kēia: kēlā me kēia mea komo, me ka hoʻohui ʻana i nā ʻāpana i hoʻopaʻa ʻia, helu pū kekahi. lāʻau Merkla ʻO ia mau ʻāpana a pau, a hoʻouna i kēlā me kēia hui i ka ʻāpana i hoʻopaʻa ʻia iā ia iho a me ke kumu o ka lāʻau merkle, a me ka hōʻoia o ke komo ʻana o ka ʻāpana i ka lāʻau merkle. I ka ʻae ʻana i ka ʻanuʻu (2), ʻaʻole ʻae wale nā ​​mea komo i kahi pūʻulu o nā pūʻulu, akā ma kahi pūʻulu o nā aʻa kikoʻī o ia mau kumulāʻau (inā i haʻalele kekahi mea komo mai ka protocol, a hoʻouna i nā aʻa lāʻau merkle ʻokoʻa i nā hui like ʻole. a ʻelua mau aʻa i hōʻike ʻia i ka wā o ka ʻae ʻana, ʻaʻole i hoʻokomo ʻia kāna lālani i ka hoʻonohonoho hopena). Ma muli o ka ʻae ʻana, e loaʻa iā mākou nā laina 67 i hoʻopaʻa ʻia a me nā aʻa e pili ana i ka lāʻau merkle i loaʻa ma kahi o 67 mau mea komo (ʻaʻole pono nā mea like i manaʻo i nā laina pili), no kēlā me kēia laina he 67. he memo me ka mahele o ke code erasure, a me ka mea e hoike ana i ka hele ana o ko lakou mahele i ka laau e pili ana.

Aia ma ka ʻanuʻu (4) wehewehe ka mea komo i 67 beats no kekahi kaula a hoʻāʻo e hana hou i ke kaula kumu mai ia mau mea, hiki i kekahi o nā koho:

  1. Hoʻihoʻi ʻia ke kaula, a inā e holoi hou ʻia, a helu ʻia ka lāʻau Merkle no nā ʻāpana i helu ʻia ma ka ʻāina, ua like ke kumu me ka mea i ʻae ʻia.

  2. Hoʻihoʻi hou ʻia ka lālani, akā ʻaʻole i kūlike ke kumu i helu ʻia ma ka wahi i loaʻa ai ka ʻae.

  3. ʻAʻole i hoʻihoʻi ʻia ka lālani.

He mea maʻalahi ka hōʻike ʻana inā loaʻa ke koho (1) no ka liʻiliʻi o hoʻokahi mea i komo ma luna, a laila ua loaʻa ke koho (1) no nā mea komo a pau, a ʻo ia hoʻi, inā loaʻa ke koho (2) a i ʻole (3) no hoʻokahi mea komo, a laila no nā mea komo a pau e hiki ke koho (2) a i ʻole (3). No laila, no kēlā me kēia lālani i ka hoʻonohonoho, e hoʻihoʻi maikaʻi ʻia nā mea komo a pau, a i ʻole nā ​​​​poʻe komo a pau e hoʻihoʻi. ʻO ka helu random ka hopena he XOR o nā lālani wale nō i hiki i nā mea komo ke hoʻihoʻi.

Pulima paepae

ʻO kahi ala ʻē aʻe i ka randomness ʻo ka hoʻohana ʻana i ka mea i kapa ʻia ʻo BLS threshold signatures. ʻO kahi mea hoʻoheheʻe helu maʻamau e pili ana i nā pūlima paepae ua like nā hōʻoia like me ka algorithm e pili ana i ka code erasure i hōʻike ʻia ma luna, akā he helu asymptotic haʻahaʻa loa o nā memo i hoʻouna ʻia ma luna o ka pūnaewele no kēlā me kēia helu i hana ʻia.

ʻO nā pūlima BLS kahi hoʻolālā e hiki ai i nā mea komo ke hana i hoʻokahi pūlima maʻamau no kahi leka. Hoʻohana pinepine ʻia kēia mau pūlima e mālama i ka lewa a me ka bandwidth ma o ka koi ʻole ʻana i nā pūlima he nui e hoʻouna ʻia. 

ʻO kahi noi maʻamau no nā pūlima BLS i nā protocol blockchain, i ka hoʻohui ʻana i nā helu maʻamau, ʻo ia ke kau inoa ʻana i nā protocol BFT. E ʻōlelo kākou he 100 ka poʻe i hana i nā poloka, a ua manaʻo ʻia kahi poloka inā he 67 o lākou e kau inoa. Hiki iā lākou ke waiho i kā lākou mau ʻāpana o ka pūlima BLS a hoʻohana i kekahi algorithm consensus e ʻae i ka 67 o lākou a laila hoʻohui iā lākou i hoʻokahi pūlima BLS. Hiki ke hoʻohana ʻia nā ʻāpana 67 (a ʻoi aku paha) e hana i ka pūlima hope, e hilinaʻi ʻia i ka hui ʻana o 67 mau pūlima a no laila e ʻokoʻa paha, ʻoiai nā koho like ʻole a nā mea komo 67 e hana i kahi pūlima ʻokoʻa pūlima no ka poloka. Pono nā mea i koe e loaʻa a hōʻoia i hoʻokahi wale nō pūlima no kēlā me kēia poloka, ma kahi o 67, ma luna o ka pūnaewele, kahi e hōʻemi nui ai i ka ukana ma ka pūnaewele.

ʻIke ʻia inā hana ʻia nā kī pilikino i hoʻohana ʻia e nā poʻe komo, a laila ʻaʻohe mea e hōʻuluʻulu ʻia nā pūlima 67 (a ʻoi aku, akā ʻaʻole liʻiliʻi), e like nō ka hopena. Hiki ke hoʻohana ʻia kēia ma ke ʻano he kumu o ka randomness: ʻae mua nā mea komo i kekahi memo a lākou e kau inoa ai (ʻo ia paha ka hopena o RANDAO a i ʻole ka hash o ka poloka hope loa, ʻaʻole ia he mea nui ke loli i kēlā me kēia manawa. a kūpaʻa) a hana i kahi pūlima BLS no ia. ʻAʻole hiki ke ʻike ʻia ka hopena o ka hanauna a hiki i ka hāʻawi ʻana o nā mea komo 67 i kā lākou mau ʻāpana, a ma hope o ia mea ua hoʻoholo mua ʻia ka hopena a ʻaʻole hiki ke hilinaʻi i nā hana a kekahi mea komo.

Hiki ke hoʻohana ʻia kēia ala i ka randomness inā lōʻihi ka liʻiliʻi o ⅔ o ka poʻe i komo ma ka pūnaewele e hahai ana i ka protocol, a ʻaʻole kūlike a ʻike ʻole ʻia inā lōʻihi ka liʻiliʻi o ⅓ o ka poʻe i komo i ka protocol. He mea nui e hoʻomaopopo i ka mea hoʻouka kaua e hoʻomalu i ka ʻoi aku ma mua o ⅓ akā ʻoi aku ka liʻiliʻi ma mua o ⅔ o nā mea komo hiki ke hoʻōki i ka protocol, akā ʻaʻole hiki ke wānana a hoʻololi i kāna huahana.

He kumuhana hoihoi loa nā pūlima paepae. Ma ka ʻaoʻao ʻelua o ka ʻatikala, e loiloi mākou i nā kikoʻī pehea e hana ai lākou, a pehea e pono ai ka hoʻopuka ʻana i nā kī komo i hiki ke hoʻohana ʻia nā pūlima paepae ma ke ʻano he mea hoʻopuka helu maʻamau.

I ka hopena

ʻO kēia ʻatikala ka mea mua ma kahi pūʻulu o nā ʻatikala blog loea Kokoke. ʻO NEAR kahi protocol blockchain a me ka paepae no ka hoʻomohala ʻana i nā noi decentralized me ka manaʻo nui i ka maʻalahi o ka hoʻomohala ʻana a me ka maʻalahi o ka hoʻohana ʻana no nā mea hoʻohana hope.

Ua wehe ʻia ka code protocol, ua kākau ʻia kā mākou hoʻokō ma Rust, hiki ke loaʻa maanei.

Hiki iā ʻoe ke ʻike i ke ʻano o ka hoʻomohala ʻana no NEAR a hoʻokolohua i ka IDE pūnaewele maanei.

Hiki iā ʻoe ke hahai i nā nūhou a pau ma ka ʻōlelo Lūkini ma hui telegrama a i hui ma VKontakte, a ma ka ʻōlelo Pelekania ma ka oihana twitter.

A hui hou koke iā 'oe!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka