- Як відкритий ключ з’являється з приватного
- Від public key до блокчейн-адреси: що відбувається всередині
- Чому адреса не дорівнює відкритому ключу
- Типи адрес і їхній зв’язок із відкритими ключами
- Практичні наслідки для користувача
- Цифровий підпис: де відкритий ключ виконує свою головну роботу
- Квантові комп’ютери та майбутнє відкритих ключів
- Як перевірити відкритий ключ своїй адреси
- Часті запитання
- Чи можна відновити приватний ключ, знаючи public key?
- Чи безпечно публікувати свій відкритий ключ?
- Чому адреси різних криптовалют виглядають по-різному?
- Чи може одна адреса мати кілька відкритих ключів?
- Що станеться, якщо я надішлю кошти на неправильну адресу?
Як відкритий ключ з’являється з приватного
Кожна адреса в блокчейні починається з числа, яке знає лише власник. Це приватний ключ — випадково згенерована послідовність із 256 бітів, або приблизно 77-значне десяткове число. Його ніколи не варто показувати іншим, оскільки він повністю контролює доступ до коштів. Розуміння ролі ключів неможливе без базового уявлення про блокчейн та цифрові активи, де вони використовуються.

Приватний ключ проходить через математичну функцію на основі еліптичної кривої secp256k1 і перетворюється на відкритий ключ. Цей процес односторонній: за відкритим ключем неможливо обчислити приватний, навіть маючи потужні комп’ютери. Саме ця властивість лежить в основі безпеки блокчейнів Bitcoin та Ethereum.
Відкритий ключ складається з двох координат — X і Y — кожна по 256 бітів. У несжатому форматі він займає 65 байтів і починається з байта 0x04. Існують також стислі формати: починаючи з 0x02 або 0x03, коли зберігається лише координата X, а Y обчислюється за рівнянням кривої. Це зменшує розмір приблизно вдвічі без втрати інформації.
Для безпечного зберігання доступу до ключів використовують спеціальні мнемонічні фрази. Саме seed phrase дозволяє відновити гаманець і всі його ключі на новому пристрої.
Від public key до блокчейн-адреси: що відбувається всередині
Адреса гаманця, яку ви бачите в інтерфейсі обмінника або гаманця, — це вже не сам відкритий ключ, а його подальше перетворення. Цей ланцюжок перетворень залежить від конкретної криптовалюти, хоча загальна логіка схожа.

У Bitcoin відкритий ключ спочатку хешується алгоритмом SHA-256, а результат — алгоритмом RIPEMD-160. Отримане 160-бітне значення називають хешем відкритого ключа. До нього додається префікс мережі (0x00 для основної мережі Bitcoin), і все це кодується у форматі Base58Check з контрольною сумою. На виході з’являється знайома адреса, що починається з «1» — P2PKH-адреса.
Ethereum використовує інший підхід. Відкритий ключ хешується функцією Keccak-256, і з отриманих 256 бітів беруться останні 160 бітів — 20 байтів. Це значення записується у шістнадцятковому форматі з префіксом «0x». На відміну від Bitcoin, Ethereum-адреса не містить контрольної суми у вихідному вигляді, хоча згодом з’явився стандарт EIP-55, який використовує регістр літер для перевірки цілісності.
Чому адреса не дорівнює відкритому ключу
Багато початківців плутають ці поняття, і це зрозуміло: обидва значення публічні, обидва використовуються для отримання коштів. Проте між ними є принципова різниця в безпеці та функціональності.

Відкритий ключ потрібен для перевірки цифрового підпису транзакції. Коли ви надсилаєте біткойни, ви підписуєте транзакцію своїм приватним ключем, а вузли мережі перевіряють цей підпис за відкритим ключем. До появи P2SH і SegWit відкритий ключ розкривався в момент витрачання коштів. Сучасні формати адрес дозволяють приховувати відкритий ключ до фактичного використання коштів, що додає запасу криптостійкості на випадок розвитку квантових комп’ютерів.
Адреса ж — це спрощене, «обрізане» подання, оптимізоване для передачі та зберігання. Вона коротша, містить захист від друкарських помилок і не розкриває всієї криптографічної інформації. Користувач може генерувати необмежену кількість адрес з одного відкритого ключа — наприклад, у детермінованих ієрархічних гаманцях (BIP-32/BIP-44).
Типи адрес і їхній зв’язок із відкритими ключами
Розвиток Bitcoin показав, що одного формату адрес недостатньо. З’явилися нові типи, які по-різному використовують відкриті ключі або взагалі обходяться без них на етапі створення адреси.

| Тип адреси | Префікс | Як використовується відкритий ключ |
|---|---|---|
| P2PKH | 1 | Хеш відкритого ключа, ключ розкривається при витрачанні |
| P2SH | 3 | Адреса скрипта, відкритий ключ може бути прихований у скрипті |
| Bech32 (P2WPKH) | bc1q | Хеш відкритого ключа, менший розмір транзакції, SegWit |
| Bech32m (P2TR) | bc1p | Тапрут: підпис Шнорра, прихована логіка скрипта |
P2TR, активований у листопаді 2021 року, використовує підписи Шнорра та дерево Меркла для скриптів. Відкритий ключ у цьому форматі подається як точка на еліптичній кривій, але логіка витрачання може бути набагато складнішою за просту перевірку підпису. Це покращує приватність і гнучкість смарт-контрактів у Bitcoin.
Ethereum зберігає простішу модель: адреса завжди походить від відкритого ключа, хоча смарт-контракти можуть мати адреси, згенеровані детерміністично з адреси створювача та лічильника транзакцій (nonce). Такі адреси не мають приватного ключа взагалі — їх контролює код контракту.
Практичні наслідки для користувача
Розуміння зв’язку між відкритим ключем і адресою допомагає уникнути кількох типових помилок і краще оцінювати ризики.
Перша помилка — надсилання коштів на адресу, не перевіривши її належність до потрібної мережі. Адреси Bitcoin і Litecoin можуть виглядати схоже, але префікси та мережеві параметри різні. Обмінник може не повернути кошти, надіслані на чужу мережу.
Друга помилка — публікація відкритого ключа замість адреси. Це технічно можливо: ранні транзакції Bitcoin (P2PK) використовували саме відкриті ключі. Проте це погіршує приватність і теоретично знижує безпеку, якщо в майбутньому з’являться квантові атаки на еліптичну криптографію.
Третя ситуація — перевірка адреси перед надсиланням. Формат Base58Check і Bech32 містять контрольні суми, які відловлюють більшість випадкових помилок. Якщо ви помилитеся в одній літері, гаманець або блокчейн-експлорер повідомить про невалідну адресу. Проте це не захищає від цілеспрямованої підміни — наприклад, шкідливого ПЗ, яке замінює адресу в буфері обміну на схожу зловмисника.
Четвертий важливий момент — резервне копіювання. Більшість сучасних гаманців використовують сід-фразу (seed phrase) з 12 або 24 слів за стандартом BIP-39. З неї детерміністично виводяться всі приватні ключі, а відтак — відкриті ключі та адреси. Достатньо зберегти сід-фразу, щоб відновити повний доступ до всіх адрес. Зберігання окремих адрес або відкритих ключів для резервування непотрібне.
Цифровий підпис: де відкритий ключ виконує свою головну роботу
Отримання коштів на адресу — це лише запис у блокчейні. Щоб витратити їх, потрібен цифровий підпис, і тут відкритий ключ стає незамінним.

Процес виглядає так: гаманець формує транзакцію, хешує її та підписує приватним ключем. Підпис — це пара чисел (r, s), згенерованих з урахуванням приватного ключа та унікального параметра транзакції. Вузли мережі беруть відкритий ключ, перевіряють, що він відповідає адресі, і підтверджують валідність підпису. Якщо все сходиться, транзакція потрапляє до блоку.
Важливо, що підпис залежить від конкретного вмісту транзакції. Зміна будь-якого біта — суми, адреси отримувача, комісії — зробить підпис недійсним. Це запобігає підміні транзакції після підписання. Параметр nonce в Ethereum додатково захищає від повторного відтворення (replay attack): кожна наступна транзакція з тієї ж адреси має містити nonce на одиницю більший за попередню.
У мережах з моделлю UTXO, як Bitcoin, відкритий ключ розкривається лише при витрачанні конкретного виходу. Невитрачені виходи на тій самій адресі зберігають захист хешування. Це одна з причин, чому рекомендують не використовувати адресу повторно: кожне нове використання розкриває відкритий ключ і зв’язує транзакції в ланцюжок.
Квантові комп’ютери та майбутнє відкритих ключів
Алгоритм Шора, теоретично реалізований на достатньо потужному квантовому комп’ютері, здатний розкладати числа на множники та розв’язувати задачу дискретного логарифмування — саме ту, на якій базується еліптична криптографія. Це означає, що відкритий ключ перестане бути «безпечним для розкриття».

Проте є важливе обмеження: квантовий комп’ютер може обчислити приватний ключ лише маючи відкритий. Якщо адреса використовувалася лише для отримання коштів і відкритий ключ ніколи не публікувався в блокчейні, атака неможлива. Саме тому P2PKH та новіші формати адрес надають цей додатковий захистний шар.
Спільнота Bitcoin та інших блокчейнів давно обговорює постквантову криптографію — алгоритми підпису на основі решіток, хешів або багатозмінних поліномів. Перехід на них потребуватиме софтфорка або хардфорка, залежно від сумісності. На момент написання статті жоден квантовий комп’ютер не демонструє загрози реальним блокчейнам, але архітектурна готовність вже закладена в дизайн сучасних адресних форматів.
Як перевірити відкритий ключ своїй адреси
Досвідчені користувачі іноді хочуть переконатися, що гаманець генерує ключі коректно, або відновити відкритий ключ з підписаної транзакції.
У Bitcoin відкритий ключ видно в блокчейні для будь-якої витраченої транзакції. Знайдіть свою транзакцію в експлорері, перейдіть до розділу входів — там буде підпис та відкритий ключ. Для невитрачених виходів відкритий ключ недоступний за адресою, лише хеш.
Для Ethereum ситуація інша: відкритий ключ можна обчислити з будь-якої підписаної транзакції, оскільки всі транзакції містять підпис і адресу відправника. Інструменти на кшталт etherscan показують відправника як адресу, але за бажання можна екстрагувати повний відкритий ключ із raw transaction.
Технічно підковані користувачі можуть використовувати бібліотеки на кшталт python-bitcoinlib, web3.py або bitcoinjs-lib для самостійної генерації та перевірки ключових пар. Це корисно для аудиту, розробки та навчання, але для повсякденного зберігання коштів надійніше довірити це перевіреному гаманцю з відкритим кодом.
Часті запитання
Чи можна відновити приватний ключ, знаючи public key?
Ні, математично це обчислювально неможливо з використанням сучасних технологій. Задача дискретного логарифмування на еліптичній кривій не має ефективного класичного розв’язку.
Чи безпечно публікувати свій відкритий ключ?
Так, він призначений саме для цього. Проте для Bitcoin краще публікувати адресу, а не відкритий ключ напряму — це додає шар захисту. Для Ethereum різниці практично немає, оскільки адреса легко обчислюється з відкритого ключа.
Чому адреси різних криптовалют виглядають по-різному?
Різні префікси, алгоритми хешування та кодування. Bitcoin використовує Base58Check і Bech32, Ethereum — шістнадцятковий формат з префіксом 0x. Кожна мережа має власні параметри для уникнення колізій.
Чи може одна адреса мати кілька відкритих ключів?
У стандартних сценаріях — ні, одна адреса відповідає одному відкритому ключу. Виняток — мультипідписні адреси (P2SH, P2WSH), де адреса створюється з кількох відкритих ключів за певною логікою, наприклад «2 з 3».
Що станеться, якщо я надішлю кошти на неправильну адресу?
Якщо адреса невалідна (помилка в контрольній сумі), мережа відхилить транзакцію. Якщо адреса валідна, але не ваша — кошти втрачено безповоротно. Блокчейн не має механізму скасування або повернення.








