[ GUIDE / WALLETS ]
Анатомія гаманця
Як криптовалютні гаманці працюють під капотом — від деривації ключів та генерації адрес до підписання та трансляції транзакцій.
Що таке криптогаманець і як він працює?
Що таке криптогаманець?
Криптовалютний гаманець — це інструмент, який зберігає ваші приватні ключі та дозволяє відправляти, отримувати та керувати цифровими активами. Незважаючи на назву, гаманці фактично не зберігають ваші монети чи токени — ті існують як записи в блокчейні. Ваш гаманець зберігає криптографічні ключі, які підтверджують ваше право власності та авторизують перекази.
Гаманець більше схожий на зв'язку ключів, ніж на гаманець. Він не зберігає гроші — він зберігає ключі, що відкривають ваші гроші в блокчейні.
Гаманці бувають різних форм, кожна розроблена для різних сценаріїв використання:
- Мобільні додатки — зручні, завжди з вами, ідеальні для повсякденних транзакцій
- Десктопне програмне забезпечення — більше контролю, більший екран, підходить для управління кількома обліковими записами
- Розширення для браузера — безшовна взаємодія з DeFi-протоколами та dApps
- Апаратні пристрої — максимальна безпека, ключі генеруються та зберігаються на спеціалізованому чіпі, який ніколи не підключається до інтернету
- Паперові гаманці — надрукований приватний ключ або сід-фраза для довгострокового холодного зберігання (зараз здебільшого замінені апаратними гаманцями)
Незалежно від форми, кожен гаманець виконує ті самі основні функції: зберігання ключів, генерація адрес, створення транзакцій та виробництво підписів.
Яка різниця між публічним ключем і приватним ключем?
Публічні ключі vs. приватні ключі
Кожен гаманець побудований на асиметричній криптографії — системі, яка використовує два математично пов'язані, але функціонально різні ключі:
- Приватний ключ — секретне 256-бітне число, яке авторизує витрати. Його ніколи не можна нікому показувати. Хто контролює приватний ключ — той контролює кошти.
- Публічний ключ — математично виводиться з приватного ключа за допомогою множення на еліптичній кривій. Його можна вільно поширювати; він використовується для перевірки підписів та генерації адрес.
Приватний ключ — як печатка з підписом — він доводить, що ви є власником, та авторизує дії. Публічний ключ — як поштова адреса — будь-хто може відправити щось на неї, але тільки ви маєте доступ до вмісту.
Математичний зв'язок між двома ключами є одностороннім: з приватного ключа завжди можна вивести публічний, але обчислити приватний ключ з публічного є обчислювально нездійсненним. Ця асиметрія є основою всієї безпеки криптовалют.
Як генеруються криптовалютні адреси?
Адреси та отримання коштів
Адреса виводиться з вашого публічного ключа через послідовність кроків хешування та кодування. Це рядок, який ви надаєте іншим для отримання коштів — подібно до номера банківського рахунку, але псевдонімний і верифікований будь-ким у мережі.
Формати адрес у Bitcoin
- Legacy (P2PKH) — починається з
1, оригінальний формат - Nested SegWit (P2SH) — починається з
3, зворотно сумісний SegWit - Native SegWit (Bech32) — починається з
bc1q, нижчі комісії, краще виявлення помилок - Taproot (Bech32m) — починається з
bc1p, найновіший формат з покращеною приватністю та можливостями скриптів
Для Ethereum та EVM-сумісних мереж адреси — це 40-символьні шістнадцяткові рядки з префіксом 0x, що виводяться з останніх 20 байтів хешу Keccak-256 публічного ключа.
Як працює підписання транзакцій у крипто?
Відправлення коштів — підписання транзакцій
Коли ви відправляєте криптовалюту, ваш гаманець виконує точну послідовність кроків:
- Побудова транзакції — вказується адреса отримувача, сума та комісія
- Створення хешу — гаманець обчислює криптографічний хеш даних транзакції
- Підписання хешу — ваш приватний ключ створює цифровий підпис над хешем
- Трансляція — підписана транзакція надсилається в мережу
- Верифікація — вузли мережі перевіряють підпис за вашим публічним ключем для підтвердження авторизації
Краса цієї системи полягає в тому, що приватний ключ використовується для створення підпису, але публічного ключа достатньо для його перевірки. Ваш приватний ключ ніколи не покидає гаманець під час транзакції — лише підпис.
Підписання транзакції схоже на підпис чека невидимим чорнилом, яке проявляється лише під спеціальним ультрафіолетовим світлом (вашим публічним ключем). Будь-хто може перевірити його справжність, але ніхто не може підробити ваш підпис.
Що таке HD-гаманець і чому він використовує один сід для багатьох ключів?
HD-гаманці — один сід, необмежена кількість ключів
Сучасні гаманці є ієрархічно детерміністичними (HD), тобто вони виводять усі приватні ключі, публічні ключі та адреси з однієї сід-фрази, використовуючи деревоподібну структуру.
Ця конструкція забезпечує потужні переваги:
- Єдина резервна копія — одна сід-фраза захищає всі поточні та майбутні ключі
- Підтримка кількох монет — той самий сід може виводити ключі для Bitcoin, Ethereum та десятків інших криптовалют одночасно
- Автоматична генерація адрес — гаманці генерують нові адреси для отримання без втручання користувача
- Ізоляція облікових записів — різні шляхи деривації створюють логічно окремі облікові записи під одним сідом
Як працює ієрархічна детерміністична деривація BIP32?
Ієрархічна детерміністична деривація BIP32
BIP32 визначає деревоподібну структуру для деривації ключів. Починаючи з майстер-ключа (виведеного з сіда BIP39 через HMAC-SHA512), дочірні ключі генеруються на кожному рівні, використовуючи батьківський ключ та 32-бітний індекс.
Звичайна vs. посилена деривація
Кожен рівень дерева може створити 231 звичайних дочірніх ключів (індекси від 0 до 231-1) та 231 посилених дочірніх ключів (індекси від 231 до 232-1, позначаються ').
- Звичайна деривація — використовує батьківський публічний ключ + код ланцюга. Дозволяє виводити дочірні публічні ключі з xpub без приватного ключа.
- Посилена деривація — використовує батьківський приватний ключ + код ланцюга. Запобігає поширенню компрометації дочірнього ключа вгору до батьківського.
Посилена деривація (позначається апострофом, напр.,
m/44') створює криптографічний бар'єр між рівнями дерева. Якщо дочірній приватний ключ та його код ланцюга обидва витекли, посилена деривація запобігає обчисленню зловмисником батьківського приватного ключа. Це критично для ізоляції безпеки кількох облікових записів.
Функція деривації
Як підписи ECDSA та Schnorr захищають транзакції?
Підписи ECDSA та Schnorr
Bitcoin історично використовує еліптичну криву secp256k1 з ECDSA (алгоритм цифрового підпису на еліптичних кривих) для підписання транзакцій. Оновлення Taproot (BIP340) впровадило підписи Schnorr як альтернативу.
Процес підписання ECDSA
- Згенерувати випадковий nonce
k(використовуючи детерміністичну генерацію nonce за RFC 6979) - Обчислити точку
R = k × G(множення точки на еліптичній кривій) - Обчислити
r = R.x mod n - Обчислити
s = k-1(hash + r × privateKey) mod n - Підпис — це пара
(r, s)
Фундаментальний примітив безпеки — це задача дискретного логарифму на еліптичних кривих (ECDLP) — маючи P = k × G, обчислити k з P та G є обчислювально нездійсненним.
Підписи Schnorr (BIP340)
Підписи Schnorr мають кілька переваг над ECDSA:
- Лінійність — підписи можна агрегувати (агрегація ключів для мультипідпису виглядає як єдиний підпис у блокчейні)
- Доведена безпека — зведення безпеки безпосередньо до задачі дискретного логарифму
- Менший розмір і швидші — 64-байтні підписи vs. підписи ECDSA змінної довжини в DER-кодуванні
- Пакетна верифікація — кілька підписів можуть бути перевірені швидше, ніж окремо
k в ECDSA негайно розкриває приватний ключ. RFC 6979 усуває цей ризик, детерміністично виводячи k з приватного ключа та хешу повідомлення, гарантуючи, що однакові вхідні дані завжди дають однаковий (безпечний) nonce.
Що таке розширені публічні ключі (xpub) та гаманці в режимі спостереження?
Розширені публічні ключі (xpub) та режим спостереження
Розширений публічний ключ (xpub) кодує публічний ключ разом із його кодом ланцюга, уможливлюючи деривацію всіх звичайних дочірніх публічних ключів без доступу до будь-якого приватного ключа. Це дає потужні можливості:
- Гаманці в режимі спостереження — моніторинг балансів та генерація адрес для отримання без можливості витрат
- Платіжні сервери — бекенд інтернет-магазину може генерувати унікальну адресу для кожного клієнта, використовуючи xpub, тоді як приватний ключ залишається офлайн на апаратному гаманці
- Аудит — надайте свій xpub бухгалтеру для податкової звітності без надання доступу до витрат
- Багатопристрійні схеми — телефон спостерігає за балансами, тоді як апаратний гаманець виконує підписання
Префікси версій
Різні стандарти BIP використовують різні префікси версій для розширених ключів:
| Публічний | Приватний | Стандарт | Тип адреси |
|---|---|---|---|
| xpub | xprv | BIP44 | Legacy P2PKH |
| ypub | yprv | BIP49 | Nested SegWit P2SH-P2WPKH |
| zpub | zprv | BIP84 | Native SegWit P2WPKH |
Яка різниця між моделлю UTXO та моделлю облікових записів?
Модель UTXO vs. модель облікових записів
Те, як гаманець відстежує та витрачає кошти, залежить від базової моделі блокчейну. Дві домінуючі моделі принципово відрізняються за конструкцією:
Модель UTXO (Bitcoin, Litecoin, Cardano)
У моделі невитрачених виходів транзакцій (UTXO) немає поняття "балансу." Замість цього ваш гаманець сканує блокчейн у пошуках невитрачених виходів, призначених вашим адресам. Щоб витратити кошти, ви споживаєте один або кілька UTXO як входи та створюєте нові виходи:
- Кожен UTXO може бути витрачений лише один раз і повністю
- Якщо UTXO перевищує суму платежу, гаманець створює вихід решти назад на себе
- Комісії за транзакції є неявними:
комісія = сума(входи) - сума(виходи)
Модель облікових записів (Ethereum, Solana, BNB Chain)
Модель облікових записів працює більш подібно до традиційного банківського рахунку — кожна адреса має баланс та nonce (лічильник транзакцій). Транзакції дебетують з одного рахунку та кредитують інший:
- Простіша ментальна модель — просто "баланс мінус сума"
- Не потрібні виходи решти
- Nonce запобігає атакам повторного відтворення (кожна транзакція повинна мати унікальний, послідовний nonce)
Які існують типи адрес Bitcoin та формати скриптів?
Типи адрес та формати скриптів
Bitcoin підтримує кілька типів адрес, кожен з яких відповідає різному шаблону скрипта, що визначає умови витрат:
P2PKH (Pay-to-Public-Key-Hash)
Оригінальний формат адрес Bitcoin. Скрипт блокування вимагає підпис та публічний ключ, хеш якого відповідає вказаному значенню. Адреси починаються з 1.
P2SH (Pay-to-Script-Hash)
Дозволяє довільні умови витрат, закодовані у скрипті. Відправнику потрібен лише хеш скрипта — повний скрипт розкривається при витрачанні. Це дозволяє реалізувати мультипідпис, часові блокування та інші складні умови. Адреси починаються з 3.
P2WPKH (Native SegWit)
Segregated Witness версії 0. Переміщує дані підпису в окрему структуру "свідка" за межами базової транзакції, зменшуючи ефективний розмір і, відповідно, комісію. Адреси використовують кодування Bech32 і починаються з bc1q.
P2TR (Taproot)
Найновіший тип адрес (SegWit v1), що поєднує підписи Schnorr з MAST (Merkelized Abstract Syntax Trees). Вихід P2TR може бути витрачений або через key path (простий підпис Schnorr), або через script path (розкриває лише виконану гілку дерева скриптів). Адреси використовують кодування Bech32m і починаються з bc1p.
[ ЧАСТІ ЗАПИТАННЯ ]
FAQ
[ ЧИТАТИ ДАЛІ ]
Продовжити навчання
Анатомія сід-фрази
З чого складається мнемоніка BIP39, як працюють ентропія та контрольні суми, і чому ваші 12-24 слова мають значення.
25-те слово (пасфраза)
Як необов'язкова пасфраза BIP39 додає додатковий рівень безпеки та дозволяє створювати приховані гаманці.
Порівняння типів гаманців
Гарячі гаманці, холодні гаманці, апаратні пристрої, мультипідписні схеми. Порівняйте компроміси та знайдіть оптимальне рішення.
Перевірте свої знання
Пройдіть короткий квіз, щоб перевірити розуміння цього гайду.