З впровадженням Segregated Witness (SegWit) з’явився новий тип біткоїн адрес. Наявність кількох типів біткоїн адрес, може заплутати користувача і викликають питання.
Що таке Segregated Witness?
Segregated Witness дослівно перекладається як “відокремлений свідок” і представляє собою новий спосіб організації даних транзакції. SegWit було впроваджено у зв’язку з необхідністю вирішення проблеми масштабованості мережі Bitcoin, яка проявляється в обмеженій пропускній здатності транзакцій. Початкова пропускна здатність мережі Біткоїн була на рівні 7 транзакцій на секунду. В даний час, з прийняттям SegWit, пропускна здатність мережі Біткоїн на рівні 29 транзакцій на секунду.
Транзакції, які ми надсилаємо до мережі Біткоїн, групуються в блоки. Новий блок створюється в середньому кожні 10 хвилин. Розмір блоку з транзакціями дорівнює 1 мегабайт. Ліміт на розмір блока в 1 мегабайт був створений на початковій стадії розвитку системи Біткоїн. Дані транзакцій, разом з криптографічними (цифровими) підписами транзакцій не повинні перевищувати ліміт в 1 мегабайт. Криптографічні (цифрові) підписи в транзакціях виконують роль “Свідка”, який підтверджує, що транзакція підписана приватним ключем, який є парою до публічного ключа (біткоїн адреси). Цифрові підписи займають близько 65% пам’яті блока з транзакціями.
SegWit – це нова форма запису даних транзакції. SegWit дозволяє відокремити інформацію про саму транзакцію від криптографічних підписів даної транзакції (Відокремлений свідок). Теоретично, використовуючи SegWit, в 1 Мб ми можемо упакувати дані такої кількості транзакцій, для яких раніше знадобилося б майже 4 Мб. На сьогоднішній день SegWit використовують не у 100% випадків, тому ефективність використання блокового простору дорівнює приблизно 1.3 Мб.
SegWit був активований в серпні 2017 року. Після багатьох років дискусій, які закінчилися дуже гарячим періодом суперечок в останні місяці перед активацією. В результаті цих суперечок було створено форк Bitcoin під назвою BitcoinCash (BCH) – це не біткоїн. Замість того, щоб запровадити SegWit, BitcoinCash збільшує розмір блоку до 8 Мб.
Збільшення розміру блоку і, отже, ємності мережі Біткоїн – не єдина зміна, внесена з впровадженням SegWit. SegWit впровадив багато інших вдосконалень. Одне з вдосконалень полягає в тому, що відокремлення даних транзакцій від її цифрових підписів дозволяє створювати хеш-контракти заблоковані в часі. Такі хеш-контракти дають можливість заморожувати біткоїни на певний час в межах контракту. Якщо умови за контрактом виконані, до того, як спливає час виконання контракту, біткоїни перераховуються на біткоїн адресу виконавця. Якщо ж умови контракту не виконані, біткоїни залишаються заморожені в контракті на певний час, після чого розморожуються і перераховуються початковому власнику. Хеш-контракти відкладені в часі, дозволяють створити надійний механізм масштабування другого рівня, який реалізовано в Lightning Network. Крім того, хеш-контракти роблять можливим безпечний обмін різними криптовалютами, що використовують різні блокчейни – атомарні свопи.
Типи біткоїн адрес Legacy, Compatibility, Native SegWit
В системі Біткоїн є три типи біткоїн адрес (див. зображення статті):
- Legacy (P2PKH) – починається з 1;
- Compatibility (P2SH) – починається з 3;
- Native SegWit (BECH32) – починається з bc1q.
Біткоїн адреси різних типів генеруються на основі одного, спільного приватного ключа. Наприклад, якщо ви відновите доступ до біткоїнів за приватним ключем, в мобільному біткоїн гаманці Mycelium, то побачите згенеровані біткоїн адреси трьох типів.
Legacy (P2PKH) – це стандартна біткоїн адреса старого типу. Ця біткоїн адреса генерується з публічного ключа шляхом хешування. Щоб передати права на володіння біткоїнами на іншу біткоїн адресу старого типу, достатньо зробити цифровий підпис приватним ключем.
На біткоїн адреси типу Legacy можна отримувати біткоїни з будь-яких інших типів адрес. Проте, ви не зможете відправити біткоїни на нові Native SegWit адреси, якщо ваш біткоїн гаманець застарілий і не підтримує таку можливість. Розмір транзакцій з використанням біткоїн адрес типу Legacy великий і комісії, відповідно, будуть відносно великі.
Compatibility (P2SH) – цей тип біткоїн адрес існував до впровадження SegWit. Для передачі біткоїнів з біткоїн адреси типу Compatibility потрібно дотримуватися певних умов, які запрограмовані мовою скриптів Bitcoin. До кожної біткоїн адреси типу Compatibility існує запрограмований сценарій, який повинен бути успішно виконаний, щоб було створено транзакцію передачі біткоїнів. Прикладом використання біткоїн адрес цього типу є мультипідписні біткоїн гаманці, в яких для створення транзакцій використовується кілька приватних ключів. Мультипідпис використовують для управління спільними коштами.
Використовуючи біткоїн адреси типу Compatibility можна здійснювати транзакції як зі старими біткоїн адресами Legacy так і з біткоїн адресами Native SegWit. Транзакції мають середній розмір і відповідно середні комісії.
Native SegWit (BECH32) – це біткоїн адреси нового типу, за допомогою яких реалізується метод організації даних SegWit. Транзакції між Native SegWit адресами займають в два рази менший об’єм пам’яті, а отже і комісія за SegWit транзакцію буде в два рази меншою, ніж комісія за стандартну біткоїн транзакцію. Ви зможете відправити транзакцію на будь-який тип біткоїн адрес, а от прийняти оплату з біткоїн адрес Legacy, з використанням старих біткоїн гаманців, не вдасця.
Несумісність біткоїн адрес старого і нового типу вирішують, сучасні біткоїн гаманці (Mycelium, Coinomi), які дозволяють здійснювати транзакції між несумісними типами біткоїн адрес, через транзакції з біткоїн адресами типу Compatibility.
Деякі обмінники, біржі, сервіси, не мають оновленого програмного забезпечення, для роботи з новим типом біткоїн адрес, тому з таких сервісів не можна вивести біткоїни на біткоїн адреси типу Native SegWit або/та Compatibility. Наприклад, купуючи біткоїни на localbitcoins.com, вивести придбані біткоїни ви зможете тільки на біткоїн адреси старого типу Legacy (ця ситуація може змінитися з оновленями localbitcoins.com).
Біткоїн гаманці оновлені для роботи з новими типами біткоїн адрес (Mycelium, Coinomi), дозволяють обирати потрібний тип біткоїн адрес вручну, а за замовченням встановлено біткоїн адреси нового типу Native SegWit.