May 4, 2022

Спор вокруг софт-форка BIP-119(CTV)

В марте 2020 мы написали материал "Биткоин-Хранители: OP_CHECKTEMPLATEVERIFY" в котором объясняли загадочный проект Джереми Рубина, имеющий очень много разнообразных применений, но в основном сводящийся к одной главной категории так называемых "хранителей" или covenants, например позволяющих создавать такие запрограммированные процессы передачи биткоинов, что хакерам может быть практически невозможно украсть средства с биржи за счёт протокола "ончейн безопасности", т.е. внутри самого Биткоина. В статье были изложены и другие технологические возможности и мы их затронем в ходе разбирательства в этой статье.

В процессе активации Taproot автор проекта часто упоминал необходимость и востребованность дальнейших софт-форков, когда Taproot будет активирован. Весной каждого года выходит главный релиз Bitcoin Core, поэтому Рубин активизировался и привлёк сторонников для дискуссии по продвижению активации софт-форка. Его усилия спровоцировали значительную противоположную реакцию, скорее всего из-за предложения использовать Speedy-Trial.

В то время как в случае с Taproot Speedy-Trial был на самом деле способом разрешить конфликт двух альтернативных способов активации, попытка выбрать его в качестве главной первоначальной опции для BIP-119 привела к одновременным замечаниям по нескольким фронтам: люди начали обсуждать как приемлемые способы активации софт-форков вообще, так и необходимость нового функционала данного софт-форка в частности.

Speedy Trial: Если 90% блоков подадут положительный сигнал в течение нескольких следующих периодов ретаргетинга по 2 016 блоков (две недели), то все, кто использует программное обеспечение Рубина, сами начнут выполнять правила CTV примерно с начала ноября.

Рубин подробно описал несколько причин, по которым пользователи могут захотеть активировать CTV уже сейчас, а именно:

  • CTV имеет стабильную спецификацию и реализацию
  • ряд людей и организаций, хорошо известных сообществу Биткойн, поддерживают CTV
  • нет никаких возражений, утверждающих, что CTV нарушает какие-либо очень желательные свойства Биткойна
  • CTV предоставляет функции, которые хотят видеть пользователи, такие как ончейн "хранители"

Дискуссия развернулась во всех возможных площадках. Bitcoin Optech выбрал наиболее интересные на их взгляд замечания:

Энтони Таунс проанализировал транзакции CTV в сети signet. Почти все они выглядели так, как будто были созданы с помощью одного и того же программного обеспечения (Sapio), что, возможно, указывает на недостаток публичного изучения CTV. Он отметил, что изменение правил консенсуса для добавления новой функции создает риск для всех пользователей Биткойна - даже для тех, кто не планирует использовать новую функцию, поэтому важно предоставить тем, кто не планирует использовать эту функцию, публичные доказательства того, что функция будет "достаточно ценной для других [чтобы оправдать] риск". Он также провёл дополнительные эксперименты над CTV в сети signet. Таунс является защитником идеи CTV и в основом оппонирует критикам в твиттере. В некотором роде его точку зрения на ценность софт-форков разделил Мэтт Коралло. Он высказался о том, что изменение консенсуса создает значительные издержки для всех, поэтому мы должны пытаться делать мягкие форки только тогда, когда мы уверены, что предложение обеспечивает максимальную ценность от изменений. Однако, Коралло хотел бы видеть "наиболее гибкую, полезную и узко специальную" конструкцию. Он добавил: "Из того, что я видел, не было ясно, что CTV - действительно хороший вариант".

Такой критический настрой разделили Рассел О'Коннор и Дэвид Хардинг. Рассел обратил внимание на техническую сторону работы CTV. В IRC чате #bitcoin-wizards он высказался о том, что один из предложенных способов использования CTV не может быть передан в существующем формате адресов Биткойна, таком как base58check, bech32 или bech32m. Этот способ использования CTV через явный скрипт (скрипт, который появляется непосредственно в scriptPubKey, при трате биткоинов) потребовал бы от разработчиков кошельков использовать явный CTV только в своих внутренних транзакциях или написать специальные инструменты для передачи информации, обычно содержащейся в адресе. В качестве альтернативы, кошельки, желающие использовать CTV для некоторых приложений (например, хранилищ), могли бы получать платежи на адрес P2TR, который должен впоследствии использовать явный CTV скрипт.

Если для использования CTV потребуется использовать P2TR скрипт это означало бы, что могут существовать альтернативные варианты реализации "хранителей", которые не могут быть узким приоритетом CTV. Поэтому Дэвид Хардинг заметил, что CTV может не получить длительного применения, либо потому, что его не будут использовать, либо потому, что другие скриптовые конструкции для ончейн хранилищ будут лучше служить популярным целям. Это создаёт необходимость для будущих разработчиков консенсус-кода поддерживать CTV-опкод и анализировать его потенциальных взаимодействий с предложенными позже изменениями консенсуса. Хардинг предложил временно добавить CTV в Биткойн на пять лет, собрать за это время данные о том, как люди его используют, а затем автоматически отключить его, если только пользователи Биткойна через пять лет не решат, что его стоит сохранить. По сведениям Bitcoin Optech никто из респондентов не поддержал этот подход, большинство утверждали, что затраты на него слишком высоки, а выгоды слишком малы. Также было отмечено, что в будущем любому, кто захочет полностью проверить блоки, созданные в период действия CTV, все равно понадобится код проверки CTV, поэтому код CTV, возможно, придется поддерживать в неизменном виде, даже если опкод будет отключен через пять лет.

Спорная полезность CTV нашла отражение в идее Лорена из Samourai Wallet: риторически, любые изменения в Биткоин могут быть обоснованы необходимостью мультисига, поскольку существует неограниченное количество возможностей для реализации мультисига.

Самым мощным оппонентом с точки зрения влияния в медиа оказался популяризатор Андреас Антонопулос, автор и соавтор нескольких популярных книг, объясняющих Bitcoin, Ethereum и Lightning Network. Суть его возражений состояла в том, что CTV предоставит мощные возможности цензурирования ончейн. Но это является оборотной стороной технических свойств софт-форка, чьё назначение алгоритмически ограничивать движение ончейн. В некотором роде CTV-монеты не отличались бы от LBTC или сатоши в Lightning поскольку эта ликвидность не может свободно перемещаться в основном протоколе. Пользователи должны были бы явным образом согласиться на ковенант, используя кошелек, который обрабатывает обремененные "хранителем" адреса как свои собственные. Поэтому при обсуждении таких свойств быть предположение, что пользователь может свободно запускать программное обеспечение по своему выбору, которое генерирует адреса, представляющие модель собственности, которой пользователь готов доверять. Такое предположение в общем делает аргумент против CTV, основанный на опасности цензурирования, менее весомым.

Действительно сильными аргументами на наш взгляд являются те, которые фокусируются на возможных альтернативных реализациях типовых сценариев работы CTV. Для постоянно упоминаемых "хранителей" это могут быть уже существующие схемы ончейн хранителей, которые являются просто более сложными, громоздкими и следовательно, дорогими по сравнению с CTV. Кроме этого, недавно активированный Taproot кажется достаточно общим решением для увеличения возможностей Bitcoin Script, чтобы различные covenants стали возможными в рамках текущей версии Tapscript, или будущих гипотетических реализаций. О таких возможностях Эндрю Поэльстра написал целый пост.

В ходе обсуждения предложений Рубина Антуан "Darosior" Пуансо предложил активировать слегка модифицированную версию BIP118 SIGHASH_ANYPREVOUT (APO) вместо CTV или, по крайней мере, до активации CTV. Модификация APO позволит эмулировать возможности CTV, хотя и с большими затратами для некоторых приложений. Активация APO также сделает его доступным для первоначально предусмотренного использования для включения предложенного улучшения Eltoo для LN, что позволит более эффективно и, возможно, более безопасно обновлять состояние канала LN. APO и Eltoo давно обсуждаются в сообществе, но никто не берётся их реализовывать, о чём напомнил Fiatjaf.

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

Fiatjaf в своём эссе высказался не о каких-либо технических проблемах, а о процессе консенсуса разработчиков по поводу CTV. Он убеждён, что какие-либо изменения невозможно будет внести в Биткоин, если это не делается существующим или бывшим разработчиком Core.

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

В почтовой рассылке, после обсуждений, Джереми Рубин объявил, что он не будет немедленно выпускать бинарные сборки программного обеспечения для активации CTV.

Вместо этого он будет оценивать полученные отзывы и работать с другими сторонниками CTV, чтобы, возможно, предложить пересмотренный план активации. Optech будет предоставлять обновления по этому вопросу в своей рассылке. Спустя неделю-другую активных обсуждений появились высказывания в поддержку Рубина, поскольку биткоинеры начали обвинять его в атаке на Биткоин. Конечно, характер предложений Рубина далёк от идеального (начало со Speedy Trial, а не с обсуждения и привлечения сторонников для тестирования), но CTV вряд ли может быть квалифицирован как атака, не смотря на спорные преимущества.

Дополнительные ссылки

https://www.bip119.com

Пулл-реквест софт-форка

Тред в поддержку CTV

OP_CTV – Summer Softfork Shenanigans

Revault: A Multi-Party Bitcoin Vault Architecture

Видео о софт-форках с Bitcoin Miami 2022

Это статья Features контракта!

И она собрала 33568 сатоши, спасибо всем кто её поддержал. Если она вам понравилась, но вы не "голосовали" за неё на Features контракте, вы можете сделать донат, используя эту LNURL ссылку

LNURL1DP68GURN8GHJ7MRWW3UXYMM59E3K7MF0D3H82UNV9ACXZ7FLW4EK2UNWV9KK20TWDA6XWETVVSMHV8MV

Или с помощью Lightning Address [email protected]