Когда вы отправляете транзакцию Bitcoin в настоящее время, все происходит примерно так: Вы получаете адрес получателя, выбираете, какие неизрасходованные транзакции (или UTXO, то, что крутые ребята называют «монетами») вы хотите отправить, и подписываете транзакцию своим закрытым ключом, который подтверждает, что вы разрешили трату. Freebitco.in официальный.
Транзакции на цепочке более или менее все работают таким образом, за исключением специальных транзакций, использующих механизм скриптов Биткойна. В таких транзакциях пользователи могут использовать специальное поле для кодирования инструкций о том, что происходит с монетами в данной транзакции (классическим примером являются таймлоки).
Сейчас мы можем использовать скрипты биткоина только для того, чтобы определить, когда или зачем тратится биткоин. Но что если бы мы могли использовать их для определения того, как расходуются биткоины? Что если, например, мы могли бы указать транзакции тратить только определенное количество биткоинов (BTC) или указать, что транзакция может отправляться только на определенный адрес?
Введите OP_CHECKTEMPLATEVERIFY (или сокращенно CTV), предлагаемое обновление Биткойна, которое введет новую логику сценариев для того, как транзакция может тратить определенные монеты.
Такая модульность может, помимо прочего, повысить безопасность кошелька, поскольку в случае взлома злоумышленник сможет отправить биткоин только на адрес, который вы контролируете.
Помимо последствий для безопасности, CTV также может позволить более легко развертывать финансовые приложения на Bitcoin, например, опционы на биткоин на цепочке, используя смарт-контракты, такие как контракты с дискретным журналом (DLC).
Подробнее: Контракты Discreet Log приносят в биткойн частные смарт-контракты «без сценариев
Кроме того, CTV может проложить путь для «платежных пулов» и «фабрик каналов», приложений Lightning Network, которые могут быть полезны для хранителей, бирж и поставщиков услуг Lightning. Эти платежные пулы находятся вне сети, поэтому они также могут обеспечить пользователям лучшую конфиденциальность.
Однако все эти варианты использования не гарантируют, что это будет следующая большая модернизация Биткойна.
Вводим BIP 119 и OP_CTV
В настоящее время транзакции биткоина проходят из точки А в точку Б — точнее, они заблокированы пользователем А до тех пор, пока этот пользователь не предоставит пользователю Б возможность их разблокировать. Сейчас мы можем только установить временную блокировку для этих монет.
«Что может быть полезно при определенных обстоятельствах, так это то, что вы, возможно, захотите оставить инструкцию [о том, как будет потрачен ваш биткоин]», — сказал Джереми Рубин в интервью CoinDesk.
Рубин является автором Предложения 119 по улучшению биткоина (BIP 119); эти BIP — способ для участников биткоина (как профессиональных кодеров, так и любителей) предложить изменения в коде биткоина для рассмотрения широким сообществом. (Любой желающий может ознакомиться с этими предложениями, внести свои собственные и прокомментировать BIP через Bitcoin Core GitHub).
Подробнее: Что такое BIPs и почему они важны?
В BIP 119 Рубин представляет OP_Check_Template_Verify (CTV), предлагаемую модернизацию Биткойна, которая создает новые условия расходования, позволяющие получателю — а не отправителю — устанавливать условия расходования монеты.
Если это не имеет смысла сейчас, то будет иметь смысл позже. Важно отметить, что эти новые условия могут укрепить холодное хранение, создать более приватные и масштабируемые многосторонние транзакции и позволить множество других приложений, которые обычно рекламируются как привносящие в Биткойн совместимость с «умными контрактами» (например, через контракты с дискретными логами (DLC)).
«В текущих замках Биткойна все ограничено такими вещами, как комбинационные замки… С CTV вы получаете возможность делать вещи с небольшим количеством состояний, что позволяет вам сказать немного о том, что произойдет дальше», — сказал Рубин.
Эта «государственность» означает, что монеты с правилами, поддерживающими CTV, должны иметь некоторую запись о том, как монеты должны быть потрачены. Эта запись принимает форму шаблона (отсюда CheckTemplateVerify).
Как работает CTV
С помощью CTV пользователи могут создать шаблон, который определяет конкретные условия расходования монет (UTXO).
Если транзакция не соответствует спецификациям шаблона транзакции CTV, никто не сможет потратить монеты, связанные с этим шаблоном. Пользователи встраивают этот шаблон в сценарий транзакции Биткойна и обеспечивают его выполнение с помощью инструкций, заданных инструкцией OP_CTV в транзакции Биткойна (в Биткойне OP_CODE дает специальные инструкции для транзакций со сценарием). Опять же, когда кто-то создает транзакцию, чтобы потратить монеты CTV, транзакция должна соответствовать шаблону OP_CTV, чтобы быть успешной.
«Вы можете думать об OP_CTV как о друге, у которого есть ключ для вас, но он будет подписывать только те конкретные транзакции, которые вы сказали ему подписать заранее. Однако в биткойн-скриптах можно указать несколько альтернатив. Поэтому можно сгенерировать адрес, в котором будет указано либо (подпись с ключом), либо (шаблон соответствия транзакции 1), либо (шаблон соответствия транзакции 2), что делает то, что вы можете делать с CTV, более гибким, чем просто одна конкретная транзакция», — сказал Рубин.
Разработчики часто называют такую конструкцию транзакции — где OP_CODE ограничивает то, как транзакция расходуется — ковенантом. Возможно, самый очевидный вариант использования ковенанта: улучшение хранения и обеспечения сохранности холода.
Пользователи могли бы создавать ковенанты, которые определяли бы, например, что монеты в их хранилище могут быть отправлены только на определенный адрес, или что они могут потратить только 0,0025 BTC за раз (это лишь пара примеров, которые могут помочь в случае атаки).
CTV также предоставит Lightning Network новую функциональность, дав пользователям возможность создавать «платежные пулы» и «фабрики каналов», где тысячи пользователей могут заблокировать средства, представленные одним UTXO в одной транзакции на цепочке.
Биржи, кастодианы и майнинговые пулы могут использовать эти фабрики каналов для выплат тысячам пользователей (на цепочке) с помощью одной UTXO (монеты), что является выигрышем в масштабировании и позволяет сократить блокчейн-пространство, которое в противном случае использовалось бы всеми этими транзакциями.
А пользователи могут выходить из каналов, когда захотят, «не требуя подписей обеих сторон», — пишет Рубин в сообщении на одном из своих сайтов.
Платежные пулы также могут иметь положительные последствия для конфиденциальности пользователей. Помимо того, что платежные пулы проводятся вне цепи, десятки, сотни и тысячи пользователей могут иметь средства, заблокированные в транзакции, которая представлена одной монетой на цепи, и каждый из них может закрывать свои каналы по собственному желанию, что в целом затрудняет отслеживание средств.
Пулы для майнинга биткоина могут использовать эти платежные пулы для управления выплатами, а кастодианы и пользователи могут использовать их для создания хранилищ холодного хранения.
Станет ли CTV следующей модернизацией Биткойна?
Многие разработчики Биткойна и заинтересованные стороны видят преимущества CTV, но многие другие говорят, что модернизация требует более тщательного обдумывания и что есть альтернативы, которые следует изучить. Некоторые противники говорят, что CTV не нужен, или что сторонники нечетко сформулировали преимущества, а более экстремальное и яростное меньшинство назвало это предложение «атакой на Биткойн».
Возможно, самым отрезвляющим и практичным опровержением является тот факт, что Taproot — обновление, которое делает CTV возможным, — было запущено в ноябре прошлого года, и экосистема все еще принимает его.
Когда новая функция, такая как Segwit или Taproot, становится мягким форком Биткойна, принятие кода зависит от заинтересованных сторон отрасли, таких как провайдеры кошельков и биржи; далее, услуги, которые позволяют новые обновления, не создаются сами собой, и разработчикам, предпринимателям и компаниям требуется время, чтобы создать продукты, которые полагаются на функциональность, которая никогда не использовалась ранее.
Подробнее: Хард форки против софт форков
«В целом, я не думаю, что Биткойн готов к каким-либо новым функциям софт-форка в краткосрочной перспективе. Taproot только появился, а уже столько работы предстоит сделать, чтобы принять и использовать его», — написал генеральный директор Synonym Джон Карвальо в списке рассылки разработчиков Биткойна в ответ на одно из сообщений Рубина.
Другие считают, что приоритет CTV имеет смысл именно сейчас. Более циничные считают, что Большой брат следит за Биткойном и его пользователями пристальнее, чем когда-либо, и беспокоятся, что время для внедрения обновлений, дающих пользователям больший контроль над своими монетами (и большую конфиденциальность), уходит.
По мнению Рубина, речь идет о том, чтобы дать людям улучшенные инструменты, особенно инструменты для обеспечения конфиденциальности, особенно тем, кто живет под жестким финансовым наблюдением и контролем.
«Представьте себе будущее, в котором люди становятся мишенью для преследования за то, что у них есть биткоин, потому что у нас не было достаточной конфиденциальности», — сказал Рубин. «Это меня очень беспокоит. Большая часть преимуществ платежных пулов заключается не только в масштабируемости, но и в конфиденциальности, поскольку они хранят данные вне цепи».
Сторонники CTV считают, что код более или менее проверен (уже почти полгода на CTV начисляется вознаграждение в размере 5,5 BTC), а аргументы против сводятся к тому, что «нам нужно больше времени для оценки альтернатив».
Альтернативы CTV
Что касается альтернатив, некоторые указывают на AnyPrevOutput (APO или BIP 118), еще один софт-форк, созданный разработчиком Blockstream Core Lightning Кристианом Деккером. Другие, включая Рубина и Деккера, рассматривают BIP как дополняющие друг друга.
«Это всегда было моей позицией — они очень сильно дополняют друг друга. Они частично совпадают, но это не точные способы достижения одной и той же цели, и они были предложены в разных контекстах. У меня никогда не было впечатления, что они являются конкурентами», — сказал Деккер.
Все это, конечно, предполагает, что широкое сообщество Биткойна хочет получить эти функции.
Так зачем же ждать?
Но что такое «широкое сообщество Биткойна»? В этом и заключается часть проблемы этих дебатов.
Пользовательская база биткойна охватывает все континенты, кроме Антарктиды, а форум для дебатов включает в себя социальные сети, списки электронной почты и группы обмена сообщениями. С годами цена биткоина растет, а численность активного сообщества увеличивается, и консенсус становится все более громоздким — особенно учитывая способность обычного человека в полной мере осознать все тонкости этих изменений.
Гораздо легче заручиться поддержкой обновления, если проводить кампании и просветительскую работу, поэтому Рубин в социальных сетях пытался заручиться поддержкой CTV (его имя в Twitter в какой-то момент звучало как «отдел маркетинга BIP 119»).
Рубин сменил имя в Твиттере, потому что многих активных биткоинщиков оттолкнула его пропаганда. Конечно, дебаты вокруг BIP 119 стали более острыми. Его разработчик не против того, чтобы люди внимательно изучали его работу. Но чего он не хочет, так это излишнего беспокойства со стороны тех, кому не хватает грамотности, чтобы понять CTV на микроуровне.
«Это фантастика, что есть так много людей, которые так сильно переживают за Биткойн и готовы защищать его, — говорит Рубин. Это очень хорошо. В данном случае многие из этих опасений неуместны, хотя я понимаю, откуда они берутся».
Заядлые биткойнеры могут быть раздражительными, крайне скептичными и упорными в своей защите оранжевой монеты. Некоторым противникам BIP 119 не нравится тот факт, что Рубин выступает за обновление, которое он разработал (со своей стороны, Рубин написал в Твиттере, что ему все равно, что будет активировано, но что-то должно произойти, чтобы улучшить решения в области конфиденциальности и хранения).
Хотя ядро дебатов может быть связано с обсуждением BIP 119, тот факт, что критики CTV особенно разволновались из-за того, что Рубин выступает в поддержку BIP 119, ставит в центр внимания более широкую дискуссию о приблизительном консенсусе Биткойна. Кто принимает решения об обновлениях? Когда код «готов» к отправке? И как лучше всего активировать мягкий форк, чтобы убедиться, что ничего страшного не произойдет?
Поскольку CTV и другие многообещающие софт-форки, такие как APO, ждут своей очереди (если она вообще наступит) в блиндаже, новый матч за грубый консенсус по эволюции протокола Биткойна находится на начальной стадии.
И хотя кажется, что несогласные находятся в противоположных командах, в конечном итоге все работают над достижением одной цели. Они просто решают, по каким правилам им играть, и это нормально, потому что «это та работа», сказал Рубин, которая необходима для достижения приблизительного консенсуса.
«Разработчики, которые не согласны с этим, мы все друзья. … Биткойн — это семья, большая неблагополучная семья. В конечном итоге мы действительно пытаемся достичь одного и того же, мы просто не согласны с тем, как этого добиться. Если бы один из этих способов продемонстрировал, что он лучший, тогда было бы больше сплоченности».