Fa'amatalaga fa'afuase'i e fa'avae i luga o saini numera i poloka poloka

Mai le manatu i le faʻatinoga: matou te suia le faʻaogaina o le saini faʻafuainumera elliptic curve ina ia mautinoa, ma faʻavae i luga matou te tuʻuina atu galuega mo le mauaina o numera pseudo-random e mafai ona faʻamaonia i totonu o le poloka poloka.

Fa'amatalaga fa'afuase'i e fa'avae i luga o saini numera i poloka poloka

Manatu

I le tautoulu o le 2018, o le Waves blockchain na aofia ai konekalate atamai muamua ua fa'agaoioia, o le fesili na vave ona tulai mai e uiga i le avanoa e maua ai numera pseudorandome mafai ona e faatuatuaina.

O le le mautonu i lenei fesili, na iu ai ina ou oʻo i le faaiuga: soʻo se poloka poloka o se sela; e le mafai ona maua se punavai faʻalagolago o le entropy i se faiga tapuni.

Ae sa ou fiafia lava i se tasi manatu: afai tautala fa'afuase'i o le a sainia faʻamatalaga tagata faʻaoga ma se algorithm deterministic, ona mafai ai lea e le tagata faʻaoga ona faʻamaonia sea saini e faʻaaoga ai le ki lautele, ma o le a mautinoa e tulaga ese le tau o le taunuuga. O le tautalaga, e tusa lava po o le a le faigata, e le mafai ona suia se mea; o le algorithm e maua ai se taunuuga le mautonu. O le mea moni, e fa'amauina e le tagata fa'aoga le taunu'uga, ae na te le iloa se'ia o'o ina fa'asalalauina e le tautala. E foliga mai e le mafai ona e faʻatuatuaina le tautalaga, ae siaki le taunuuga o lana galuega. Ma, i le tulaga o le faʻamaonia manuia, o sea saini e mafai ona manatu o se puna o le entropy mo se numera pseudorandom.

O le Waves blockchain platform e faʻaaogaina se polokalame saini EdDSA filifiliga Ed25519. I lenei polokalame, o le saini e aofia ai le taua o le R ma le S, lea e faalagolago ai le R i se tau faʻafuaseʻi, ma o le S e faʻatatau i luga o le feʻau o loʻo sainia, le ki tumaoti ma le numera faʻafuaseʻi tutusa e pei o le R. e leai se faʻalagolago faʻapitoa mo le tutusa E tele saini aoga mo se feʻau faʻaoga.

E manino lava, i lona tulaga mama, o sea saini e le mafai ona faʻaaogaina e avea o se puna o numera pseudo-faʻafuaseʻi, talu ai e le faʻamaonia ma, o le mea lea, e mafai ona faigofie ona faʻaogaina e le tautala.

Ae, e pei ona iʻu i ai, e mafai moni lava ona faʻamaonia.

Sa tele lo'u faamoemoega mo galuega fa'afuase'i fa'amaonia (VRF), ae ina ua uma ona suʻesuʻeina meafaigaluega, sa tatau ona ou lafoaia lenei filifiliga. E ui o le VRF o loʻo ofoina atu se faʻamatalaga mautinoa o le saini ma lona faʻamaoniga, o loʻo i ai se nofoaga ese i le algorithm e tatalaina ai se pu uliuli mo le faʻaogaina o le tautalaga. O lona uiga, pe a fuafuaina le tau o k (vaega 5.1) o loʻo faʻaaogaina se ki faʻapitoa, lea e le o iloa e le tagata faʻaoga, o lona uiga e le mafai e le tagata faʻaoga ona faʻamaonia le saʻo o le faʻatusatusaga o le k, o lona uiga e mafai e le failauga ona faʻaogaina soʻo se tau o le k e manaʻomia ma i le taimi lava e tasi e tausia se faʻamaumauga o fesoʻotaʻiga. o le k ma faʻamaumauga sainia ina ia mafai ai ona toe faʻatulagaina le faʻaiʻuga saʻo mai le manatu o le VRF. Afai e te vaʻai i se ata e faʻavae i luga o le VRF e aunoa ma le faʻaalia o le ki tumaoti, e mafai ona e atamai: faʻaalia le manaʻoga e faʻaalia le ki, pe faʻateʻaina mai le faʻatusatusaga o le k, ona faʻaalia ai lea o le ki patino pe a aliali mai le saini muamua. . I se tulaga lautele, e pei ona uma ona taʻua, o se faiga ese mo se faʻalavelave faʻafuaseʻi.

Ina ua maeʻa sina mafaufauga ma talosagaina le lagolago a tagata suʻesuʻe faʻapitonuʻu, na faʻavaeina ai le polokalame galuega a le VECRO.

O le VECRO o se fa'apu'upu'u mo le Verifiable Elliptic Curve Random Oracle, lea i le gagana Rusia o lona uiga fa'amaonia fa'afuase'i tautala i luga o pupuni elliptic.

O mea uma na foliga mai e faigofie lava; ina ia ausia le faʻamoemoe, e tatau ona e faʻaleleia le taua o le R aʻo leʻi faʻaalia le savali e sainia. Afai e faia le R ma o se vaega o le feʻau o loʻo sainia, lea e faʻamautinoa atili ai o loʻo tuʻuina atu le R i le feʻau o loʻo sainia, o le tau o le S e faʻatulagaina tulaga ese e le feʻau a le tagata faʻaoga ma e mafai ona faʻaaogaina e fai ma puna mo numera pseudorandom.

I sea polokalame, e le afaina pe faʻafefea ona faʻamautu le R; o loʻo tumau pea le matafaioi a le failauga. E taua tele le S e fa'atulagaina tulaga ese e le tagata fa'aoga, ae o lona tau e le o iloa se'ia o'o ina fa'asalalauina e le oracle. O mea uma na matou mananao ai!

I le tautala e uiga i le R tumau, matau lena toe faʻaaogaina R pe a sainia feʻau eseese, e faʻaalia faʻapitoa le ki faʻapitoa i le polokalame EdDSA. E matua taua tele mo lē e ona le tautalaga e faʻaumatia le avanoa e toe faʻaaogaina ai le R e sainia ai feʻau eseese a tagata faʻaoga. O lona uiga, i so'o se togafiti po'o se fa'auiga, o le a fa'alavelave pea le tautala i le leiloa o lana ki patino.

I le aotelega, e tatau i le tautalaga ona tuʻuina atu i tagata faʻaoga ni galuega se lua: amataina, lea e faʻamautu ai le tau o le R, ma le saini, lea e toe faʻafoʻi ai le tau S. I lenei tulaga, o le paʻu R, S o le saini masani faʻamaonia o se feʻau faʻaoga o loʻo i ai se faʻamautu. fa'atauga R ma fa'amatalaga fa'aoga fa'apitoa.

E mafai ona finau o lenei polokalame mo le poloka poloka e leai se mea e sili atu nai lo le masani faiga fa'alautele. O le mea moni, ioe, o ia. Ae e tele nuances. Muamua, e galue le tautala i taimi uma ma le ki lava e tasi i gaioiga uma, mo se faʻataʻitaʻiga, e faigofie ona faʻaoga i konekarate. Lona lua, o loʻo i ai se tulaga lamatia o le tautala i le leiloa o le ki tumaoti pe a fai e le saʻo, mo se faʻataʻitaʻiga, o le tautalaga e mafai ai ona e faia ni faʻataʻitaʻiga o le iʻuga, ona lava lea e naʻo le lua suʻega e suʻe ai le ki tumaoti ma maua ai le atoatoa. avanoa i le atotupe. Lona tolu, o se saini e mafai ona faʻamaonia i luga o le poloka poloka ma o se puna o faʻalavelave e matagofie.

Mo le ono masina o le manatu o le faʻatinoga na faʻafefeteina i loʻu ulu, seia oʻo ina faʻaalia le faaosofiaga i le foliga fesoasoani mai Waves Labs. Faatasi ai ma se fesoasoani tele e oʻo mai ai le tiute tele, o lea o le a iai le poloketi!

Реализация

O lea la, i lenei poloketi VECRO na fa'atinoina i luga o le Waves blockchain i le talosaga-tali faiga e faʻaaoga ai fefaʻatauaiga fesiitaiga i le va o le tagata faʻaoga ma le tautalaga. I le taimi lava e tasi, o loʻo faʻapipiʻiina se faʻamaumauga i luga o le tala faʻasolopito e pulea lelei le galuega e tusa ai ma le faʻamatalaga o loʻo faʻamatalaina i luga. O fefaʻatauaiga a Oracle e faʻamaonia ma toe faʻafoʻisia le filifili atoa o fegalegaleaiga a tagata. O fefaʻatauaiga uma e fa o loʻo aʻafia i le faʻamaonia o le tau mulimuli; o le konekarate atamai e faʻapipiʻi faʻatasi ma se filo faʻamaonia faʻamaonia, siaki uma tulaga taua i lea laasaga ma le leai o se avanoa mo soʻo se togafiti.

Toe tasi, ia tuu ese ma ia faamanino atili. E le na'o le galue o le tautala e tusa ai ma le fuafuaga fuafuaina. O lana galuega o loʻo faʻatonuina atoa i le poloka poloka e le faʻavaeina fa'atasi ma se konekarate atamai. Laa i le agavale ma o le fefaʻatauaiga o le a le alu. O lea la, afai o se fefaʻatauaiga o loʻo aofia i totonu o le poloka poloka, e le manaʻomia e le tagata faʻaoga ona siaki se mea; fiaselau o fesoʻotaʻiga nodes ua uma ona siaki mea uma mo ia.

I le taimi nei, e tasi le VECRO o loʻo taʻavale i luga o le Waves mainnet (e mafai ona e taʻavale a oe lava, e le faigata, naʻo va'ai i le fa'ata'ita'iga fa'atulagaina). O le code o loʻo i ai nei o loʻo tamomoe i le PHP (on WavesKit, e uiga i ai Na ou fai atu muamua ia te oe).

Ina ia faʻaaogaina le auaunaga faʻapitoa e tatau ona e:

  • Fix R;
    • Auina atu ia le itiiti ifo i le 0.005 Galu ile oracle alias init@vecr;
    • Maua le R-code i le fanua faʻapipiʻi i le fesiitaiga o le 1 R-vecr faʻailoga mai le tautala i le tagata faʻaoga;
  • Maua se saini;
    • Auina atu ia le itiiti ifo i le 0.005 Waves i le oracle alias random@vecr, ma e TATAU foi ona faʻaalia le R-code na maua muamua ma faʻamatalaga faʻaoga faʻaoga i le fanua faʻapipiʻi;
    • Maua le S-code i le fanua faʻapipiʻi i le fesiitaiga o le 1 S-vecr faʻailoga mai le tautala i le tagata faʻaoga;
  • Fa'aaoga le S-code e fai ma fa'apogai ole numera fa'ailoga.

Nuances o le faʻatinoga o loʻo iai nei:

  • O galu na lafoina i le tautalaga e faʻaaogaina e fai ma komisi mo le toe faʻafoʻi atu i le tagata faʻaoga, e oʻo atu i le maualuga ole 1 Waves;
  • R-code o le tu'ufa'atasiga lea o le byte o le 'R' uiga ma le 32-byte base58-encoded R tau;
  • R-code i le faʻapipiʻi e tatau ona muamua, faʻamatalaga tagata faʻaoga e sau pe a uma le R-code;
  • S-code o le tu'ufa'atasiga o le paita o le uiga 'S' ma le 32-byte base58-encoded tau o S;
  • S o le taunuuga o le vaevaega o le modulo, o lea e le mafai ai ona e faʻaogaina S o se numera pseudorandom atoa 256-bit (o lenei numera e mafai ona manatu o le maualuga o le numera pseudorandom 252-bit);
  • Ole filifiliga sili ona faigofie ole fa'aoga ole S-code hash e fai ma numera fa'ailoga.

Faataitaiga o le mauaina o le S-code:

Mai se vaaiga faʻapitoa, ua saunia atoatoa le tautalaga mo le galuega, e mafai ona e faʻaogaina ma le saogalemu. Mai le manatu o le faʻaogaina e le averesi tagata faʻaoga, o loʻo i ai le leai o se faʻataʻitaʻiga faʻataʻitaʻi talafeagai; e tatau ona faʻatali.

O le a ou fiafia e tali fesili ma talia faʻamatalaga, faafetai.

puna: www.habr.com

Faaopoopo i ai se faamatalaga