I-oracle engahleliwe esekelwe kusiginesha yedijithali ku-blockchain

Ukusuka embonweni kuya ekusetshenzisweni: sishintsha isikimu esikhona se-elliptic curve yesiginesha yedijithali ukuze sinqume, futhi ngokusekelwe kulo sihlinzeka ngemisebenzi yokuthola izinombolo ezingamanga ezingahleliwe ezingaqinisekiswa ngaphakathi kwe-blockchain.

I-oracle engahleliwe esekelwe kusiginesha yedijithali ku-blockchain

I-Idea

Ekwindla ka-2018, i-Waves blockchain ifakiwe izinkontileka zokuqala ezihlakaniphile zenziwe zasebenza, umbuzo waphakama ngokushesha mayelana nokwenzeka kokuthola izinombolo ze-pseudorandomongayethemba.

Ngokudida lo mbuzo, ekugcineni ngifinyelele esiphethweni: noma iyiphi i-blockchain iyiseli; akunakwenzeka ukuthola umthombo othembekile we-entropy ohlelweni oluvaliwe.

Kodwa ngangisawuthanda umbono owodwa: uma i-oracle engahleliwe izosayina idatha yomsebenzisi nge-algorithm ye-deterministic, umsebenzisi uzokwazi njalo ukuqinisekisa isiginesha enjalo esebenzisa ukhiye osesidlangalaleni, futhi uzoqiniseka ukuthi inani eliwumphumela lihlukile. I-oracle, kungakhathaliseki ukuthi ifuna kanzima kangakanani, ayikwazi ukushintsha lutho; i-algorithm ikhiqiza umphumela ocacile. Empeleni, umsebenzisi urekhoda umphumela, kodwa akazi kuze kube yilapho i-oracle isiwushicilela. Kuvela ukuthi awukwazi ukwethemba i-oracle nhlobo, kodwa hlola umphumela womsebenzi wayo. Khona-ke, uma kwenzeka ukuqinisekiswa okuphumelelayo, isiginesha enjalo ingabhekwa njengomthombo we-entropy yenombolo-mbumbulu.

Inkundla ye-Waves blockchain isebenzisa isikimu sesiginesha I-EDSA inketho Ed25519. Kulolu hlelo, isiginesha iqukethe amanani R kanye no-S, lapho u-R encike enanini elingahleliwe, futhi u-S ubalwa ngokusekelwe kumlayezo osayiniwe, ukhiye oyimfihlo kanye nenombolo efanayo engahleliwe njengo-R. Kuvele ukuthi akukho ukuncika okuyingqayizivele okufanayo Kukhona amasiginesha amaningi avumelekile omlayezo womsebenzisi.

Ngokusobala, ngendlela ehlanzekile, isignesha enjalo ayikwazi ukusetshenziswa njengomthombo wezinombolo ezingahleliwe, njengoba i-non-deterministic futhi, ngakho-ke, ingasetshenziswa kalula yi-oracle.

Kodwa, njengoba kwavela, empeleni kungenzeka ukwenza kube deterministic.

Nganginethemba elikhulu umsebenzi oqinisekisiwe ongahleliwe (VRF), kodwa ngemva kokutadisha i-hardware, kwadingeka ngiyiyeke le nketho. Nakuba i-VRF inikeza inguqulo enqumayo yesiginesha kanye nobufakazi bayo, kunendawo eyinqaba ku-algorithm evula imbobo emnyama yokukhohlisa i-oracle. Okungukuthi, lapho kubalwa inani lika-k (isigaba 5.1) kusetshenziswa ukhiye oyimfihlo, okuhlala kungaziwa kumsebenzisi, okusho ukuthi umsebenzisi akakwazi ukuqinisekisa ukufaneleka kwesibalo sika-k, okusho ukuthi i-oracle ingasebenzisa noma yiliphi inani lika-k elidingayo futhi ngesikhathi esifanayo igcine isizindalwazi sezincwadi. ka-k kanye nedatha esayiniwe ukuze uhlale ukwazi ukubala kabusha umphumela olungile ukusuka endaweni yokubuka ye-VRF . Uma ubona umdwebo osuselwe ku-VRF ngaphandle kokudalula ukhiye oyimfihlo, ungase uhlakaniphe: bonisa isidingo sokuveza ukhiye, noma ungawufaki esibalweni sika-k, ukhiye oyimfihlo uzoziveza ngokuzenzakalelayo lapho kuvela isiginesha yokuqala. . Ngokuvamile, njengoba sekushiwo, uhlelo olungajwayelekile lwe-oracle engahleliwe.

Ngemva kokucabangisisa nokucela ukusekelwa abahlaziyi bendawo, kwasungulwa uhlelo lomsebenzi we-VECRO.

I-VECRO isifinyezo se-Verifiable Elliptic Curve Random Oracle, okusho ngesi-Russian kusho i-oracle engahleliwe eqinisekiswa kumajika ayi-elliptic.

Konke kuvele kwaba lula kakhulu; ukuze ufinyelele i-determinism, udinga ukulungisa inani lika-R ngaphambi kokuthi umlayezo usayinwe uvele. Uma u-R ezibophezele futhi eyingxenye yomlayezo osayinwayo, oqinisekisa ngokuqhubekayo ukuthi u-R uzibophezele kumlayezo osayinwayo, inani lika-S linqunywa ngokuhlukile umlayezo womsebenzisi futhi lingasetshenziswa njengomthombo wezinombolo zamanga.

Kuhlelo olunjalo, akunandaba ukuthi u-R ulungiswa kanjani; lokhu kuhlala kuwumthwalo we-oracle. Kubalulekile ukuthi u-S anqunywe ngokukhethekile umsebenzisi, kodwa inani lakhe alaziwa kuze kube yilapho i-oracle iyishicilela. Konke ebesikufuna!

Uma sikhuluma nge-fixed R, qaphela lokho waphinda wasebenzisa uR lapho usayina imilayezo ehlukahlukene, iveza ngokukhethekile ukhiye oyimfihlo ohlelweni lwe-EdDSA. Kubaluleka kakhulu kumnikazi we-oracle ukuthi asuse ithuba lokuphinda asebenzise u-R ukuze asayine imilayezo yabasebenzisi abahlukene. Okusho ukuthi, nganoma yikuphi ukukhohlisa noma ukuhlangana, i-oracle izohlale isengozini yokulahlekelwa ukhiye wayo oyimfihlo.

Sekukonke, i-oracle kufanele inikeze abasebenzisi imisebenzi emibili: ukuqalisa, okulungisa inani elingu-R, nesiginesha, ebuyisela inani elingu-S. Kulokhu, ipheya R, S iyisiginesha evamile ekwazi ukuqinisekiswa yomlayezo womsebenzisi oqukethe okugxilile. inani R kanye nedatha yomsebenzisi engafanele.

Kungaphikiswana ngokuthi lolu hlelo lwe-blockchain aluyona into evamile isikimu sokuzibophezela. Empeleni, yebo, nguye. Kodwa kukhona ama-nuances amaningana. Okokuqala, i-oracle isebenza njalo ngokhiye ofanayo kuyo yonke imisebenzi, isibonelo, lokhu kulula ukuyisebenzisa ezinkontilekeni. Okwesibili, kunengozi yokuthi i-oracle ilahlekelwe ukhiye wangasese uma iziphatha ngendlela engafanele, isibonelo, i-oracle ikuvumela ukuthi wenze amasampula omphumela, khona-ke kwanele ukwenza izivivinyo ezimbili kuphela ukuze uthole ukhiye wangasese futhi uzuze ngokugcwele. ukufinyelela esikhwameni. Okwesithathu, isiginesha eqinisekiswa ngokomdabu ku-blockchain futhi iwumthombo wokungahleliwe yinhle.

Kwaphela izinyanga eziyisithupha umqondo wokuqaliswa uhlezi ekhanda lami, kwaze kwaba yilapho ugqozi luvela efomini isibonelelo esivela kuma-Waves Labs. Ngemali yesibonelelo esikhulu iza nesibopho esikhulu, ngakho-ke iphrojekthi izoba khona!

Ukuqaliswa

Ngakho, kule phrojekthi I-VECRO yasetshenziswa ku-Waves blockchain kumodi yokuphendula isicelo kusetshenziswa ukuthengiselana kokudlulisa phakathi komsebenzisi ne-oracle. Ngesikhathi esifanayo, umbhalo ufakwa ku-akhawunti ye-oracle elawula umsebenzi ngokuqinile ngokuvumelana nomqondo ochazwe ngenhla. Ukuthengiselana kwe-Oracle kuyaqinisekiswa futhi lonke uchungechunge lokusebenzisana komsebenzisi luyabuyiselwa. Konke okwenziwayo okune kuhileleke ekuqinisekiseni inani lokugcina; inkontileka ehlakaniphile ihlanganisa ndawonye ngochungechunge oluqinile lokuqinisekisa, ihlola wonke amanani isinyathelo ngesinyathelo futhi ingashiyi indawo yanoma yikuphi ukukhohlisa.

Nakulokhu futhi, ukuyibeka eceleni futhi kucace kakhudlwana. I-oracle ayisebenzi nje ngohlelo oluhlongozwayo. Umsebenzi wayo ulawulwa ngokuphelele ezingeni le-blockchain ngosunguliwe ngokuqinile ngenkontileka ehlakaniphile. Hamba uye kwesokunxele futhi okwenziwayo ngeke kudlule. Ngakho-ke, uma ukuthengiselana kufakwe ku-blockchain, umsebenzisi akadingi ngisho nokuhlola noma yini; amakhulu ama-node enethiwekhi asevele amhlolele yonke into.

Njengamanje, kune-VECRO eyodwa egijima ku-Waves mainnet (ungagijima eyakho, akunzima, nje bheka isibonelo sokumisa). Ikhodi yamanje isebenza nge-PHP (ku I-WavesKit, mayelana nokuthi Ngikutshelile ngaphambili).

Ukuze usebenzise isevisi yezwi kufanele:

  • Lungisa R;
    • Thumela okungenani i-0.005 Waves ku-oracle alias init@vecr;
    • Thola i-R-code kunkambu yokunamathiselwe ekudlulisweni kwethokheni engu-1 R-vecr isuka ku-oracle iye kumsebenzisi;
  • Thola isiginesha;
    • Thumela okungenani 0.005 Waves ku-oracle alias random@vecr, futhi KUFANELE ubonise ikhodi engu-R eyamukelwe ngaphambilini kanye nedatha eyengeziwe yomsebenzisi kunkambu yokunamathiselwe;
    • Thola i-S-code kunkambu yokunamathiselwe ekudlulisweni kwethokheni engu-1 S-vecr isuka ku-oracle iye kumsebenzisi;
  • Sebenzisa i-S-code njengomthombo wenombolo-mbumbulu engahleliwe.

Ama-nuances wokusetshenziswa kwamanje:

  • Amagagasi athunyelwe ku-oracle asetshenziswa njengekhomishini yokubuyisela kumsebenzisi, kuze kufike ku-1 Waves;
  • Ikhodi engu-R iwukuhlanganisa kwebhayithi yohlamvu oluthi 'R' kanye nenani elingu-R elingu-32-byte elingu-58;
  • Ikhodi engu-R enamathiselwe kufanele ibe eyokuqala, idatha yomsebenzisi iza ngemva kwekhodi engu-R;
  • Ikhodi ye-S iwukuhlanganisa kwebhayithi yohlamvu 'S' kanye nenani elifakwe ikhodi elingu-32-byte58 lika-S;
  • U-S uwumphumela wokuhlukaniswa kwe-modulo, ngakho-ke awukwazi ukusebenzisa u-S njengenombolo-mbumbulu engu-256-bit egcwele (le nombolo ingabhekwa njengenombolo enkulu ye-pseudorandom engu-252-bit);
  • Inketho elula ukusebenzisa i-S-code hashi njengenombolo-mbumbulu engahleliwe.

Isibonelo sokuthola ikhodi ye-S:

Ngokombono wezobuchwepheshe, i-oracle isilungele ngokuphelele ukusebenza, ungayisebenzisa ngokuphepha. Ngokombono wokusetshenziswa komsebenzisi ojwayelekile, kukhona ukushoda kwesixhumi esibonakalayo esikahle; lokhu kuzomele kulinde.

Ngizokujabulela ukuphendula imibuzo futhi ngamukele imibono, ngiyabonga.

Source: www.habr.com

Engeza amazwana