Oracle laileto ti o da lori ibuwọlu oni nọmba ni blockchain

Lati imọran si imuse: a ṣe atunṣe ero ibuwọlu oni nọmba elliptic ti o wa tẹlẹ ki o jẹ ipinnu, ati da lori rẹ a pese awọn iṣẹ fun gbigba awọn nọmba apeso-ID ti o rii daju laarin blockchain.

Oracle laileto ti o da lori ibuwọlu oni nọmba ni blockchain

Agutan

Ni isubu ti 2018, awọn Waves blockchain pẹlu akọkọ smart siwe mu ṣiṣẹ, awọn ibeere lẹsẹkẹsẹ dide nipa awọn seese ti gba pseudorandom awọn nọmbati o le gbekele.

Ni iyalẹnu lori ibeere yii, nikẹhin Mo wa si ipari: eyikeyi blockchain jẹ sẹẹli kan; ko ṣee ṣe lati gba orisun igbẹkẹle ti entropy ni eto pipade.

Sugbon mo tun feran ọkan agutan: ti o ba ti ID ẹnu yoo fowo si data olumulo pẹlu algorithm ipinnu, lẹhinna olumulo yoo ni anfani nigbagbogbo lati rii daju iru ibuwọlu nipa lilo bọtini gbangba, ati pe yoo rii daju pe iye abajade jẹ alailẹgbẹ. Ọrọ-ọrọ naa, laibikita bi o ti fẹ to, ko le yi ohunkohun pada; algoridimu n ṣe abajade ti ko daju. Ni pataki, olumulo ṣe igbasilẹ abajade, ṣugbọn ko mọ ọ titi ọrọ-ọrọ yoo fi gbejade. O wa ni pe o ko le gbẹkẹle ọrọ-ọrọ rara, ṣugbọn ṣayẹwo abajade iṣẹ rẹ. Lẹhinna, ni ọran ti ijẹrisi aṣeyọri, iru ibuwọlu le jẹ orisun orisun ti entropy fun nọmba pseudorandom kan.

Syeed blockchain Waves nlo ero ibuwọlu kan EdDSA aṣayan Ed25519. Ninu ero yii, ibuwọlu naa ni awọn iye R ati S, nibiti R da lori iye laileto, ati pe S ṣe iṣiro da lori ifiranṣẹ ti o fowo si, bọtini ikọkọ ati nọmba ID kanna bi R. ko si igbẹkẹle alailẹgbẹ fun kanna Ọpọlọpọ awọn ibuwọlu to wulo fun ifiranṣẹ olumulo kan wa.

O han ni, ni irisi mimọ rẹ, iru ibuwọlu bẹẹ ko le ṣee lo bi orisun ti awọn nọmba apseudo-ID, nitori kii ṣe ipinnu ati, nitorinaa, o le ni irọrun ni ifọwọyi nipasẹ ọrọ-ọrọ.

Ṣugbọn, bi o ti wa ni jade, o jẹ kosi ṣee ṣe lati ṣe awọn ti o deterministic.

Mo ni ireti nla fun iṣẹ laileto ti o le rii daju (VRF), ṣugbọn lẹhin ikẹkọ hardware, Mo ni lati fi aṣayan yii silẹ. Bó tilẹ jẹ pé VRF nfun a deterministic version of awọn Ibuwọlu ati awọn oniwe-ẹri, nibẹ ni a ajeji ibi ni alugoridimu ti o ṣi kan dudu iho fun ifọwọyi ti awọn Oracle. Eyun, nigbati o ba ṣe iṣiro iye ti k (apakan 5.1) bọtini ikọkọ ni a lo, eyiti o jẹ aimọ si olumulo, eyiti o tumọ si pe olumulo ko le rii daju deede iṣiro ti k, eyiti o tumọ si ọrọ-ọrọ le lo eyikeyi iye ti k ti o nilo ati ni akoko kanna ṣetọju data data ti awọn ifọrọranṣẹ ti k ati data ti o fowo si lati le ni anfani nigbagbogbo lati tun-iṣiro abajade to pe lati oju-ọna ti VRF. Ti o ba rii iyaworan ti o da lori VRF laisi ṣiṣafihan bọtini ikọkọ, o le jẹ ọlọgbọn: tọka iwulo lati boya ṣafihan bọtini, tabi yọkuro kuro ninu iṣiro ti k, lẹhinna bọtini ikọkọ yoo ṣafihan ararẹ laifọwọyi nigbati ibuwọlu akọkọ ba han. . Ni gbogbogbo, bi a ti sọ tẹlẹ, ero ajeji fun ọrọ-ọrọ laileto.

Lẹhin ironu diẹ ati gbigba atilẹyin ti awọn atunnkanka agbegbe, ero iṣẹ VECRO ni a bi.

VECRO jẹ abbreviation fun Verifiable Elliptic Curve Random Oracle, eyi ti o ni Russian tumo si verifiable ID ẹnu on elliptic ekoro.

Ohun gbogbo ti jade lati jẹ ohun ti o rọrun; lati ṣaṣeyọri ipinnu, o nilo lati ṣatunṣe iye R ṣaaju ifiranṣẹ lati fowo si han. Ti R ba ni ifaramọ ati pe o jẹ apakan ti ifiranṣẹ ti o fowo si, eyiti o ni idaniloju siwaju pe R ti ṣe ninu ifiranṣẹ ti o fowo si, iye S jẹ ipinnu iyasọtọ nipasẹ ifiranṣẹ olumulo ati nitorinaa o le lo bi orisun fun awọn nọmba pseudorandom.

Ninu iru ero yii, ko ṣe pataki bawo ni R ṣe wa titi; eyi jẹ ojuṣe ti ọrọ-ọrọ naa. O ṣe pataki pe S jẹ ipinnu alailẹgbẹ nipasẹ olumulo, ṣugbọn iye rẹ jẹ aimọ titi ti ọrọ-ọrọ naa yoo fi tẹjade. Ohun gbogbo ti a fe!

Nigbati on soro ti R ti o wa titi, ṣe akiyesi pe tun lo R nigbati o ba forukọsilẹ awọn ifiranṣẹ oriṣiriṣi, o ṣe afihan ni iyasọtọ bọtini ikọkọ ni ero EdDSA. O di pataki pupọ fun eni to ni ọrọ-ọrọ lati yọkuro iṣeeṣe ti lilo R lati fowo si awọn ifiranṣẹ olumulo oriṣiriṣi. Iyẹn ni, pẹlu ifọwọyi tabi ifọwọsowọpọ, ọrọ-ọrọ yoo ma ṣe ewu nigbagbogbo sisọnu bọtini ikọkọ rẹ.

Ni apapọ, ọrọ-ọrọ gbọdọ pese awọn olumulo pẹlu awọn iṣẹ meji: ipilẹṣẹ, eyiti o ṣe atunṣe iye R, ati ibuwọlu, eyiti o da iye S pada. iye R ati data olumulo lainidii.

O le jiyan pe ero yii fun blockchain kii ṣe nkankan ju arinrin lọ sise-faagun eto. Ni pataki, bẹẹni, oun ni. Ṣugbọn awọn nuances pupọ wa. Ni akọkọ, oracle nigbagbogbo n ṣiṣẹ pẹlu bọtini kanna ni gbogbo awọn iṣẹ ṣiṣe, fun apẹẹrẹ, eyi rọrun lati lo ninu awọn adehun. Ni ẹẹkeji, eewu wa ti ọrọ-ọrọ ti o padanu bọtini ikọkọ ti o ba huwa ti ko tọ, fun apẹẹrẹ, ọrọ-ọrọ gba ọ laaye lati ṣe awọn apẹẹrẹ ti abajade, lẹhinna o to lati ṣe awọn idanwo meji nikan lati wa bọtini ikọkọ ati ni kikun. wiwọle si apamọwọ. Ni ẹkẹta, ibuwọlu ti o jẹ ijẹrisi abinibi lori blockchain ati pe o jẹ orisun ti aileto jẹ lẹwa.

Fun oṣu mẹfa imọran imuse ti rọ ni ori mi, titi ti o fi han nikẹhin iwuri ni fọọmu naa ẹbun lati Waves Labs. Pẹlu ẹbun nla kan wa ojuse nla, nitorinaa iṣẹ naa yoo wa nibẹ!

Imuse

Nitorinaa, ninu iṣẹ akanṣe yii VECRO ti ṣe imuse lori blockchain Waves ni ipo idahun ibeere nipa lilo awọn iṣowo gbigbe laarin olumulo ati oracle. Ni akoko kanna, a ti fi iwe afọwọkọ sori akọọlẹ oracle ti o ṣakoso iṣẹ naa muna ni ibamu pẹlu ọgbọn ti a ṣalaye loke. Awọn iṣowo Oracle jẹ idaniloju ati pe gbogbo pq ti ibaraenisepo olumulo ti tun pada. Gbogbo awọn iṣowo mẹrin ni o ni ipa ninu ijẹrisi iye ikẹhin; awọn gbolohun ọrọ adehun ijafafa wọn papọ pẹlu okùn ijẹrisi ti o muna, ṣayẹwo gbogbo awọn iye ni igbese nipasẹ igbese ati fifi aaye silẹ fun eyikeyi ifọwọyi.

Lekan si, lati fi si apakan ki o jẹ ki o ṣe alaye diẹ sii. Ọrọ-ọrọ ko ṣiṣẹ ni ibamu si ero ti a dabaa. Iṣẹ rẹ jẹ iṣakoso patapata ni ipele blockchain nipasẹ iṣeto ni wiwọ pẹlu kan smati guide. Igbese si osi ati awọn idunadura nìkan yoo ko lọ nipasẹ. Nitorinaa, ti iṣowo kan ba wa ninu blockchain, olumulo ko paapaa nilo lati ṣayẹwo ohunkohun; awọn ọgọọgọrun ti awọn apa nẹtiwọki ti ṣayẹwo ohun gbogbo fun u.

Lọwọlọwọ, VECRO kan wa ti n ṣiṣẹ lori mainnet Waves (o le ṣiṣẹ tirẹ, ko nira, o kan wo apẹẹrẹ iṣeto ni). Koodu lọwọlọwọ nṣiṣẹ ni PHP (lori WavesKit, nipa eyiti Mo ti sọ fun ọ tẹlẹ).

Lati le lo iṣẹ Oracle o gbọdọ:

  • Ṣe atunṣe R;
    • Firanṣẹ o kere ju 0.005 Waves si oracle inagijẹ init@vecr;
    • Gba koodu R ni aaye asomọ ni gbigbe ti 1 R-vecr tokini lati ẹnu si olumulo;
  • Gba ibuwọlu;
    • Firanṣẹ o kere ju 0.005 Waves si oracle inagijẹ random@vecr, ati tun MUST tọkasi koodu R ti o ti gba tẹlẹ ati data olumulo afikun ni aaye asomọ;
    • Gba S-koodu ni aaye asomọ ni gbigbe ti 1 S-vecr tokini lati ẹnu si olumulo;
  • Lo S-koodu bi orisun kan ti afarape-ID nọmba.

Awọn iyatọ ti imuse lọwọlọwọ:

  • Awọn igbi ti a fi ranṣẹ si ọrọ-ọrọ ni a lo gẹgẹbi igbimọ fun idunadura ipadabọ si olumulo, titi de iwọn 1 Waves;
  • R-koodu ti wa ni awọn concatenation ti a baiti ti awọn 'R' ohun kikọ silẹ ati ki o kan 32-baiti base58-encoded R iye;
  • R-koodu ni asomọ yẹ ki o jẹ akọkọ, olumulo data wa lẹhin R-koodu;
  • S-koodu jẹ isomọ ti baiti ti ohun kikọ 'S' ati 32-baiti ipilẹ58-iyipada ti S;
  • S jẹ abajade pipin modulo, nitorinaa o ko le lo S bi nọmba pseudorandom 256-bit ni kikun (nọmba yii ni a le gba pe nọmba pseudorandom ti o pọju 252-bit);
  • Aṣayan ti o rọrun julọ ni lati lo hash koodu S-koodu bi nọmba apeso-ID.

Apẹẹrẹ gbigba S-koodu:

Lati oju wiwo imọ-ẹrọ, ọrọ-ọrọ ti ṣetan fun iṣẹ, o le lo lailewu. Lati oju-ọna ti lilo nipasẹ olumulo apapọ, aini wiwo ayaworan rọrun kan wa; eyi yoo ni lati duro.

Emi yoo dun lati dahun awọn ibeere ati gba awọn asọye, o ṣeun.

orisun: www.habr.com

Fi ọrọìwòye kun