Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2

Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2

Hey Habr!

В karolo ea pele Sehloohong sena, re buisane ka hore na ke hobane'ng ha ho ka hlokahala ho hlahisa linomoro tse sa reroang bakeng sa barupeluoa ba sa tšepaneng, ke litlhoko life tse hlahisoang bakeng sa lijenereithara tse joalo tsa linomoro, 'me ho nahanoa ka mekhoa e' meli ea ts'ebetsong ea bona.

Karolong ena ea sengoloa, re tla shebisisa mokhoa o mong o sebelisang li-signature tsa threshold.

Karolo e nyane ea li-cryptography

E le hore u utloisise hore na li-signature tsa moeli li sebetsa joang, u lokela ho utloisisa li-cryptography tse nyenyane tsa motheo. Re tla sebelisa likhopolo tse peli: scalar, kapa linomoro feela, tseo re tla li hlalosa ka litlhaku tse nyane (x,y) le lintlha ho elliptic curve, eo re tla e hlalosa ka litlhaku tse kholo.

Ho utloisisa metheo ea li-signature tsa threshold, ha ho hlokahale hore u utloisise hore na li-curve tsa elliptic li sebetsa joang, ntle le lintho tse 'maloa tsa mantlha:

  1. Lintlha tse holim'a elliptic curve li ka eketsoa 'me tsa atisoa ke scalar (re tla bolela ho atisa ka scalar joalo ka xG, leha ho le joalo Gx hape e sebelisoa hangata lingoliloeng). Sephetho sa ho eketsa le ho atisa ka scalar ke ntlha e elliptic curve.

  2. Ho tseba ntlha feela G le sehlahisoa sa eona se nang le sekala xG e ke keng ea baloa x.

Re tla boela re sebelise khopolo ea polynomial p(x) likhato k-1. Haholo-holo, re tla sebelisa thepa e latelang ea polynomials: haeba re tseba boleng p(x) bakeng sa efe kapa efe k fapaneng x (mme ha re na lintlha tse ling mabapi le p(x)), re ka bala p(x) bakeng sa mang kapa mang x.

Hoa thahasellisa hore bakeng sa polynomial leha e le efe p(x) le ntlha e 'ngoe moepeng Gho tseba moelelo p(x)G bakeng sa efe kapa efe k meelelo e fapaneng x, re ka boela ra bala p(x)G bakeng sa efe kapa efe x.

Ena ke tlhaiso-leseling e lekaneng ho cheka lintlha tsa hore na li-signature tsa threshold li sebetsa joang le hore na li ka sebelisoa joang ho hlahisa linomoro tse sa reroang.

Jenereithara e sa reroang ea linomoro ho li-signature tsa threshold

Ha re bue joalo n barupeluoa ba batla ho hlahisa palo e sa reroang, 'me re batla hore mang kapa mang a nke karolo k ho ne ho lekane ho hlahisa palo, empa e le hore bahlaseli ba laolang k-1 kapa ba seng bakae barupeluoa ha ba khone ho bolela esale pele kapa ho susumetsa palo e hlahisitsoeng.

Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2

Ha re re ho na le polynomial e joalo p(x) likhato k-1 seo monkakarolo oa pele a se tsebang le (1), oa bobeli oa tseba leq(2), joalo joalo (n- oa tseba p(n)). Re boetse re nahana hore bakeng sa ntlha e itseng e reriloeng esale pele G bohle ba tseba p(x)G bakeng sa litekanyetso tsohle x. Re tla bitsa p(i) "karolo ea poraefete" imonkakarolo (hobane feela imonkakarolo oa th oa mo tseba), le p(i)G "karolo ea sechaba" i- monkakarolo (hobane barupeluoa bohle baa mo tseba). Joalo ka ha le hopola, tsebo p(i)G ha hoa lekana ho khutlisa p(ke).

Ho theha polynomial e joalo e le hore feela i-Morupeluoa oa pele 'me ha ho motho e mong ea tsebang karolo ea hae ea poraefete - ena ke karolo e rarahaneng ka ho fetisisa le e thahasellisang ea protocol,' me re tla e sekaseka ka tlase. Hajoale, ha re nke hore re na le polynomial e joalo mme barupeluoa bohle ba tseba likarolo tsa bona tsa lekunutu.

Re ka sebelisa polynomial e joalo joang ho hlahisa nomoro e sa reroang? Ho qala, re hloka khoele e itseng e so kang e sebelisoa e le ho kenya jenereithara. Tabeng ea blockchain, hash ea block ea ho qetela h ke mokhethoa ea molemo bakeng sa mohala o joalo. E re barupeluoa ba batle ho etsa nomoro e sa reroang ba sebelisa h joalo ka peo. Barupeluoa ba sokoloha pele h ho fihla ntlheng e mothinya o sebelisa tšebetso efe kapa efe e boletsoeng esale pele:

H = scalarToPoint(h)

Ebe monkakarolo e mong le e mong i bala le ho phatlalatsa Lumela = p(i)H, ba ka etsang hobane ba tseba p (i) le H. Tsebiso Hha ke lumelle barupeluoa ba bang ho khutlisetsa karolo ea poraefete ith, mme ka hona sete e le 'ngoe ea likarolo tsa poraefete e ka sebelisoa ho tloha bolokong ho ea ho thibela. Ka hona, algorithm e theko e phahameng ea polynomial e hlalositsoeng ka tlase e hloka ho etsoa hang feela.

Ha k barupeluoa ba ile ba hlahlojoa Lumela = p(i)H, bohle ba ka bala Hx = p(x)H bakeng sa bohle x ka lebaka la thepa ea polynomials eo re buisaneng ka eona karolong e fetileng. Ka nako ena, barupeluoa bohle ba bala H0 = leq(0)H, mme ena ke palo e hlahang e sa lebelloang. Ka kopo hlokomela hore ha ho motho ea tsebang leq(0), mme ka hona ke eona feela mokhoa oa ho bala p(0)H - sena ke tlhaloso p(x)H, e leng ntho e ka etsahalang ha feela k litekanyetso p(i)H tsejoa. Ho bula palo efe kapa efe e nyane p(i)H ha e fane ka tlhahisoleseding efe kapa efe mabapi le p(0)H.

Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2

Jenereithara e ka holimo e na le thepa eohle eo re e batlang: bahlaseli ba laolang feela k-Barupeluoa ba 1 kapa ka tlase ha ba na tlhahisoleseling kapa tšusumetso sephethong, ha ba ntse ba le teng k barupeluoa ba ka bala palo e hlahisoang, le karolo efe kapa efe ea k barupeluoa ba tla lula ba tla ho sephetho se tšoanang bakeng sa peo e tšoanang.

Ho na le bothata bo le bong boo re ileng ra bo qoba ka hloko ka holimo. Hore interpolation e sebetse, ho bohlokoa hore boleng Hi e hatisitsoeng ke monkakarolo e mong le e mong i ho ne ho hlile ho tšoana p(i)H. Kaha ha ho motho ntle le i-morupeluoa ha a tsebe p(ke), ha ho motho haese i-morupeluoa a ke ke a netefatsa seo Hi ha e le hantle e baloa ka nepo, 'me ntle le bopaki ba ho nepahala H'na mohlaseli a ka phatlalatsa boleng bofe kapa bofe e le Hi, le ho susumetsa ka boithatelo tlhahiso ea jenereithara ea linomoro tse sa reroang:

Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2Litekanyetso tse fapaneng tsa H_1 tse rometsoeng ke morupeluoa oa pele li lebisa ho sephetho se fapaneng sa H_0

Bonyane ho na le litsela tse peli tsa ho paka ho nepahala Hi, re tla li hlahloba ka mor'a hore re hlahlobe moloko oa polynomial.

Moloko oa polynomial

Karolong e fetileng re ne re nahana hore re na le polynomial e joalo p(x) likhato k-1 hore monkakarolo i tseba p(i), 'me ha ho motho e mong ea nang le leseli mabapi le boleng bona. Karolong e latelang re tla boela re e hloke bakeng sa ntlha e itseng e reriloeng esale pele G bohle ba ne ba tseba p(x)G bakeng sa bohle x.

Karolong ena re tla nka hore monkakarolo e mong le e mong sebakeng sa hae o na le senotlolo sa lekunutu xi, hoo bohle ba tsebang senotlolo sa sechaba se tsamaellanang Xi.

E 'ngoe ea protocol ea ho hlahisa polynomial ke e latelang:

Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2

  1. E mong le e mong ea nkang karolo i sebakeng sa heno e theha polynomial e seng molaong pi(x) tekanyo k-1. Ebe joale ba romela e mong le e mong ea nkang karolo j moelelo pi(j), e kentsoeng ka senotlolo sa sechaba Xj Kahoo feela i-th и j-th monkakarolo oa tseba pke(j). Motho ea nkang karolo i hape e phatlalatsa phatlalatsa pi(j)G bakeng sa bohle j от 1 ho k kenyelelano.

  2. Barupeluoa bohle ba sebelisa tumellano e itseng ho khetha k barupeluoa bao li-polynomials li tla sebelisoa. Kaha ba bang ba barupeluoa ba kanna ba ba sieo inthaneteng, re ke ke ra ema ho fihlela bohle n barupeluoa ba tla phatlalatsa polynomials. Sephetho sa mohato ona ke sete Z e nang le bonyane k polynomials e entsoeng ka mohato (1).

  3. Barupeluoa ba etsa bonnete ba hore litekanyetso tseo ba li tsebang pi(j) lumellana le tse phatlalalitsoeng phatlalatsa pi(j)G. Ka mor'a mohato ona Z li-polynomial feela tse fetisoang ka lekunutu pi(j) lumellana le tse phatlalalitsoeng phatlalatsa pi(j)G.

  4. E mong le e mong ea nkang karolo j e bala karolo ea eona ea lekunutu p(j) e le kakaretso pi(j) bakeng sa bohle i в Z. E mong le e mong ea nkang karolo o boetse o bala litekanyetso tsohle p(x)G e le kakaretso pi(x)G bakeng sa bohle i в Z.

Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2

lemoha hore p(x) - ehlile ke polynomial k-1, hobane ke kakaretso ea motho ka mong pi(x), eo e 'ngoe le e 'ngoe e leng polynomial of degree k-1. Ebe, hlokomela hore ha e mong le e morupeluoa j tseba p(j), ha ba na tlhahisoleseling mabapi le p(x) etsoe x ≠ j. Ka sebele, ho bala boleng bona, ba hloka ho tseba ntho e 'ngoe le e' ngoe pi(x), le ha feela monkakarolo j ha e tsebe bonyane e 'ngoe ea li-polynomials tse khethiloeng, ha li na tlhahisoleseding e lekaneng mabapi le p(x).

Ena ke ts'ebetso eohle ea moloko oa polynomial e neng e hlokahala karolong ea ho qetela. Mehato ea 1, ea 2 le ea 4 ka holimo e na le ts'ebetsong e hlakileng. Empa mohato oa 3 ha o bonolo hakaalo.

Ka ho khetheha, re hloka ho tseba ho paka hore e patiloe pi(j) ehlile e lumellana le tse hatisitsoeng pi(j)G. Haeba re sa khone ho e paka, mohlaseli i e ka romela lithōle ho e-na le hoo pi(j) ho monka karolo j, le monkakarolo j e ke ke ea khona ho fumana boleng ba 'nete pi(j), 'me e ke ke ea khona ho bala karolo ea eona ea poraefete.

Ho na le "cryptographic protocol" e u lumellang hore u thehe molaetsa o eketsehileng bopakii(j), hoo monkakarolo ofe kapa ofe, ea nang le boleng bo itseng e, le hape bopaki(j) и pi(j)G, e ka netefatsa seo sebakeng sa heno e - ho joalo pi(j), encrypted ka senotlolo sa monkakarolo j. Ka bomalimabe, boholo ba bopaki bo joalo bo boholo ka mokhoa o makatsang, 'me ho latela hore hoa hlokahala ho phatlalatsoa O(nk) Bopaki bo joalo bo ke ke ba sebelisoa molemong ona.

Ho ena le ho paka seo pi(j) e lumellana le pi(j)G re ka fana ka nako e telele haholo ho protocol ea polynomial generation, eo ka eona barupeluoa bohle ba hlahlobang se ngotsoeng ka mokhoa o patiloeng. pi(j), mme haeba molaetsa o hlakotsweng o sa tsamaisane le setjhaba pi(j)G, ba phatlalatsa bopaki ba sephiri ba hore molaetsa o patiloeng oo ba o fumaneng ha oa nepahala. Sebedisa molaetsa oo ha e lumellana le pi(G) bonolo haholo hofeta ho paka hore e a tsamaellana. Ho lokela ho hlokomeloa hore sena se hloka hore morupeluoa e mong le e mong a hlahe Inthaneteng bonyane hanngoe ka nako e fanoeng ho hlahisa bopaki bo joalo, 'me o itšetlehile ka maikutlo a hore haeba ba phatlalatsa bopaki bo joalo, bo tla fihla ho barupeluoa ba bang bohle ka nako e behiloeng.

Na hoa khoneha ho hlahisa linomoro tse sa reroang haeba re sa tšepane? Karolo ea 2

Haeba motho ea nkang karolo a sa hlahe inthaneteng nakong ena ea nako, 'me bonyane a na le karolo e le' ngoe e fosahetseng, monkakarolo eo a ke ke a khona ho kenya letsoho tlhahisong ea linomoro tse ling. Protocol, leha ho le joalo, e ntse e sebetsa haeba bonyane e le teng k barupeluoa ba sa tsoa fumana likarolo tse nepahetseng kapa ba khonne ho siea bopaki ba ho fosahala ka nako e behiloeng.

Bopaki ba ho nepahala ha H_i

Karolo ea ho qetela e setseng e tla tšohloa ke mokhoa oa ho paka ho nepahala ha khatiso Hke, ke hore Lumela = p(i)H, ntle le ho bula p(ke).

A re hopoleng hore litekanyetso H, G, p(i)G phatlalatsa le ho tsejoa ke bohle. Fumana ts'ebetso p(i) ho tseba p(i)G и G e bitsoang discrete logarithm, kapa dlog, mme re batla ho paka hore:

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

ntle le phatlalatso p(i). Mehaho bakeng sa bopaki bo joalo bo teng, mohlala Schnorr Protocol.

Ka moralo ona, e mong le e morupeluoa, hammoho le Hi e romela bopaki ba ho nepahala ho ya ka moetso.

Hang ha palo e sa reroang e hlahisoa, hangata e hloka ho sebelisoa ke barupeluoa ntle le ba e hlahisitseng. Barupeluoa ba joalo, hammoho le palo, ba tlameha ho romela bohle Hi le bopaki bo amanang.

'Mali ea batlang ho tseba a ka botsa: kaha nomoro ea ho qetela e sa reroang ke H0, le p(0)G - Ena ke litaba tsa sechaba, ke hobane'ng ha re hloka bopaki bakeng sa motho ka mong Hke, ke hobane'ng ha u sa romele bopaki ba hore ho e-na le hoo

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

Bothata ke hore bopaki bo joalo bo ke ke ba etsoa ho sebelisoa Schnorr Protocol hobane ha ho motho ea tsebang boleng le (0), ho hlokahala ho theha bopaki, 'me ho feta moo, jenereithara eohle ea nomoro e sa reroang e thehiloe tabeng ea hore ha ho motho ea tsebang boleng bona. Ka hona hoa hlokahala ho ba le litekanyetso tsohle Hi le bopaki ba bona ka bomong ho paka ho nepahala H0.

Leha ho le joalo, haeba ho ne ho e-na le ts'ebetso lintlheng tsa elliptic curves tse tšoanang le ho atisa, bopaki ba ho nepahala. H0 e ka ba ntho e sa reng letho, re ne re tla etsa bonnete ba hore feela

H0 × G = p(0)G × H

Haeba curve e kgethilweng e tshehetsa li-pairings tsa elliptic curve, bopaki bona boa sebetsa. Boemong bona H0 ha se feela tlhahiso ea jenereithara ea linomoro e sa reroang, e ka netefatsoang ke monkakarolo ofe kapa ofe ea tsebang. G, H и p(0)G. H0 hape ke tshaeno molaetseng o neng o sebediswa jwalo ka peo, e tiisang seo k и n barupeluoa ba saenetse molaetsa ona. Kahoo, haeba peo - ke hash ea block ho protocol ea blockchain, ka nako eo H0 ka bobeli ke li-signature tse ngata bolokong le nomoro e ntle haholo e sa reroang.

Qetellong

Sengoliloeng sena ke karolo ea letoto la li-blog tsa tekheniki TS'EPO. HAUFI ke protocol ea blockchain le sethala sa ho nts'etsapele lits'ebetso tse arolelanoeng ka matla ka boiketlo ba nts'etsopele le boiketlo ba tšebeliso bakeng sa basebelisi ba ho qetela.

Khoutu ea protocol e bulehile, ts'ebetsong ea rona e ngotsoe ka Rust, e ka fumanoa mona.

U ka bona hore na nts'etsopele ea NEAR e shebahala joang le ho etsa liteko ho IDE ea inthaneteng mona.

U ka latela litaba tsohle ka Serussia ho sehlopha sa thelekramo le ho sehlopha sa VKontakte, le ka Senyesemane ka molaoli twitter.

Ke tla u bona haufinyane!

Source: www.habr.com

Eketsa ka tlhaloso