Към основното съдържание

Какво е софтуерен портфейл?

U
Написано от UKey Wallet

Софтуерният портфейл използва произволно число, за да генерира главен частен ключ.

След това, чрез детерминистичен и необратим алгоритъм, той може да извлече неограничен брой детски частни ключове от този главен частен ключ.

Защо се нуждаем от детерминистичен и необратим алгоритъм?
Тъй като детерминиран означава, че всички дъщерни частни ключове винаги могат да бъдат генерирани от един и същ главен частен ключ, докато необратим означава, че главният частен ключ не може да бъде възстановен от който и да е дъщерен частен ключ.

Ето защо се нарича Йерархичен детерминистичен (HD) портфейл. Структурата на извличане на частните ключове наподобява дърво: родителският ключ може да извлече множество дъщерни ключове, всеки дъщерен ключ може да извлече множество дъщерни ключове и този процес може да продължи безкрайно дълго.

Когато за първи път се създаде HD портфейл или когато се архивира портфейл, се генерира мнемонична фраза. Мнемоничната фраза е поредица от английски думи. Тази последователност се използва за генериране на семето, а семето след това се използва за генериране на всички частни ключове в портфейла. С други думи, мнемоничната фраза служи като резервно копие на портфейла, защото може да се използва за възстановяване на портфейла. Семената от своя страна съответстват на оригиналното произволно число зад детерминирания портфейл.

Едно основно предимство на HD портфейла е, че само главният публичен ключ е необходим за генериране на произволен брой детски публични ключове. С други думи, нови публични адреси могат да бъдат създадени от главния публичен ключ, без да се изисква достъп до частните ключове, независимо дали главният частен ключ или дъщерните частни ключове. Въпреки това, всички тези генерирани адреси все още могат в крайна сметка да бъдат контролирани от главния частен ключ.

Разбира се, този дизайн носи и рискове. Ако мнемоничната фраза бъде разкрита, това по същество е еквивалентно на разкриването на всички частни ключове. След като това се случи, сигурността на цифровите активи в портфейла на практика се губи.

Защо са необходими толкова много частни ключове?

Причината, поради която потребителите се нуждаят от толкова много частни ключове, може да бъде разбрана чрез механизма за промяна в биткойн транзакциите.

Биткойн транзакцията е структура от данни, която съдържа входове и изходи. Той също така включва необходимата информация за скриптове, която прехвърля стойност от източника (входа) към местоназначението (изхода).

За да разберете биткойн входовете и изходите, е важно да знаете концепцията за UTXO (Unspent Transaction Output). UTXO е основната единица на биткойн транзакция и представлява неизразходван изход от транзакция. Един биткойн всъщност се разпределя между много транзакции и много блокове под формата на UTXO. В действителност няма централизиран запис, съхраняващ просто салдо по сметката; вместо това има само децентрализирани UTXO, заключени към съответните им собственици.

UTXO може да представлява всякаква стойност, но след като бъде създаден, той е неделим по същия начин, по който физическата монета не може да бъде разделена наполовина. Ако стойността на UTXO е по-голяма от сумата, необходима за транзакция, целият UTXO трябва да бъде изразходван, а излишъкът ще бъде върнат като ресто.

Например, представете си, че имате UTXO на стойност 20 единици и искате да платите 1 единица. Транзакцията трябва да използва пълния UTXO от 20 единици и да създаде два изхода: единият изход изпраща 1 единица към получателя, докато другият изпраща 19 единици обратно във вашия портфейл като ресто. В този смисъл повечето биткойн транзакции генерират промяна.

Това води до друг въпрос: трябва ли промяната да бъде изпратена обратно на оригиналния адрес или на новогенериран адрес?

Когато Сатоши Накамото създаде биткойн, беше използван механизъм за промяна на адреса, което означава, че често се създава нов адрес, за да получи промяната от всяка транзакция. Предимството на този дизайн е, че помага за защита на поверителността на потребителите и намалява определени рискове за сигурността.

В реалния живот това може да се сравни с откриването на няколко банкови сметки под различни имена и самоличности в различни банки. Дори ако някой може да наблюдава паричния поток във всяка сметка, за него става много по-трудно да проследи всичко обратно до истинския собственик на цифровите активи. Това е част от това, което дава на биткойн неговата относителна анонимност.

Ето защо потребителите на портфейла се нуждаят от толкова много лични ключове. Тъй като публичните ключове и частните ключове винаги съществуват по двойки и всяка транзакция може да генерира нов адрес за промяна, съхраняването и архивирането на частните ключове, съответстващи на всички тези адреси, в противен случай би се превърнало в голямо техническо предизвикателство. HD портфейлът решава този проблем, като позволява на един root да генерира произволен брой детски публични ключове и детски частни ключове, което значително подобрява използваемостта на цифровите портфейли.

Това отговори ли на въпроса ви?