I-oracle engaqhelekanga esekwe kwisignesha yedijithali kwi-blockchain

Ukusuka kwingcamango ukuya ekuphunyezweni: siguqula i-elliptic curve digital signature scheme ekhoyo ukuze ibe yi-deterministic, kwaye isekelwe kuyo sinika imisebenzi yokufumana amanani angama-pseudo-random aqinisekisiweyo ngaphakathi kwe-blockchain.

I-oracle engaqhelekanga esekwe kwisignesha yedijithali kwi-blockchain

Umbono

Ekwindla ka-2018, i-Waves blockchain ifakiwe iikontraki zokuqala ezihlakaniphile zenziwe zasebenza, umbuzo wavela ngokukhawuleza malunga nethuba lokufumana amanani obuxokiukuba unokuthembela.

Ukumangala ngalo mbuzo, ekugqibeleni ndafikelela kwisigqibo: nayiphi na i-blockchain yiseli; akunakwenzeka ukufumana umthombo othembekileyo we-entropy kwinkqubo evaliweyo.

Kodwa bendisawuthanda umbono omnye: ukuba oracle random izakutyikitya idata yomsebenzisi nge-algorithm yokumisela, emva koko umsebenzisi uyakuhlala ekwazi ukuqinisekisa olo tyikityo esebenzisa isitshixo sikawonke-wonke, kwaye uya kuqinisekisa ukuba ixabiso lesiphumo lilodwa. I-oracle, kungakhathaliseki ukuba ifuna kangakanani, ayikwazi ukutshintsha nantoni na; i-algorithm ivelisa umphumo ocacileyo. Ngokusisiseko, umsebenzisi urekhoda umphumo, kodwa akayazi de i-oracle iyipapashe. Kuvela ukuba awukwazi ukuthembela kwi-oracle konke konke, kodwa khangela umphumo womsebenzi wayo. Emva koko, kwimeko yokuqinisekisa ngempumelelo, isiginitsha esinjalo sinokuthathwa njengomthombo we-entropy kwinombolo ye-pseudorandom.

Iqonga le-Waves blockchain isebenzisa iskimu sokutyikitya I-EDDSA ukhetho U-Ed25519. Kolu dweliso, utyikityo luqulathe amaxabiso R kunye no-S, apho u-R uxhomekeke kwixabiso elingakhethiyo, kwaye i-S ibalwa ngokusekelwe kumyalezo osayinwayo, isitshixo sabucala kunye nenani elingenamkhethe njenge R. Kuvela ukuba akukho kuxhomekeka okwahlukileyo kokufana Kukho imisayino emininzi esebenzayo yomyalezo womsebenzisi.

Ngokucacileyo, kwimo ecocekileyo, utyikityo olunjalo alunakusetyenziswa njengomthombo wamanani angama-pseudo-random, ekubeni i-non-deterministic kwaye, ngoko ke, inokuthi isetyenziswe lula yi-oracle.

Kodwa, njengoko kuye kwavela, kunokwenzeka ngokwenene ukuyenza i-deterministic.

Bendinethemba elikhulu umsebenzi ongqinisisekayo ngokungakhethiyo (VRF), kodwa emva kokufunda ihardware, kwafuneka ndiyeke olu khetho. Nangona i-VRF inikezela ngoguqulelo oluqinisekileyo lwesiginitsha kunye nobungqina bayo, kukho indawo engaqhelekanga kwi-algorithm evula umngxuma omnyama wokuxhaphaza i-oracle. Oko kukuthi, xa ubala ixabiso lika k (icandelo 5.1) kusetyenziswa isitshixo sabucala, esihlala singaziwa kumsebenzisi, nto leyo ethetha ukuba umsebenzisi akanakuqinisekisa ukuchaneka kwezibalo zika-k, okuthetha ukuba i-oracle inokusebenzisa naliphi na ixabiso le-k elifunekayo kwaye kwangaxeshanye igcine uvimba weenkcukacha weembalelwano. ye k kunye nedatha esayiniweyo ukuze uhlale ukwazi ukubala kwakhona iziphumo ezichanekileyo ukusuka kwindawo yembono yeVRF. Ukuba ubona umzobo osekwe kwiVRF ngaphandle kokuchaza isitshixo sabucala, unokuba krelekrele: bonisa isidingo sokutyhila isitshixo, okanye ungabandakanyi kubalo lwe-k, emva koko iqhosha labucala liya kuzityhila ngokuzenzekelayo xa utyikityo lokuqala luvela. . Ngokubanzi, njengoko sele kukhankanyiwe, iskimu esingaqhelekanga se-random oracle.

Emva kokucinga okuncinci kunye nokubhalisa inkxaso yabahlalutyi bendawo, i-VECRO work scheme yazalwa.

I-VECRO sisishunqulelo se-Verrifiable Elliptic Curve Random Oracle, ethi ngesiRashiya ithetha ingqinisiseka ngokungakhethiyo i-oracle kwi-elliptic curves.

Yonke into ivele yalula; ukufezekisa ukuqinisekiswa, kufuneka ulungise ixabiso le-R phambi kokuba umyalezo usayinwe uvele. Ukuba u-R uzibophelele kwaye uyinxalenye yomyalezo osayinwayo, oqinisekisa ngakumbi ukuba u-R uzibophelele kumyalezo osayinwayo, ixabiso lika-S limiselwa ngokukodwa ngumyalezo womsebenzisi kwaye ke linokusetyenziswa njengomthombo weenombolo zenkohliso.

Kwiskimu esinjalo, akukhathaliseki ukuba i-R ilungiswa njani; oku kuhlala kuluxanduva lwe-oracle. Kubalulekile ukuba i-S imiselwe ngokukodwa ngumsebenzisi, kodwa ixabiso layo alaziwa de i-oracle iyipapashe. Yonke into ebesiyifuna!

Ukuthetha nge-R elungisiweyo, qaphela ukuba waphinda wasebenzisa uR xa usayina imiyalezo eyahlukeneyo, ityhila ngokukodwa iqhosha labucala kwiskim se-EDDSA. Kuba kubaluleke kakhulu kumnini we-oracle ukuphelisa ukuba nokwenzeka kokuphinda kusetyenziswe i-R ukusayina imiyalezo eyahlukeneyo yabasebenzisi. Oko kukuthi, nangakuphi na ukukhohlisa okanye ukudibana, i-oracle iya kuhlala isengozini yokuphulukana nesitshixo sayo sabucala.

Lilonke, i-oracle kufuneka ibonelele abasebenzisi ngemisebenzi emibini: ukuqaliswa, okulungisa ixabiso elingu-R, kunye nesiginitsha, elibuyisela ixabiso elingu-S. Kulo mzekelo, i-R, i-S yisignesha eqhelekileyo yokuqinisekisa yomyalezo womsebenzisi oqulethe isigxina. ixabiso R kunye nedatha yomsebenzisi engenamkhethe.

Inokuphikiswa ukuba esi sicwangciso se-blockchain asiyonto ngaphandle kwesiqhelo isikimu sokwandisa. Ngokwenene, ewe, nguye. Kodwa kukho ezininzi nuances. Okokuqala, i-oracle ihlala isebenza kunye nesitshixo esifanayo kuyo yonke imisebenzi, umzekelo, oku kulungele ukusetyenziswa kwiikontraka. Okwesibini, kukho umngcipheko we-oracle yokulahlekelwa isitshixo sangasese ukuba iziphatha ngendlela engafanelekanga, umzekelo, i-oracle ikuvumela ukuba wenze iisampuli zesiphumo, ngoko kwanele ukwenza iimvavanyo ezimbini kuphela ukufumana isitshixo sangasese kwaye uzuze ngokupheleleyo. ukufikelela kwi-wallet. Okwesithathu, utyikityo oluqinisekiswa ngokwemveli kwi-blockchain kwaye ingumthombo wokungakhethi buhle.

Kangangeenyanga ezintandathu imbono yokuphunyezwa ihleli entlokweni yam, de ekugqibeleni yavela inkuthazo kwifom isibonelelo esivela kumaWaves Labs. Ngesibonelelo esikhulu siza noxanduva olukhulu, ngoko ke iprojekthi iya kuba lapho!

Ukuphunyezwa

Ngoko ke, kule projekthi I-VECRO yaphunyezwa kwi-Waves blockchain kwimo yesicelo-yempendulo usebenzisa utshintshiselwano phakathi komsebenzisi kunye ne-oracle. Ngelo xesha, iskripthi sifakwe kwi-akhawunti ye-oracle elawula umsebenzi ngokungqongqo ngokuhambelana nengqiqo echazwe ngasentla. Iintengiselwano ze-Oracle ziqinisekisiwe kwaye ikhonkco lonke lokusebenzisana komsebenzisi libuyiselwa. Zonke iintengiselwano ezine zibandakanyeka ekuqinisekiseni ixabiso lokugqibela; ikhontrakthi ehlakaniphile ibadibanisa kunye nomsonto ongqongqo wokuqinisekisa, ijonga onke amaxabiso inyathelo ngenyathelo kwaye ingashiyi ndawo yakuphi na ukukhohlisa.

Kwakhona, ukuyibeka ecaleni kwaye icace ngakumbi. I-oracle ayisebenzi nje ngokwesicwangciso esicetywayo. Umsebenzi wayo ulawulwa ngokupheleleyo kwinqanaba le-blockchain ngokusekwa ngokuqinileyo ngesivumelwano esihlakaniphile. Inyathelo uye ekhohlo kwaye intengiselwano ayizukuphumelela. Ke, ukuba intengiselwano ibandakanyiwe kwi-blockchain, umsebenzisi akadingi kukhangela nantoni na; amakhulu eenodi zenethiwekhi sele ejonge yonke into kuye.

Okwangoku, kukho i-VECRO enye eqhuba kwi-Waves mainnet (ungaziqhuba eyakho, akunzima, nje jonga kumzekelo woqwalaselo). Ikhowudi yangoku isebenza kwi-PHP (kwi WavesKit, malunga nokuba Ndikuxelele ngaphambili).

Ukuze usebenzise inkonzo ye-oracle kufuneka:

  • Lungisa R;
    • Thumela ubuncinane i-0.005 Waves kwi-oracle alias init@vecr;
    • Fumana i-R-code kwintsimi yokunamathisela ekudluliseleni ithokheni ye-1 R-vecr ukusuka kwi-oracle ukuya kumsebenzisi;
  • Fumana utyikityo;
    • Thumela ubuncinane 0.005 Waves kwi-oracle alias random@vecr, kwakhona KUFUNEKA ibonise i-R-code efunyenwe ngaphambili kunye nedatha eyongezelelweyo yomsebenzisi kwindawo yokuncamathela;
    • Fumana i-S-code kwi-attachment field ekudlulisweni kwethokheni ye-1 S-vecr ukusuka kwi-oracle ukuya kumsebenzisi;
  • Sebenzisa ikhowudi ye-S njengomthombo wenombolo-pseudo-random.

Imiba yokuphunyezwa kwangoku:

  • Amaza athunyelwe kwi-oracle asetyenziswa njengekhomishini yokubuyisela ukuthengiselana kumsebenzisi, ukuya kuthi ga kwi-Waves ye-1;
  • Ikhowudi engu-R kukudityaniswa kwebyte yophawu 'R' kunye ne-32-byte base58-encoded ixabiso elingu-R;
  • Ikhowudi engu-R eqhotyoshelweyo kufuneka ibe yeyokuqala, idatha yomsebenzisi iza emva kwekhowudi engu-R;
  • Ikhowudi ye-S ludibaniso lwebhayithi yonobumba 'S' kunye ne-32-byte ye-base58 yexabiso elinekhowudi ye-S;
  • S sisiphumo solwahlulo lwemodyuli, ngoko awukwazi ukusebenzisa i-S njengenani elipheleleyo le-256-bit pseudorandom (eli nani linokuthathwa njengobuninzi benombolo ye-252-bit pseudorandom);
  • Olona khetho lulula kukusebenzisa i-S-code hash njenge pseudo-random number.

Umzekelo wokufumana ikhowudi ye-S:

Ukususela kumbono wezobugcisa, i-oracle ilungele ngokupheleleyo umsebenzi, unokuyisebenzisa ngokukhuselekileyo. Ukusuka kwindawo yokujonga ukusetyenziswa ngumsebenzisi ophakathi, kukho ukunqongophala kojongano olufanelekileyo lomzobo; oku kuya kufuneka kulinde.

Ndiya kuvuya ukuphendula imibuzo kwaye ndamkele izimvo, enkosi.

umthombo: www.habr.com

Yongeza izimvo