Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon

Gipadayon namon ang among serye bahin sa Monero blockchain, ug ang artikulo karon magpunting sa protocol sa RingCT (Ring Confidential Transactions), nga nagpaila sa mga kompidensyal nga transaksyon ug bag-ong mga pirma sa singsing. Ikasubo, adunay gamay nga kasayuran sa Internet kung giunsa kini molihok, ug gisulayan namon nga pun-on kini nga kal-ang.

Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon

Maghisgot kami kung giunsa ang network nagtago sa mga kantidad sa pagbalhin gamit kini nga protocol, ngano nga ilang gibiyaan ang mga klasiko nga pirma sa singsing sa cryptonote, ug kung giunsa kini nga teknolohiya molambo pa.

Tungod kay kini nga protocol usa sa labing komplikado nga mga teknolohiya sa Monero, ang magbabasa magkinahanglan usa ka sukaranan nga kahibalo sa disenyo niini nga blockchain ug usa ka lumalabay nga kahibalo sa elliptic curve cryptography (aron masusi kini nga kahibalo, mahimo nimong basahon ang unang mga kapitulo sa among miaging artikulo mahitungod sa multisignatures).

RingCT protocol

Usa sa posibleng pag-atake sa cryptonote currencies mao ang pagtuki sa blockchain base sa kahibalo sa kantidad ug oras sa gipadala nga transaksyon. Kini nagtugot makahuluganon nga pig-ot ang lugar sa pagpangita alang sa mga exit sa interes sa tig-atake. Aron mapanalipdan batok sa ingon nga pagtuki, gipatuman ni Monero ang usa ka anonymous nga protocol sa transaksyon nga hingpit nga nagtago sa kantidad sa mga pagbalhin sa network.

Angay nga matikdan nga ang ideya sa pagtago sa mga kantidad dili bag-o. Ang developer sa Bitcoin Core nga si Greg Maxwell usa sa una nga naghulagway niini sa iyang artikulo Kompidensyal nga mga Transaksyon. Ang kasamtangan nga pagpatuman sa RingCT usa ka pagbag-o niini nga adunay katakus sa paggamit sa mga pirma sa singsing (bisan kung wala sila), ug mao kana kung giunsa nakuha ang ngalan niini - Ring Confidential Transactions.

Lakip sa ubang mga butang, ang protocol makatabang sa pagtangtang sa mga problema sa pagsagol sa mga output sa abog - mga output sa gamay nga kantidad (kasagaran nadawat sa porma sa pagbag-o gikan sa mga transaksyon), nga nakamugna og daghang mga problema kaysa sa kantidad niini.

Niadtong Enero 2017, usa ka hard fork sa Monero network ang nahitabo, nga nagtugot sa opsyonal nga paggamit sa kompidensyal nga mga transaksyon. Ug na sa Septyembre sa mao gihapon nga tuig, uban sa bersyon 6 lisud nga tinidor, ang maong mga transaksyon nahimong lamang nga gitugotan sa network.

Ang RingCT naggamit sa daghang mga mekanismo sa usa ka higayon: multilayered linked spontaneous anonymous nga mga pirma sa grupo (Multilayered Linkable Spontaneous Anonymous Group Signature, human niini gitawag nga MLSAG), usa ka commitment scheme (Pedersen Commitments) ug range proofs (kini nga termino walay establisado nga hubad ngadto sa Russian) .

Ang RingCT protocol nagpaila sa duha ka matang sa anonymous nga mga transaksyon: simple ug puno. Ang pitaka makamugna sa una kung ang usa ka transaksyon naggamit labaw pa sa usa ka input, ang ikaduha - sa kaatbang nga sitwasyon. Nagkalainlain sila sa pag-validate sa mga kantidad sa transaksyon ug ang datos nga gipirmahan sa usa ka pirma sa MLSAG (atong hisgutan ang labi pa bahin niini sa ubos). Dugang pa, ang mga transaksyon sa tipo nga puno mahimong mabuhat sa bisan unsang gidaghanon sa mga input, wala’y sukaranan nga kalainan. Sa libro "Zero hangtod Monero" Niining bahina, giingon nga ang desisyon nga limitahan ang tibuuk nga mga transaksyon sa usa ka input gihimo nga dali ug mahimo’g magbag-o sa umaabot.

pirma sa MLSAG

Atong hinumduman kung unsa ang gipirmahan nga mga input sa transaksyon. Ang matag transaksyon mogasto ug makamugna og pipila ka mga pundo. Ang henerasyon sa mga pondo mahitabo pinaagi sa paghimo sa mga output sa transaksyon (usa ka direkta nga analohiya mao ang mga bayronon), ug ang output nga gigasto sa transaksyon (human sa tanan, sa tinuud nga kinabuhi nga kita naggasto sa mga banknotes) nahimong input (pag-amping, dali kaayo nga maglibog. dinhi).

Ang usa ka input nag-refer sa daghang mga output, apan naggasto lamang sa usa, sa ingon nagmugna og "smokescreen" aron malisud ang pag-analisar sa kasaysayan sa paghubad. Kung ang usa ka transaksyon adunay labaw pa sa usa ka input, nan ang ingon nga istruktura mahimong irepresentar ingon usa ka matrix, diin ang mga laray mao ang mga input ug ang mga kolum mao ang gisagol nga mga output. Aron pamatud-an sa network nga ang transaksyon mogasto sa eksakto nga mga output niini (nahibal-an ang ilang sekreto nga mga yawe), ang mga input gipirmahan sa usa ka pirma sa singsing. Ang ingon nga pirma naggarantiya nga ang nagpirma nahibal-an ang sekreto nga mga yawe alang sa tanan nga mga elemento sa bisan unsang mga kolum.

Ang mga kompidensyal nga transaksyon wala na mogamit sa mga klasiko cryptonote mga pirma sa singsing, gipulihan sila sa MLSAG - usa ka bersyon sa parehas nga single-layer nga mga pirma sa singsing nga gipahiangay alang sa daghang mga input, LSAG.

Gitawag sila nga multilayer tungod kay gipirmahan nila ang daghang mga input sa usa ka higayon, ang matag usa gisagol sa daghang uban pa, i.e. usa ka matrix ang gipirmahan, ug dili usa ka laray. Sama sa atong makita sa ulahi, kini makatabang sa pagluwas sa gidak-on sa pirma.

Atong tan-awon kung giunsa naporma ang usa ka pirma sa singsing, gamit ang pananglitan sa usa ka transaksyon nga naggasto sa 2 nga tinuud nga mga output ug gigamit ang m - 1 nga random gikan sa blockchain alang sa pagsagol. Atong itudlo ang publiko nga mga yawe sa mga output nga atong gigastohan
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon, ug mahinungdanong mga hulagway alang kanila sumala niana: Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon Sa ingon, nakakuha kami usa ka matrix nga gidak-on 2 x m. Una, kinahanglan natong kuwentahon ang gitawag nga mga hagit alang sa matag parisan sa mga output:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
Gisugdan namon ang mga kalkulasyon sa mga output, nga among gigasto gamit ang ilang mga yawe sa publiko:Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyonug random nga mga numeroKompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyonIngon nga resulta, atong makuha ang mosunod nga mga bili:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon, nga among gigamit sa pagkalkulo sa hagit
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyonang sunod nga parisan sa mga output (aron mas dali masabtan kung unsa ang among gipuli kung diin, among gipasiugda kini nga mga kantidad sa lainlaing mga kolor). Ang tanan nga mga musunod nga kantidad gikalkula sa usa ka lingin gamit ang mga pormula nga gihatag sa una nga ilustrasyon. Ang katapusan nga butang nga makalkula mao ang hagit alang sa usa ka pares nga tinuod nga mga output.

Sama sa atong makita, ang tanan nga mga kolum gawas sa usa nga adunay tinuod nga mga output naggamit sa random nga namugna nga mga numeroKompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon. Alang Ο€- kolum kinahanglan usab nato sila. Magbag-o taKompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyonsa s:Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
Ang pirma mismo usa ka tuple sa tanan niini nga mga kantidad:

Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon

Kini nga datos isulat dayon sa usa ka transaksyon.

Sama sa atong makita, ang MLSAG adunay usa lamang ka hagit c0, nga nagtugot kanimo sa pagtipig sa gidak-on sa pirma (nga nanginahanglan na og daghang luna). Dugang pa, bisan unsang inspektor, gamit ang datosKompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon, ibalik ang mga kantidad nga c1,…, cm ug susihon kanaKompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon. Sa ingon, ang among singsing sirado ug ang pirma napamatud-an.

Alang sa mga transaksyon sa RingCT sa tibuuk nga tipo, usa pa ka linya ang idugang sa matrix nga adunay managsama nga mga output, apan hisgutan naton kini sa ubos.

Mga Pasalig sa Pedersen

Mga laraw sa obligasyon (ang English nga termino nga mga pasalig mas kanunay gigamit) gigamit aron ang usa ka partido makapamatuod nga nahibal-an nila ang usa ka sekreto (numero) nga wala gyud kini gipadayag. Pananglitan, i-roll nimo ang usa ka piho nga numero sa dice, ikonsiderar ang pasalig ug ipasa kini sa partido nga nagpamatuod. Busa, sa higayon nga ibutyag ang sekreto nga numero, ang verifier independente nga nagkalkula sa pasalig, sa ingon nagsiguro nga wala nimo siya gilimbongan.

Ang mga pasalig sa Monero gigamit aron itago ang kantidad sa mga pagbalhin ug gamiton ang labing kasagaran nga kapilian - mga pasalig sa Pedersen. Pinaagi sa dalan, usa ka makapaikag nga kamatuoran - sa sinugdan gisugyot sa mga developer nga itago ang mga kantidad pinaagi sa ordinaryong pagsagol, nga mao, pagdugang mga output alang sa arbitraryong kantidad aron ipakilala ang kawalay kasiguruhan, apan pagkahuman gibalhin nila ang mga pasalig (dili kini usa ka kamatuoran nga ilang gitipigan ang gidak-on sa transaksyon, ingon sa atong makita sa ubos).
Sa kinatibuk-an, ang pasalig ingon niini:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyonDiin C - ang kahulogan sa pasalig mismo, a - tinago nga kantidad, H maoy usa ka pirmi nga punto sa elliptic curve (dugang generator), ug x - usa ka matang sa arbitraryong maskara, usa ka hinungdan sa pagtago nga nahimo nga random. Ang maskara gikinahanglan dinhi aron ang ikatulo nga partido dili makatag-an lamang sa bili sa pasalig.

Sa diha nga ang usa ka bag-o nga output nga namugna, ang pitaka kalkulado pasalig alang niini, ug sa diha nga gasto, kini nagkinahanglan sa bili nga kalkulado sa panahon sa kaliwatan o recalculate niini, depende sa matang sa transaksyon.

Simple ang RingCT

Sa kaso sa yano nga mga transaksyon sa RingCT, aron masiguro nga ang transaksyon nakamugna og mga output sa kantidad nga katumbas sa kantidad sa mga input (wala makagama og salapi gikan sa manipis nga hangin), gikinahanglan nga ang kantidad sa mga pasalig sa una ug ikaduha ang mga managsama, nga mao:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
Giisip kini sa mga komisyon sa pasalig nga medyo lahi - kung wala’y maskara:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyondiin a β€” ang kantidad sa komisyon, kini magamit sa publiko.

Kini nga pamaagi nagtugot kanamo nga mapamatud-an sa nagsalig nga partido nga kami naggamit sa parehas nga kantidad nga wala ibutyag kini.

Aron mas klaro ang mga butang, tan-awon nato ang usa ka pananglitan. Ingnon ta nga ang usa ka transaksyon mogasto ug duha ka mga output (nagpasabot nga sila mahimong mga input) sa 10 ug 5 XMR ug makamugna ug tulo ka mga output nga nagkantidad ug 12 XMR: 3, 4 ug 5 XMR. Sa samang higayon, nagbayad siya og komisyon nga 3 XMR. Busa, ang kantidad sa salapi nga gigasto ug ang kantidad nga namugna ug ang komisyon katumbas sa 15 XMR. Atong sulayan ang pagkalkulo sa mga pasalig ug tan-awon ang kalainan sa ilang mga kantidad (hinumdomi ang matematika):

Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
Dinhi atong makita nga aron ang equation mag-converge, kinahanglan nato ang mga sums sa input ug output mask nga magkaparehas. Aron mahimo kini, ang pitaka nagmugna nga random x1, y1, y2 ug y3, ug ang nahibilin x2 kalkulado sama niini:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
Gamit kini nga mga maskara, mapamatud-an namon sa bisan kinsa nga tig-verify nga wala kami makamugna og daghang mga pondo kaysa among gigasto, nga wala ibutyag ang kantidad. Orihinal, dili ba?

Puno ang RingCT

Sa bug-os nga mga transaksyon sa RingCT, ang pagsusi sa mga kantidad sa pagbalhin usa ka gamay nga mas komplikado. Sa kini nga mga transaksyon, ang pitaka wala mag-ihap pag-usab sa mga pasalig alang sa mga input, apan gigamit ang mga kalkulado kung kini nahimo. Sa kini nga kaso, kinahanglan naton hunahunaon nga dili na naton makuha ang kalainan sa mga kantidad nga katumbas sa zero, apan sa baylo:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
kini mao ang z - kalainan tali sa input ug output nga mga maskara. Kon atong tagdon zG isip usa ka publikong yawe (nga de facto kini), unya z mao ang pribadong yawe. Sa ingon, nahibal-an namon ang publiko ug katugbang nga pribado nga mga yawe. Uban niini nga datos sa kamot, mahimo namong gamiton kini sa pirma sa singsing sa MLSAG uban sa mga publikong yawe sa mga output nga gisagol:
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
Sa ingon, ang usa ka balido nga pirma sa singsing magsiguro nga nahibal-an namon ang tanan nga mga pribado nga yawe sa usa sa mga kolum, ug mahibal-an ra namon ang pribado nga yawe sa katapusan nga laray kung ang transaksyon dili makamugna og daghang mga pundo kaysa gigasto niini. Pinaagi sa dalan, ania ang tubag sa pangutana "ngano nga ang kalainan sa kantidad sa mga pasalig dili mosangpot sa zero" - kung zG = 0, unya atong palapdan ang kolum nga adunay tinuod nga mga output.

Giunsa pagkahibalo sa nakadawat sa pondo kung pila ang gipadala nga kuwarta kaniya? Ang tanan yano dinhi - ang nagpadala sa transaksyon ug ang nakadawat sa pagbayloay sa mga yawe gamit ang Diffie-Hellman protocol, gamit ang transaction key ug ang view key sa nakadawat ug kuwentaha ang gipaambit nga sekreto. Gisulat sa nagpadala ang datos bahin sa mga kantidad sa output, nga gi-encrypt sa kini nga gipaambit nga yawe, sa mga espesyal nga natad sa transaksyon.

Mga pruweba sa range

Unsa ang mahitabo kung mogamit ka og negatibo nga numero isip kantidad sa mga pasalig? Mahimong mosangpot kini sa pagmugna og dugang nga mga sensilyo! Kini nga sangputanan dili madawat, mao nga kinahanglan namon nga garantiya nga ang mga kantidad nga among gigamit dili negatibo (nga wala ibutyag kini nga mga kantidad, siyempre, kung dili adunay daghang trabaho ug ang tanan wala’y kapuslanan). Sa laing pagkasulti, kinahanglan natong pamatud-an nga ang sumada anaa sa interval [0, 2n - 1].

Sa pagbuhat niini, ang sumada sa matag output gibahin ngadto sa binary digits ug ang pasalig kalkulado alang sa matag digit gilain. Mas maayo nga makita kung giunsa kini mahitabo sa usa ka pananglitan.

Ibutang nato nga ang atong mga kantidad gamay ra ug mohaum sa 4 ka bit (sa praktis kini 64 ka bit), ug maghimo kita ug output nga nagkantidad ug 5 XMR. Among kuwentahon ang mga pasalig alang sa matag kategoriya ug ang kinatibuk-ang pasalig alang sa tibuok kantidad:Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyon
Sunod, ang matag pasalig gisagol sa usa ka surrogate (Ci-2iH) ug gipirmahan nga pares sa Borromeo ring signature (laing pirma sa singsing), gisugyot ni Greg Maxwell niadtong 2015 (mahimo nimong basahon ang dugang mahitungod niini dinhi):
Kompidensyal nga mga transaksyon sa Monero, o kung giunsa pagbalhin ang wala mailhi nga mga butang sa wala mailhi nga mga destinasyonSa tingub, kini gitawag nga range proof ug nagtugot kanimo sa pagsiguro nga ang mga pasalig naggamit sa kantidad sa range [0, 2n - 1].

Unsay sunod?

Sa kasamtangan nga pagpatuman, ang range proofs mokuha ug daghang luna - 6176 bytes kada output. Kini modala ngadto sa mas dagkong mga transaksyon ug busa mas taas nga bayranan. Aron makunhuran ang gidak-on sa usa ka transaksyon sa Monero, ang mga developers nagpaila sa mga bulletproof imbes sa mga pirma sa Borromeo - usa ka range proof nga mekanismo nga walay bitwise nga mga pasalig. Sumala sa pipila ka banabana, sila makahimo sa pagpakunhod sa gidak-on sa range proof hangtod sa 94%. Pinaagi sa dalan, sa tunga-tunga sa Hulyo ang teknolohiya milabay pag-audit gikan sa Kudelski Security, nga wala magpadayag sa bisan unsang mahinungdanong mga kakulangan sa teknolohiya mismo o sa pagpatuman niini. Ang teknolohiya gigamit na sa test network, ug uban sa bag-ong hard fork, mahimo kining mobalhin sa main network.

Pangutan-a ang imong mga pangutana, isugyot ang mga hilisgutan alang sa bag-ong mga artikulo bahin sa mga teknolohiya sa natad sa cryptocurrency, ug pag-subscribe usab sa among grupo sa Facebookaron mapadayon ang pag-update sa among mga panghitabo ug publikasyon.

Source: www.habr.com

Idugang sa usa ka comment