Introducere
Este adesea considerat esențial pentru funcționarea unui blockchain ca sistemul să fie transparent. Aceasta înseamnă că fiecare nod din rețea poate stoca o copie și poate verifica dacă nu sunt încălcate reguli. Pentru multe registre distribuite, oricine poate încărca un explorator de blocuri online care le permite să caute prin blocuri, tranzacții și adrese.
În ceea ce privește confidențialitatea, acest lucru nu este ideal. Într-un sistem precum Bitcoin, fiecare tranzacție poate fi legată înapoi la una anterioară. Monedele nu sunt fungibile din punct de vedere tehnic, ceea ce înseamnă că fiecare poate fi legată de tranzacții specifice. Nimeni nu vă poate împiedica să trimiteți bitcoin, dar poate refuza să vă accepte tranzacția dacă acele monede au trecut anterior printr-o adresă pe lista neagră.
În cel mai rău caz, lipsa fungibilității ar putea avea un impact profund asupra fundațiilor sistemului. Monedele curate pot primi o primă, în timp ce cele mai vechi ar fi mai puțin valoroase, având în vedere istoricul lor.
Confidențialitatea în Bitcoin este adesea exagerată. Nu numai că monedele pot fi urmărite, dar și utilizatorii. Se bucură de pseudonim (adresele publice sunt vizibile în loc de nume), dar acest lucru nu este lipsit de defecte. Tehnicile sofisticate de analiză pot, cu o acuratețe din ce în ce mai mare, să grupeze adresele împreună în încercarea de a deanonimiza entitățile din rețea.
Un upgrade propus pentru a face tranzacțiile cu adevărat private este Tranzacțiile confidențiale.
Ce sunt tranzacțiile confidențiale?
Tranzacțiile confidențiale (CT) au fost discutate pentru prima dată de CEO-ul Blockstream, Adam, în 2013 și au fost ulterior extinse de dezvoltatorul Bitcoin Gregory Maxwell. Maxwell a subliniat problemele menționate în prima secțiune (fungibilitatea și pseudonimitatea slabă) – și a propus o soluție. Sumele transferate ar putea fi protejate de rețeaua mai largă, astfel încât doar părțile care fac tranzacții să știe cât a fost trimis.

În circumstanțe normale (cu tranzacții vizibile public), este ușor pentru un nod să verifice dacă suma primită nu depășește suma trimisă. Dacă Alice dorește să-i trimită 0,3 BTC lui Bob, ea ia o ieșire necheltuită (să-i spunem 1 BTC) și o împarte în două bucăți: 0,3 pentru a fi trimis lui Bob și 0,69 pentru a-i fi trimis înapoi (cu restul fiind pierdut ca o taxă de minerit).
Aceasta este o algebră simplă pentru alte noduri: 1 depășește 0,3 + 0,69, semnăturile sunt toate corecte, iar intrările lui Alice nu au fost deja cheltuite în altă parte, așa că tranzacția trebuie să fie validă. Când sumele sunt orbite, însă, lucrurile nu sunt atât de banale. Cum începeți să evaluați dacă o sumă necunoscută este egală sau depășește suma a altor două sume necunoscute?
O privire de ansamblu asupra criptografiei implicate
Pentru a ascunde datele, este necesară criptarea. Cu toate acestea, metodele tradiționale sunt asemănătoare cu introducerea documentelor într-un seif: odată încuiat în interior, acesta devine inutilizabil până când este îndepărtat. Ceea ce avem nevoie pentru ca Tranzacțiile confidențiale să funcționeze este un seif digital al cărui conținut nu este dezvăluit, dar ale cărui proprietăți pot fi verificate de un străin.
Răspunsul constă în criptarea homomorfă în special, într-o schemă numită angajament Pedersen. Acest tip de criptare permite unui străin să efectueze operațiuni pe date criptate (pe care nu le poate vedea) pentru mai multe scopuri.
Un hash obișnuit poate fi folosit pentru a vă angaja datele pe care doriți să le dezvăluiți mai târziu. Să presupunem că doriți să anunțați o competiție pe rețelele sociale, în care oricine va ghici schimbul dvs. favorit va câștiga un premiu de 0,01 BTC. Participanții ar putea fi sceptici pentru că ai putea doar să te uiți la răspunsurile după încheierea competiției și să alegi un schimb care nu a fost menționat.
Ceea ce ai putea face este să oferi urmăritorilor tăi un hash: un șir de numere și caractere aparent aleatorii care se mapează la o anumită intrare. Îți treci schimbul printr-o funcție pentru a obține o anumită ieșire. Vom ilustra cu algoritmul SHA256:
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191Privind asta, nu ai idee care a fost intrarea. Nici nu puteți inversa funcția pentru a o obține. Dacă știți că intrarea a fost „Binance”, totuși, puteți verifica cu ușurință dacă hash-ul său se potrivește cu cel enumerat mai sus. În acest fel, adepții tăi au o anumită asigurare că nu îți vei schimba răspunsul la încheierea competiției – în acest fel ar produce un rezultat total diferit.
În mod realist, totuși, acest lucru nu este foarte sigur. În timp ce adepții tăi nu pot face inginerie inversă a algoritmului, ei pot construi o listă de schimburi posibile, hashing pe fiecare până când obțin o potrivire. Putem reduce probabilitatea acestui lucru prin adăugarea unor date aleatorii numite factor orbitor la datele pe care le vom hash.
Dacă introducem „Binance este schimbul meu preferat, îl iubesc mai mult decât orice alt schimb 2#43Wr”, devine semnificativ mai greu de ghicit pentru un adversar (și pentru 0,01 BTC, este cu siguranță puțin probabil ca cineva să încerce măcar).
Un angajament Pedersen ne permite să adăugăm intrările în spatele angajamentelor. După cum ilustrează Maxwell:

C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)
Unde BF este factorul orbitor și D sunt datele
Mai sunt câțiva pași de aici care implică criptografia cu curbe eliptice și dovezile intervalului, dar ideea de bază este că un utilizator are un angajament Pedersen pentru adresa sa. La trimiterea fondurilor se creează două angajamente suplimentare (unul pentru adresa de modificare care urmează să fie returnată utilizatorului și unul pentru adresa de destinație).
Nimeni nu știe cât de mult este trimis, dar poate verifica dacă angajamentele de schimbare și destinație (partea stângă a ecuației lui Maxwell) se adună la adresa de origine (partea dreaptă a ecuației). Dacă aceasta se evaluează corect, atunci tranzacția utilizatorului este validă, deoarece se poate dovedi că intrările sunt egale cu ieșirile.
Ce pot realiza Tranzacțiile Confidențiale?
Dacă tranzacțiile confidențiale ar fi implementate în Bitcoin, ne-am bucura de un sistem mult mai privat. Atât intrările, cât și ieșirile ar fi mascate din rețeaua mai largă, iar intrările de pe registru ar fi ofucate - dar nodurile ar putea încă să le verifice autenticitatea. Cu această creștere masivă a confidențialității, bitcoinii pot fi efectiv transformați în fungibili, deoarece analiza în lanț nu mai dezvăluie istoria. a unei unități date.
În ceea ce privește dacă Tranzacțiile confidențiale vor fi integrate în protocol, nu pare probabil în prezent. Cu această funcționalitate adăugată, tranzacțiile sunt mult mai mari decât cele standard – având în vedere spațiul limitat de blocare, acest lucru ar crește doar cererea. De asemenea, ar necesita ca majoritatea participanților să fie de acord să schimbe codul, o sarcină care sa dovedit în mod tradițional dificilă.
Gânduri de închidere
Tranzacțiile confidențiale au înregistrat unele iterații în alte criptomonede și sidechain-uri Bitcoin. De exemplu, Monero le folosește în combinație cu constructe numite semnături de inel pentru a obține anonimatul și fungibilitatea. Sistemul lateral Liquid le implementează pentru o mai mare confidențialitate, iar MimbleWimble le extinde la aceleași capete.
Pentru beneficiile pe care le aduc, Tranzacțiile confidențiale vin cu compromisul unei amprente mai mari. Criptomonedele se confruntă adesea cu scalabilitatea și debitul la nivelul de bază, iar dimensiunile mai mari ale tranzacțiilor nu îi atrag pe toți. Acestea fiind spuse, susținătorii confidențialității consideră că este esențial să se ascundă sumele tranzacțiilor și participanții pentru a permite cu adevărat criptomonedei să servească drept bani fungibili.

