Random oracle yakavakirwa padhijitari siginecha mu blockchain

Kubva pane zano kusvika pakuita: isu tinogadzirisa iripo elliptic curve yedhijitari siginecha chirongwa kuti ive deterministic, uye zvichibva pairi tinopa mabasa ekuwana pseudo-random nhamba dzinoonekwa mukati me blockchain.

Random oracle yakavakirwa padhijitari siginecha mu blockchain

Idea

Mukudonha kwe2018, iyo Waves blockchain yaisanganisira ekutanga akangwara zvibvumirano akamiswa, mubvunzo wakabva wamuka pamusoro pekugona kuwana pseudorandom numberskuti unogona kuvimba.

Ndichinetsekana pamusoro pemubvunzo uyu, ndakazoguma ndasvika pamhedziso: chero blockchain sero; hazvigoneke kuwana yakavimbika sosi ye entropy mune yakavharwa system.

Asi ini ndichiri kufarira imwe pfungwa: kana random oracle ichasaina data remushandisi ine deterministic algorithm, ipapo mushandisi anogara achikwanisa kuonesa siginecha yakadaro achishandisa kiyi yeruzhinji, uye achave nechokwadi chekuti kukosha kwacho kwakasiyana. Iyo oracle, kunyangwe ichida kuoma sei, haikwanise kushandura chero chinhu; iyo algorithm inoburitsa mhedzisiro isina kujeka. Chaizvoizvo, mushandisi anorekodha mhedzisiro, asi haazvizive kusvika iyo oracle yaburitsa. Zvinoitika kuti haugone kuvimba neoracle zvachose, asi tarisa mhedzisiro yebasa rayo. Zvino, kana ikabudirira kusimbiswa, siginicha yakadaro inogona kunzi sosi ye entropy yenhamba yepseudorandom.

Iyo Waves blockchain chikuva inoshandisa siginecha chirongwa EdDSA sarudzo Ed25519. Muchirongwa ichi, siginicha inosanganisira kukosha R uye S, uko R inoenderana nehuwandu husina kurongeka, uye S inoverengerwa zvichienderana neshoko rakasainwa, kiyi yakavanzika uye yakafanana nhamba isina kurongeka seR. Zvinoitika kuti hapana kutsamira kwakasiyana kune zvakafanana Kune akawanda anoshanda masiginicha emeseji yemushandisi.

Zviripachena, muchimiro chayo chakachena, siginicha yakadaro haigone kushandiswa sechitubu chemanyepo-random manhamba, sezvo isiri-deterministic uye, saka, inogona kushandiswa nyore nyore neiyo oracle.

Asi, sezvazvakazoitika, zvinogoneka kuita kuti iite deterministic.

Ndaiva netariro huru Verifiable random function (VRF), asi mushure mekudzidza hardware, ndaifanira kusiya iyi sarudzo. Kunyangwe VRF ichipa dhizaini yekusaina uye humbowo hwayo, kune imwe nzvimbo isinganzwisisike mune algorithm inovhura gomba dema rekunyengedza oracle. Zvichireva, kana uchiverenga kukosha kwe k (chikamu 5.1) kiyi yepachivande inoshandiswa, iyo inoramba isingazivikanwe kumushandisi, zvinoreva kuti mushandisi haakwanise kuona chokwadi chekuverenga k, zvinoreva kuti oracle inogona kushandisa chero kukosha kwe k iyo inoda uye panguva imwechete kuchengetedza dhatabhesi retsamba. ye k uye data yakasainwa kuitira kuti ugare uchikwanisa kuverengera zvakare mhinduro chaiyo kubva pakuona kweVRF. Kana iwe ukaona dhirowa yakavakirwa paVRF pasina kuburitsa kiyi yakavanzika, unogona kuve wakangwara: ratidza kukosha kwekuburitsa kiyi, kana kuibvisa kubva pakuverenga k, ipapo kiyi yakavanzika inozviratidza pachayo pachaonekwa siginecha yekutanga. . Kazhinji, sezvatotaurwa, chirongwa chisinganzwisisike chechirevo chisina kujairika.

Mushure mekufunga zvishoma uye kunyora rubatsiro rwevaongorori vemunharaunda, chirongwa chebasa cheVECRO chakazvarwa.

VECRO chidimburidzo cheVerifiable Elliptic Curve Random Oracle, icho muchiRussian chinoreva kuti zvinogoneka zvinogoneka kunzwisiswa pane elliptic curves.

Zvese zvakazove nyore; kuti uwane determinism, unofanirwa kugadzirisa kukosha kweR meseji isati yasainwa yaoneka. Kana R yakazvipira uye iri chikamu chemeseji iri kusainwa, iyo inosimbisazve kuti R yakazvipira mumeseji iri kusainwa, kukosha kweS kunotemerwa nemeseji yemushandisi uye nekudaro inogona kushandiswa senzvimbo yenhamba dzemanyepo.

Muchirongwa chakadaro, hazvina basa kuti R inogadziriswa sei; ichi chinoramba chiri mutoro weiyo oracle. Zvakakosha kuti S inosarudzwa nemushandisi, asi kukosha kwayo hakuzivikanwi kusvika iyo oracle yaiburitsa. Zvese zvataida!

Kutaura nezve yakagadziriswa R, cherechedza izvozvo akashandiswa zvakare R kana kusaina mameseji akasiyana, inosarudzika kiyi yakavanzika muchirongwa cheEdDSA. Zvinova zvakanyanya kukosha kuti muridzi weiyo oracle abvise mukana wekushandisa zvakare R kusaina akasiyana mameseji emushandisi. Kureva kuti, nekunyengedza chero kupi zvako kana kubatana, iyo oracle inogara iri panjodzi yekurasikirwa neyakavanzika kiyi.

Pakazara, chirevo chinofanira kupa vashandisi mabasa maviri: kutanga, iyo inogadzirisa kukosha R, uye siginecha, iyo inodzosera kukosha S. Muchiitiko ichi, iyo mbiri R, S ndiyo inogaro zivikanwa siginicha yemeseji yemushandisi ine yakatarwa. kukosha R uye data remushandisi zvisina kufanira.

Zvinogona kupokana kuti chirongwa ichi che blockchain hachisi chinhu chinopfuura chakajairika zvipira-kuwedzera chirongwa. Chaizvoizvo, hongu, ndiye. Asi pane akati wandei nuances. Kutanga, iyo oracle inogara ichishanda nekiyi imwechete mune zvese mashandiro, semuenzaniso, izvi zviri nyore kushandisa muzvibvumirano. Chechipiri, pane njodzi yekurasikirwa nekiyi yakavanzika kana ikaita zvisizvo, semuenzaniso, iyo oracle inokutendera iwe kuti uite sampuli dzemhedzisiro, saka zvinokwana kuita bvunzo mbiri chete kuti uwane iyo yakavanzika kiyi uye uwane yakazara. kuwana chikwama. Chechitatu, siginicha inogoneka pa blockchain uye iri sosi yekusagadzikana yakanaka.

Kwemwedzi mitanhatu pfungwa yekushandiswa yakanyura mumusoro mangu, kusvika pakupedzisira kukurudzira kwakabuda muchimiro rubatsiro kubva kuWaves Labs. Nekupihwa hombe kunouya mutoro mukuru, saka purojekiti ichave iripo!

Kutevedzera

Saka, muchirongwa ichi VECRO yakaitwa paWaves blockchain mukukumbira-mhinduro modhi uchishandisa kutamisa kutengeserana pakati pemushandisi neiyo oracle. Panguva imwecheteyo, script inoiswa pane oracle account iyo inodzora basa zvakanyatsoenderana nemafungiro anotsanangurwa pamusoro. Oracle transaction inosimbiswa uye ketani yese yekudyidzana kwevashandisi inodzoreredzwa. Zvese zvina zvekutengesa zvinosanganisirwa mukuona kukosha kwekupedzisira; iyo smart kontrakiti inovabatanidza pamwe chete netambo yakasimba yekusimbisa, ichiongorora ese maitiro nhanho nhanho uye pasina nzvimbo yekunyengedza.

Kamwe zvakare, kuisa parutivi uye kujekesa. Iyo oracle haingoshande zvinoenderana nechirongwa chakarongwa. Basa rayo rinodzorwa zvachose padanho re blockchain neyakasimbiswa zvakasimba nechibvumirano chakangwara. Nhanho kuruboshwe uye kutengeserana hakungopfuura. Saka, kana kutengeserana kuchisanganisirwa mu blockchain, mushandisi haatomboda kutarisa chero chinhu; mazana etiweki node akatotarisa zvese kwaari.

Parizvino, kune imwe VECRO inomhanya paWaves mainnet (iwe unogona kumhanya yako, hazvina kuoma, chete. tarisa muenzaniso wekugadzirisa) Ikozvino kodhi inomhanya muPHP (pa WavesKit, nezvei Ndakakuudza kare).

Kuti ushandise iyo oracle sevhisi unofanirwa:

  • Gadzirisa R;
    • Tumira kanenge 0.005 Waves kune oracle alias init@vecr;
    • Gamuchira iyo R-kodhi mundima yekunamatira mukufambiswa kwe 1 R-vecr chiratidzo kubva kune oracle kuenda kumushandisi;
  • Tora siginicha;
    • Tumira kanokwana 0.005 Waves kune oracle alias random@vecr, uye zvakare UNOFANIRA kuratidza iyo yakambogamuchirwa R-kodhi uye yekuwedzera data remushandisi mundima yekunamatira;
    • Gamuchira iyo S-kodhi mundima yekunamatira mukufambiswa kwe1 S-vecr tokeni kubva kuoracle kuenda kumushandisi;
  • Shandisa S-code senzvimbo yepseudo-random nhamba.

Nuances yekushandiswa kwezvino:

  • Mafungu anotumirwa kune oracle anoshandiswa sekomisheni yekudzoka kwekutengesa kune mushandisi, kusvika pakukwirira kwe1 Waves;
  • R-code ndiko kubatanidzwa kwebyte ye'R' chimiro uye 32-byte base58-encoded R kukosha;
  • R-kodhi mune yekunamatira inofanira kuva yekutanga, data yemushandisi inouya mushure meR-code;
  • S-code ndiko kubatanidzwa kwebyte yemavara 'S' uye 32-byte base58-encoded kukosha kweS;
  • S ndiyo mhedzisiro yemodulo division, saka haugone kushandisa S senge yakazara 256-bit pseudorandom nhamba (nhamba iyi inogona kunzi inodarika 252-bit pseudorandom nhamba);
  • Iyo yakapusa sarudzo ndeye kushandisa iyo S-code hashi se pseudo-random nhamba.

Muenzaniso wekugamuchira S-code:

Kubva pane tekinoroji yekuona, iyo oracle yakagadzirira zvachose kushanda, unogona kuishandisa zvakachengeteka. Kubva pamaonero ekushandiswa neavhareji mushandisi, pane kushomeka kweiyo nyore graphical interface; izvi zvinofanirwa kumirira.

Ndichafara kupindura mibvunzo uye kugamuchira mhinduro, ndatenda.

Source: www.habr.com

Voeg