Oracle random oo ku salaysan saxeexa dhijitaalka ah ee blockchain

Laga soo bilaabo fikrad ilaa hirgelinta: waxaanu wax ka beddelnaa nidaamka saxeexa dhijitaalka ah ee qalooca elliptik si uu u noqdo mid go'aamin kara, iyada oo ku saleysan iyada waxaan bixinaa hawlo lagu helo tirooyin-random ah oo lagu xaqiijin karo blockchain gudaheeda.

Oracle random oo ku salaysan saxeexa dhijitaalka ah ee blockchain

Fikradda

Dayrta 2018, blockchain-ka Waves ayaa lagu daray qandaraasyada smart ugu horeysay firfircoon, su'aasha ayaa isla markiiba kacday suurtagalnimada helitaanka nambarada beenta ahin aad aamini karto.

Anigoo ku wareersan su'aashan, waxaan ugu dambeyntii imid gabagabada: blockchain kasta waa unug; suurtagal maaha in la helo ilo la aamini karo ee entropy ee nidaamka xiran.

Laakiin weli waxaan jeclaa hal fikrad: haddii hadal random wuxuu saxiixi doonaa xogta isticmaalaha algorithm go'aaminta, markaa isticmaaluhu wuxuu had iyo jeer awoodi doonaa inuu xaqiijiyo saxeexa noocaas ah isagoo isticmaalaya furaha dadweynaha, wuxuuna hubin doonaa in qiimaha ka dhashay uu yahay mid gaar ah. Oracle-ka, iyada oo aan loo eegin sida uu u adag yahay, ma awoodo inuu wax ka beddelo; algoorithm wuxuu soo saaraa natiijo aan caddayn. Asal ahaan, adeegsaduhu wuxuu diiwaangeliyaa natiijada, laakiin ma yaqaan ilaa uu afku daabaco. Waxaa soo baxday inaadan ku kalsoonayn karin hadalka, laakiin hubi natiijada hawsheeda. Kadib, haddii ay dhacdo xaqiijinta guulaysata, saxeexa noocan oo kale ah waxaa loo tixgelin karaa isha entropy ee lambarka been abuurka ah.

Mawjada blockchain ee mawjadaha waxay isticmaashaa nidaamka saxeexa EdDSA ikhtiyaar Ed25519. Nidaamkan, saxiixu wuxuu ka kooban yahay qiyamka R iyo S, halkaas oo R ay ku xiran tahay qiimaha random, iyo S waxaa lagu xisaabiyaa iyadoo lagu saleynayo fariinta la saxiixayo, furaha gaarka ah iyo isla lambarka random sida R. Waxaa soo baxday in ma jiro ku tiirsanaan gaar ah oo isku mid ah Waxaa jira saxiixyo badan oo sax ah oo loogu talagalay fariinta isticmaalaha.

Sida cad, qaabkeeda saafiga ah, saxeexa noocan oo kale ah looma isticmaali karo ilo tirooyin-random ah, maadaama aysan ahayn mid la go'aamin karo, sidaas darteed, si fudud ayaa loo maareyn karaa hadalka.

Laakiin, sida ay soo baxday, dhab ahaantii waa suurtagal in la sameeyo go'aamin.

Waxaan lahaa rajo weyn Shaqo random la xaqiijin karo (VRF), laakiin ka dib markii aan bartay qalabka, waa in aan ka tago doorashadan. In kasta oo VRF ay bixiso nooca go'aaminta saxeexa iyo caddayntiisa, waxaa jira meel qariib ah oo algorithm ah oo furaysa god madow oo loogu talagalay ku takri-falka hadalka. Magac ahaan, marka la xisaabinayo qiimaha k (qaybta 5.1) furaha gaarka ah ayaa la isticmaalaa, kaas oo aan la garanayn isticmaaluhu, taas oo macnaheedu yahay isticmaaluhu ma xaqiijin karo saxnaanta xisaabinta k, taas oo macnaheedu yahay oracle wuxuu isticmaali karaa qiimo kasta oo k uu u baahan yahay isla markaana uu ilaalinayo kaydka waraaqaha waraaqaha. ee k iyo xogta saxeexan si had iyo jeer loo awoodo in dib loo xisaabiyo natiijada saxda ah ee aragtida VRF. Haddii aad aragto sawir ku salaysan VRF adigoon shaaca ka qaadin furaha gaarka ah, waxaad noqon kartaa mid caqli badan: muuji baahida loo qabo in la muujiyo furaha, ama laga saaro xisaabinta k, markaa furaha gaarka ah ayaa si toos ah isu muujin doona marka saxiixa ugu horreeya uu soo baxo. . Guud ahaan, sidaan horeba u soo sheegnay, qorshe qariib ah oo loogu talagalay oracle-ka random.

Fikir yar ka dib iyo raadinta taageerada falanqeeyayaasha maxalliga ah, nidaamka shaqada ee VECRO ayaa dhashay.

VECRO waa soo gaabinta Verifiable Elliptic Curve Random Oracle, kaas oo Ruushku macneheedu yahay oracle random la xaqiijin karo oo ku yaal qalooca elliptical.

Wax walba waxay noqdeen wax fudud; si loo gaaro go'aaminta, waxaad u baahan tahay inaad hagaajiso qiimaha R ka hor inta aysan fariinta la saxiixin soo bixin. Haddii R ay go'an tahay oo ay qayb ka tahay fariinta la saxiixayo, taas oo sii hubinaysa in R uu ka go'an yahay fariinta la saxiixayo, qiimaha S waxaa si gaar ah u go'aaminaya fariinta isticmaalaha sidaas darteedna waxaa loo isticmaali karaa ilo tirooyin been abuur ah.

Nidaamkan oo kale, dhib ma laha sida R loo hagaajiyo, tani waxay ahaanaysaa mas'uuliyadda hadalka. Waa muhiim in S uu si gaar ah u go'aamiyo isticmaaluhu, laakiin qiimaheeda lama garanayo ilaa uu afku daabaco. Wax kasta oo aan rabnay!

Isagoo ka hadlaya R go'an, ogow taas dib loo isticmaalo R marka la saxeexayo farriimaha kala duwan, waxay si gaar ah u muujinaysaa furaha gaarka ah ee nidaamka EdDSA. Waxa ay noqonaysaa mid aad muhiim u ah milkiilaha oracle si uu meesha uga saaro suurtogalnimada dib u isticmaalida R si uu u saxiixo farriimaha isticmaalaha kala duwan. Taasi waa, wax kasta oo wax-is-daba-marin ama wax-wada-jir ah, afku wuxuu had iyo jeer halis u yahay inuu lumiyo furihiisa gaarka ah.

Wadar ahaan, oracle-ku waa inuu siiyaa isticmaaleyaasha laba hawlood: bilowga, kaas oo hagaajinaya qiimaha R, iyo saxeex, kaas oo soo celinaya qiimaha S. Xaaladdan, lammaanaha R, S waa saxeexa caadiga ah ee la xaqiijin karo ee farriinta adeegsadaha oo ay ku jiraan go'an qiimaha R iyo xogta isticmaalaha aan sabab lahayn.

Waxaa lagu doodi karaa in nidaamkan loogu talagalay blockchain uusan ahayn wax ka badan mid caadi ah qorshe balaarineed. Asal ahaan, haa, waa iyada. Laakiin waxaa jira dhowr nuances. Marka hore, oracle had iyo jeer wuxuu la shaqeeyaa isla furaha dhammaan hawlgallada, tusaale ahaan, tani way ku habboon tahay in loo isticmaalo qandaraasyada. Marka labaad, waxaa jira khatar ah in afku lumiyo furaha gaarka ah haddii uu u dhaqmo si khaldan, tusaale ahaan, oracle wuxuu kuu ogolaanayaa inaad sameyso muunado natiijada, markaa waa ku filan inaad sameyso laba tijaabo oo keliya si aad u ogaato furaha gaarka ah oo aad u hesho buuxda. gelitaanka jeebka. Marka saddexaad, saxeex asal ahaan lagu xaqiijin karo blockchain oo ah isha nasiib-darrada ayaa qurux badan.

Muddo lix bilood ah fikradda hirgelinta ayaa madaxayga ku dhexjirtay, ilaa ugu dambeyntii dhiirigelinta u muuqatay qaabka deeq ka timid Waves Labs. Iyadoo deeq weyn ay timaado mas'uuliyad weyn, sidaas darteed mashruucu halkaas ayuu joogi doonaa!

РСализация

Markaa, mashruucan VECRO waa la hirgaliyay on the Waves blockchain ee habka ka jawaabida codsiga iyadoo la isticmaalayo xawaalad kala iibsiga u dhexeeya isticmaalaha iyo oracle. Isla mar ahaantaana, qoraal ayaa lagu rakibay xisaabta oracle kaas oo si adag u xakameynaya shaqada si waafaqsan macquulnimada kor lagu sharaxay. Wax kala iibsiga Oracle waa la xaqiijiyay oo dhammaan silsiladda isdhexgalka isticmaalaha waa la soo celiyay. Dhammaan afarta macaamil ganacsi waxay ku lug leeyihiin xaqiijinta qiimaha kama dambaysta ah; qandaraaska caqliga leh wuxuu ku xidhaa xadhig adag oo xaqiijin ah, hubinta dhammaan qiyamka tallaabo tallaabo oo aan meelna uga tagin wax isdaba marin.

Mar labaad, in aan dhinac iska dhigo oo aan caddeeyo. Hadalku kaliya kuma shaqeeyo sida uu qabo qorshaha la soo jeediyay. Shaqadeeda si buuxda ayaa loo xakameeyaa heerka blockchain ee la aasaasay si adag ula qandaraas caqli badan. Talaabo bidix oo macaamilku si fudud uma socon doono. Sidaa darteed, haddii macaamil ganacsi uu ku jiro blockchain, isticmaaluhu xitaa uma baahna inuu hubiyo wax; boqollaal shabakadood oo shabakad ah ayaa mar hore u hubiyay wax walba isaga.

Waqtigan xaadirka ah, waxaa jira hal VECRO oo ku shaqeeya shabakadda Waves mainnet (adiga ayaa maamuli kara adiga, maaha wax adag, kaliya fiiri tusaalaha qaabeynta). Koodhka hadda wuxuu ku shaqeeyaa PHP (on WavesKit, taas oo ku saabsan Horaan kuu sheegay).

Si aad u isticmaasho adeegga oracle-ka waa inaad:

  • Hagaajin R;
    • U dir ugu yaraan 0.005 Mowjadaha si aad oracle alias init@vecr;
    • Ku hel lambarka R-code ee goobta lifaaqa ah ee wareejinta 1 R-vecr token laga bilaabo oracle ilaa adeegsadaha;
  • Saxiix qaado;
    • U dir ugu yaraan 0.005 hirarka oracle alias random@vecr, iyo sidoo kale WAA IN ay muujisaa R-koodka hore ee la helay iyo xogta isticmaale ee dheeraadka ah ee goobta lifaaqa;
    • Ku hel S-koodka goobta lifaaqa ah ee wareejinta 1 S-vecr token ka oracle ilaa adeegsadaha;
  • Isticmaal lambarka S-code si aad u noqoto isha lambarka been-abuurka ah.

Nuances ee hirgelinta hadda:

  • Mowjadaha loo diro oracle-ka waxa loo isticmaalaa komishan ahaan wax kala beddelashada isticmaalaha, ilaa ugu badnaan 1 Waves;
  • R-code waa isku xidhka byte ee jilaha 'R' iyo 32-byte saldhiga58-ku-xidhan qiimaha R;
  • R-code ee ku lifaaqan waa inuu ahaadaa marka hore, xogta isticmaaluhu waxay timaadaa ka dib R-code;
  • S-code waa isku xidhka byte ee jilaha 'S' iyo 32-byte saldhigga58-ku-xidhan qiimaha S;
  • S waa natiijada qaybinta modulo, markaa uma isticmaali kartid S sida nambarka beenta ah ee 256-bit oo buuxa (lambarkan waxaa loo tixgelin karaa ugu badnaan 252-bit nambarka beenta ah);
  • Xulashada ugu fudud ayaa ah in la isticmaalo xashiishka S-code lambar been abuur ah.

Tusaalaha helitaanka S-code:

Marka laga eego dhinaca farsamada, oracle-ku si buuxda ayuu diyaar ugu yahay shaqada, si ammaan ah ayaad u isticmaali kartaa. Marka loo eego aragtida isticmaalka celceliska isticmaale, waxaa jira la'aanta is-dhexgalka garaafyada ku habboon; tani waa inay sugto.

Waan ku farxi doonaa inaan ka jawaabo su'aalaha oo aan aqbalo faallooyinka, mahadsanid.

Source: www.habr.com

Add a comment