Скидка свидетеля: почему некоторые байты дешевле других

Скидка свидетеля: почему некоторые байты дешевле других

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

В этом году наблюдался резкий рост спроса на ограниченное пространство в Биткоин-блоках, что привело к повышению комиссий за внутрисетевые транзакции. Большая часть спроса приходится на транзакции с записями. Содержимое этих записей раскрывается как часть данных-свидетелей Биткоин-транзакции. Эти данные-свидетели дисконтируются до четверти стоимости других данных о транзакциях. Почему эти записи получают скидку? Нужен ли софтфорк для отмены скидки свидетеля?

Почему некоторые байты дешевле других?

Деньги в целом и биткоин в частности действуют на основе человеческих стимулов. Биткоин объединяет стимулы майнеров и участников сделок за счет использования собственного биткоин-токена для оплаты майнерам за включение определенных транзакций в блоки, которые они создают. Чего нельзя сказать ни о согласовании стимулов для управляющих узлами, майнеров и участников транзакций, ни о согласовании стимулов между отправителями и получателями.

На сегодняшний день в системе стимулов Биткоина произошло три основных улучшения:

1. Ограничение размера блока

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

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

Ограничение размера блока

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

Перенесение затрат на сложные сценарии с отправителя на получателя

Поскольку биткоин защищен скриптами блокировки, это всегда подразумевало возможность продвинутых скриптов, в том числе мультиподпись. Согласно первоначальному замыслу, отправитель биткоин-транзакции должен был разместить полный сценарий блокировки получателя в своей транзакции и заплатить любую комиссию за включение этого сценария блокировки в блок. Разработчики поняли, что по мере увеличения комиссий отправители стали медлить с платой пользователям более крупных скриптов блокировки из-за более высокой стоимости оплаты. Эти сложные сценарии блокировки также создавали проблемы для кодирования адресов и обмена с помощью механизмов с низкой пропускной способностью, таких как QR-код.

Чтобы решить эту проблему, в Биткоин в качестве софтфорка был добавлен P2SH. По правилам этого форка, вместо того, чтобы помещать весь скрипт блокировки получателя в выходные данные транзакции, отправитель просто включает его хеш. Когда получатель неизбежно тратит эти выходные данные, он включает полный скрипт в транзакцию расходов, которая проверяется по хешу скрипта, к которому привязана монета. Благодаря этому изменению сценарий выкупа любого размера может быть представлен сценарием блокировки фиксированной длины, и у отправителей больше не будет необходимости (или возможности) различать получателей на основе условий их расходов.

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

Самая фундаментальная проверка, которую выполняют узлы, заключается в том, чтобы удостовериться, что биткоин, который они пытаются потратить, действительно существует. Для этого каждый узел ведет индекс каждой единицы биткоина, которую можно потратить (неизрасходованный вывод транзакции, UTXO). Чем больше этот индекс, тем выше стоимость эксплуатации узла и проверки будущих транзакций. В результате транзакция, которая увеличивает размер этого индекса (имея больше выходов, чем входов), со временем обходится дороже, чем транзакция с тем же количеством байтов, которая уменьшает размер индекса.

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

Значительно более высокая стоимость потребления по сравнению с созданием UTXO создает конфликт стимулов между управляющими узлами и участниками транзакций. Последние не заинтересованы тратить свои небольшие UTXO (особенно в периоды с высокими комиссиями), предпочитая вместо этого тратить большие UTXO. Между тем, управляющие узлами платят за это накопление небольших UTXO более высокими затратами на проверку всех транзакций.

Как ни странно, проверка того, что каждый израсходованный UTXO в историческом блокчейне имеет свой сценарий блокировки, которому соответствует соответствующий сценарий разблокировки, менее существенна. Биткоин-узел, по умолчанию работающий на Bitcoin Core v26.0, не будет проверять выполнение полного сценария блокировки для транзакций до блока 804000 (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.

Op_Cat: Идеальное решение для ковенантов? Op_Cat: Идеальное решение для ковенантов? Детальное описание OP_CAT и того, что он позволяет делать. Киара Бикерс 05 мая 2024
Инициатива PayPal по экологическому майнингу не имеет смысла Инициатива PayPal по экологическому майнингу не имеет смысла Анализ недавнего предложения PayPal по внедрению схемы, согласно которой только авторизованные майнеры, работающие на возобновляемых источниках энергии, могут получать комиссии за транзакции. Шиноби 04 мая 2024
Устойчивость Биткоина: как сеть защищается от атак Устойчивость Биткоина: как сеть защищается от атак Биткоин не является неуязвимым, но в его основе лежит устойчивость. Bitcoin Magazine 04 мая 2024