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

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

E Habr!

В ʻO ka hapa mua Ma kēia ʻatikala, ua kūkākūkā mākou no ke aha e pono ai ke hoʻohua i nā helu maʻamau no nā poʻe i hilinaʻi ʻole kekahi i kekahi, he aha nā koi i kau ʻia i mua no ia mau mea hoʻomohala helu maʻamau, a noʻonoʻo ʻia ʻelua ala e hoʻokō ai.

Ma kēia ʻāpana o ka ʻatikala, e nānā pono mākou i kahi ala ʻē aʻe e hoʻohana ana i nā pūlima paepae.

He wahi cryptography

I mea e hoʻomaopopo ai i ka hana ʻana o nā pūlima paepae, pono ʻoe e hoʻomaopopo i kahi cryptography kumu. E hoʻohana mākou i ʻelua manaʻo: scalars, a i ʻole nā ​​helu maʻalahi, a mākou e kuhikuhi ai ma nā leka liʻiliʻi (x, y) a me nā kiko ma ka ʻaoʻao elliptic, a mākou e hōʻike ai ma nā huapalapala nui.

No ka hoʻomaopopo ʻana i ke kumu o nā pūlima paepae, ʻaʻole pono ʻoe e hoʻomaopopo i ke ʻano o ka hana ʻana o nā pihi elliptic, ʻokoʻa kekahi mau mea maʻamau:

  1. Hiki ke hoʻohui a hoʻonui ʻia nā kiko ma kahi ʻāpana elliptic me kahi scalar (e hōʻike mākou i ka hoʻonui ʻana me kahi scalar e like me xG, ʻoiai ka notation Gx hoʻohana pinepine ʻia ma ka palapala). ʻO ka hopena o ka hoʻohui ʻana a me ka hoʻonui ʻana me kahi scalar he kiko ma kahi ʻāpana elliptic.

  2. ʻO ka ʻike wale nō G a me kāna huahana me ka scalar xG hiki ole ke helu x.

E hoʻohana pū mākou i ka manaʻo o kahi polynomial p(x) degrees k-1. ʻO ka mea nui, e hoʻohana mākou i kēia waiwai o nā polynomial: inā ʻike mākou i ka waiwai p(x) no kekahi k kekahi mau x (a ʻaʻohe mākou ʻike hou e pili ana p(x)), hiki iā mākou ke helu p(x) no kekahi x.

He mea hoihoi ia no kēlā me kēia polynomial p(x) a me kekahi kiko ma ka piko Gka ike ana i ke ano p(x)G no kekahi k manaʻo like ʻole x, hiki iā mākou ke helu p(x)G no kekahi x.

He lawa kēia ʻike e ʻeli ai i nā kikoʻī o ka hana ʻana o nā pūlima paepae a pehea e hoʻohana ai iā lākou e hana i nā helu maʻamau.

Mea hoʻopuka helu maʻamau ma nā pūlima paepae

E ʻōlelo kākou pēlā n makemake nā mea komo e hana i kahi helu maʻamau, a makemake mākou e komo kekahi k ua lawa lākou e hoʻonui i ka helu, akā i hiki i nā mea hoʻouka ke hoʻomalu k-ʻAʻole hiki i nā mea komo liʻiliʻi ke wānana a hoʻololi paha i ka helu i hana ʻia.

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

Inā paha he polynomial kēlā p(x) degrees k-1 ka mea a ka mea komo mua i ike p (1), ike ka lua p(2), a laila (n-th ike p(n)). Manaʻo mākou no kekahi wahi i koho mua ʻia G ʻike nā kānaka a pau p(x)G no na waiwai a pau x. E kāhea mākou p(i) “mea pilikino” ika mea komo (no ka mea iʻike ka mea komo iā ia), a p(i)G "mea lehulehu" i-ʻo ka mea komo (no ka mea, ʻike nā mea āpau iā ia). Ke hoʻomanaʻo nei ʻoe, ʻike p(i)G ʻaʻole lawa e hoʻihoʻi p(i).

Ke hana ʻana i kahi polynomial pēlā wale nō i-ʻO ka mea komo mua a ʻaʻohe mea ʻē aʻe i ʻike i kāna ʻāpana pilikino - ʻo ia ka mea paʻakikī a hoihoi loa o ka protocol, a e nānā mākou iā ia ma lalo. I kēia manawa, e manaʻo mākou he polynomial kēia a ʻike nā poʻe āpau i kā lākou mau mea pilikino.

Pehea e hiki ai iā mākou ke hoʻohana i ia polynomial e hoʻohua i kahi helu maʻamau? No ka hoʻomaka ʻana, pono mākou i kahi kaula i hoʻohana ʻole ʻia ma mua e like me ke komo ʻana i ka generator. I ka hihia o kahi blockchain, ka hash o ka poloka hope h he moho maikai no ia laina. E makemake nā mea komo e hana i kahi helu maʻamau me ka hoʻohana ʻana h like me ka hua. Hoʻololi mua nā mea komo h i kahi kiko ma ka pihi me ka hoʻohana ʻana i kekahi hana i koho mua ʻia:

H = scalarToPoint(h)

A laila kēlā me kēia hui i helu a hoolaha Aloha = p(i)H, he aha kā lākou e hana ai no ka mea ua ʻike lākou p(i) a me H. Hōʻike HʻAʻole au e ʻae i nā mea komo ʻē aʻe e hoʻihoʻi i ka mea pilikino ika mea komo, a no laila hiki ke hoʻohana ʻia hoʻokahi pūʻulu o nā ʻāpana pilikino mai kahi poloka a i kahi poloka. No laila, pono e hoʻokō ʻia ka algorithm generation polynomial i hōʻike ʻia ma lalo nei.

Inā k ua autopsi ʻia nā mea komo Aloha = p(i)H, hiki i nā kānaka a pau ke helu Hx = p(x)H no nā mea āpau x mahalo i ka waiwai o nā polynomial a mākou i kūkākūkā ai ma ka pauku hope. I kēia manawa, helu nā mea komo a pau H0 = p(0)H, a ʻo kēia ka hopena o ka helu random. E ʻoluʻolu ʻaʻole ʻike kekahi p(0), a no laila ʻo ke ala wale nō e helu ai p(0)H – he interpolation keia p(x)H, hiki wale ke hiki ke k nā waiwai p(i)H ʻike ʻia. Ke wehe ʻana i ka nui liʻiliʻi p(i)H ʻaʻole hāʻawi i kekahi ʻike e pili ana p(0)H.

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

Loaʻa i ka generator ma luna nā waiwai āpau a mākou e makemake ai: nā mea hoʻouka kaua e hoʻomalu wale k-ʻAʻohe ʻike a i ʻole ka mana o ka poʻe komo a i ʻole ka liʻiliʻi ma ka hopena, ʻoiai kekahi k hiki i nā mea komo ke helu i ka helu i loaʻa, a me kekahi hapa o k e hele mau ana nā mea komo i ka hopena like no ka hua hoʻokahi.

Aia kekahi pilikia a mākou i pale pono ai ma luna. No ka interpolation e hana, he mea nui ka waiwai Hi paʻi ʻia e kēlā me kēia hui i ua like maoli no p(i)H. No ka mea, ʻaʻohe mea ʻē aʻe i-ʻaʻole ʻike ka mea komo p(i), ʻaʻohe mea ʻē aʻe i-ʻAʻole hiki i ka mea komo ke hōʻoia i kēlā Hi ua helu pololei ʻia, a me ka loaʻa ʻole o nā hōʻike cryptographic o ka pololei Hhiki i ka mea hoʻouka ke hoʻolaha i kekahi waiwai e like me Hui, a hoʻoikaika wale i ka hoʻopuka o ka mea hoʻoheheʻe helu random:

Hiki paha ke hana i nā helu maʻamau inā ʻaʻole mākou hilinaʻi kekahi i kekahi? Mahele 2ʻO nā waiwai like ʻole o H_1 i hoʻouna ʻia e ka mea komo mua e alakaʻi i nā hopena like ʻole H_0

ʻElua mau ala e hōʻoia ai i ka pololei Hi, e noʻonoʻo mākou iā lākou ma hope o kā mākou loiloi i ka hanauna o ka polynomial.

Generation polynomial

Ma ka pauku hope ua manaʻo mākou he polynomial kēia p(x) degrees k-1 ka mea komo i ʻike p(i), a ʻaʻohe mea ʻē aʻe i ʻike e pili ana i kēia waiwai. Ma ka ʻāpana aʻe e pono ai mākou i kēlā no kekahi wahi i koho mua ʻia G ua ike na mea a pau p(x)G no nā mea āpau x.

Ma kēia ʻāpana e manaʻo mākou he kī pilikino kēlā me kēia mea komo ma ka ʻāina xi, i ʻike ai nā mea a pau i ke kī lehulehu e pili ana Xi.

ʻO kekahi protocol generation polynomial penei:

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

  1. ʻO kēlā me kēia mea komo i hana ʻia kahi polynomial kūʻokoʻa pi(x) degere k-1. A laila hoʻouna lākou i kēlā me kēia hui j ʻo keʻano pi(j), hoʻopili ʻia me ke kī lehulehu Xj. Pela wale no i-th и j-th ʻike ka mea komo pi(j). Mea komo i hoolaha akea pi(j)G no nā mea āpau j от 1 i luna k loko loa.

  2. Hoʻohana nā mea komo a pau i ka ʻae ʻana e koho k nā poʻe e hoʻohana i nā polynomial. No ka mea pahemo paha kekahi poʻe komo, ʻaʻole hiki iā mākou ke kali a hiki i nā mea a pau n e hoʻopuka nā mea komo i nā polynomials. ʻO ka hopena o kēia hana he hoʻonohonoho Z e pili ana i ka liʻiliʻi k nā polynomial i hana ʻia ma ka ʻanuʻu (1).

  3. Hoʻomaopopo nā mea komo i nā waiwai a lākou i ʻike ai pi(j) pili me ka hoolaha akea pi(j)G. Ma hope o kēia hana i loko Z nā polynomial wale nō i lawe pilikino pi(j) pili me ka hoolaha akea pi(j)G.

  4. ʻO kēlā me kēia mea komo j helu ʻia kona ʻāpana pilikino p(j) e like me ka huina pi(j) no nā mea a pau i в Z. E helu pū ana kēlā me kēia mea i nā waiwai a pau p(x)G e like me ka huina pi(x)G no nā i a pau в Z.

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

kahakaha i p(x) – he polinomial maoli k-1, no ka mea, ʻo ia ka huina o ke kanaka pi(x), he polynomial o ke degere kēlā me kēia k-1. A laila, e hoʻomaopopo i kēlā me kēia mea komo j ʻike p(j), ʻaʻohe o lākou ʻike e pili ana p(x) no ka mea, x ≠ j. ʻOiaʻiʻo, no ka helu ʻana i kēia waiwai, pono lākou e ʻike i nā mea āpau pi(x), a me ka lōʻihi o ka mea komo j ʻaʻole ʻike i ka liʻiliʻi o hoʻokahi o nā polynomial i koho ʻia, ʻaʻole lawa ka ʻike e pili ana p(x).

ʻO kēia ke kaʻina hana polynomial holoʻokoʻa i pono i ka pauku hope. Loaʻa i nā ʻanuʻu 1, 2 a me 4 ma luna kahi hoʻokō kūpono. Akā ʻaʻole he mea koʻikoʻi ka pae 3.

Ma keʻano kikoʻī, pono mākou e hōʻoia i ka hoʻopili ʻia pi(j) pili loa i na mea i pa'i 'ia pi(j)G. Inā ʻaʻole hiki iā mākou ke hōʻoiaʻiʻo, ʻo ka mea hoʻouka i hiki ke hoʻouna i ka ʻōpala pi(j) i ka mea komo j, a me ka mea komo j ʻaʻole hiki ke loaʻa ka waiwai maoli pi(j), ʻaʻole hiki ke helu i kāna ʻāpana pilikino.

Aia kahi protocol cryptographic e hiki ai iā ʻoe ke hana i kahi leka hou hooiaioi(j), i mea e loaʻa ai i kekahi mea komo e, а также hōʻoia(j) и pi(j)G, hiki ke hōʻoia i kēlā wahi e - ʻoiaʻiʻo pi(j), hoʻopili ʻia me ke kī o ka mea komo j. ʻO ka mea pōʻino, ʻo ka nui o ia mau hōʻike he incredibly nui, a hāʻawi ʻia he pono e hoʻolaha O(nk) ʻAʻole hiki ke hoʻohana ʻia ia mau hōʻike no kēia kumu.

Ma kahi o ka hōʻoia ʻana i kēlā pi(j) соответствует pi(j)G hiki iā mākou ke hoʻokaʻawale i kahi manawa lōʻihi loa i loko o ka protocol generation polynomial, kahi e nānā ai nā poʻe a pau i ka mea i hoʻopili ʻia. pi(j), a inā ʻaʻole pili ka memo i hoʻokaʻawale ʻia me ka lehulehu pi(j)G, hoʻopuka lākou i kahi hōʻike cryptographic ʻaʻole pololei ka memo i hoʻopili ʻia. E hōʻoia i ka ʻōlelo ole соответствует pi(G) ʻoi aku ka maʻalahi ma mua o ka hōʻoia ʻana e pili ana. Pono e hoʻomaopopo ʻia e koi ʻia kēlā me kēia mea e hele ma ka pūnaewele ma ka liʻiliʻi i hoʻokahi manawa i ka manawa i hāʻawi ʻia no ka hana ʻana i ia mau hōʻike, a hilinaʻi i ka manaʻo inā lākou e hoʻolaha i kēlā hōʻike, e hōʻea ia i nā mea ʻē aʻe a pau i ka manawa like.

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

Inā ʻaʻole i ʻike ʻia kahi mea komo ma ka pūnaewele i kēia manawa, a loaʻa iā ia hoʻokahi ʻāpana hewa ʻole, a laila ʻaʻole hiki i kēlā mea komo ke komo i ka hanauna helu hou. E hana mau ana ka protocol inā loaʻa ka liʻiliʻi k nā mea komo i loaʻa i nā ʻāpana kūpono a i ʻole e waiho i ka hōʻoia o ka hewa i loko o ka manawa i ʻōlelo ʻia.

Na hoike pololei o H_i

ʻO ka ʻaoʻao hope e kū nei e kūkākūkā ʻia pehea e hōʻoia ai i ka pololei o ka paʻi ʻana Hi, oia hoi Aloha = p(i)H, me ka wehe ole p(i).

E hoomanao kakou i na waiwai H, G, p(i)G lehulehu a ʻike ʻia e nā mea a pau. Loaʻa i ka hana p(i) ʻike p(i)G и G kapa ʻia ka logarithm discrete, a i ʻole dlog, a makemake mākou e hōʻoia i kēlā:

dlog(p(i)G, G) = dlog(Hi, H)

me ka hoike ole p(i). Aia nā kūkulu no ia mau hōʻoia, no ka laʻana Schnorr Protocol.

Me kēia hoʻolālā, kēlā me kēia mea komo, me Hi hoʻouna i kahi hōʻoia o ka pololei e like me ka hoʻolālā.

Ke hana ʻia kahi helu maʻamau, pono e hoʻohana pinepine ʻia e nā poʻe komo ʻē aʻe ma mua o ka poʻe nāna ia i hana. ʻO kēlā mau mea komo, me ka helu, pono e hoʻouna i nā mea a pau Hi a me nā hōʻike pili.

E nīnau paha ka mea heluhelu nīnau: ʻoiai ʻo ka helu hope loa H0, a p(0)G – He ʻike lehulehu kēia, no ke aha mākou e pono ai i ka hōʻoia no kēlā me kēia kanaka Hi, no ke aha e hoʻouna ʻole ai i ka hōʻike ma kahi

dlog(p(0)G, G) = dlog(H0, H)

ʻO ka pilikia, ʻaʻole hiki ke hana ʻia kēlā hōʻike me ka hoʻohana ʻana i ka Schnorr Protocol no ka mea ʻaʻohe mea i ʻike i ka waiwai p (0), Pono e hana i ka hōʻoiaʻiʻo, a ʻo ka mea hou aku, ua hoʻokumu ʻia ka mea hoʻomohala helu maʻamau ma ka ʻoiaʻiʻo ʻaʻohe mea i ʻike i kēia waiwai. No laila, pono e loaʻa nā waiwai a pau Hi a me kā lākou mau hōʻike pilikino e hōʻoia i ka pololei H0.

Eia nō naʻe, inā loaʻa kekahi hana ma nā kiko ma nā pihi elliptic e like me ka hoʻonui ʻana, ʻo ka hōʻoia o ka pololei. H0 he mea liʻiliʻi, e hōʻoia mākou i kēlā

H0 × G = p(0)G × H

Inā kākoʻo ka pihi i koho ʻia nā pairing curve elliptic, hana kēia hōʻoia. Ma keia hihia HʻAʻole ʻo 0 wale nō ka hoʻopuka o kahi mea hoʻoheheʻe helu maʻamau, hiki ke hōʻoia ʻia e kekahi mea komo i ʻike G,H и p(0)G. H0 kekahi pūlima ma ka memo i hoʻohana ʻia ma ke ʻano he hua, e hōʻoia ana i kēlā k и n ua pūlima nā mea komo i kēia memo. Pela, ina hua - ʻo ia ka hash o ka poloka i ka protocol blockchain, a laila H0 he pūlima-nui ma kahi poloka a he helu random maikaʻi loa.

I ka hopena

He ʻāpana kēia ʻatikala o kahi moʻomanaʻo blog ʻenehana Kokoke. ʻO NEAR kahi protocol blockchain a me kahi kahua 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