Oracle kisendrasendra mifototra amin'ny sonia nomerika amin'ny blockchain

Avy amin'ny hevitra ka hatramin'ny fampiharana: ovainay ny rafitra sonia nomerika elliptic curve efa misy mba ho voafaritra, ary mifototra amin'izany izahay dia manome asa hahazoana isa pseudo-random azo hamarinina ao anatin'ny blockchain.

Oracle kisendrasendra mifototra amin'ny sonia nomerika amin'ny blockchain

hevitra

Tamin'ny fararano 2018, ny Waves blockchain dia nampidirina navitrika ny fifanarahana smart voalohany, nipoitra avy hatrany ny fanontaniana momba ny mety hahazoana isa pseudorandomizay azonao itokisana.

Sahiran-tsaina amin'ity fanontaniana ity aho dia tonga tamin'ny fanatsoahan-kevitra: ny blockchain rehetra dia sela; tsy azo atao ny mahazo loharano azo itokisana amin'ny entropy amin'ny rafitra mihidy.

Saingy mbola tiako ny hevitra iray: raha oracle kisendrasendra dia hanao sonia ny angona mpampiasa amin'ny algorithm deterministika, dia ho afaka hanamarina foana ny sonia toy izany amin'ny fampiasana ny fanalahidin'ny daholobe ny mpampiasa, ary ho azo antoka fa tsy manam-paharoa ny sanda azo. Ny oracle, na inona na inona tadiaviny, dia tsy afaka manova na inona na inona; ny algorithm dia miteraka vokatra tsy mazava. Amin'ny ankapobeny, ny mpampiasa dia mirakitra ny valiny, saingy tsy fantany izany mandra-pamoahan'ny oracle. Hita fa tsy afaka matoky ny oracle mihitsy ianao, fa jereo ny vokatry ny asany. Avy eo, raha misy fanamarinana mahomby, ny sonia toy izany dia azo raisina ho loharanon'ny entropy ho an'ny isa pseudorandom.

Ny sehatra Waves blockchain dia mampiasa rafitra sonia EdDSA safidy Ed25519. Amin'ity tetika ity, ny sonia dia ahitana ny soatoavina R sy S, izay iankinan'ny R amin'ny sanda kisendrasendra, ary ny S dia kajy mifototra amin'ny hafatra nosoniavina, ny fanalahidy manokana ary ny isa kisendrasendra mitovy amin'ny R. tsy misy fiankinan-doha tokana ho an'ny mitovy Misy sonia manan-kery maro ho an'ny hafatra mpampiasa.

Mazava ho azy, amin'ny endriny madio, ny sonia toy izany dia tsy azo ampiasaina ho loharanon'ny isa pseudo-random, satria tsy voafaritra izy io ary, noho izany, dia mora fehezin'ny oracle.

Saingy, araka ny hita, dia azo atao ny manao izany ho deterministika.

Nanana fanantenana lehibe aho Fampiasa kisendrasendra azo voamarina (VRF), saingy rehefa avy nianatra ny fitaovana aho dia tsy maintsy nandao an'io safidy io. Na dia manolotra dikan-teny voafaritra amin'ny sonia sy ny porofony aza ny VRF, dia misy toerana hafahafa ao amin'ny algorithm izay manokatra lavaka mainty ho an'ny fanodikodinana ny oracle. Izany hoe, rehefa kajy ny sandan'ny k (fizarana 5.1) misy fanalahidy manokana ampiasaina, izay mbola tsy fantatry ny mpampiasa, izay midika fa ny mpampiasa dia tsy afaka manamarina ny fahamarinan'ny kajy ny k, izay midika fa ny oracle dia afaka mampiasa ny sandan'ny k ilainy ary miaraka amin'izay koa dia mitazona ny angon-drakitra misy ny taratasy. an'ny k sy angon-drakitra voasonia mba hahafahana manao kajy foana ny valiny marina amin'ny fomba fijerin'ny VRF. Raha mahita sary miorina amin'ny VRF ianao nefa tsy manambara ny lakile manokana, dia mety ho marani-tsaina ianao: asehoy ny ilana hanambara ny lakile, na hanesorana azy amin'ny kajy k, dia hiseho ho azy ny fanalahidy manokana rehefa miseho ny sonia voalohany. . Amin'ny ankapobeny, araka ny efa voalaza, tetika hafahafa ho an'ny oracle kisendrasendra.

Taorian'ny fieritreretana kely sy ny fangatahana ny fanohanan'ny mpandinika teo an-toerana dia teraka ny tetik'asa VECRO.

VECRO dia fanafohezana ny Verifiable Elliptic Curve Random Oracle, izay amin'ny teny Rosiana dia midika hoe oracle kisendrasendra azo hamarinina amin'ny curve elliptic.

Tsotra ny zava-drehetra; Mba hahatratrarana ny determinisme dia mila manamboatra ny sandan'ny R ianao alohan'ny hisehoan'ny hafatra hosoniavina. Raha vita ny R ary tafiditra ao anatin'ny hafatra nosoniavina, izay miantoka bebe kokoa fa ny R dia vita amin'ny hafatra nosoniavina, ny sandan'ny S dia voafaritra manokana amin'ny hafatry ny mpampiasa ary noho izany dia azo ampiasaina ho loharanon'ny isa pseudorandom.

Amin'ny tetika toy izany, tsy maninona ny fomba raikitra R; mijanona ho andraikitry ny oracle izany. Zava-dehibe ny S dia voafaritra manokana amin'ny mpampiasa, saingy tsy fantatra ny sandany mandra-pamoahan'ny oracle. Izay rehetra tadiavinay!

Raha resaka R raikitra dia mariho fa ampiasaina indray R rehefa manao sonia hafatra isan-karazany, dia manambara manokana ny fanalahidy manokana ao amin'ny rafitra EdDSA. Tena zava-dehibe ho an'ny tompon'ny oracle ny hanafoanana ny mety hampiasana indray ny R hanasonia hafatra mpampiasa samihafa. Izany hoe, miaraka amin'ny fanodinkodinana na firaisana tsikombakomba, ny oracle dia mety ho very foana ny lakile manokana.

Amin'ny fitambarany, ny oracle dia tsy maintsy manome asa roa ho an'ny mpampiasa: fanombohana, izay manamboatra ny sanda R, ary sonia, izay mamerina ny sanda S. Amin'ity tranga ity, ny pair R, S dia ny sonia mahazatra azo hamarinina amin'ny hafatra mpampiasa misy raikitra. sanda R sy angona mpampiasa tsy misy dikany.

Azo lazaina fa ity tetika ho an'ny blockchain ity dia tsy inona fa ny mahazatra commit-expand scheme. Amin'ny ankapobeny, eny, izy io. Saingy misy ny nuances maromaro. Voalohany, ny oracle dia miasa miaraka amin'ny fanalahidy mitovy amin'ny asa rehetra, ohatra, mety hampiasaina amin'ny fifanarahana izany. Faharoa, mety ho very ny lakile manokana ny oracle raha toa ka tsy mety ny fitondran-tenany, ohatra, ny oracle dia mamela anao hanao santionany amin'ny vokatra, dia ampy ny manao fitsapana roa fotsiny mba hahitana ny fanalahidy manokana ary hahazoana feno. fidirana amin'ny poketra. Fahatelo, tsara tarehy ny sonia iray azo hamarinina amin'ny alΓ lan'ny blockchain ary loharanon'ny kisendrasendra.

Nandritra ny enim-bolana dia nilentika tao an-dohako ny hevitra momba ny fampiharana, mandra-pahatongan'ny farany ny antony manosika fanomezana avy amin'ny Waves Labs. Miaraka amin'ny fanampiana lehibe dia misy andraikitra lehibe, ka ho eo ny tetikasa!

fanatanterahana

Noho izany, amin'ity tetikasa ity Nampiharina ny VECRO ao amin'ny Waves blockchain amin'ny fomba fangatahana-famaliana amin'ny fampiasana ny fifampiraharahana eo amin'ny mpampiasa sy ny oracle. Amin'izay fotoana izay ihany koa dia misy script napetraka ao amin'ny kaonty oracle izay mifehy ny asa araka ny lojika voalaza etsy ambony. Voamarina ny fifampiraharahana Oracle ary averina amin'ny laoniny ny rojom-pifandraisana rehetra amin'ny mpampiasa. Ny fifampiraharahana efatra dia tafiditra amin'ny fanamarinana ny sanda farany; ny fifanarahana marani-tsaina dia mampifandray azy ireo miaraka amin'ny kofehy fanamarinana henjana, manamarina ny soatoavina rehetra tsikelikely ary tsy mamela toerana ho an'ny fanodikodinana.

Indray mandeha, mba hanilika sy hanazava kokoa. Ny oracle dia tsy miasa araka ny drafitra naroso fotsiny. Ny asany dia voafehy tanteraka amin'ny sehatra blockchain amin'ny alΓ lan'ny fananganana miaraka amin'ny fifanarahana marani-tsaina. Mandehana miankavia ary tsy mandeha ny fifampiraharahana. Noho izany, raha misy fifampiraharahana tafiditra ao amin'ny blockchain, ny mpampiasa dia tsy mila manamarina na inona na inona; tambajotra an-jatony no efa nanamarina ny zava-drehetra ho azy.

Amin'izao fotoana izao, misy VECRO iray mandeha amin'ny mainnet Waves (azonao atao ny mampandeha ny anao manokana, tsy sarotra izany, jereo ny ohatra config). Ny kaody ankehitriny dia mandeha amin'ny PHP (amin'ny WavesKit, momba izay Efa nolazaiko teo aloha).

Mba hampiasana ny serivisy oracle dia tsy maintsy:

  • Ahitsio R;
    • Alefaso onja 0.005 fara fahakeliny amin'ny oracle alias init@vecr;
    • Raiso ny R-code ao amin'ny saha attachment amin'ny famindrana ny marika 1 R-vecr avy amin'ny oracle mankany amin'ny mpampiasa;
  • MakΓ  sonia;
    • Alefaso farafaharatsiny 0.005 Waves amin'ny oracle alias random@vecr, ary TSY MAINTSY manondro koa ny R-code voaray teo aloha sy ny angon-drakitra mpampiasa fanampiny ao amin'ny saha attachment;
    • Raiso ny S-code ao amin'ny saha attachment amin'ny famindrana ny marika 1 S-vecr avy amin'ny oracle mankany amin'ny mpampiasa;
  • Ampiasao S-code ho loharanon'ny isa pseudo-random.

Nuances ny fampiharana amin'izao fotoana izao:

  • Ny onja alefa any amin'ny oracle dia ampiasaina ho komisiona amin'ny fifampiraharahana amin'ny mpampiasa, hatramin'ny onja 1 ambony indrindra;
  • R-kaody dia ny concatenation ny byte ny 'R' toetra sy ny 32-byte base58-endrika R sanda;
  • R-code amin'ny attachment dia tokony ho voalohany, ny angon-drakitra mpampiasa dia tonga aorian'ny R-code;
  • S-kaody dia ny concatenation ny byte ny endri-tsoratra 'S' sy ny 32-byte base58-encode sanda S;
  • S dia vokatry ny fizarana modulo, noho izany dia tsy afaka mampiasa S ianao ho laharana pseudorandom feno 256-bit (io isa io dia azo raisina ho isa ambony indrindra amin'ny pseudorandom 252 bit);
  • Ny safidy tsotra indrindra dia ny fampiasana ny tenifototra S-code ho isa pseudo-random.

Ohatra amin'ny fandraisana S-code:

Avy amin'ny lafiny ara-teknika, ny oracle dia vonona tanteraka amin'ny asa, azonao atao ny mampiasa azy io. Avy amin'ny fomba fijerin'ny mpampiasa mahazatra dia misy ny tsy fahampian'ny interface tsara amin'ny grafika; tsy maintsy miandry izany.

Ho faly aho hamaly fanontaniana sy hanaiky fanehoan-kevitra, misaotra.

Source: www.habr.com

Add a comment