Bazuwar magana bisa sa hannun dijital a cikin blockchain

Daga ra'ayi zuwa aiwatarwa: muna canza tsarin sa hannu na dijital da ke da elliptic don ya zama mai ƙididdigewa, kuma bisa ga shi muna ba da ayyuka don samun lambobin bazuwar da za a iya tantancewa a cikin blockchain.

Bazuwar magana bisa sa hannun dijital a cikin blockchain

Idea

A cikin kaka na 2018, Waves blockchain ya haɗa da na farko smart kwangila kunna, tambayar nan da nan ta tashi game da yiwuwar samun pseudorandom lambobida za ku iya amincewa.

Da mamaki game da wannan tambayar, a ƙarshe na zo ga ƙarshe: kowane blockchain cell ne; ba shi yiwuwa a sami amintaccen tushen entropy a cikin rufaffiyar tsarin.

Amma har yanzu ina son ra'ayi ɗaya: idan bazuwar magana zai sanya hannu kan bayanan mai amfani tare da ƙayyadaddun algorithm, to mai amfani koyaushe zai iya tabbatar da irin wannan sa hannu ta amfani da maɓallin jama'a, kuma zai tabbata cewa ƙimar da aka samu ta musamman ce. Oracle, ko ta yaya yake so, ba zai iya canza komai ba; Algorithm yana haifar da sakamako mara tabbas. Mahimmanci, mai amfani yana rubuta sakamakon, amma bai san shi ba har sai an buga shi. Ya zama cewa ba za ku iya amincewa da magana ba kwata-kwata, amma duba sakamakon aikinsa. Bayan haka, idan an sami nasarar tabbatarwa, ana iya ɗaukar irin wannan sa hannu a matsayin tushen entropy don lambar ƙira.

Dandalin Waves blockchain yana amfani da tsarin sa hannu EDDSA zaɓi Farashin 25519. A cikin wannan makirci, sa hannu ya ƙunshi dabi'u R da S, inda R ya dogara da ƙimar bazuwar, kuma S ana ƙididdige shi bisa la'akari da sakon da aka sanya hannu, maɓalli na sirri da kuma lambar bazuwar R. Ya bayyana cewa. babu wani keɓaɓɓen dogaro ga iri ɗaya Akwai ingantattun sa hannun sa hannu don saƙon mai amfani.

Babu shakka, a cikin tsarkakakken tsari, irin wannan sa hannu ba za a iya amfani da shi azaman tushen lambobi-bazuwar ba, tun da ba shi da ƙayyadaddun ƙayyadaddun bayanai kuma, sabili da haka, ana iya sarrafa shi cikin sauƙi ta hanyar magana.

Amma, kamar yadda ya juya waje, yana yiwuwa a zahiri yana yiwuwa a sanya shi ƙaddara.

Ina da babban bege aikin bazuwar tabbatacce (VRF), amma bayan nazarin kayan aikin, dole ne in watsar da wannan zaɓi. Ko da yake VRF yana ba da ƙayyadaddun sigar sa hannu da tabbacinsa, akwai wani bakon wuri a cikin algorithm wanda ya buɗe rami mai baki don sarrafa magana. Wato, lokacin ƙididdige darajar k (Sashe na 5.1) ana amfani da maɓalli na sirri, wanda mai amfani bai san shi ba, wanda ke nufin mai amfani ba zai iya tabbatar da daidaiton lissafin k ba, wanda ke nufin oracle zai iya amfani da kowane darajar k da yake buƙata kuma a lokaci guda yana kula da ma'ajin bayanai na wasiku. na k da bayanan da aka rattaba hannu don koyaushe su sami damar sake ƙididdige sakamakon daidai daga mahangar VRF. Idan ka ga zane akan VRF ba tare da bayyana maɓalli na sirri ba, za ka iya zama mai hankali: nuna buƙatar ko dai bayyana maɓallin, ko cire shi daga lissafin k, sannan maɓallin keɓaɓɓen zai bayyana kansa ta atomatik lokacin da sa hannun farko ya bayyana. . Gabaɗaya, kamar yadda aka riga aka ambata, baƙon makirci don bazuwar magana.

Bayan ɗan ƙaramin tunani da neman goyon bayan manazarta na gida, an haifi tsarin aikin VECRO.

VECRO taƙaitaccen bayani ne don Verifiable Elliptic Curve Random Oracle, wanda a cikin Rashanci yana nufin tabbataccen bazuwar bazuwar bazuwar bazuwar.

Komai ya zama mai sauƙi; don cimma ƙuduri, kuna buƙatar gyara ƙimar R kafin saƙon da za a sa hannu ya bayyana. Idan R ya yi aiki kuma yana cikin saƙon da ake sa hannu, wanda ke ƙara tabbatar da cewa R yana cikin saƙon da ake sa hannu, ƙimar S ta keɓanta da saƙon mai amfani kuma ana iya amfani da shi azaman tushen lambobi.

A cikin irin wannan makirci, ba komai yadda aka gyara R ba; wannan ya kasance alhakin baka. Yana da mahimmanci cewa mai amfani ya ƙayyade S na musamman, amma ba a san ƙimarsa ba har sai an buga shi. Duk abin da muke so!

Da yake magana akan tsayayyen R, lura cewa sake amfani da R lokacin sanya hannu kan saƙonni daban-daban, yana bayyana maɓalli na sirri musamman a cikin tsarin EdDSA. Yana da matukar mahimmanci ga mai shi ya kawar da yuwuwar sake amfani da R don sanya hannu kan saƙonnin mai amfani daban-daban. Wato, tare da kowane magudi ko haɗa baki, baka zai yi kasadar rasa maɓalli na sirri koyaushe.

Gabaɗaya, oracle dole ne ya ba masu amfani ayyuka guda biyu: farawa, wanda ke daidaita ƙimar R, da sa hannu, wanda ke dawo da ƙimar S. A wannan yanayin, R, S guda biyu shine sa hannun da aka saba tabbatarwa na saƙon mai amfani mai ɗauke da tsayayyen tsari. darajar R da bayanan mai amfani na sabani.

Ana iya jayayya cewa wannan makirci na blockchain ba komai bane illa na yau da kullun ƙaddamar da tsarin. Ainihin, eh, ita ce. Amma akwai nuances da yawa. Da fari dai, Oracle koyaushe yana aiki tare da maɓalli iri ɗaya a cikin duk ayyukan, alal misali, wannan ya dace don amfani a cikin kwangiloli. Na biyu, akwai hadarin da baka ya rasa mabudin sirri idan ya aikata ba daidai ba, misali, baka yana ba ka damar yin samfurin sakamakon, to ya isa ka yi gwaje-gwaje biyu kawai don gano maɓallin keɓaɓɓen kuma samun cika. samun dama ga walat. Na uku, sa hannun da aka tabbatar a asali a kan blockchain kuma shine tushen bazuwar yana da kyau.

Tsawon watanni shida tunanin aiwatarwa ya zube a cikin kaina, har sai da dalili ya bayyana a cikin tsari kyauta daga Waves Labs. Tare da babban taimako ya zo babban alhakin, don haka aikin zai kasance a can!

Aiwatarwa

Don haka, a cikin wannan aikin An aiwatar da VECRO a kan blockchain Waves a cikin yanayin amsa buƙatu ta amfani da ma'amalar canja wuri tsakanin mai amfani da oracle. A lokaci guda, ana shigar da rubutun akan asusun Oracle wanda ke sarrafa aikin sosai daidai da dabarar da aka bayyana a sama. An tabbatar da ma'amalar Oracle kuma an dawo da dukkan jerin mu'amalar mai amfani. Dukkan ma'amaloli guda huɗu suna da hannu wajen tabbatar da ƙimar ƙarshe; kwangilar wayo ta haɗa su tare da ingantaccen zaren tabbatarwa, bincika duk ƙimar mataki-mataki kuma ba ta barin wurin yin magudi.

Har yanzu, don ajiye shi a gefe da kuma bayyana shi. Maganar ba wai kawai tana aiki bisa ga tsarin da aka tsara ba. Ayyukansa ana sarrafa shi gaba ɗaya a matakin blockchain ta kafa tam tare da wayo kwangila. Mataki zuwa hagu kuma ma'amala ba za ta wuce ba. Don haka, idan an haɗa ma'amala a cikin blockchain, mai amfani bai ma buƙatar bincika komai ba; ɗaruruwan nodes na cibiyar sadarwa sun riga sun bincika masa komai.

A halin yanzu, akwai VECRO guda ɗaya da ke gudana akan babban gidan yanar gizon Waves (zaka iya gudanar da naka, ba shi da wahala, kawai kalli misalin sanyi). Lambar yanzu tana gudana a cikin PHP (on WavesKit, game da wane Na gaya muku a baya).

Domin amfani da sabis na oracle dole ne:

  • Gyara R;
    • Aika aƙalla 0.005 Waves zuwa init@vecr;
    • Karɓi lambar R a cikin filin haɗe-haɗe a cikin canja wurin alamar 1 R-vecr daga oracle zuwa mai amfani;
  • Samu sa hannu;
    • Aika aƙalla 0.005 Waves zuwa oracle wanda aka fi sani da random@vecr, kuma dole ne ya nuna lambar R da aka karɓa a baya da ƙarin bayanan mai amfani a cikin filin haɗe-haɗe;
    • Karɓi S-code a cikin filin haɗe-haɗe a cikin canja wurin alamar S-vecr 1 daga oracle zuwa mai amfani;
  • Yi amfani da lambar S azaman tushen lambar bazuwar.

Abubuwan da ake aiwatarwa na yanzu:

  • Ana amfani da raƙuman ruwa da aka aika zuwa ga oracle azaman kwamiti don ma'amalar dawowa ga mai amfani, har zuwa iyakar 1 Waves;
  • R-code shine haɗakar wani byte na halin 'R' da ƙimar R mai tushe 32-byte58;
  • R-code a cikin abin da aka makala ya kamata ya zama na farko, bayanan mai amfani yana zuwa bayan R-code;
  • S-code shine haɗakar wani byte na halin 'S' da ƙima mai lamba 32-byte58 na S;
  • S shine sakamakon rabon modulo, don haka ba za ku iya amfani da S a matsayin cikakken lambar pseudorandom 256-bit (wannan lambar za a iya la'akari da matsakaicin lambar pseudorandom 252-bit);
  • Zaɓin mafi sauƙi shine a yi amfani da zantan lambar S azaman lambar bazuwar.

Misalin karɓar lambar S:

Daga ra'ayi na fasaha, oracle yana shirye gaba daya don aiki, zaka iya amfani da shi lafiya. Daga ra'ayi na amfani ta matsakaicin mai amfani, akwai rashin ingantacciyar hanyar dubawa; wannan zai jira.

Zan yi farin cikin amsa tambayoyi da karɓar sharhi, na gode.

source: www.habr.com

Add a comment