Tunaendelea na mfululizo wetu kuhusu blockchain ya Monero, na makala ya leo yatazingatia itifaki ya RingCT (Miamala ya Siri ya Pete), ambayo inatanguliza miamala ya siri na sahihi mpya za pete. Kwa bahati mbaya, kuna habari kidogo kwenye mtandao kuhusu jinsi inavyofanya kazi, na tulijaribu kujaza pengo hili.
Tutazungumza juu ya jinsi mtandao huficha kiasi cha uhamishaji kwa kutumia itifaki hii, kwa nini waliacha saini za pete za cryptonote, na jinsi teknolojia hii itakua zaidi.
Kwa kuwa itifaki hii ni moja wapo ya teknolojia ngumu zaidi huko Monero, msomaji atahitaji maarifa ya kimsingi ya muundo wa blockchain hii na maarifa ya kupita ya kriptografia ya mviringo (ili kupata maarifa haya, unaweza kusoma sura za kwanza za nakala yetu. makala iliyopita kuhusu
Itifaki ya RingCT
Moja ya mashambulizi iwezekanavyo kwenye sarafu ya cryptonote ni uchambuzi wa blockchain kulingana na ujuzi wa kiasi na wakati wa shughuli iliyotumwa. Hii inaruhusu
Inafaa kumbuka kuwa wazo la kuficha kiasi sio mpya. Msanidi wa Bitcoin Core Greg Maxwell alikuwa mmoja wa wa kwanza kuielezea katika yake
Miongoni mwa mambo mengine, itifaki husaidia kuondokana na matatizo na kuchanganya matokeo ya vumbi - matokeo ya kiasi kidogo (kawaida hupokea kwa njia ya mabadiliko kutoka kwa shughuli), ambayo iliunda matatizo zaidi kuliko yalivyostahili.
Mnamo Januari 2017, uma ngumu wa mtandao wa Monero ulifanyika, kuruhusu matumizi ya hiari ya shughuli za siri. Na tayari mnamo Septemba mwaka huo huo, na toleo la 6 la uma ngumu, shughuli kama hizo zikawa pekee zinazoruhusiwa kwenye mtandao.
RingCT hutumia mbinu kadhaa kwa wakati mmoja: sahihi za kikundi zilizounganishwa zenye safu nyingi zilizounganishwa moja kwa moja (Sahihi ya Kundi isiyojulikana ya Multilayered Linkable Spontaneous, ambayo itajulikana hapa kama MLSAG), mpango wa kujitolea (Ahadi za Pedersen) na uthibitisho wa anuwai (neno hili halina tafsiri iliyowekwa katika Kirusi) .
Itifaki ya RingCT inatanguliza aina mbili za miamala isiyojulikana: rahisi na kamili. Mkoba huzalisha kwanza wakati shughuli hutumia pembejeo zaidi ya moja, pili - katika hali tofauti. Zinatofautiana katika uthibitishaji wa kiasi cha malipo na data iliyotiwa saini na saini ya MLSAG (tutazungumza zaidi kuhusu hili hapa chini). Aidha, shughuli za aina kamili zinaweza kuzalishwa na idadi yoyote ya pembejeo, hakuna tofauti ya msingi. Katika kitabu
Sahihi ya MLSAG
Hebu tukumbuke pembejeo za muamala zilizotiwa saini ni nini. Kila muamala hutumia na kuzalisha baadhi ya fedha. Uzalishaji wa pesa hufanyika kwa kuunda matokeo ya ununuzi (mlinganisho wa moja kwa moja ni bili), na matokeo ambayo shughuli hutumia (baada ya yote, katika maisha halisi tunatumia noti) inakuwa pembejeo (kuwa mwangalifu, ni rahisi sana kuchanganyikiwa. hapa).
Ingizo hurejelea matokeo mengi, lakini hutumia moja pekee, hivyo basi kuunda "skrini ya moshi" ili iwe vigumu kuchanganua historia ya tafsiri. Ikiwa muamala una ingizo zaidi ya moja, basi muundo kama huo unaweza kuwakilishwa kama matriki, ambapo safu mlalo ni ingizo na safu wima ni matokeo mchanganyiko. Ili kuthibitisha kwa mtandao kwamba shughuli hutumia matokeo yake (inajua funguo zao za siri), pembejeo zinasainiwa na saini ya pete. Saini kama hiyo inahakikisha kwamba mtu aliyetia sahihi alijua funguo za siri za vitu vyote vya safu wima yoyote.
Shughuli za siri hazitumii tena zile za kawaida
Zinaitwa multilayer kwa sababu husaini pembejeo kadhaa mara moja, ambayo kila moja imechanganywa na zingine kadhaa, i.e. matrix imesainiwa, na sio safu moja. Kama tutakavyoona baadaye, hii husaidia kuokoa kwenye saizi ya sahihi.
Wacha tuangalie jinsi saini ya pete inavyoundwa, kwa kutumia mfano wa shughuli ambayo hutumia matokeo 2 halisi na hutumia m - 1 bila mpangilio kutoka kwa blockchain kwa kuchanganya. Wacha tuonyeshe funguo za umma za matokeo ambayo tunatumia kama
, na picha muhimu kwao ipasavyo: Kwa hivyo, tunapata matrix ya ukubwa 2 x m. Kwanza, tunahitaji kukokotoa kile kinachoitwa changamoto kwa kila jozi ya matokeo:
Tunaanza mahesabu na matokeo, ambayo tunatumia kwa kutumia funguo zao za umma:na nambari za nasibuKama matokeo, tunapata maadili yafuatayo:
, ambayo tunatumia kukokotoa changamoto
jozi inayofuata ya matokeo (ili iwe rahisi kuelewa ni nini tunabadilisha ambapo, tumeangazia maadili haya kwa rangi tofauti). Thamani zote zifuatazo zinahesabiwa kwenye mduara kwa kutumia fomula zilizopewa kwenye kielelezo cha kwanza. Jambo la mwisho kukokotoa ni changamoto kwa jozi ya matokeo halisi.
Kama tunavyoona, safu wima zote isipokuwa ile iliyo na matokeo halisi hutumia nambari zinazozalishwa bila mpangilio. Kwa Ο-safu pia tutazihitaji. Hebu tubadilikekatika s:
Sahihi yenyewe ni nakala ya maadili haya yote:
Data hii basi huandikwa katika shughuli.
Kama tunavyoona, MLSAG ina changamoto moja tu c0, ambayo inakuwezesha kuokoa kwa ukubwa wa saini (ambayo tayari inahitaji nafasi nyingi). Ifuatayo, mkaguzi yeyote, kwa kutumia data, hurejesha maadili c1,β¦, cm na kuangalia hiyo. Kwa hivyo, pete yetu imefungwa na saini imethibitishwa.
Kwa shughuli za RingCT za aina kamili, mstari mmoja zaidi huongezwa kwenye tumbo na matokeo mchanganyiko, lakini tutazungumzia kuhusu hili hapa chini.
Ahadi za Pedersen
Ahadi za Monero hutumiwa kuficha kiasi cha uhamisho na kutumia chaguo la kawaida - ahadi za Pedersen. Kwa njia, ukweli wa kuvutia - mwanzoni watengenezaji walipendekeza kuficha kiasi hicho kwa kuchanganya kawaida, yaani, kuongeza matokeo kwa kiasi cha kiholela ili kuanzisha kutokuwa na uhakika, lakini kisha wakabadilisha ahadi (sio ukweli kwamba waliokoa. saizi ya ununuzi, kama tutakavyoona hapa chini).
Kwa ujumla, kujitolea kunaonekana kama hii:
Je! C - maana ya kujitolea yenyewe, a - kiasi kilichofichwa, H ni hatua ya kudumu kwenye mviringo wa mviringo (jenereta ya ziada), na x - aina fulani ya mask ya kiholela, sababu ya kujificha inayozalishwa kwa nasibu. Kinyago kinahitajika hapa ili mtu wa tatu asiweze kubahatisha tu thamani ya kujitolea.
Wakati pato jipya linapotolewa, mkoba huhesabu ahadi yake, na inapotumiwa, inachukua thamani iliyohesabiwa wakati wa uzalishaji au kuhesabu upya, kulingana na aina ya shughuli.
RingCT rahisi
Kwa upande wa shughuli rahisi za RingCT, ili kuhakikisha kuwa shughuli hiyo iliunda matokeo kwa kiasi sawa na kiasi cha pembejeo (haikutoa pesa nje ya hewa nyembamba), ni muhimu kwamba jumla ya ahadi za kwanza na za pili. wawe sawa, yaani:
Tume za ahadi huichukulia kwa njia tofauti kidogo - bila barakoa:
Ambapo a - kiasi cha tume, kinapatikana kwa umma.
Mbinu hii huturuhusu kuthibitisha kwa mhusika kuwa tunatumia kiasi sawa bila kufichua.
Ili kufanya mambo kuwa wazi zaidi, hebu tuangalie mfano. Wacha tuseme muamala hutumia matokeo mawili (maana yanakuwa pembejeo) ya 10 na 5 XMR na kutoa matokeo matatu yenye thamani ya XMR 12: 3, 4 na 5 XMR. Wakati huo huo, analipa tume ya 3 XMR. Kwa hivyo, kiasi cha pesa kilichotumiwa pamoja na kiasi kilichozalishwa na tume ni sawa na 15 XMR. Wacha tujaribu kuhesabu ahadi na tuangalie tofauti katika viwango vyao (kumbuka hesabu):
Hapa tunaona kwamba ili equation iungane, tunahitaji hesabu za vinyago vya kuingiza na kutoa ziwe sawa. Kwa kufanya hivyo, mkoba huzalisha kwa nasibu x1, y1, y2 na y3, na iliyobaki x2 hesabu kama hii:
Kwa kutumia vinyago hivi, tunaweza kuthibitisha kwa kithibitishaji chochote kwamba hatutoi pesa nyingi kuliko tunazotumia, bila kufichua kiasi hicho. Asili, sawa?
RingCT imejaa
Katika miamala kamili ya RingCT, kuangalia kiasi cha uhamisho ni ngumu zaidi. Katika shughuli hizi, pochi haihesabu tena ahadi za pembejeo, lakini hutumia zile zilizokokotwa wakati zilitolewa. Katika kesi hii, lazima tufikirie kuwa hatutapata tena tofauti katika hesabu sawa na sifuri, lakini badala yake:
Hapa z β tofauti kati ya vinyago vya kuingiza na kutoa. Ikiwa tutazingatia zG kama ufunguo wa umma (ambayo ni kweli), basi z ni ufunguo wa kibinafsi. Kwa hivyo, tunajua funguo za kibinafsi za umma na zinazolingana. Kwa kuwa na data hii, tunaweza kuitumia katika sahihi ya pete ya MLSAG pamoja na vitufe vya umma vya matokeo yanayochanganywa:
Kwa hivyo, sahihi ya pete itahakikisha kwamba tunajua funguo zote za faragha za mojawapo ya safu wima, na tunaweza tu kujua ufunguo wa faragha katika safu mlalo ya mwisho ikiwa shughuli hiyo haitazalisha pesa zaidi kuliko inavyotumia. Kwa njia, hapa kuna jibu la swali "kwa nini tofauti katika kiasi cha ahadi haileti sifuri" - ikiwa zG = 0, basi tutapanua safu na matokeo halisi.
Je, mpokeaji wa fedha hizo anajua ni kiasi gani cha fedha alichotumwa? Kila kitu ni rahisi hapa - mtumaji wa shughuli na funguo za kubadilishana za mpokeaji kwa kutumia itifaki ya Diffie-Hellman, kwa kutumia ufunguo wa shughuli na ufunguo wa mtazamo wa mpokeaji na kuhesabu siri iliyoshirikiwa. Mtumaji huandika data kuhusu kiasi cha pato, kilichosimbwa kwa ufunguo huu ulioshirikiwa, katika sehemu maalum za muamala.
Uthibitisho wa anuwai
Nini kitatokea ikiwa unatumia nambari hasi kama kiasi katika ahadi? Hii inaweza kusababisha kizazi cha sarafu za ziada! Matokeo haya hayakubaliki, kwa hiyo tunahitaji kuhakikisha kwamba kiasi tunachotumia sio hasi (bila kufichua kiasi hiki, bila shaka, vinginevyo kuna kazi nyingi na yote ni bure). Kwa maneno mengine, lazima tuthibitishe kuwa jumla iko katika muda [0, 2n - 1].
Ili kufanya hivyo, jumla ya kila pato imegawanywa katika tarakimu za binary na ahadi huhesabiwa kwa kila tarakimu tofauti. Ni bora kuona jinsi hii inatokea kwa mfano.
Hebu tuchukulie kwamba kiasi chetu ni kidogo na kinafaa katika biti 4 (kwa mazoezi hii ni biti 64), na tunaunda pato la thamani ya 5 XMR. Tunakokotoa ahadi kwa kila aina na jumla ya ahadi ya kiasi chote:
Ifuatayo, kila ahadi inachanganywa na mbadala (Ci-2iH) na imetiwa saini kwa jozi na saini ya pete ya Borromeo (saini nyingine ya pete), iliyopendekezwa na Greg Maxwell mnamo 2015 (unaweza kusoma zaidi kuihusu
Kwa pamoja, hii inaitwa uthibitisho wa anuwai na hukuruhusu kuhakikisha kuwa ahadi hutumia viwango katika safu [0, 2n - 1].
Nini hapo?
Katika utekelezaji wa sasa, uthibitisho wa anuwai huchukua nafasi nyingi - byte 6176 kwa pato. Hii husababisha miamala mikubwa na kwa hivyo ada ya juu. Ili kupunguza ukubwa wa ununuzi wa Monero, wasanidi programu wanaleta vizuia risasi badala ya sahihi za Borromeo - utaratibu wa uthibitisho wa anuwai bila ahadi za busara.
Uliza maswali yako, pendekeza mada kwa nakala mpya kuhusu teknolojia katika uwanja wa cryptocurrency, na pia ujiandikishe kwa kikundi chetu katika
Chanzo: mapenzi.com