Oracle air thuaiream stèidhichte air ainm-sgrìobhte didseatach ann an blockchain

Bho bheachd gu buileachadh: bidh sinn ag atharrachadh an sgeama ainm-sgrìobhte didseatach lùb elliptic a th’ ann gus am bi e cinntiche, agus stèidhichte air bidh sinn a’ toirt seachad gnìomhan airson àireamhan meallta fhaighinn air thuaiream a ghabhas dearbhadh taobh a-staigh an blockchain.

Oracle air thuaiream stèidhichte air ainm-sgrìobhte didseatach ann an blockchain

Idea

Ann an tuiteam 2018, bha blockchain Waves a ’toirt a-steach a’ chiad chùmhnantan snasail air an cur an gnìomh, dh ’èirich a’ cheist sa bhad mun chomas faighinn àireamhan mealltaas urrainn dhut earbsa a dhèanamh.

A 'cur dragh air a' cheist seo, thàinig mi chun a 'cho-dhùnaidh mu dheireadh: is e cealla a th' ann an blockchain sam bith; tha e do-dhèanta stòr earbsach de entropy fhaighinn ann an siostam dùinte.

Ach chòrd aon bheachd rium fhathast: ma tha oracle air thuaiream soidhnigeadh dàta cleachdaiche le algairim dearbhte, an uairsin bidh an neach-cleachdaidh an-còmhnaidh comasach air a leithid de ainm-sgrìobhte a dhearbhadh a’ cleachdadh an iuchair phoblach, agus bidh e cinnteach gu bheil an luach a thig às gun samhail. Chan urrainn don oracle, ge bith dè cho cruaidh ‘s a tha e ag iarraidh, dad atharrachadh; bidh an algairim a ’toirt a-mach toradh gun teagamh. Gu bunaiteach, bidh an neach-cleachdaidh a’ clàradh an toraidh, ach chan eil fios aige air gus am foillsich an oracle e. Tha e a 'tionndadh a-mach nach urrainn dhut earbsa an oracle idir, ach thoir sùil air an toradh a cuid obrach. An uairsin, gun fhios nach bi dearbhadh soirbheachail ann, faodar a leithid de ainm-sgrìobhte a mheas mar stòr entropy airson àireamh pseudorandom.

Bidh àrd-ùrlar blockchain Waves a’ cleachdadh sgeama ainm-sgrìobhte EdDSA roghainn Deas 25519. Anns an sgeama seo, tha an ainm-sgrìobhte air a dhèanamh suas de na luachan R agus S, far a bheil R an urra ri luach air thuaiream, agus tha S air a thomhas a rèir an teachdaireachd a chaidh a shoidhnigeadh, an iuchair phrìobhaideach agus an aon àireamh air thuaiream ri R. Tha e a’ tionndadh a-mach gu bheil chan eil eisimeileachd sònraichte ann airson an aon Tha iomadh ainm-sgrìobhte dligheach ann airson teachdaireachd neach-cleachdaidh.

Gu dearbh, anns a 'chruth fhìor-ghlan aige, chan urrainnear an leithid de ainm-sgrìobhte a chleachdadh mar stòr de àireamhan meallta, seach gu bheil e neo-chinnteach agus, mar sin, faodar a làimhseachadh gu furasta leis an oracle.

Ach, mar a thionndaidh e a-mach, tha e comasach dha-rìribh a dhèanamh cinntiche.

Bha dòchasan mòra agam air a shon gnìomh air thuaiream dearbhaidh (VRF), ach às deidh dhomh sgrùdadh a dhèanamh air a’ bhathar-cruaidh, bha agam ri an roghainn seo a thrèigsinn. Ged a tha VRF a 'tairgse dreach dearbhach den ainm-sgrìobhte agus a dhearbhadh, tha àite neònach anns an algairim a tha a' fosgladh toll dubh airson a bhith a 'làimhseachadh an oracle. Is e sin, nuair a thathar a’ cunntadh luach k (earrann 5.1) tha iuchair phrìobhaideach air a chleachdadh, a tha fhathast neo-aithnichte don neach-cleachdaidh, a tha a 'ciallachadh nach urrainn don neach-cleachdaidh dearbhadh dè cho ceart' sa tha àireamhachadh k, a tha a 'ciallachadh gum faod an oracle luach k sam bith a dh' fheumas e a chleachdadh agus aig an aon àm cumail suas stòr-dàta de litrichean de k agus an dàta soidhnichte gus an urrainn dhut an-còmhnaidh an toradh ceart ath-obrachadh bho shealladh VRF . Ma chì thu dealbh stèidhichte air VRF gun a bhith a’ foillseachadh an iuchair phrìobhaideach, faodaidh tu a bhith glic: comharraich gu bheil feum air an iuchair fhoillseachadh, no cuir a-mach i bho àireamhachadh k, nochdaidh an iuchair phrìobhaideach gu fèin-ghluasadach nuair a nochdas a’ chiad ainm-sgrìobhte. . San fharsaingeachd, mar a chaidh ainmeachadh roimhe, sgeama neònach airson oracle air thuaiream.

Às deidh beagan smaoineachaidh agus taic fhaighinn bho sgrùdairean ionadail, rugadh sgeama obrach VECRO.

Tha VECRO na ghiorrachadh airson Verifiable Elliptic Curve Random Oracle, a tha ann an Ruisis a’ ciallachadh oracle air thuaiream dearbhaidh air lùban elliptic.

Bha a h-uile dad gu math sìmplidh; gus cinnt a choileanadh, feumaidh tu luach R a shocrachadh mus nochd an teachdaireachd a tha ri shoidhnigeadh. Ma tha R dealasach agus gu bheil e na phàirt den teachdaireachd a thathar a’ soidhnigeadh, a nì cinnteach tuilleadh gu bheil R dealasach anns an teachdaireachd a thathar a’ soidhnigeadh, tha luach S air a dhearbhadh gu sònraichte le teachdaireachd an neach-cleachdaidh agus mar sin faodar a chleachdadh mar stòr airson àireamhan meallta.

Ann an leithid de sgeama, chan eil e gu diofar ciamar a tha R stèidhichte; tha seo fhathast an urra ris an oracle. Tha e cudromach gu bheil S air a dhearbhadh gu sònraichte leis an neach-cleachdaidh, ach chan eil fios air a luach gus am foillsich an oracle e. A h-uile dad a bha sinn ag iarraidh!

A’ bruidhinn air R stèidhichte, thoir an aire sin air ath-chleachdadh R nuair a bhios tu a’ soidhnigeadh diofar theachdaireachdan, tha e gun samhail a’ nochdadh an iuchair phrìobhaideach ann an sgeama EdDSA. Tha e air leth cudromach do shealbhadair an oracle cuir às don chomas R ath-chleachdadh gus teachdaireachdan cleachdaiche eadar-dhealaichte a shoidhnigeadh. Is e sin, le làimhseachadh no claon-bhreith sam bith, bidh an oracle an-còmhnaidh ann an cunnart an iuchair phrìobhaideach aige a chall.

Gu h-iomlan, feumaidh an oracle dà ghnìomh a thoirt do luchd-cleachdaidh: tùsachadh, a shocraicheas an luach R, agus ainm-sgrìobhte, a thilleas an luach S. Anns a’ chùis seo, is e am paidhir R, S an t-ainm-sgrìobhte dearbhaidh àbhaisteach de theachdaireachd neach-cleachdaidh anns a bheil teachdaireachd stèidhichte. luach R agus dàta cleachdaiche neo-riaghailteach.

Faodar argamaid a dhèanamh nach eil an sgeama seo airson an blockchain dad nas motha na an àbhaist sgeama leudachaidh. Gu bunaiteach, tha, is i i. Ach tha grunn nuances ann. An toiseach, bidh an oracle an-còmhnaidh ag obair leis an aon iuchair anns a h-uile gnìomh, mar eisimpleir, tha e goireasach a chleachdadh ann an cùmhnantan. San dàrna h-àite, tha cunnart ann gun caill an oracle an iuchair phrìobhaideach ma bhios e ga ghiùlan fhèin gu ceàrr, mar eisimpleir, leigidh an oracle leat sampallan den toradh a dhèanamh, tha e gu leòr dìreach dà dheuchainn a dhèanamh gus an iuchair phrìobhaideach a lorg agus làn fhaighinn. ruigsinneachd don wallet. San treas àite, tha ainm-sgrìobhte a ghabhas dearbhadh gu dùthchasach air an blockchain agus a tha na thùs air thuaiream breagha.

Airson sia mìosan bha am beachd air cur an gnìomh a ’suathadh nam cheann, gus mu dheireadh nochd togradh anns an fhoirm tabhartas bho Waves Labs. Le tabhartas mòr thig uallach mòr, agus mar sin bidh am pròiseact ann!

Реализация

Mar sin, anns a 'phròiseact seo Chaidh VECRO a chuir an gnìomh air blockchain Waves ann am modh freagairt iarrtas a’ cleachdadh gnothaichean gluasaid eadar an neach-cleachdaidh agus an oracle. Aig an aon àm, tha sgriobt air a chuir a-steach air a ’chunntas oracle a bhios a’ cumail smachd air an obair gu teann a rèir an loidsig a chaidh a mhìneachadh gu h-àrd. Tha gnothaichean Oracle air an dearbhadh agus tha an t-sreath iomlan de eadar-obrachadh luchd-cleachdaidh air ath-nuadhachadh. Tha na ceithir gnothaichean an sàs ann a bhith a’ dearbhadh an luach deireannach; bidh an cùmhnant snasail gan ceangal ri chèile le snàithlean dearbhaidh teann, a’ sgrùdadh a h-uile luach ceum air cheum agus gun àite fhàgail airson làimhseachadh sam bith.

A-rithist, airson a chuir an dàrna taobh agus a dhèanamh nas soilleire. Chan eil an oracle dìreach ag obair a rèir an sgeama a tha san amharc. Tha an obair aige air a smachdachadh gu tur aig ìre blockchain leis an fheadhainn stèidhichte gu teann le cùmhnant sgairteil. Gabh ceum air an taobh chlì agus cha tèid an gnothach troimhe. Mar sin, ma tha malairt air a ghabhail a-steach don blockchain, chan fheum an neach-cleachdaidh eadhon sgrùdadh a dhèanamh air dad; tha na ceudan de nodan lìonra air sgrùdadh a dhèanamh air a h-uile dad dha.

An-dràsta, tha aon VECRO a’ ruith air mainnet Waves (faodaidh tu do chuid fhèin a ruith, chan eil e doirbh, dìreach thoir sùil air an eisimpleir rèiteachaidh). Tha an còd làithreach a’ ruith ann am PHP (air WavesKit, mu dheidhinn Dh'innis mi dhut na bu tràithe).

Gus an t-seirbheis oracle a chleachdadh feumaidh tu:

  • Fix R;
    • Cuir co-dhiù 0.005 Waves gu oracle alias init@vecr;
    • Faigh an còd R anns an raon ceangail ann an gluasad tòcan 1 R-vecr bhon oracle chun neach-cleachdaidh;
  • Faigh ainm-sgrìobhte;
    • Cuir co-dhiù 0.005 Waves chun an oracle alias random@vecr, agus FEUMAIDH tu cuideachd an còd R a fhuaireadh roimhe agus dàta cleachdaiche a bharrachd a chomharrachadh anns an raon ceangail;
    • Faigh an còd S anns an raon ceangail ann an gluasad tòcan 1 S-vecr bhon oracle chun neach-cleachdaidh;
  • Cleachd còd S mar thùs àireamh meallta air thuaiream.

Nòtaichean an gnìomhachaidh làithreach:

  • Bithear a ’cleachdadh tonnan a thèid a chuir chun oracle mar choimisean airson a’ ghnothach tilleadh don neach-cleachdaidh, suas ri 1 Waves aig a ’char as àirde;
  • Is e còd-R a th’ ann an concatenation byte den charactar ‘R’ agus luach R le còdachadh 32-byte base58;
  • Bu chòir còd R ann an ceangal a bhith an toiseach, thig dàta luchd-cleachdaidh às deidh còd R;
  • Is e còd S an co-chòrdadh de bheit den charactar 'S' agus luach còd 32-byte base58 de S;
  • Tha S mar thoradh air roinneadh modulo, agus mar sin chan urrainn dhut S a chleachdadh mar àireamh làn pseudorandom 256-bit (faodar an àireamh seo a mheas mar àireamh pseudorandom 252-bit aig a’ char as àirde);
  • Is e an roghainn as sìmplidh an hash S-code a chleachdadh mar àireamh meallta air thuaiream.

Eisimpleir de bhith a 'faighinn còd S:

Bho thaobh teignigeach, tha an oracle gu tur deiseil airson obair, faodaidh tu a chleachdadh gu sàbhailte. Bho shealladh cleachdaidh leis an neach-cleachdaidh cuibheasach, tha dìth eadar-aghaidh grafaigeach goireasach; feumaidh seo feitheamh.

Bidh mi toilichte ceistean a fhreagairt agus gabhail ri beachdan, tapadh leat.

Source: www.habr.com

Cuir beachd ann