Oracle mwachisawawa kutengera siginecha ya digito mu blockchain

Kuchokera pamalingaliro mpaka kukhazikitsidwa: timasintha masiginecha a elliptic curve digito omwe alipo kuti akhale otsimikiza, ndipo kutengerapo timapereka ntchito zopezera manambala achinyengo omwe angatsimikizidwe mkati mwa blockchain.

Oracle mwachisawawa kutengera siginecha ya digito mu blockchain

Maganizo

Kugwa kwa 2018, blockchain ya Waves idaphatikizapo ma contract anzeru oyamba adatsegulidwa, funso lidawuka nthawi yomweyo lokhudza mwayi wopeza manambala a pseudorandomkuti mungakhulupirire.

Pododometsa pafunsoli, pamapeto pake ndinafika pomaliza: blockchain iliyonse ndi selo; ndizosatheka kupeza gwero lodalirika la entropy mu dongosolo lotsekedwa.

Koma ndimakondabe lingaliro limodzi: ngati oracle mwachisawawa adzasaina deta ya ogwiritsa ntchito ndi deterministic algorithm, ndiye wogwiritsa ntchito nthawi zonse amatha kutsimikizira siginecha yotere pogwiritsa ntchito kiyi yapagulu, ndipo adzatsimikiza kuti mtengo wake ndi wapadera. The oracle, ngakhale atafuna molimba bwanji, sangathe kusintha chilichonse; algorithm imatulutsa zotsatira zosamveka. Kwenikweni, wogwiritsa ntchito amalemba zotsatira zake, koma samadziwa mpaka oracle atazisindikiza. Zikuoneka kuti simungathe kukhulupirira oracle konse, koma onani zotsatira za ntchito yake. Ndiye, ngati kutsimikizira bwino, siginecha yoteroyo imatha kuonedwa ngati gwero la entropy pa nambala yachinyengo.

Waves blockchain nsanja amagwiritsa ntchito siginecha EDSA njira Ed25519. Muchiwembu ichi, siginecha imakhala ndi mfundo za R ndi S, pomwe R zimatengera mtengo wachisawawa, ndipo S amawerengedwa kutengera uthenga womwe wasainidwa, chinsinsi chachinsinsi komanso nambala yofanana ndi R. palibe kudalira kwapadera komweko Pali masiginecha ambiri ovomerezeka a uthenga wogwiritsa ntchito.

Mwachiwonekere, mu mawonekedwe ake oyera, siginecha yoteroyo siingagwiritsidwe ntchito ngati gwero la manambala achinyengo, popeza siwodziwika ndipo, motero, amatha kusinthidwa mosavuta ndi oracle.

Koma, monga momwe zinakhalira, ndizotheka kuzipanga kukhala deterministic.

Ndinali ndi chiyembekezo chachikulu Verifiable random function (VRF), koma nditaphunzira za hardware, ndinayenera kusiya njira imeneyi. Ngakhale VRF imapereka mtundu wotsimikizika wa siginecha ndi umboni wake, pali malo achilendo mu algorithm yomwe imatsegula dzenje lakuda kuti liwononge oracle. Mwakutero, powerengera mtengo wa k (gawo 5.1) kiyi yachinsinsi imagwiritsidwa ntchito, yomwe imakhalabe yosadziwika kwa wogwiritsa ntchito, zomwe zikutanthauza kuti wogwiritsa ntchito sangathe kutsimikizira kulondola kwa mawerengedwe a k, zomwe zikutanthauza kuti oracle angagwiritse ntchito mtengo uliwonse wa k yomwe ikufunikira komanso nthawi yomweyo kusunga nkhokwe ya makalata. ya k ndi zomwe zasainidwa kuti nthawi zonse muzitha kuwerengeranso zotsatira zolondola kuchokera pakuwona kwa VRF. Ngati muwona chojambula chozikidwa pa VRF osaulula chinsinsi chachinsinsi, mutha kukhala anzeru: onetsani kufunikira kowulula fungulo, kapena osasiya kuwerengera k, ndiye kiyi yachinsinsi imadziwonetsera yokha siginecha yoyamba ikuwonekera. . Ambiri, monga tanenera kale, chiwembu chachilendo kwa oracle mwachisawawa.

Pambuyo poganiza pang'ono ndikupempha thandizo la akatswiri a m'deralo, ndondomeko ya ntchito ya VECRO inabadwa.

VECRO ndi chidule cha Verifiable Elliptic Curve Random Oracle, chomwe mu Chirasha chimatanthawuza kutsimikizirika kwachisawawa chomveka pamapindikidwe ozungulira.

Chilichonse chidakhala chophweka; kuti mukwaniritse determinism, muyenera kukonza mtengo wa R uthenga usanasainidwe. Ngati R wadzipereka ndipo ndi gawo la uthenga womwe udasainidwa, womwe umatsimikiziranso kuti R wadzipereka mu uthenga womwe ukusainidwa, mtengo wa S umatsimikiziridwa mwapadera ndi uthenga wa wogwiritsa ntchito motero ungagwiritsidwe ntchito ngati gwero la manambala abodza.

Mu chiwembu chotere, zilibe kanthu kuti R imakhazikika bwanji; iyi ikadali udindo wa oracle. Ndikofunikira kuti S adziwike mwapadera ndi wogwiritsa ntchito, koma mtengo wake sudziwika mpaka oracle itasindikiza. Zonse zomwe timafuna!

Ponena za fixed R, zindikirani kuti adagwiritsanso ntchito R posayina mauthenga osiyanasiyana, imawulula mwapadera kiyi yachinsinsi mu dongosolo la EdDSA. Zimakhala zofunikira kwambiri kuti mwiniwake wa oracle achotse kuthekera kogwiritsanso ntchito R kusaina mauthenga osiyanasiyana ogwiritsa ntchito. Ndiko kuti, ndi kusintha kulikonse kapena kugwirizana, oracle nthawi zonse amakhala pachiwopsezo chotaya kiyi yake yachinsinsi.

Pazonse, oracle iyenera kupatsa ogwiritsa ntchito ntchito ziwiri: kuyambitsa, komwe kumakonza mtengo wa R, ndi siginecha, yomwe imabwezera mtengo S. Pachifukwa ichi, awiriwa R, S ndi siginecha yotsimikizika yokhazikika ya uthenga wogwiritsa ntchito womwe uli ndi chokhazikika. mtengo R ndi deta yosasinthika.

Zitha kutsutsidwa kuti chiwembu ichi cha blockchain sichinthu chachilendo ndondomeko yowonjezera. Kwenikweni, inde, ndi iye. Koma pali ma nuances angapo. Choyamba, oracle nthawi zonse amagwira ntchito ndi kiyi yemweyo muzochita zonse, mwachitsanzo, izi ndizosavuta kugwiritsa ntchito m'makontrakitala. Kachiwiri, pali chiwopsezo cha oracle kutaya kiyi yachinsinsi ngati ikuchita molakwika, mwachitsanzo, oracle imakulolani kupanga zitsanzo zazotsatira, ndiye kuti ndikwanira kupanga mayeso awiri okha kuti mupeze kiyi yachinsinsi ndikupindula mokwanira. kupeza chikwama. Chachitatu, siginecha yomwe imatsimikiziridwa mwachilengedwe pa blockchain ndipo ndi gwero lachisawawa ndi yokongola.

Kwa miyezi isanu ndi umodzi lingaliro la kukhazikitsidwa lidakhazikika m'mutu mwanga, mpaka chilimbikitso chinawonekera mu mawonekedwe thandizo kuchokera ku Waves Labs. Ndi thandizo lalikulu limabwera ndi udindo waukulu, kotero polojekitiyi idzakhalapo!

РСализация

Choncho, mu polojekitiyi VECRO idakhazikitsidwa pa Waves blockchain mu njira yoyankhira-kuyankha pogwiritsa ntchito kusinthana pakati pa wogwiritsa ntchito ndi oracle. Panthawi imodzimodziyo, script imayikidwa pa akaunti ya oracle yomwe imayendetsa ntchitoyo motsatira ndondomeko yomwe tafotokozayi. Zochita za Oracle zimatsimikiziridwa ndipo mndandanda wonse wa ogwiritsa ntchito umabwezeretsedwa. Zochita zonse zinayi zimakhudzidwa ndikutsimikizira mtengo womaliza; mgwirizano wanzeru umawagwirizanitsa ndi ulusi wotsimikizira, kuyang'ana makhalidwe onse pang'onopang'ono ndikusiya malo oti asokonezedwe.

Apanso, kuyiyika pambali ndikumveketsa bwino. Oracle samangogwira ntchito molingana ndi dongosolo lomwe akufuna. Ntchito yake imayendetsedwa kwathunthu pamlingo wa blockchain ndi okhazikitsidwa mwamphamvu ndi mgwirizano wanzeru. Yendani kumanzere ndipo zomwe zikuchitika sizingadutse. Chifukwa chake, ngati malonda akuphatikizidwa mu blockchain, wogwiritsa safunikira ngakhale kuyang'ana kalikonse; mazana a ma node amtaneti amuyang'anira kale chilichonse.

Pakadali pano, pali VECRO imodzi yomwe ikuyenda pa Waves mainnet (mutha kuyendetsa nokha, sizovuta, basi yang'anani chitsanzo cha kasinthidwe). Khodi yamakono imayenda mu PHP (on WavesKit, za zomwe Ndinakuuzani kale).

Kuti mugwiritse ntchito utumiki wa oracle muyenera:

  • Konzani R;
    • Tumizani osachepera 0.005 Waves ku oracle alias init@vecr;
    • Landirani R-code mu gawo lophatikizira pakusamutsa chizindikiro cha 1 R-vecr kuchokera ku oracle kupita kwa wogwiritsa ntchito;
  • Pezani siginecha;
    • Tumizani osachepera 0.005 Waves ku oracle alias random@vecr, komanso MUYENERA kuwonetsa R-code yomwe idalandilidwa kale ndi zambiri za ogwiritsa ntchito pagawo lolumikizira;
    • Landirani S-code m'gawo lophatikizira pakusamutsa chizindikiro cha 1 S-vecr kuchokera ku oracle kupita kwa wogwiritsa ntchito;
  • Gwiritsani ntchito S-code ngati gwero la nambala yachinyengo.

Ma nuances a kukhazikitsidwa kwatsopano:

  • Mafunde otumizidwa ku oracle amagwiritsidwa ntchito ngati ntchito yobwereranso kwa wogwiritsa ntchito, mpaka kufika pamtunda wa 1 Waves;
  • R-code ndi kuphatikiza kwa byte ya 'R' ndi 32-byte base58-encoded R mtengo;
  • R-code yolumikizidwa iyenera kukhala yoyamba, data ya ogwiritsa imabwera pambuyo pa R-code;
  • S-code ndi kuphatikiza kwa baiti ya zilembo 'S' ndi 32-byte base58 encoded mtengo wa S;
  • S ndi zotsatira za magawano a modulo, kotero simungagwiritse ntchito S ngati nambala yonse ya 256-bit pseudorandom (chiwerengerochi chikhoza kuonedwa ngati chiwerengero cha 252-bit pseudorandom chiwerengero);
  • Njira yosavuta ndiyo kugwiritsa ntchito S-code hash ngati nambala yachinyengo.

Chitsanzo cha kulandira S-code:

Kuchokera pamalingaliro aukadaulo, oracle ndi okonzeka kugwira ntchito, mutha kuyigwiritsa ntchito mosamala. Pakuwona kugwiritsidwa ntchito ndi wogwiritsa ntchito wamba, pali kusowa kwa mawonekedwe owoneka bwino; izi ziyenera kudikirira.

Ndidzakhala wokondwa kuyankha mafunso ndikuvomera ndemanga, zikomo.

Source: www.habr.com

Kuwonjezera ndemanga