Oracle każwali bbażat fuq firma diġitali fi blockchain

Mill-idea għall-implimentazzjoni: aħna nimmodifikaw l-iskema eżistenti tal-firma diġitali tal-kurva ellittika sabiex tkun deterministiku, u bbażat fuqha nipprovdu funzjonijiet biex niksbu numri psewdo-random verifikabbli fi ħdan il-blockchain.

Oracle każwali bbażat fuq firma diġitali fi blockchain

Idea

Fil-ħarifa tal-2018, inkluża l-blockchain Waves l-ewwel kuntratti intelliġenti attivati, il-mistoqsija immedjatament qamet dwar il-possibbiltà li tinkiseb numri pseudorandomli tista’ tafda.

Jipħawwad din il-mistoqsija, fl-aħħar wasalt għall-konklużjoni: kwalunkwe blockchain hija ċellula; huwa impossibbli li jinkiseb sors ta 'entropija fdati f'sistema magħluqa.

Imma xorta għoġobni idea waħda: jekk oraklu każwali se jiffirma d-dejta tal-utent b'algoritmu deterministiku, allura l-utent dejjem ikun jista 'jivverifika tali firma billi juża ċ-ċavetta pubblika, u jkun żgur li l-valur li jirriżulta huwa uniku. L-oraklu, irrispettivament minn kemm irid, ma jistax ibiddel xejn; l-algoritmu jipproduċi riżultat mhux ambigwu. Essenzjalment, l-utent jirreġistra r-riżultat, iżda ma jafx sakemm l-oraklu jippubblikah. Jirriżulta li ma tistax tafda l-oraklu xejn, iżda ċċekkja r-riżultat tax-xogħol tiegħu. Imbagħad, f'każ ta 'verifika b'suċċess, firma bħal din tista' titqies bħala sors ta 'entropija għal numru pseudorandom.

Il-pjattaforma ta 'blockchain Waves tuża skema ta' firma EdDSA għażla Ed25519. F'din l-iskema, il-firma tikkonsisti mill-valuri R u S, fejn R tiddependi fuq valur każwali, u S hija kkalkulata abbażi tal-messaġġ li qed jiġi ffirmat, iċ-ċavetta privata u l-istess numru każwali bħal R. Jirriżulta li m'hemm l-ebda dipendenza unika għall-istess Hemm ħafna firem validi għal messaġġ tal-utent.

Ovvjament, fil-forma pura tagħha, firma bħal din ma tistax tintuża bħala sors ta 'numri psewdo-random, peress li mhix deterministika u, għalhekk, tista' tiġi manipulata faċilment mill-oraklu.

Iżda, kif irriżulta, huwa fil-fatt possibbli li jagħmilha deterministiku.

Kelli tamiet kbar għal funzjoni każwali verifikabbli (VRF), iżda wara li studja l-ħardwer, kelli nabbanduna din l-għażla. Għalkemm il-VRF joffri verżjoni deterministika tal-firma u l-prova tagħha, hemm post stramb fl-algoritmu li jiftaħ toqba sewda għall-manipulazzjoni tal-oraklu. Jiġifieri, meta jiġi kkalkulat il-valur ta' k (taqsima 5.1) tintuża ċavetta privata, li tibqa’ mhux magħrufa għall-utent, li jfisser li l-utent ma jistax jivverifika l-korrettezza tal-kalkolu ta’ k, li jfisser li l-oraklu jista’ juża kwalunkwe valur ta’ k li jeħtieġ u fl-istess ħin iżomm database ta’ korrispondenzi ta’ k u d-dejta ffirmata sabiex dejjem tkun tista’ terġa’ tikkalkula r-riżultat korrett mil-lat ta’ VRF . Jekk tara tpinġija bbażata fuq VRF mingħajr ma tiżvela ċ-ċavetta privata, tista 'tkun intelliġenti: indika l-ħtieġa li jew tiżvela ċ-ċavetta, jew teskludiha mill-kalkolu ta' k, allura ċ-ċavetta privata tiżvela awtomatikament meta tidher l-ewwel firma . B'mod ġenerali, kif diġà ssemma, skema stramba għal oraklu każwali.

Wara ftit ħsieb u ġibdet l-appoġġ ta’ analisti lokali, twieldet l-iskema ta’ ħidma VECRO.

VECRO hija abbrevjazzjoni għal Verifiable Elliptic Curve Random Oracle, li bir-Russu tfisser oracle każwali verifikabbli fuq kurvi ellittiċi.

Kollox irriżulta li kien pjuttost sempliċi; biex tikseb determiniżmu, trid tiffissa l-valur ta 'R qabel ma jidher il-messaġġ li jrid jiġi ffirmat. Jekk R huwa kommess u huwa parti mill-messaġġ li qed jiġi ffirmat, li jkompli jiżgura li R huwa kommess fil-messaġġ li qed jiġi ffirmat, il-valur ta 'S huwa ddeterminat b'mod uniku mill-messaġġ tal-utent u għalhekk jista' jintuża bħala sors għal numri psewdorandom.

Fi skema bħal din, ma jimpurtax kif R jiġi ffissat; din tibqa’ r-responsabbiltà tal-oraklu. Huwa importanti li S ikun determinat b'mod uniku mill-utent, iżda l-valur tiegħu mhux magħruf sakemm l-oraklu jippubblikah. Dak kollu li ridna!

Taħdit ta 'R fiss, innota li R użat mill-ġdid meta tiffirma diversi messaġġi, tiżvela b'mod uniku ċ-ċavetta privata fl-iskema EdDSA. Isir estremament importanti għas-sid ta 'l-oraklu li jelimina l-possibbiltà li jerġa' juża R biex jiffirma messaġġi ta 'utent differenti. Jiġifieri, bi kwalunkwe manipulazzjoni jew kollużjoni, l-oraklu dejjem jirriskja li jitlef iċ-ċavetta privata tiegħu.

B'kollox, l-oraklu għandu jipprovdi lill-utenti b'żewġ funzjonijiet: l-inizjalizzazzjoni, li tiffissa l-valur R, u l-firma, li tirritorna l-valur S. F'dan il-każ, il-par R, S hija l-firma verifikabbli tas-soltu ta 'messaġġ tal-utent li fih fiss. valur R u data arbitrarja tal-utent.

Jista 'jingħad li din l-iskema għall-blockchain hija xejn aktar minn ordinarja skema kommit-expand. Essenzjalment, iva, hija tagħha. Iżda hemm diversi sfumaturi. L-ewwelnett, l-oraklu dejjem jaħdem bl-istess ċavetta fl-operazzjonijiet kollha, pereżempju, dan huwa konvenjenti biex jintuża fil-kuntratti. It-tieni nett, hemm riskju li l-oraklu jitlef iċ-ċavetta privata jekk iġib ruħu ħażin, pereżempju, l-oraklu jippermettilek li tagħmel kampjuni tar-riżultat, allura huwa biżżejjed li tagħmel biss żewġ testijiet biex issir taf iċ-ċavetta privata u tikseb sħiħa aċċess għall-kartiera. It-tielet nett, firma li hija verifikabbli b'mod nattiv fuq il-blockchain u hija sors ta 'randomness hija sabiħa.

Għal sitt xhur l-idea ta 'implimentazzjoni ttektek f'rasi, sakemm finalment il-motivazzjoni dehret fil-forma għotja minn Waves Labs. B'għotja kbira tiġi responsabbiltà kbira, għalhekk il-proġett se jkun hemm!

Реализация

Allura, f'dan il-proġett VECRO ġie implimentat fuq il-Blockchain Waves fil-modalità talba-rispons bl-użu ta 'transazzjonijiet ta' trasferiment bejn l-utent u l-oraklu. Fl-istess ħin, skript huwa installat fuq il-kont tal-oracle li jikkontrolla x-xogħol strettament skont il-loġika deskritta hawn fuq. It-tranżazzjonijiet Oracle huma vverifikati u l-katina kollha tal-interazzjoni tal-utent tiġi restawrata. L-erba 'tranżazzjonijiet kollha huma involuti fil-verifika tal-valur finali; il-kuntratt intelliġenti jgħaqqadhom flimkien ma' ħajt ta 'verifika stretta, jiċċekkja l-valuri kollha pass pass u ma jħalli l-ebda lok għal xi manipulazzjoni.

Għal darb'oħra, biex titwarrab u tagħmilha aktar ċara. L-oraklu ma jaħdimx biss skont l-iskema proposta. Ix-xogħol tiegħu huwa kompletament ikkontrollat ​​fil-livell tal-blockchain mill-istabbiliment sewwa b'kuntratt intelliġenti. Pass lejn ix-xellug u t-tranżazzjoni sempliċement ma tgħaddix. Għalhekk, jekk tranżazzjoni hija inkluża fil-blockchain, l-utent lanqas biss jeħtieġ li jiċċekkja xejn; mijiet ta 'nodi tan-netwerk diġà ċċekkjaw kollox għalih.

Bħalissa, hemm VECRO wieħed li jaħdem fuq il-mainnet Waves (tista' tmexxi tiegħek, mhux diffiċli, biss agħti ħarsa lejn l-eżempju tal-konfigurazzjoni). Il-kodiċi attwali jaħdem fil-PHP (on WavesKit, dwar liema Għidtlek qabel).

Sabiex tuża s-servizz tal-oracle trid:

  • Waħħal R;
    • Ibgħat mill-inqas 0.005 Waves lil oracle alias init@vecr;
    • Irċievi l-kodiċi R fil-qasam tat-twaħħil fit-trasferiment ta '1 R-vecr token mill-oraklu għall-utent;
  • Ikseb firma;
    • Ibgħat mill-inqas 0.005 Waves lill-oracle alias random@vecr, u GĦANDU wkoll jindika l-R-code riċevuti qabel u d-dejta tal-utent addizzjonali fil-qasam tat-twaħħil;
    • Irċievi l-kodiċi S fil-qasam tat-twaħħil fit-trasferiment ta '1 S-vecr token mill-oraklu għall-utent;
  • Uża S-code bħala sors ta 'numru psewdo-random.

Sfumaturi tal-implimentazzjoni attwali:

  • Waves mibgħuta lill-oraklu jintużaw bħala kummissjoni għat-tranżazzjoni ta 'ritorn lill-utent, sa massimu ta' 1 Waves;
  • Il-kodiċi R huwa l-konkatenazzjoni ta' byte tal-karattru 'R' u valur R kodifikat b'bażi32 ta' 58 byte;
  • Il-kodiċi R fit-twaħħil għandu jkun l-ewwel, id-dejta tal-utent tiġi wara l-kodiċi R;
  • S-code huwa l-konkatenazzjoni ta' byte tal-karattru 'S' u valur ta' S kodifikat b'bażi32 ta' 58 byte;
  • S huwa r-riżultat tad-diviżjoni tal-modulo, għalhekk ma tistax tuża S bħala numru pseudorandom sħiħ ta '256-bit (dan in-numru jista' jitqies bħala massimu ta 'numru pseudorandom ta' 252-bit);
  • L-iktar għażla sempliċi hija li tuża l-hash tal-kodiċi S bħala numru psewdo-random.

Eżempju ta' kif tirċievi l-kodiċi S:

Mil-lat tekniku, l-oraklu huwa kompletament lest għax-xogħol, tista 'tużah b'mod sikur. Mill-aspett tal-użu mill-utent medju, hemm nuqqas ta 'interface grafika konvenjenti; dan ikollu jistenna.

Inkun kuntent li nwieġeb mistoqsijiet u naċċetta kummenti, grazzi.

Sors: www.habr.com

Żid kumment