Oracle e sa reroang e thehiloeng ho signature ea dijithale ho blockchain

Ho tloha mohopolong ho ea ts'ebetsong: re fetola leano le teng la elliptic curve digital signature scheme e le hore e be deterministic, 'me ho itšetlehile ka eona re fana ka mesebetsi ea ho fumana linomoro tsa pseudo-random tse ka netefatsoang ka har'a blockchain.

Oracle e sa reroang e thehiloeng ho signature ea dijithale ho blockchain

Boemo

Hoetla 2018, Maqhubu a blockchain a kenyelelitse likonteraka tsa pele tse bohlale li kentsoe tšebetsong, potso e ile ea hlaha hang-hang mabapi le monyetla oa ho fumana linomoro tsa pseudorandomtseo o ka di tshepang.

Ka ho makatsoa ke potso ena, qetellong ke ile ka fihlela qeto: blockchain efe kapa efe ke sele; ha ho khonehe ho fumana mohloli o tšepahalang oa entropy ka sistimi e koetsoeng.

Empa ke ne ke ntse ke rata khopolo e le 'ngoe: haeba puo e sa reroang e tla saena data ea mosebelisi ka algorithm ea deterministic, ebe mosebelisi o tla lula a khona ho netefatsa signature e joalo a sebelisa senotlolo sa sechaba, mme o tla netefatsa hore boleng bo hlahisoang bo ikhethile. Oracle, ho sa tsotelehe hore na e batla ka thata hakae, ha e khone ho fetola letho; algorithm e hlahisa sephetho se hlakileng. Ha e le hantle, mosebelisi o tlaleha sephetho, empa ha a se tsebe ho fihlela oracle e se phatlalatsa. Hoa etsahala hore u ke ke ua tšepa oracle ho hang, empa hlahloba sephetho sa mosebetsi oa eona. Joale, haeba ho netefatsoa ka katleho, ho saena ho joalo ho ka nkoa e le mohloli oa entropy bakeng sa nomoro ea pseudorandom.

Sethala sa Waves blockchain se sebelisa leano la ho saena EDSA khetho Ed25519. Lenaneong lena, ho saena ho na le litekanyetso tsa R le S, moo R e itšetlehileng ka boleng bo sa reroang, 'me S e baloa ho latela molaetsa o saennoeng, senotlolo sa poraefete le nomoro e tšoanang le R. ha ho na ho its'etleha ka tsela e ts'oanang Ho na le mesaeno e mengata e nepahetseng bakeng sa molaetsa oa mosebelisi.

Ho hlakile hore ka mokhoa oa eona o hloekileng, ho saena ho joalo ho ke ke ha sebelisoa e le mohloli oa linomoro tsa pseudo-random, kaha ha e na qeto, ka hona, e ka sebelisoa habonolo ke lentsoe.

Empa, joalo ka ha ho le joalo, hoa khoneha ho e etsa deterministic.

Ke ne ke e-na le tšepo e kholo bakeng sa ts'ebetso e netefalitsoeng ea tšohanyetso (VRF), empa ka mor'a ho ithuta hardware, ke ile ka tlameha ho lahla khetho ena. Leha VRF e fana ka mofuta oa deterministic oa signature le bopaki ba eona, ho na le sebaka se makatsang ho algorithm e bulang lesoba le letšo bakeng sa ho qhekella oracle. E leng, ha ho baloa boleng ba k (karolo ea 5.1) ho sebelisoa senotlolo sa poraefete, se lulang se sa tsejoe ke mosebelisi, ho bolelang hore mosebelisi a ke ke a netefatsa ho nepahala ha lipalo tsa k, ho bolelang hore oracle e ka sebelisa boleng bofe kapa bofe ba k eo e e hlokang mme ka nako e ts'oanang e boloka polokelo ea mangolo. ea k le data e saenneng e le hore kamehla u khone ho bala sephetho se nepahetseng ho tloha ponong ea VRF . Haeba u bona setšoantšo se thehiloeng ho VRF ntle le ho senola senotlolo sa poraefete, u ka ba bohlale: bonts'a tlhoko ea ho senola senotlolo, kapa u se kenye ho tsoa ho palo ea k, ebe senotlolo sa lekunutu se tla itlhahisa ha tekeno ea pele e hlaha. . Ka kakaretso, joalo ka ha ho se ho boletsoe, morero o makatsang oa polelo e sa reroang.

Ka mor'a ho nahana ho se hokae le ho kenya tšehetso ea bahlahlobisisi ba lehae, morero oa mosebetsi oa VECRO o ile oa tsoaloa.

VECRO ke khutsufatso ea Verifiable Elliptic Curve Random Oracle, eo ka Serussia e bolelang "oracle" e ka netefatsoang ho elliptic curves.

Ntho e ngoe le e ngoe e ile ea ba bonolo haholo; ho fihlela determinism, o hloka ho lokisa boleng ba R pele molaetsa o saenneng o hlaha. Haeba R e ikemiseditse mme e le karolo ya molaetsa o saenwang, e leng se tiisang hape hore R e ikemiseditse molaetsa o saennweng, boleng ba S bo ikgetha ka ho kgetheha ke molaetsa wa mosebedisi mme ka hona e ka sebediswa e le mohlodi wa dinomoro tsa pseudorandom.

Lenaneong le joalo, ha ho na taba hore na R e lokisoa joang; sena e ntse e le boikarabello ba sebui. Ho bohlokoa hore S e khethoe ka mokhoa o ikhethileng ke mosebelisi, empa boleng ba eona ha bo tsejoe ho fihlela oracle e e phatlalatsa. Sohle seo re neng re se batla!

Ha re bua ka fixed R, hlokomela hore e sebelisitse R ha o saena melaetsa e fapaneng, e senola ka mokhoa o ikhethileng senotlolo sa lekunutu sekemeng sa EdDSA. Ho bohlokoa haholo hore mong'a sebaka sa oracle a felise monyetla oa ho sebelisa R hape ho saena melaetsa e fapaneng ea basebelisi. Ka mantsoe a mang, ka ho qhekella kapa tšubuhlellano, oracle e tla lula e le kotsing ea ho lahleheloa ke senotlolo sa eona sa lekunutu.

Ka kakaretso, oracle e tlameha ho fa basebelisi mesebetsi e 'meli: ho qala, ho lokisa boleng ba R, le ho saena, e khutlisetsang boleng ba S. Tabeng ena, para R, S ke signature e tloaelehileng e netefalitsoeng ea molaetsa oa mosebelisi o nang le molaetsa o tsitsitseng. boleng ba R le data e sa reroang ea mosebelisi.

Ho ka hanyetsoa hore morero ona oa blockchain ha o letho ho feta ntho e tloaelehileng boikemisetso ba ho atolosa. Ha e le hantle, ke eena. Empa ho na le li-nuances tse 'maloa. Taba ea pele, oracle e lula e sebetsa ka senotlolo se tšoanang lits'ebetsong tsohle, mohlala, sena se bonolo ho se sebelisa likonteraka. Taba ea bobeli, ho na le kotsi ea hore oracle e lahleheloe ke senotlolo sa poraefete haeba e sebetsa ka mokhoa o fosahetseng, mohlala, oracle e u lumella ho etsa lisampole tsa sephetho, joale ho lekane ho etsa liteko tse peli feela ho fumana senotlolo sa lekunutu le ho fumana sephetho se felletseng. ho kena sepacheng. Taba ea boraro, tekeno eo ka tlhaho e ka netefatsoang ho blockchain mme e le mohloli oa ntho e sa reroang e ntle.

Ka likhoeli tse tšeletseng khopolo ea ho kenya ts'ebetsong e ne e lla ka hloohong ea ka, ho fihlela qetellong ho hlaha tšusumetso ka mokhoa thuso ho tsoa ho Waves Labs. Ka thuso e kholo ho tla le boikarabello bo boholo, kahoo morero o tla ba teng!

Ts'ebetsong

Kahoo, morerong ona VECRO e ile ea kenngoa tšebetsong ho Waves blockchain ka mokhoa oa ho arabela ka kopo o sebelisa litšebelisano tsa phetisetso lipakeng tsa mosebelisi le sebui. Ka nako e ts'oanang, script e kenngoa tlalehong ea oracle e laolang mosebetsi ka tieo ho latela logic e hlalositsoeng ka holimo. Litšebelisano tsa Oracle li netefalitsoe mme ketane eohle ea tšebelisano ea mosebelisi e khutlisoa. Litšebelisano tsohle tse 'ne li kenya letsoho ho netefatsa boleng ba ho qetela; konteraka e bohlale e li kopanya ka khoele e tiileng ea netefatso, e lekola litekanyetso tsohle mohato ka mohato mme e sa siee sebaka sa ho qhekella.

Hang hape, ho e beha ka thōko le ho e hlakisa haholoanyane. Oracle ha e sebetse feela ho latela morero o reriloeng. Mosebetsi oa eona o laoloa ka ho feletseng boemong ba blockchain ka ho thehoa ka thata ka konteraka e bohlale. Etela ka letsohong le letšehali mme transaction e ke ke ea feta. Kahoo, haeba transaction e kenyelelitsoe ho blockchain, mosebeletsi ha a hloke ho hlahloba letho; makholo a marang-rang a marang-rang a se a ntse a hlahloba ntho e 'ngoe le e' ngoe bakeng sa hae.

Hajoale, ho na le VECRO e le 'ngoe e sebetsang ho mainnet ea Waves (o ka tsamaisa ea hau, ha ho thata, feela. sheba mohlala oa tlhophiso). Khoutu ea hajoale e sebetsa ho PHP (ho WavesKit, mabapi le eng Ke le boleletse pejana).

E le hore u sebelise tšebeletso ea oracle u tlameha ho:

  • Lokisa R;
    • Romela bonyane 0.005 Waves ho oracle alias init@vecr;
    • Amohela khoutu ea R sebakeng sa sehokelo ha ho fetisoa tokeneng ea 1 R-vecr ho tloha ho oracle ho ea ho mosebelisi;
  • Fumana tshaeno;
    • Romela bonyane 0.005 Waves ho oracle alias random@vecr, hape U TLAMEHA ho bontša R-code e kileng ea amoheloa le data e eketsehileng ea mosebedisi tšimong ea sehokelo;
    • Amohela S-code tšimong ea sephutheloana phetisong ea tokeneng ea 1 S-vecr ho tloha ho oracle ho ea ho mosebelisi;
  • Sebelisa S-code joalo ka mohloli oa nomoro ea pseudo-random.

Melemo ea ts'ebetsong ea hona joale:

  • Maqhubu a rometsoeng ho oracle a sebelisoa e le komisi bakeng sa ts'ebetso ea ho khutlela ho mosebedisi, ho fihlela boholo ba Maqhubu a 1;
  • R-khoutu ke khokahanyo ea li-byte tsa litlhaku tsa 'R' le boleng ba R ba 32-byte ba58-encoded;
  • R-khoutu e khomaretsoeng e lokela ho ba ea pele, data ea mosebelisi e tla kamora khoutu ea R;
  • S-code ke khokahanyo ea baiti ea tlhaku 'S' le boleng ba 32-byte base58-encoded ba S;
  • S ke phello ea karohano ea modulo, kahoo u ke ke ua sebelisa S e le nomoro e feletseng ea 256-bit pseudorandom (nomoro ena e ka nkoa e le palo e phahameng ea 252-bit pseudorandom number);
  • Khetho e bonolo ka ho fetisisa ke ho sebelisa S-code hash e le nomoro ea pseudo-random.

Mohlala oa ho amohela S-code:

Ho latela pono ea tekheniki, oracle e se e loketse mosebetsi ka botlalo, o ka e sebelisa ka mokhoa o sireletsehileng. Ho latela pono ea tšebeliso ea mosebelisi ea tloaelehileng, ho na le khaello ea sebopeho se bonolo sa graphical; sena se tla tlameha ho ema.

Ke tla thabela ho araba lipotso le ho amohela maikutlo, kea leboha.

Source: www.habr.com

Eketsa ka tlhaloso