Перейти до основного контенту

Що таке програмний гаманець?

U
Автор: UKey Wallet

Програмний гаманець використовує випадкове число для створення головного закритого ключа.

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

Навіщо нам детермінований і незворотний алгоритм?
Тому що детермінований означає, що всі дочірні приватні ключі завжди можуть бути згенеровані з одного головного приватного ключа, тоді як необоротний означає, що головний приватний ключ не можна відновити з будь-якого дочірнього приватного ключа.

Ось чому його називають ієрархічним детермінованим (HD) гаманцем. Структура отримання приватних ключів нагадує дерево: батьківський ключ може отримувати кілька дочірніх ключів, кожен дочірній ключ може отримувати кілька дочірніх ключів, і цей процес може тривати нескінченно.

Коли гаманець HD створюється вперше або коли створюється резервна копія гаманця, генерується мнемонічна фраза. Мнемонічна фраза - це послідовність англійських слів. Ця послідовність використовується для генерації початкового числа, а потім використовується для створення всіх закритих ключів у гаманці. Іншими словами, мнемонічна фраза служить резервною копією гаманця, оскільки її можна використовувати для відновлення гаманця. Насіння, у свою чергу, відповідає вихідному випадковому числу за детермінованим гаманцем.

Однією з основних переваг гаманця HD є те, що для генерації будь-якої кількості дочірніх відкритих ключів потрібен лише головний відкритий ключ. Іншими словами, нові публічні адреси можна створювати з головного відкритого ключа, не вимагаючи доступу до закритих ключів, будь то головний закритий ключ або дочірні закриті ключі. Проте всі ці згенеровані адреси все ще можуть остаточно контролюватися головним закритим ключем.

Звичайно, ця конструкція також пов’язана з ризиками. Якщо мнемонічна фраза відкрита, це, по суті, еквівалентно відкриттю всіх закритих ключів. Як тільки це станеться, безпека цифрових активів у гаманці фактично втрачається.

Навіщо потрібно так багато закритих ключів?

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

Транзакція Bitcoin – це структура даних, яка містить входи та виходи. Він також містить необхідну інформацію про сценарії, яка передає значення з його джерела (вхід) до місця призначення (вихід).

Щоб зрозуміти введення та виведення біткойнів, важливо знати концепцію UTXO (Невитрачений результат транзакції). UTXO є основною одиницею транзакції Bitcoin і являє собою невитрачений вихід транзакції. Один біткойн фактично розподіляється між багатьма транзакціями та багатьма блоками у формі UTXO. Насправді не існує централізованого запису, який би зберігав простий баланс рахунку; натомість існують лише децентралізовані UTXO, заблоковані для відповідних власників.

UTXO може представляти будь-яку суму вартості, але коли він створений, він стає неподільним так само, як фізичну монету не можна розділити навпіл. Якщо вартість UTXO перевищує суму, необхідну для транзакції, весь UTXO все одно потрібно витратити, а надлишок буде повернено як здачу.

Наприклад, уявіть, що у вас є UTXO вартістю 20 одиниць і ви хочете заплатити 1 одиницю. Транзакція має використати повний UTXO із 20 одиниць і створити два виходи: один вихід надсилає 1 одиницю одержувачу, а інший надсилає 19 одиниць назад у ваш гаманець як здачу. У цьому сенсі більшість транзакцій біткойн породжують зміни.

Це призводить до іншого запитання: чи потрібно повертати зміни на початкову адресу чи на новостворену адресу?

Коли Сатоші Накамото розробляв біткойн, використовувався механізм зміни адреси, тобто часто створюється нова адреса для отримання змін від кожної транзакції. Перевага цього дизайну полягає в тому, що він допомагає захистити конфіденційність користувачів і зменшує певні ризики безпеки.

У реальному житті це можна порівняти з відкриттям кількох банківських рахунків під різними іменами та особами в різних банках. Навіть якщо хтось може спостерігати грошові потоки на кожному рахунку, їм стає набагато важче відстежити все це до справжнього власника цифрових активів. Це частина того, що надає біткойну відносну анонімність.

Ось чому користувачам гаманця потрібно так багато закритих ключів. Оскільки відкритий і закритий ключі завжди існують парами, і кожна транзакція може генерувати нову адресу зміни, зберігання та резервне копіювання закритих ключів, що відповідають усім цим адресам, інакше стане серйозною технічною проблемою. Гаманець HD вирішує цю проблему, дозволяючи одному кореню генерувати будь-яку кількість дочірніх відкритих ключів і дочірніх приватних ключів, що значно покращує зручність використання цифрових гаманців.

Ви отримали відповідь на своє запитання?