Postarea Îmbunătățirea Confidențialității Blockchain: Rolul Dovezilor Zero-Knowledge în Tranzacții Securizate a apărut prima dată pe Coinpedia Fintech News

Introducere

Trăim într-o lume a informațiilor, unde datele sunt noul petrol. Prin urmare, cu date, totul și orice este posibil. Această realitate bazată pe date aduce responsabilități semnificative, în special în asigurarea că informațiile private și sensibile rămân protejate. Tehnologia blockchain este un instrument puternic care prioritizează transparența față de confidențialitate. Deși transparența este esențială pentru încredere într-un sistem descentralizat, poate expune detalii sensibile, ceea ce poate să nu fie întotdeauna de dorit, în special în aplicațiile care implică tranzacții confidențiale sau informații personale.

Pentru a depăși aceste limitări, dezvoltatorii au introdus o gamă de tehnologii care îmbunătățesc confidențialitatea, cum ar fi Dovezile Zero-Knowledge (ZKP), zk-SNARKs, monedele de confidențialitate precum Monero și Zcash, și tehnicile avansate de criptare, cum ar fi criptarea omomorfică (HE).

Aceste tehnologii mențin un echilibru între transparență și confidențialitatea utilizatorului.

În acest articol, vom explora cum funcționează aceste instrumente care îmbunătățesc confidențialitatea și aplicațiile lor în dezvoltarea blockchain.

Așadar, să începem!

Trebuie să te gândești că Blockchain este cea mai sigură și transparentă opțiune în domeniul tehnologiei, nu-i așa? Dar are totuși unele defecte. De exemplu, să considerăm Bitcoin, este o monedă transparentă (Blockchain public). Unde adresele tale sunt pseudonime. Dar există o capcană! Minerii pot avea în continuare puterea de a accesa datele de pe blockchain înainte ca acestea să fie oficial pe lanț. Înfricoșător, nu-i așa?!

Prin urmare, pentru a evita toate aceste instanțe, optăm pentru opțiuni care îmbunătățesc confidențialitatea și una dintre acestea este ZPks. Să aruncăm o privire la ea!

Dovezi Zero-Knowledge și zk-SNARKs

Ce sunt dovezile Zero-Knowledge?

Dovezi de zero-cunoștință este un protocol de criptografie în care există un provizor și un verificator. Aici, Provizorul trebuie să convingă verificatorul că o anumită afirmație este adevărată fără a dezvălui alte fapte sau informații în afară de faptul că afirmația este adevărată.

Să înțelegem acest lucru mai intuitiv prin luarea unui exemplu din viața reală:

Așadar, să spunem că ai un prieten, Carl, care este daltonist și ai două mingi (una roșie și alta verde) și trebuie să-l faci să distingă ambele fără a dezvălui efectiv care minge este care.

Deci, aici ești tu, provizorul, iar Carl este verificatorul. Acum îi ceri lui Carl să pună ambele mingi în spate și el poate alege o minge la întâmplare unde poate să îți pună o întrebare simplă: Am schimbat mingile? Această procedură poate fi apoi efectuată iterativ și cu o probabilitate de 50%, Carl ar trebui să devină convins („completitudine”) că mingile sunt într-adevăr de culori diferite.

Deci, așa cum sugerează numele, ai dovedit validitatea afirmației tale, iar prietenul tău nu află niciodată care minge este verde și care este roșie; într-adevăr, el nu câștigă nicio cunoștință despre cum să distingi mingile. Așadar, această cunoștință poate fi apoi transferată și unei terțe părți.

Exemplu de cod:

# Simulare ZKP simplăfrom hashlib import sha256# Să presupunem că provizorul cunoaște parola „secretă”parola_secretă = “blockchain_rocks”hash_secret = sha256(parola_secretă.encode()).hexdigest()# Provizorul vrea să dovedească cunoștința fără a dezvălui „parola_secretă”def prove_knowledge(parola_găsită):    return sha256(parola_găsită.encode()).hexdigest() == hash_secret# Verificatorul confirmă cunoștința provizorului prin compararea hash-urilorprint(prove_knowledge(“blockchain_rocks”)) # Returnează True fără a dezvălui „parola_secretă”

zk-SNARKs: Dovezi Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge

zk-SNARKs înseamnă Dovezi Zero-Knowledge Succinct Non-interactive Arguments of Knowledge. Este o construcție a dovezilor în care provizorul trebuie să dovedească adevărul sau deținerea sa fără a interacționa cu verificatorul. Aceasta este doar o versiune mai specifică a ZKP-urilor. zk-SNARK este mai util atunci când nu poate exista nicio posibilitate de comunicare între cele două părți, de exemplu, tranzacții online fără comunicare în timp real.

Acest concept este puțin complicat de înțeles, pe scurt, putem spune că îi spui unei alte persoane că știi secretul lor fără a dezvălui care este de fapt secretul, ci demonstrându-l.

Știai? că zk-SNARKs sunt implementate în Zcash, o monedă de confidențialitate cunoscută pentru tranzacțiile sale protejate?

Exercițiu: Construiește un zk-SNARK cu libsnark

Folosește libsnark pentru a configura și verifica un zk-SNARK simplu sau consultă documentația bibliotecii pentru proiecte exemplu despre construcția dovezilor zk-SNARK.

Acum întrebarea este: Cum funcționează acest ZKP non-interactiv?

  • Configurare: zk-SNARKs necesită o configurare unică pentru cheile criptografice, utilizate pentru construirea dovezilor.

  • Generarea dovezilor: Provizorul folosește informații private pentru a genera o dovadă concisă care poate fi verificată public.

  • Verificare: Verificatorii pot confirma că provizorul are anumite cunoștințe fără a cunoaște detaliile.

Monede de confidențialitate

Monedele de confidențialitate sunt criptomonede care sunt proiectate special pentru a prioritiza confidențialitatea și a ascunde identitatea unui utilizator.

Monero

Monero (XMR) este o criptomonedă cu confidențialitate sporită. Folosește un blockchain special care ascunde detaliile tranzacțiilor, făcând aproape imposibil pentru persoanele externe să vadă cine trimite sau primește Monero, cât este trimis sau orice solduri de cont. Acest lucru menține anonimatul și asigură că toate unitățile de Monero sunt fungibile.

Fungibil (intercambiabil): înseamnă că o Monero este întotdeauna egală cu alta, fără o istorie trasabilă.

Cum se asigură Monero că tranzacțiile sunt private?

Monero implementează tehnici unice, după cum urmează, pentru a asigura tranzacții private. Să aruncăm o privire asupra acestor tehnici:

Semnături în cerc: Combină semnătura tranzacției unui utilizator cu altele pentru a obfusca originea reală.

Exemplu de cod:

import random# Listă de chei publice pentru participanțiparticipanți = [“Alice”, “Bob”, “Charlie”, “Dave”]# Alege un participant aleator ca „expeditor”expeditor = random.choice(participanți)# Amestecarea semnăturii expeditorului cu altelesemnături_amestecate = random.sample(participanți, len(participanți))print(“Grup Semnătură în cerc:”, semnături_amestecate)print(“Expeditor (ascuns):”, expeditor)

Adresele Stealth: Creează adrese unice, folosite o singură dată pentru fiecare tranzacție, asigurând că doar expeditorul și receptorul cunosc destinația.

Tranzacții Confidențiale în Cerc (RingCT): Ascunde suma tranzacției pentru a preveni legarea tranzacțiilor de către terți.

  • Citește și:

  •   Scalarea Blockchain simplificată: Un ghid pentru soluții eficiente Layer 1 și Layer 2

  •   ,

Zcash

Zcash (ZEC) este o monedă de confidențialitate care este construită pe baza de cod a Bitcoin. Împarte multe asemănări cu Bitcoin, cum ar fi tranzacțiile obișnuite și transparente, dar oferă și o opțiune pentru tranzacții protejate.

Tranzacție protejată: Tranzacțiile protejate în Zcash sunt tranzacții private care folosesc o metodă criptografică numită zk-SNARKs (Dovezi Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) pentru a menține detaliile tranzacției complet confidențiale.

Prin urmare, Zcash suportă atât tranzacții transparente, cât și protejate cu adrese T (Adrese transparente care funcționează ca Bitcoin standard) și adrese Z (Adrese protejate care ascund detaliile tranzacțiilor).

Tranzacțiile protejate Zcash sunt o alegere excelentă pentru scenarii care necesită confidențialitate, cum ar fi tranzacțiile B2B în managementul lanțului de aprovizionare, unde confidențialitatea datelor este crucială.

Configurare

# Instalează clientul Zcashsudo apt-get update && sudo apt-get install zcash# Creează o adresă protejatăzcash-cli z_getnewaddress# Trimite la adresa protejatăzcash-cli z_sendmany

Criptarea omomorfică și rolul său în blockchain

Criptarea omomorfică (HE) este un tip de criptare care îți permite să efectuezi calcule pe date în timp ce acestea sunt încă criptate. Aceasta înseamnă că nu trebuie să decriptezi datele pentru a lucra cu ele. Când în cele din urmă decriptezi rezultatele, este ca și cum ai efectua calculele pe datele originale, necriptate.

Această tehnică este deosebit de utilă pentru confidențialitate, deoarece permite stocarea și procesarea datelor sensibile pe servere externe (cum ar fi în cloud) fără a le expune

Există două tipuri principale de tehnici de criptare omomorfică:

  • Criptarea omomorfică parțială (PHE): PHE permite doar operațiuni specifice asupra datelor, de exemplu, Adunare și Înmulțire.

  • Criptarea omomorfică completă (FHE): FHE suportă operațiuni arbitrare asupra datelor criptate. Dar este intensivă din punct de vedere al resurselor.

Exemplu de cod:

from seal import EncryptionParameters, SEALContext, IntegerEncoder# Setează parametrii de criptareparms = EncryptionParameters(scheme_type.BFV)parms.set_poly_modulus_degree(1024)parms.set_coeff_modulus(coeff_modulus_128(1024))# Exemplu de adunare criptatăsuma_criptată = add_encrypted_values(enc1, enc2)print(“Suma criptată:”, suma_criptată)

Concluzie

Tehnologiile care îmbunătățesc confidențialitatea, cum ar fi Dovezile Zero-Knowledge (ZKP), zk-SNARKs, monedele de confidențialitate și criptarea omomorfică redefinește ceea ce este posibil în blockchain, creând un echilibru esențial între confidențialitate și transparență. Pentru dezvoltatori, această evoluție aduce oportunități interesante. Prin integrarea acestor caracteristici de confidențialitate în aplicațiile descentralizate, dezvoltatorii pot satisface nevoile unor industrii precum finanțele, sănătatea și IoT, unde este necesară confidențialitatea.

Continuă să înveți și programare fericită!!