Знижка свідка: чому деякі байти дешевші за інші

Знижка свідка: чому деякі байти дешевші за інші

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

Цього року спостерігалося різке зростання попиту на обмежений простір у Біткоїн-блоках, що призвело до підвищення комісій за внутрішньомережеві транзакції. Більшість попиту припадає на транзакції із записами. Вміст цих записів розкривається як частина даних-свідків Біткоїн-транзакції. Ці дані-свідки отримують дисконт до чверті вартості інших даних транзакції. Чому ці записи отримують знижку? Чи потрібний софтфорк для скасування знижки свідка?

Чому деякі байти дешевші за інші?

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

Сьогодні у системі стимулів Біткоїна відбулося три основні покращення:

1. Обмеження розміру блоку

2. Перекладання вартості складних скриптів з відправника на одержувача (P2SH)

3. Вирівнювання витрат на дані між управителями вузлами та учасниками транзакцій (SegWit)

Обмеження розміру блоку

Учасники транзакцій хочуть здійснювати багато транзакцій, а майнери – отримувати великі комісії; але управителі вузлами повинні передавати, перевіряти та зберігати всі ці дані транзакцій, і вони не отримують за це винагороди, як майнери. На початку становлення Біткоїна Сатоші працював над розв'язанням цієї проблеми, додавши фіксоване обмеження розміру блоку (забезпечуване вузлами). Ліміт становив 1 мільйон байтів на блок і встановлював верхню межу обсягу даних, які вузли повинні завантажити та перевірити. Тоді Сатоші написав: «[ми] можемо внести зміни пізніше, якщо буде потрібно». Пізніше, говорячи про патч для збільшення ліміту, він зазначив: «[не] використовуйте цей патч, він зробить вас несумісними з мережею», що означає, що збільшення ліміту розміру блоку є зміною хардфорка і вимагає більше координації, навіть ніж софтфорк. Протягом наступних років Біткоїн навмисно уникав таких несумісних змін хардфорка, що також означало збереження обмеження на розмір блоку на рівні 1 мільйона байтів.

Перенесення витрат на складні сценарії з відправника на отримувача

Оскільки біткоїн захищено скриптами блокування, це завжди передбачало можливість використання розширених скриптів, у тому числі мультипідпису. Згідно з початковим задумом, відправник біткоїн-транзакції розміщував повний сценарій блокування одержувача у своїй транзакції та сплачував будь-яку комісію за включення цього сценарію блокування у блок. Розробники зрозуміли, що зі збільшенням комісій відправники почали зволікати з платою користувачам більших скриптів блокування через вищу вартість. Ці складні сценарії блокування також створювали проблеми для кодування адрес та обміну за допомогою механізмів з низькою пропускною здатністю, таких як QR-код.

Щоб розв'язати цю проблему, до Біткоїна був доданий P2SH у вигляді софтфорка. Згідно з правилами цього форка, замість поміщати весь скрипт блокування одержувача у вихідні дані транзакції, відправник просто включає його хеш. Коли одержувач неминуче витрачає ці вихідні дані, він включає повний скрипт у транзакцію витрат, яка перевіряється на відповідність по хешу скрипта, до якого прив'язана монета. Завдяки цій зміні сценарій погашення будь-якого розміру може бути представлений сценарієм блокування фіксованої довжини, і у відправників більше не буде необхідності (або можливості) розрізняти одержувачів на основі їхніх умов витрат.

Вирівнювання витрат на дані між управителями вузлів та учасниками транзакцій

Найбільш фундаментальна перевірка, яку виконують вузли, полягає в тому, щоб переконатися, що біткоїн, який вони намагаються витратити, справді існує. І тому кожен вузол веде індекс кожної одиниці біткоїна, яку можна витратити (невитрачений вихід транзакції, UTXO). Чим більший цей індекс, тим вища вартість експлуатації вузла та перевірки майбутніх транзакцій. У результаті транзакція, яка збільшує розмір цього індексу (внаслідок більшої кількості виходів, ніж входів), з часом коштує дорожче, ніж транзакція з такою ж кількістю байтів, яка зменшує розмір індексу.

Більшу частину скриптів розблокування біткоїна становлять криптографічні підписи. Ці підписи приблизно вдвічі більші за їхні відповідні відкриті ключі, що робить сценарії розблокування (навіть без P2SH) більшими, ніж сценарії блокування.

Значно вища вартість споживання в порівнянні зі створенням UTXO створює конфлікт стимулів між управителями вузлами та учасниками транзакцій. Останні не зацікавлені витрачати свої невеликі UTXO (особливо в періоди з високими комісіями), і натомість віддають перевагу витрачати великі UTXO. Тим часом управителі вузлами платять за це накопичення невеликих UTXO вищими витратами на перевірку всіх транзакцій.

Як не дивно, перевірка того, що кожен витрачений UTXO в історичному блокчейні має свій сценарій блокування, якому відповідає відповідний сценарій розблокування, менш істотна. Біткоїн-вузол, який за замовчуванням працює на Bitcoin Core v26.0, не перевірятиме виконання повного сценарію блокування для транзакцій до блоку 804 000 (19 серпня 2023 року).

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

Сегрегований свідок

Софтфорк із сегрегованим свідком (SegWit) – найамбіційніша зміна в Біткоїні на сьогодні. Головною мотивацією для зміни було розв'язання давньої проблеми податливості TXID45 у Біткоїні. Щоб виправити цю податливість, сценарій розблокування замінюється новоствореним «свідком». Видалення даних авторизації (які часто можуть бути змінені третіми особами без зміни наслідків транзакції) з TXID, уможливлює протоколи (такі як Lightning), які залежать від TXID, що не змінюються.

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

Навіщо ці одиниці ваги? Погляньмо на вартість входів та виходів транзакцій із сегрегованим свідком і без нього:

Тип

Вихідні байти

Вхідні байти

Байти свідка

Вхідні віртуальні байти

P2PK

44

112

0

112

Bare 2-of-3

106

186

0

186

P2PKH

34

146

0

146

P2SH(2-of-3)

32

293

0

293

P2WPKH

31

41

107

67.75

P2WSH(2-of-3)

43

41

252

104

Перше, що слід зазначити, це те, що типи сценаріїв свідків (P2WPKH, P2WSH) мають майже однакову кількість вхідних та вихідних байтів (кожен із яких оплачується за повним віртуальним байтом). Потім з відправника сценарію свідка стягується 1/4 віртуальних байтів за дані, які підтверджують витрати, більша частина яких не перевіряється для жодної транзакції, крім останніх, і не має постійної вартості в індексі UTXO. Ще одна річ, на яку варто звернути увагу, – це те, як вартість використання більш безпечного мультипідпису 2-з-3 в порівнянні з одним підписом знижується зі 147 Вбайт до 36,25 Вбайт.

Taproot та записи змінюють все (або нічого)

Як згадувалося спочатку, Біткоїн спирається на людські стимули, і ми можемо побачити, як з роками в Біткоїн вносилися зміни, спрямовані на поліпшення узгодженості стимулів між сторонами, які використовують мережу.

Taproot сам по собі – це «просто» альтернативний спосіб блокування біткоїна за допомогою окремого свідка. Це суттєво не змінює ці стимули. Однією зі змін, внесених разом з Taproot, було зняття певних обмежень на розмір скрипту. Це було зроблено для зменшення складності розробки інструментів аналізу для біткоїн-скриптів, а також для підтвердження відносної вартості різних типів даних. Видалення цих обмежень зробило записи простішими, ніж Taproot, але принципово не змінило структуру стимулів мережі.

Тепер до суті справи. Записи розкриваються у свідку, тому за кожен байт даних запису стягується лише 1/4 вбайта. Чи є це зловживанням знижкою для свідка? Правда в тому, що дані записів – одні з найдешевших даних для перевірки вузлами мережі. Структура скрипту, яка використовується в записах, явно пропускає виконання даних записів, тому єдина виконувана перевірка – це поодинока перевірка хешу (гарантує, що розкритий запис відповідає тому, що планував розкрити автор запису). Ці дані хешуються один раз, а потім вузли їх більше ніколи не переглядають. Вони мають дуже низьку обчислювальну вартість (значно менше, ніж у сценарію з мультипідписом еквівалентного розміру).

Але записи збільшують комісії та відштовхують інших користувачів.

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

Це наочно демонструє цінність збільшення економічної щільності біткоїн-транзакцій. Lightning Network робить величезний крок у цьому напрямку, дозволяючи вмістити сотні, тисячі чи мільйони економічних транзакцій в одну біткоїн-транзакцію. Чим вища економічна щільність кожного байта у транзакції, тим нижча комісія, яка сплачується за цю економічну діяльність. У міру того як економічна щільність транзакцій з біткоїном зростає, інші види використання простору блоків були знижуватися.

Варто зазначити, що якщо протоколи мультипідпису поза ланцюжком, такі як MuSig2 або FROST, або підписи адаптерів стануть поширеними, можливо, буде доцільно зменшити або скасувати знижку для свідків. Ці протоколи можуть уможливити великі витрати за допомогою одного підпису. Це, у поєднанні з ефективним використанням ключових шляхів Taproot, може знизити вартість входу з майже довільно складними умовами всього до 105 байтів.

Висновок

Реакція на високі комісії, викликані записами, аналогічна до будь-якого іншого передбачуваного сценарію в історії біткоїна: потрібно терпляче розвивати мережу. Ми можемо багато зробити для підвищення економічної щільності транзакцій з біткоїном: від створення більш досконалих гаманців Lightning до Ark, DLC-контрактів та багато іншого. Скасування знижки свідка (передчасно), відкат Taproot або подібні контрпродуктивні дії лише зменшать економічну щільність поточних біткоїн-транзакцій та погіршать ситуацію.

Залишайтеся скромними, відкладайте сатоші та розвивайте мережу.

Це гостьовий пост Брендона Блека. Висловлені погляди є його власними і не обов’язково збігаються з точкою зору BTC Inc. або Bitcoin Magazine.

Ініціатива PayPal з екологічного майнінгу не має сенсу Ініціатива PayPal з екологічного майнінгу не має сенсу Аналіз нещодавньої пропозиції PayPal щодо впровадження схеми, згідно з якою тільки авторизовані майнери, які працюють на відновлюваних джерелах енергії, можуть отримувати комісії за транзакції. Шинобі 04 травня 2024
Стійкість Біткоїна: як мережа захищається від атак Стійкість Біткоїна: як мережа захищається від атак Біткоїн не є невразливим, але в його основі лежить стійкість. Bitcoin Magazine 04 травня 2024
Як убезпечити біткоїни, якщо вам доведеться покинути країну Як убезпечити біткоїни, якщо вам доведеться покинути країну Іноді політична чи економічна ситуація стає настільки нестабільною, що у вас немає іншого вибору, окрім як тікати з країни. Біткоїн – це надзвичайно ефективний інструмент, який дозволяє взяти із собою свої заощадження. Шинобі 28 квітня 2024