Direct la conținutul principal

Ce este portofelul software?

U
Scris de UKey Wallet

Un portofel software folosește un număr aleatoriu pentru a genera o cheie privată principală.

Apoi, printr-un algoritm determinist și ireversibil, poate obține un număr nelimitat de chei private copil din acea cheie privată principală.

De ce avem nevoie de un algoritm determinist și ireversibil?
Deoarece determinist înseamnă că toate cheile private secundare pot fi întotdeauna generate din aceeași cheie privată principală, în timp ce ireversibilă înseamnă că cheia privată principală nu poate fi reconstruită din nicio cheie privată secundară.

Acesta este motivul pentru care se numește portofel ierarhic determinist (HD). Structura de derivare a cheilor private seamănă cu un arbore: o cheie părinte poate obține mai multe chei copil, fiecare cheie copil poate obține mai multe chei nepoți, iar acest proces poate continua la nesfârșit.

Când este creat pentru prima dată un portofel HD sau când se face o copie de rezervă a unui portofel, este generată o expresie mnemonică. O frază mnemonică este o secvență de cuvinte englezești. Această secvență este folosită pentru a genera seed, iar seed este apoi folosit pentru a genera toate cheile private din portofel. Cu alte cuvinte, expresia mnemonică servește ca rezervă a portofelului, deoarece poate fi folosită pentru a restabili portofelul. Sămânța, la rândul său, corespunde numărului aleatoriu original din spatele portofelului determinist.

Un avantaj major al unui portofel HD este că numai cheia publică principală este necesară pentru a genera orice număr de chei publice secundare. Cu alte cuvinte, pot fi create noi adrese publice din cheia publică principală fără a necesita acces la cheile private, fie că este cheia privată principală sau cheile private secundare. Cu toate acestea, toate aceste adrese generate pot fi controlate în cele din urmă de cheia privată principală.

Desigur, acest design vine și cu riscuri. Dacă fraza mnemonică este expusă, este în esență echivalent cu expunerea tuturor cheilor private. Odată ce se întâmplă acest lucru, securitatea activelor digitale din portofel se pierde efectiv.

De ce sunt necesare atât de multe chei private?

Motivul pentru care utilizatorii au nevoie de atât de multe chei private poate fi înțeles prin mecanismul de schimbare în tranzacțiile Bitcoin.

O tranzacție Bitcoin este o structură de date care conține intrari și ieșiri. Include, de asemenea, informațiile necesare de scripting care transferă valoare de la sursa (intrarea) la destinație (ieșirea).

Pentru a înțelege intrările și ieșirile Bitcoin, este important să cunoașteți conceptul de UTXO (Ieșire tranzacție necheltuită). Un UTXO este unitatea de bază a unei tranzacții Bitcoin și reprezintă o ieșire a tranzacției necheltuite. Un singur bitcoin este de fapt distribuit în mai multe tranzacții și în multe blocuri sub formă de UTXO. În realitate, nu există o înregistrare centralizată care să stocheze un simplu sold de cont; în schimb, există numai UTXO-uri descentralizate blocate pentru proprietarii lor respectivi.

Un UTXO poate reprezenta orice valoare, dar odată ce este creat, este indivizibil în același mod în care o monedă fizică nu poate fi împărțită în jumătate. Dacă valoarea unui UTXO este mai mare decât suma necesară pentru o tranzacție, întregul UTXO trebuie totuși cheltuit, iar surplusul va fi returnat ca modificare.

De exemplu, imaginați-vă că aveți un UTXO în valoare de 20 de unități și doriți să plătiți 1 unitate. Tranzacția trebuie să consume întregul UTXO de 20 de unități și să creeze două ieșiri: o ieșire trimite 1 unitate destinatarului, în timp ce cealaltă trimite 19 unități înapoi în portofelul tău ca modificare. În acest sens, majoritatea tranzacțiilor Bitcoin generează schimbare.

Aceasta duce la o altă întrebare: modificarea ar trebui să fie trimisă înapoi la adresa inițială sau la o adresă nou generată?

Când Satoshi Nakamoto a proiectat Bitcoin, a fost folosit un mecanism de schimbare a adresei, ceea ce înseamnă că o nouă adresă este adesea creată pentru a primi schimbarea de la fiecare tranzacție. Avantajul acestui design este că ajută la protejarea confidențialității utilizatorilor și reduce anumite riscuri de securitate.

În viața reală, acest lucru poate fi comparat cu deschiderea mai multor conturi bancare sub diferite nume și identități la diferite bănci. Chiar dacă cineva poate observa fluxul de bani din fiecare cont, devine mult mai greu pentru ei să urmărească totul până la adevăratul proprietar al activelor digitale. Acest lucru face parte din ceea ce îi conferă Bitcoin anonimatul relativ.

De aceea utilizatorii de portofel au nevoie de atât de multe chei private. Deoarece cheile publice și cheile private există întotdeauna în perechi și fiecare tranzacție poate genera o nouă adresă de modificare, stocarea și copierea de rezervă a cheilor private corespunzătoare tuturor acestor adrese ar deveni altfel o provocare tehnică majoră. Portofelul HD rezolvă această problemă, permițând unei singure rădăcini să genereze orice număr de chei publice copil și chei private pentru copii, îmbunătățind considerabil capacitatea de utilizare a portofelelor digitale.

Ați primit răspuns la întrebare?