20 / 736BIP341

Taproot

Просте витрачання з прихованими запасними умовами

Удосконалення Bitcoin, що дає змогу витрачати кошти за згодою власників ключів і розкривати альтернативні правила лише тоді, коли їх використовують.

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

Уявімо, що Аліса й Боб керують спільними коштами. Поки вони згодні, платежі мають схвалювати разом. Водночас вони можуть наперед передбачити інший варіант: після досягнення певної висоти блоку Аліса зможе витрачати самостійно. Taproot дозволяє закласти таку домовленість, не публікуючи весь запасний план під час звичайного спільного платежу. Це не автоматична функція кожного гаманця. Програма має підтримувати вибрані умови, а учасники — правильно підготувати їх до отримання коштів. Аліса справді набуде погодженого самостійного права витрачання. [1] [3]

Простіший варіант називають key path: мережа перевіряє один дійсний підпис Шнорра для ключа, зазначеного в умовах виходу. Вихід — це конкретна сума з попередньої транзакції, яку тепер витрачають. Сам підпис не розкриває кількість учасників чи наявність запасного скрипту. Інший варіант, script path, надає використаний скрипт — конкретні правила — і дані для їх виконання. Додається також доказ control block, що ці правила належали до початкової домовленості. Інші скрипти можуть залишитися прихованими, але використаний скрипт і його доказ усе ж розкривають інформацію. [1]

Schnorr Signature — різновид цифрового підпису: математичний доказ схвалення платежу відповідним ключем. Належний протокол, наприклад MuSig2, дозволяє кільком власникам ключів створити спільний ключ, а згодом і спільний підпис. Алісі й Бобу не потрібно передавати одне одному приватні ключі. Проте їхні гаманці мають підтримувати цей протокол і взаємодіяти під час підписання. Taproot сам не об’єднує підписи всіх входів транзакції та не перетворює довільний гаманець Multisig на один підпис. Реалізація важлива: помилкове повторне використання секретних значень nonce у протоколі підписання може розкрити приватний ключ. [2] [5]

В основній мережі Bitcoin адреси Taproot зазвичай починаються з bc1p і використовують Bech32m. Перед надсиланням перевірте підтримку формату сервісом чи гаманцем і всю адресу. Taproot може зменшити обсяг розкритих правил та даних для витрачання. Проте він не приховує суми й не розриває публічні зв’язки між виходами, що витрачаються. Вибраний шлях і розмір доказу впливають також на комісію: новіший формат не означає автоматично найдешевший платіж. Якщо гаманець використовує Taproot для звичайного платежу одним ключем, вигадувати запасний скрипт не потрібно. [1] [4]

P2TR означає Pay to Taproot. За правилами це нативний SegWit версії 1 із 32-байтовою програмою witness, що представляє відкритий ключ виходу. Необов’язкові скрипти формують дерево, криптографічний відбиток якого враховано в цьому ключі. Використовуючи одну гілку, можна довести її належність, не розкриваючи всього дерева. BIP 340 описує підписи Шнорра, BIP 341 — правила Taproot, BIP 342 — мову Tapscript для скриптового шляху. Звичайний підпис Шнорра має 64 байти; явний вибір іншого режиму, що визначає підписувані частини транзакції, додає ще байт. Цими деталями займається гаманець, а не ручне редагування адреси. [1] [2] [3]

Для повної картини прочитайте також SegWit, Private Key, Транзакція, Lightning Network. На цю статтю також посилаються SegWit, Lightning Network, Hash, SHA-256.

DOC · 001BIP 341: TaprootПервинне джерело DOC · 002BIP 340: Schnorr signaturesПервинне джерело DOC · 003BIP 342: TapscriptПервинне джерело DOC · 004BIP 350: Bech32mПервинне джерело DOC · 005BIP 327: MuSig2Первинне джерело
Переглянуто: Спочатку джерела · Не інвестиційна порада