Ugrás a fő tartalomra

Mi az a Software Wallet?

U
Írta: UKey Wallet

A szoftveres pénztárca véletlen számot használ a fő privát kulcs létrehozásához.

Ezután egy determinisztikus és visszafordíthatatlan algoritmuson keresztül korlátlan számú gyermek privát kulcsot tud származtatni a fő privát kulcsból.

Miért van szükségünk determinisztikus és irreverzibilis algoritmusra?
Mert a determinisztikus azt jelenti, hogy az összes gyermek privát kulcsot mindig ugyanabból a fő privát kulcsból lehet előállítani, míg a visszafordíthatatlan azt jelenti, hogy a fő privát kulcs nem rekonstruálható egyetlen gyermek privát kulcsból sem.

Ezért hívják Hierarchikus determinisztikus (HD) pénztárcának. A privát kulcsok származtatási struktúrája egy fához hasonlít: egy szülőkulcs több gyermekkulcsot, minden gyermekkulcs több unokakulcsot származtathat, és ez a folyamat a végtelenségig folytatódhat.

Amikor először létrehoz egy HD-tárcát, vagy egy pénztárcáról biztonsági másolatot készít, egy emlékeztető kifejezés jön létre. Az emlékező kifejezés angol szavak sorozata. Ez a szekvencia a seed generálására szolgál, majd a magot a pénztárca összes privát kulcsának generálására használják. Más szóval, a mnemonikus kifejezés a pénztárca biztonsági másolataként szolgál, mert felhasználható a pénztárca helyreállítására. A mag pedig a determinisztikus pénztárca mögötti eredeti véletlenszámnak felel meg.

A HD pénztárca egyik fő előnye, hogy csak a fő nyilvános kulcs szükséges tetszőleges számú nyilvános gyermekkulcs létrehozásához. Más szavakkal, új nyilvános címek hozhatók létre a fő nyilvános kulcsból anélkül, hogy hozzá kellene férniük a privát kulcsokhoz, legyen szó akár a fő privát kulcsról, akár a gyermek privát kulcsokról. Azonban ezek a generált címek végül továbbra is vezérelhetők a fő privát kulccsal.

Természetesen ez a kialakítás kockázatokkal is jár. Ha a mnemonikus kifejezés láthatóvá válik, az lényegében megegyezik az összes privát kulcs felfedésével. Ha ez megtörténik, a pénztárcában lévő digitális eszközök biztonsága gyakorlatilag elveszik.

Miért van szükség ennyi privát kulcsra?

A Bitcoin-tranzakciók változtatási mechanizmusán keresztül érthető meg, hogy a felhasználóknak miért van szükségük ennyi privát kulcsra.

A Bitcoin-tranzakció egy olyan adatstruktúra, amely bemeneteket és kimeneteket tartalmaz. Tartalmazza a szükséges szkriptinformációkat is, amelyek értéket továbbítanak a forrástól (a bemenettől) a célállomásig (kimenet).

A Bitcoin bemenetek és kimenetek megértéséhez fontos ismerni az UTXO (elköltött tranzakciókimenet) fogalmát. Az UTXO a Bitcoin-tranzakciók alapegysége, és egy el nem költött tranzakció kimenetet jelent. Egyetlen bitcoint valójában sok tranzakció és sok blokk között osztanak el UTXO-k formájában. A valóságban nincs olyan központosított nyilvántartás, amely egyszerű számlaegyenleget tárolna; ehelyett csak decentralizált UTXO-k vannak a megfelelő tulajdonosokhoz zárva.

Az UTXO tetszőleges értéket képviselhet, de ha egyszer létrejött, akkor ugyanúgy oszthatatlan, mint a fizikai érme nem osztható ketté. Ha egy UTXO értéke nagyobb, mint a tranzakcióhoz szükséges összeg, akkor a teljes UTXO-t továbbra is el kell költeni, és a többlet változásként visszakerül.

Képzelje el például, hogy 20 egység értékű UTXO-ja van, és 1 egységet szeretne fizetni. A tranzakciónak fel kell használnia a teljes 20 egységnyi UTXO-t, és két kimenetet kell létrehoznia: az egyik kimenet 1 egységet küld a címzettnek, míg a másik 19 egységet küld vissza a pénztárcájába, mint aprópénzt. Ebben az értelemben a legtöbb Bitcoin-tranzakció változást generál.

Ez egy újabb kérdéshez vezet: a változtatást az eredeti címre kell visszaküldeni, vagy egy újonnan generált címre?

Amikor Satoshi Nakamoto megtervezte a Bitcoint, egy címváltoztatási mechanizmust alkalmaztak, ami azt jelenti, hogy gyakran új cím jön létre a változás fogadására minden tranzakcióból. Ennek a kialakításnak az az előnye, hogy segít megvédeni a felhasználók adatait, és csökkenti bizonyos biztonsági kockázatokat.

A való életben ez ahhoz hasonlítható, mintha több bankszámlát nyitnánk különböző néven és identitáson különböző bankoknál. Még ha valaki meg is tudja figyelni a pénzáramlást az egyes számlákon, sokkal nehezebb lesz visszavezetni az egészet a digitális eszközök valódi tulajdonosáig. Ez része annak, ami a Bitcoin viszonylagos anonimitását adja.

Ez az oka annak, hogy a pénztárca használóinak annyi privát kulcsra van szükségük. Mivel a nyilvános kulcsok és a magánkulcsok mindig párban léteznek, és minden tranzakció új címváltozást generálhat, az ezeknek a címeknek megfelelő privát kulcsok tárolása és biztonsági mentése egyébként komoly technikai kihívást jelentene. A HD pénztárca megoldja ezt a problémát azáltal, hogy egyetlen root számára lehetővé teszi, hogy tetszőleges számú gyermek nyilvános kulcsot és gyermek privát kulcsot generáljon, ami nagymértékben javítja a digitális pénztárcák használhatóságát.

Választ kapott a kérdésére?