Розробники Bitcoin підготували масштабне оновлення мережі Taproot, яке підтримали 98% майнерів. Активацію заплановано на листопад 2021 року. Із статті ви дізнаєтеся, що таке оновлення Taproot, які завдання воно розв’язує та як це вплине на мережу біткоїна і індустрію загалом.
Технологія Taproot Bitcoin — що це означає
Після оновлення Segregated Witness (SegWit) у 2017 році в мережу біткоїна не вносилися значні зміни, які б істотно впливали на її роботу.
Щоб поліпшити масштабованість мережі, змінити механіку скриптів протоколу Bitcoin, а також підвищити конфіденційність і безпеку, розробники запропонували модифікацію скриптів протоколу — софтфорк біткоїна Taproot. Це оновлення вирішили поєднати з великим удосконаленням під назвою підписи Шнорра.
Для того щоб зміни набули чинності, більшість майнерів повинні були їх прийняти. Станом на червень 2021 року оновлення Taproot підтримали 98% майнерів.
Що таке Taproot біткоїна
Taproot — це софтфорк біткоїна, спрямований на модифікацію скриптів протоколу для всебічного покращення його роботи. Обрана назва символічна (taproot з англ. — «корінь»), оскільки відображає суть оновлення: певні дані транзакцій зберігатимуться метафорично «глибоко в ґрунті».
При цьому навіть старі клієнти й ноди біткоїн-протоколу отримуватимуть валідні дані — просто частина нових даних для них буде недоступна.
Принципи роботи і значення оновлення для екосистеми Bitcoin
![]()
У поточній реалізації біткоїна створення транзакції, особливо якщо йдеться про транзакції з кількома виходами — тобто перекази з однієї на кілька адрес — може бути доволі складним. Сюди входять таймлоки (період очікування), які можуть задавати користувачі, і мультипідписи для підвищення захисту транзакцій із різними алгоритмами «дозволу» витрати виходів.
Будь-яка транзакція в мережі Bitcoin активує скрипти, які визначають, які дії користувачі можуть здійснювати з монетами. Щоб підтвердити право на використання BTC, користувачі підписують транзакції за допомогою приватного ключа (Private Key). Коли монети витрачено, скрипти потрапляють у загальну мережу і зберігаються в блокчейні, через що виникають дві проблеми:
- Збільшується розмір блокчейна. Кожна копія займає понад 200 ГБ і з часом лише зростатиме. Це призведе до серйозної проблеми зберігання даних у майбутньому.
- Виникає загроза анонімності транзакцій. Скрипти розкривають деякі деталі про користувачів, які витратили монети.
Це дає змогу будь-якому користувачу виявляти транзакції, у яких були задіяні складні скрипти. А аналітичним компаніям, таким як Chainalysis, буде простіше відстежувати транзакції користувачів.
Taproot BTC дозволить приховувати скрипти таким чином, що не можна буде визначити, чи працювали скрипти взагалі.
Прикладом може бути простий контракт, у якому вихід може витратити будь-яка з трьох адрес із попередньо введеного відправником списку одержувачів.
Отже, безпосередня витрата однією з них розкриватиме лише її дані — адресу одержувача — а дві інші адреси лишатимуться в таємниці для всіх, окрім творця смартконтракту. Сторонні користувачі зможуть підтвердити лише факт здійснення транзакції.
Taproot у біткоїн — у чому сенс оновлення мережі
Для реалізації запланованих удосконалень Taproot вирішили поєднати з довгоочікуваними підписами Шнорра. Ідея полягає в тому, щоб об’єднати підписи транзакцій для створення нового єдиного підпису, що можливо лише в поєднанні Taproot і підписів Шнорра.
Це підвищить конфіденційність і зменшить обсяг даних, що зберігаються в блокчейні Bitcoin, завдяки чому знизяться й комісії за транзакції, оскільки плата розраховується в сатоші за байт. Тому чим менша «вага» транзакції, тим нижчою буде комісія за неї.
Рішення P2SH (Pay to Script Hash) для Bitcoin
Першою спробою взаємодії зі скриптами був софтфорк Pay to Script Hash, який дозволяв замість стандартної біткоїн-адреси, що починається з 1, надсилати транзакції прямо на хеш скрипту, що починається з 3. Метод було реалізовано в BIP16 ще у 2012 році. У P2SH обмежили розмір транзакції до 520 байт порівняно з 10 000 байт для основної мережі та SegWit.
Формат P2SH дав змогу надсилати монети на адреси, захищені різними способами. Наприклад, коли користувачі застосовують кілька підписів (multisig) або встановлюють паролі для шифрування даних. Це підвищило надійність гаманців, але не розв’язало інші проблеми блокчейна Bitcoin.
Для активації Taproot поріг спочатку встановили на рівні 90%. Перш ніж оновлення успішно впровадиться в мережу, 90% видобутих майнерами блоків повинні були включати сигнальний біт — унікальну сигнатуру, що підтверджує прийняття оновлення. Досягти порога потрібно було не пізніше 11 серпня 2021. Після кількох невдалих спроб майнерам удалося досягти консенсусу 12 червня.
Дерево Меркла (або MAST) у Bitcoin
Щоб зменшити розмір біткоїн-транзакцій, підвищити конфіденційність і розширити можливості смартконтрактів, розробники біткоїна запропонували доповнення Merklized Abstract Syntax Trees (MAST) — мерклізовані абстрактні синтаксичні дерева.
MAST поєднує функції Абстрактних синтаксичних дерев (AST) і дерев Меркла. Ось приклад, як працюють абстрактні синтаксичні дерева:
![]()
Функція AST дозволяє описати скрипт, поділивши його на кілька окремих частин: це покращує аналіз і оптимізацію сценаріїв. Дерево Меркла дає змогу перевіряти, до якої множини належить окремий елемент функції, не звертаючись до самої множини. Завдяки цьому користувачі можуть писати скрипти, що працюють як динамічні відкриті ключі й сигнатури. Останнє реалізовано в гаманці Bitcoin SPV. За допомогою дерева Меркла програма знижує навантаження на блокчейн, підтверджуючи, що окремі транзакції належать блоку і не обтяжують його.
Так само, як і Taproot, MAST виконує корисні для екосистеми функції:
-
Зменшує розмір транзакцій і, відповідно, їхню вартість;
-
Підвищує конфіденційність даних;
-
Дозволяє створювати більш просунуті смартконтракти без додаткового обтяження вузлів мережі Bitcoin.
За яких сценаріїв MAST буде корисний
Якщо вам потрібно виконати складну транзакцію з умовами, мерклізовані абстрактні синтаксичні дерева можуть допомогти. Скажімо, вам потрібно передати монети родичу в разі, якщо адреса протягом року залишиться неактивною. Якщо для цього використати звичайний сценарій, то всі дані, включно зі скриптами, потраплять у блокчейн, що знизить конфіденційність і водночас збільшить розмір транзакції.
Реалізація підписів Шнорра в протоколі Bitcoin
Сатоші Накамото під час створення протоколу використав Elliptic Curve Digital Signature Algorithm (ECDSA) — алгоритм із відкритим ключем для створення цифрового підпису. Сатоші вирішив використати ECDSA через його поширеність і відкритий вихідний код. Німецький криптограф і математик Клаус Шнорр розробив Schnorr signature (SDSS) ще до створення біткоїна і запатентував свій алгоритм, тому відкрито застосовувати його було не можна аж до 2008 року, коли строк патенту сплив.
Підписи Шнорра мають низку переваг порівняно з поточним алгоритмом:
-
Їх простіше реалізувати;
-
Вони ефективніші під час створення коротких підписів;
-
Підписи Шнорра дозволяють згенерувати один цифровий підпис із кількох приватних ключів.
Іншими словами, підписи Шнорра генерують агреговану сигнатуру (кілька підписів в одній сигнатурі) замість використання системи мультипідписів у ECDSA, що зменшує «вагу» складних транзакцій. Тому розробка оновлення з використанням SDSS виведе цифрові підписи в мережі Bitcoin на новий рівень.
Graftroot або криптографічні підписи
Щоб розширити можливості Taproot, crypto-розробники вирішили впровадити модифікацію Graftroot. Це оновлення стане наступним щаблем еволюції екосистеми Bitcoin, заснованим на поєднанні функції Taproot і підписів Шнорра. Graftroot зробить створення транзакцій і скриптів більш гнучким, що дозволить ускладнювати умови для їх блокування, зберігаючи при цьому конфіденційність і безпеку мережі.
Основою розробки Graftroot стало обмеження, з яким зіткнулося оновлення Taproot: під час створення дерева спочатку для запису в блокчейн можна подати лише одну альтернативу. Оновлення Graftroot дозволяє використовувати необмежену кількість альтернатив без необхідності переміщувати монети.
Це буде корисно, якщо потрібно створити гнучкі умови для здійснення транзакцій.
Водночас можна задавати й додаткові умови, наприклад можливість витратити монети, використовуючи кодову фразу. Ця функція називається пороговим підписом і вона дозволяє делегувати можливість підписання сурогатним сценаріям, не описаним спочатку власниками приватних ключів.
















































