ГоловнаАкадеміяТипи Bitcoin-адрес: Legacy, SegWit, Compatible

Типи Bitcoin-адрес: Legacy, SegWit, Compatible

List

Legacy («Легасі») і SegWit («Сегвіт») — терміни, якими позначають різні типи адрес і сценарії витрачання коштів у мережі Bitcoin. Для початківця ці назви можуть здаватися дивними й незрозумілими, однак розрізнити основні формати досить просто: Legacy-адреси зазвичай починаються з «1», P2SH-адреси — з «3», а нативні SegWit-адреси — з «bc1q».

Попри технічну складність питання, типи адрес Bitcoin — важлива тема для кожного, хто вирішив познайомитися з криптовалютами. У попередніх статтях ми вже розглядали, що таке біткоїн, якими бувають Bitcoin-гаманці та як купити BTC. Здавалося б, цієї інформації достатньо, щоб стати повноцінним користувачем криптовалют, але для безпечного переказу коштів важливо також розуміти відмінності між форматами адрес.

У різних гаманцях адреси Bitcoin можуть відрізнятися: одні починаються з «1», інші — з «3», нативні SegWit-адреси версії 0 — з «bc1q», а Taproot-адреси версії 1 — з «bc1p».

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

У цій статті ми розглянемо основні особливості адрес Bitcoin, пояснимо відмінності Legacy, P2SH і SegWit та покажемо, що на практиці вибрати відповідний формат не так складно.

Ключові висновки

  • Legacy, P2SH і SegWit — це різні формати представлення умов, за яких можна витратити BTC. Вони працюють в одній мережі Bitcoin, але відрізняються структурою транзакцій, сумісністю та ефективністю використання місця в блоці.
  • Legacy-адреси P2PKH починаються з «1». Їх підтримують практично всі Bitcoin-сервіси, але витрачання отриманих на них монет зазвичай потребує більшого віртуального розміру та, за однакової ставки sat/vB, вищої комісії.
  • Адреси з «3» є P2SH-адресами. Вони можуть містити різні сценарії, включно з мультипідписом і сумісним SegWit P2SH-P2WPKH, тому префікс «3» сам по собі не означає, що адреса обов’язково є мультипідписною або SegWit.
  • Нативні SegWit-адреси версії 0 використовують формат Bech32 і зазвичай починаються з «bc1q». Вони стійкіші до помилок під час введення та дають змогу ефективніше використовувати місце в блоці. Taproot-адреси починаються з «bc1p» і кодуються за допомогою Bech32m.
  • Мережева комісія залежить від віртуального розміру транзакції та вибраної ставки в sat/vB, а не від вартості суми, що переказується. SegWit може зменшити віртуальний розмір, але не гарантує фіксованої економії або швидшого підтвердження.
Короткий переказ від AI:
ChatGPTPerplexityClaude

Що таке адреса Bitcoin-гаманця

Адреса Bitcoin-гаманця — це зручне для передавання представлення умови, на яку надсилаються BTC. Її можна умовно порівняти з реквізитами для отримання коштів, хоча технічно адреса не є банківським рахунком і не зберігає монети всередині себе. Щоб здійснити переказ, користувач зазначає адресу одержувача, а одержувач надає цю адресу відправнику. Право витратити отримані BTC підтверджується відповідними приватними ключами та скриптами гаманця.

У перші роки існування Bitcoin найпоширенішим форматом був Legacy P2PKH. Однак уже у 2012 році в мережі з’явився P2SH, а після активації SegWit у 2017 році поширилися нові сценарії та формати адрес. Змінилося не лише зовнішнє представлення адрес, а й спосіб розміщення та обліку даних підпису в транзакціях.

Розглянемо основні типи адрес Bitcoin і важливі особливості кожного з них.

Що таке Legacy-адреса Bitcoin

Legacy-адреса P2PKH — Pay-to-Public-Key-Hash — це класичний формат призначення платежу в мережі Bitcoin, передбачений ранніми версіями протоколу й досі підтримуваний більшістю криптогаманців, бірж і сервісів.

Таку адресу можна визначити за цифрою «1» на початку. Кошти надсилаються на хеш публічного ключа, а під час витрачання власник розкриває відповідний публічний ключ і надає дійсний цифровий підпис.

Приклад Legacy-адреси: 18sp5z1aYXMXGxef1xiPbCYnspcG8eQznh

Legacy залишається широко сумісним форматом із моменту запуску мережі Bitcoin. Однак сьогодні він уже не завжди є найекономнішим варіантом для нових гаманців і регулярних транзакцій.

Попри поширеність Legacy-адрес, вони мають низку практичних особливостей і недоліків:

  • Base58Check чутливий до регістру, тому заміна великої літери на малу або навпаки змінить адресу; довгий рядок також незручно переписувати вручну;
  • за однакової кількості входів і виходів Legacy-транзакція зазвичай має більший віртуальний розмір, ніж порівнянна SegWit-транзакція, тому за однакової ставки sat/vB її підсумкова комісія буде вищою;
  • Legacy P2PKH використовує надійні підписи ECDSA на кривій secp256k1, однак не отримує переваг SegWit: знижки на witness-дані, відокремлення підписів і виправлення основної форми сторонньої змінюваності TXID;
  • у класичних транзакціях можлива стороння змінюваність ідентифікатора транзакції — transaction malleability, оскільки дані підпису входять до розрахунку TXID.

Технічні тонкощі! Для P2PKH-адреси хеш публічного ключа кодується за допомогою Base58Check. Це не просто перетворення відкритого ключа на Base58: до хешу додаються байт версії та контрольна сума, після чого результат представляється в алфавіті Base58. Такий формат схожий на Base64 лише загальною ідеєю текстового кодування двійкових даних, але використовує інший алфавіт і вбудовану перевірку помилок.

В алфавіті Base58 відсутні візуально схожі символи 0 — нуль, O — велика латинська «o», I — велика латинська «i» та l — мала латинська «L». Символи «+» і «/», які використовуються в Base64, також не входять до Base58. Це знижує ймовірність помилок під час читання, копіювання та ручного запису адреси.

Атака з використанням гомогліфів — це спроба ввести користувача в оману за допомогою різних символів, які виглядають майже однаково. Наприклад, зловмисник може написати Trustee Wa11et, замінивши літери «l» цифрами «1». Контрольна сума адреси допомагає виявляти випадкові помилки, але не скасовує необхідності уважно перевіряти всю адресу, джерело застосунку та одержувача.

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

Комісія за транзакцію сплачується в сатоші та розраховується на основі віртуального розміру операції й ставки в sat/vB. Зростання ринкової ціни BTC може збільшити фіатний еквівалент уже призначеної комісії, однак сам механізм комісії залежить насамперед від попиту на місце в блоці. Під час переказу BTC на суму, еквівалентну 10 000 USD, комісія у 5 USD може здаватися невеликою, але для мікроплатежу та сама сума становитиме значну частину переказу. Тому компактніші типи транзакцій особливо корисні за високого навантаження на мережу та використання великої кількості входів.

Що таке SegWit і SegWit-адреса Bitcoin

До кінця літа 2017 року більшість користувачів BTC працювали переважно з Legacy- і P2SH-адресами. 24 серпня 2017 року на висоті блоку 481 824 у мережі Bitcoin було активовано софтфорк Segregated Witness. Основну специфікацію SegWit було опубліковано як BIP141 і підготовлено групою розробників, серед яких Ерік Ломброзо, Джонсон Лау та Пітер Вюлле.

Оновлення запровадило структуру witness для даних, необхідних під час перевірки підпису, а також нові виходи SegWit P2WPKH — Pay-to-Witness-Public-Key-Hash і P2WSH — Pay-to-Witness-Script-Hash. Для зручного представлення нативних SegWit-адрес версії 0 пізніше було стандартизовано формат Bech32.

Segregated Witness — «відокремлений свідок» — відокремлює witness-дані, включно з підписами та скриптами розблокування SegWit-входів, від основної частини серіалізації транзакції, яка використовується для розрахунку TXID. Водночас дані не видаляються з блокчейну й не зберігаються за його межами: вони передаються, перевіряються та фіксуються у блоці через окреме зобов’язання witness commitment.

Короткий опис технології: SegWit змінив структуру транзакції та спосіб розрахунку її ваги. Дані без witness враховуються з коефіцієнтом чотири, а кожен байт witness — з коефіцієнтом один. Максимальна вага блоку становить 4 000 000 одиниць, тому блок може містити більше операцій, якщо значна частина їхніх даних належить до witness. SegWit також усунув основну форму сторонньої змінюваності TXID для SegWit-входів і створив основу для надійнішої роботи протоколів другого рівня, включно з Lightning Network. Однак оновлення не скасувало ринок комісій: швидкість підтвердження, як і раніше, залежить від ставки в sat/vB, поточного навантаження мемпулу та рішень майнерів.

Оновлення торкнулося не формату публічних ключів як таких, а правил формування виходів і входів транзакцій, структури witness-даних і способів кодування адрес для нових типів призначення платежу.

Нативні SegWit-адреси версії 0 використовують Bech32 і зазвичай починаються з «bc1q». Bech32 не розрізняє регістр за умови, що весь рядок записано однаково: адреса може бути повністю в нижньому або повністю у верхньому регістрі. Змішувати великі й малі літери в одній адресі не можна. Наприклад, варіант у нижньому регістрі bc1qnnc… і повністю прописний варіант BC1QNNC… можуть бути дійсними представленнями, а змішаний варіант bc1Qnnc… має відхилятися. На практиці гаманці зазвичай виводять адреси малими літерами.

Приклад нативної SegWit-адреси P2WPKH: bc1qnnc0enjmp4essg8t8rxqnyg9394qgwwjtpngv9

Формат Bech32 спростив автоматичну перевірку адрес і зробив їх зручнішими для QR-кодів та машинної обробки. До переваг нативних SegWit-адрес належать:

  • контрольна сума, розроблена для надійного виявлення поширених помилок під час введення й копіювання адрес;
  • ефективніше використання ваги блоку, завдяки чому в блоці може розміщуватися більше порівнянних транзакцій;
  • менший віртуальний розмір під час витрачання P2WPKH порівняно з P2PKH, що за однакової ставки sat/vB зазвичай означає нижчу підсумкову комісію.

Історично основним недоліком нативного SegWit була неповна підтримка адрес Bech32 старими гаманцями та сервісами. Сьогодні підтримка значно ширша, але перед великим переказом усе одно слід перевірити, чи приймає конкретна платформа адреси «bc1q» або «bc1p». У перехідний період використовувався сумісний варіант SegWit, вкладений у P2SH.

Підтримку Legacy- і SegWit-адрес реалізовано в Trustee Wallet, а також у популярних рішеннях Trezor, Electrum і апаратних гаманцях Ledger. Доступні формати та розташування налаштувань можуть відрізнятися залежно від версії застосунку або прошивки.

Завантажити Trustee Wallet

Що таке Multisignature, P2SH і Compatible-адреси

Формат P2SH з’явився в мережі Bitcoin у 2012 році не як пряме розв’язання проблеми високих комісій, а для спрощення надсилання коштів на складні умови витрачання. Відправнику достатньо зазначити хеш скрипта фіксованої довжини, а сам скрипт і необхідні дані розкриває одержувач під час витрачання монет.

Розробник Гевін Андресен запропонував оновлення BIP16, яке перенесло відповідальність за надання умов витрачання з боку відправника на бік одержувача. Завдяки P2SH можна надсилати BTC на хеш програмованого Bitcoin Script, зокрема на сценарії мультипідпису. Такі сценарії функціонально нагадують обмежені смартконтракти, але відрізняються від моделі смартконтрактів Ethereum.

Після впровадження P2SH в основній мережі з’явилися адреси, які починаються з цифри «3». Важливо враховувати, що той самий префікс використовується для різних скриптів: адреса «3…» може представляти мультипідпис, сумісний SegWit P2SH-P2WPKH або інший P2SH-сценарій.

Приклад P2SH-адреси: 3FVeDqkWXGPmgugHD1FLn9xMfeZcF181RG

Структура текстового представлення P2SH схожа на Legacy: обидва формати використовують Base58Check, але мають різні байти версії та кодують різні хеші. У гаманцях із мультипідписом часто застосовується схема m-of-n, наприклад 2-of-3: для витрачання коштів потрібні будь-які два дійсні підписи з трьох передбачених ключів. Не можна говорити, що одна адреса просто «має два або три приватні ключі» — кількість учасників і потрібних підписів визначається умовами скрипта.

Не будемо надто глибоко занурюватися в будову Bitcoin Script, а розглянемо, як P2SH взаємодіє з Legacy і SegWit.

Старі гаманці, створені до поширення Bech32, могли не розпізнавати адреси «bc1». Для зворотної сумісності SegWit можна було вкласти в P2SH: утворювався формат P2SH-P2WPKH або P2SH-P2WSH, який часто називають Compatible SegWit або Nested SegWit. Старий гаманець сприймає адресу «3…» як звичайну P2SH і може надіслати на неї BTC, а власник витрачає отриманий вихід із використанням witness. Такий варіант зазвичай ефективніший за Legacy, але нативний SegWit Bech32, як правило, потребує ще менше даних. Водночас не кожна адреса «3…» є Compatible SegWit — визначити точний сценарій можна лише після розкриття скрипта під час витрачання.

Перехід від Legacy до SegWit у Trustee Wallet

Після впровадження SegWit у Trustee Wallet у деяких користувачів виникло запитання: «Як так: я надіслав частину коштів у BTC, а гаманець показав витрачання всього вибраного входу?». Таке відображення пов’язане з моделлю UTXO та створенням виходу решти, а не з утратою залишкової частини балансу.

Щоб відповісти на це запитання, необхідно трохи докладніше розглянути механізм транзакцій Bitcoin.

Bitcoin не зберігає баланс як одне змінюване число на рахунку. Гаманець керує набором невитрачених виходів транзакцій — UTXO. Під час надсилання він вибирає один або кілька UTXO, повністю витрачає їх як входи та створює нові виходи: один або кілька — одержувачам, а за наявності залишку — вихід решти на адресу, контрольовану тим самим гаманцем. Гаманець не зобов’язаний використовувати весь доступний баланс: алгоритм вибору монет підбирає лише ті UTXO, які потрібні для покриття суми платежу й комісії.

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

За підтримки SegWit у Trustee Wallet могла застосовуватися така особливість міграції: під час витрачання UTXO, отриманого на Legacy-адресу, вихід решти створювався вже на SegWit-адресу, що належить тому самому гаманцю. Це дає змогу поступово переводити власні кошти з P2PKH на ефективніший формат без окремої транзакції між своїми адресами. Водночас слово «безкоштовно» слід розуміти умовно: окрема операція міграції не потрібна, але звичайна мережева комісія за вихідну транзакцію все одно сплачується. Конкретна поведінка вибору адреси решти залежить від версії та налаштувань гаманця.

Висновок

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

Вище ми розглянули основні типи адрес Bitcoin і пояснили відмінності між Legacy P2PKH, P2SH, Compatible SegWit і нативним SegWit Bech32. Команда Trustee Wallet підтримує роботу з поширеними форматами адрес. Перед переказом BTC завжди перевіряйте мережу, повну адресу одержувача, підтримку вибраного формату та розраховану мережеву комісію.

Завантажити Trustee Wallet

Часті запитання про Legacy- і SegWit-адреси Bitcoin (FAQ)

Чим Legacy-адреса відрізняється від SegWit-адреси?

Legacy P2PKH починається з «1» і використовує класичну структуру транзакції. Нативний SegWit P2WPKH зазвичай починається з «bc1q» і зберігає підпис у witness-частині. За порівнянних умов витрачання SegWit-виходу має менший віртуальний розмір, тому за однакової ставки sat/vB комісія зазвичай нижча.

Чи можна надіслати BTC з Legacy-адреси на SegWit-адресу?

Так, різні стандартні формати працюють в одній мережі Bitcoin. Переказ між Legacy, P2SH і SegWit можливий, якщо гаманець відправника розпізнає формат адреси одержувача. Старі сервіси можуть не підтримувати «bc1», тому перед надсиланням слід перевірити сумісність і спочатку виконати тестовий переказ невеликої суми.

Чому одні адреси Bitcoin починаються з «1», інші — з «3» або «bc1»?

Префікс указує на формат кодування й тип умови витрачання. «1» зазвичай означає Legacy P2PKH, «3» — P2SH, включно з мультипідписом або вкладеним SegWit, «bc1q» — нативний SegWit версії 0, а «bc1p» — Taproot версії 1. Адресу «3» не можна автоматично вважати SegWit або мультипідписною без аналізу розкритого скрипта.

Чи завжди SegWit знижує комісію на 50%?

Ні. Розмір економії залежить від кількості й типів входів і виходів, використовуваного скрипта та структури транзакції. SegWit надає знижку на witness-дані й часто зменшує віртуальний розмір, але фіксованого відсотка економії не існує. Підсумкова комісія розраховується як віртуальний розмір, помножений на вибрану ставку в sat/vB.

Яку адресу Bitcoin краще використовувати?

Для нових звичайних переказів нативний SegWit «bc1q» зазвичай є зручним та економічним варіантом за умови підтримки одержувачем і відправником. Legacy варто використовувати, коли потрібна сумісність зі старим сервісом. P2SH може знадобитися для вкладеного SegWit або спеціальних скриптів, а Taproot «bc1p» — для гаманців і сценаріїв, які підтримують SegWit версії 1.

Встанови мультивалютний гаманець Trustee Wallet прямо зараз!

Купуй, продавай, торгуй і заробляй криптовалюту

Завантажити Trustee Wallet
wallet-screen
second-layer-img
Цей вебсайт використовує файли cookieЩоб забезпечити функціональність сайту та підготувати статистичний аналіз способів навігації відвідувачів, ми використовуємо файли cookie. Керувати налаштуваннями