Home » Большое обновление Taproot: мифы и правда

Большое обновление Taproot: мифы и правда

by Christian

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

На прошлой неделе был активирован Taproot — одно из крупнейших обновлений Биткойна за все время, которого сообщество с нетерпением ждало в течение многих лет. Но что именно представляет собой Taproot? И что он делает?

Тот, кто читает новости о Taproot, имея в виду этот вопрос, может получить довольно много путаницы. Поэтому эта статья начинается с небольшого обзора того, что пишут другие.

Когда пресс-службы уже сообщают об обновлении биткоина …

Одной из самых примечательных особенностей Taproot является то, что это первое обновление биткойна, которое стало новостью для пресс-агентства DPA. Это объясняет, почему информацию о Taproot можно найти практически во всех СМИ, от Süddeutsche и FAZ до Wiener Standard и «Газеты маленького городка». Или, скорее: дезинформация.

Taproot, объясняет Finanzen.net, имеет «далеко идущее значение для блокчейна Биткойна». Обновление делает Биткойн «еще более гибким и подвижным» и прокладывает «путь для важных технологических инноваций». FAZ и многие другие газеты цитируют отчет DPA о том, что обновление принесет «больше конфиденциальности, меньше требований к хранению и снижение затрат».

Все это остается настолько неопределенным, что не может быть ни неправильным, ни правильным. Если человек хочет знать более конкретно, он узнает меньше, а если и узнает, то с радостью ошибается или вводит в заблуждение. Finanzen.net, например, утверждает, что Taproot «генерирует только один открытый ключ для платежей вместо нескольких открытых ключей […]», что, помимо путаницы в терминах, в лучшем случае верно лишь наполовину. Кроме того, Taproot позволяет заключать «более сложные смарт-контракты на блокчейне Биткойна», поэтому Биткойн, возможно, вскоре сможет составить конкуренцию Ethereum.

В FAZ можно узнать, что подписи Шнорра «обеспечивают большую конфиденциальность для Bitcoin». Газета и DPA попросили профессора блокчейна Филиппа Санднера сделать заявление по этому поводу, и он прочитал лекцию о том, что «эти транзакции Шнорра … выпускают пачку транзакций с одной подписью». Даже профессор иногда может так ошибаться, что не знаешь, с чего начать.

Наиболее компетентным источником информации о Taproot является Heise. IT-журнал объясняет, что обновление вводит «тип транзакции Pay-to-Taproot (P2TR)», «который объединяет концепции подписей Шнорра и «мерклизированных альтернативных деревьев сценариев»». Но даже Хейзе дрогнул, когда журнал заявил, что Taproot повышает конфиденциальность транзакций или что Schnorr позволяет подписывать транзакции обиженной подписью.

Это в лучшем случае полуправда, а главное — показывает, как трудно понять — и объяснить — технически сложное обновление, такое как Taproot.

Улучшение как обертывание

Мы пытаемся внести немного порядка в хаос Taproot. Для этого мы связались с Марком Эрхардом, также известным в интернете как Murch. Марк работает в Нью-Йорке в Chaincode Labs, ранее он работал в BitGo в Пало-Альто. Трудно быть ближе к центрам развития биткоина, чем уроженец Бадена.

Марк помог нам не только лучше понять Taproot концептуально, но и осознать, что обновление теперь означает конкретно.

Что меняет Taproot? Каковы преимущества обновления?

Taproot состоит из двух компонентов: Шнорровские сигнатуры и дерево сценариев. Оба компонента независимы друг от друга, но они работают вместе, и каждый из них нелегко понять. Это одно из препятствий для понимания того, что Taproot действительно делает — и чего он не делает.

Schnorr — лучший ECDSA

Подписи

Schnorr — самые простые для понимания. Марк объясняет, что они появились еще до алгоритма подписи ECDSA, используемого в Bitcoin.

«Процесс подписи очень интересен, но изобретатель, Клаус-Петер Шнорр, запатентовал его. Поскольку плата за патент была слишком дорогой, другие криптографы изобрели ECDSA, чтобы также подписывать на основе эллиптических кривых. Тем временем, однако, срок действия патентной защиты истек».

ECDSA хорош, очень хорош на самом деле, именно поэтому Сатоши выбрал этот алгоритм для Биткойна. Но он не так хорош, как Schnorr, и без патентной защиты, вероятно, не было бы причин для кого-либо использовать ECDSA вместо Schnorr.

Самое важное отличие заключается в небольшой, но отчасти решающей детали: «В ECDSA подписи не линейны, а в Schnorr они линейны», — объясняет Марк. «Если схема подписи линейна, можно объединить несколько подписей так, что совокупность позволит вам проверить. Вы не можете сделать это с нелинейными схемами, такими как ECDSA».

Таким образом, теоретически то, что утверждают FAZ и Heise, верно: можно объединить все подписи в транзакции в одну через Schnorr. В настоящее время, если транзакция имеет много входов — то есть объединяет много монет — вы должны подписать каждый вход и записать каждую подпись в блокчейн. На это приходится большая часть данных о транзакциях. Шнорр может изменить ситуацию.

Можно! Потому что «к сожалению, эта агрегация не попала в обновление Taproot», — уточняет Марк. «Это потребовало бы дополнительных определений и обсуждений, поэтому они решили сделать это позже. «

Подписи тайно агрегируются

Тем не менее, агрегация подписей Schnorr с Taproot возможна уже сейчас. Но только не для обычных транзакций, а только для транзакций с несколькими знаками. Мультисиг означает, что две или более сторон должны подписать транзакцию, чтобы монеты могли быть выпущены со специального адреса (мультисиг-адрес).

«Допустим, мы вместе создадим кошелек, в котором мы сможем тратить деньги, только если мы оба подпишемся. Это будет «мультисигма 2 на 2″. Благодаря Taproot мы можем объединить наши открытые ключи: Вы даете мне свой открытый ключ, я комбинирую его со своим, и результат неотличим от обычного адреса. Так что нельзя сказать, что это общий кошелек».

Это «невозможность сказать» является окончательной причиной, по которой Taproot, как утверждается, улучшает конфиденциальность.

Ранее многозначные адреса можно было легко распознать. Они начинались с тройки, а не с единицы, как традиционные адреса. SegWit немного смягчил это, так как формат адреса SegWit также начинается с цифры 3. Тем не менее, различные типы адресов создают различия, которые частично подрывают конфиденциальность Биткойна.

С Taproot такие различия могут быть полностью нивелированы. Независимо от того, какие условия вывода воплощает адрес — одна подпись, несколько подписей, таймлок, смарт-контракты — все они выглядят одинаково.

Но одних подписей Шнорра для этого недостаточно. Ибо они эффективны только для простых многозначных конструкций: «2 из 2», «3 из 3» и так далее. На практике, однако, более популярны другие модели, а именно так называемые пороговые подписи, например, «2 из 3»: Третья сторона имеет резервный ключ и вступает в дело, если другой ключ утерян, или арбитраж, если два других не согласны.

В таких моделях агрегирование по сигнатурам Шнорра не работает. Итак, на данном этапе нам нужно поговорить о второй части Taproot: дереве сценариев.

Дерево сценариев для других случаев

Бывший работодатель Марка, поставщик кошельков BitGo, предлагает классическую конструкцию «2 из 3»: есть три ключа. Один хранится у клиента, другой — у BitGo, а третий — это хорошо защищенная резервная копия, хранящаяся в холодном месте. Из этих трех ключей для отправки транзакции необходимы два, которые обычно принадлежат клиенту и BitGo.

«Существует ожидание того, какие два ключа будут использоваться. Теперь для этого можно использовать агрегированные подписи Шнорра. Поэтому мы формируем выход P2TR с ключами от вас и от BitGo, и когда наступит обычный случай, мы сможем подписать его агрегированной подписью».

Этот способ подписания сделок двумя сторонами является наиболее элегантным, простым и красивым. Для сравнения, нынешний метод, использующий адреса «P2SH» (pay-to-script hash), просто чудовищно сложен.

Но что, если дело дойдет до запасного варианта? Если я потеряю свой ключ, а BitGo подпишет его резервным ключом? Или если BitGo выйдет из строя, и мне придется использовать резервный ключ?

«Эти другие, не ожидаемые пути вплетаются как листья в дерево сценариев, которое представил Taproot», — объясняет Марк. И, конечно, это объяснение само требует объяснения.

От листьев к корню

Дерево сценариев — это, по сути, «просто» дерево Меркла или хэш-дерево сценариев. Но что такое хэш-дерево?

Хэш-дерево — это специальное расположение большого количества хэшей. Например, допустим, у нас есть четыре транзакции биткоина, и мы их хэшируем. Тогда у нас будет четыре хэша. В хэш-дереве они называются «листьями».

Цель упражнения — продвигаться от листьев, ветвей к корню хэш-дерева. Для этого мы сначала соединяем первый и второй хэш вместе и хэшируем их. То же самое делаем с третьим и четвертым. Два хэша, которые мы имеем в результате — ветви — мы также хэшируем. Это дает нам корень: хэш, обозначающий множество хэшей.

Это хэш-дерево выглядит как перевернутое дерево: Крона находится внизу, корень - вверху. Изображение с сайта wikipedia.org, лицензия: Creative Commons

Это хэш-дерево выглядит как перевернутое дерево: Крона находится внизу, корень — вверху. Изображение с сайта wikipedia.org, лицензия: Creative Commons


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

В скриптбайме, представленном Taproot, каждый «лист» — это способ потратить биткойны — скрипт. Упомянутый выше адрес multisig содержит не только совокупность двух открытых ключей, но и корень дерева сценариев.

Теперь, если произойдет непредвиденный случай, когда я подпишусь своим и резервным ключом из-за сбоя BitGo, произойдет следующее, объясняет Марк: «Я раскрываю соответствующий скрипт, который хранится в листе дерева скриптов. Чтобы доказать, что исходный адрес кодирует эти условия вывода, я раскрываю хэши других листьев и ветвей, чтобы можно было восстановить корень. Затем я удовлетворяю сценарий, содержащийся в листе, подписями двух ключей».

Таким образом, мы имеем процедуру, в которой мультисиговые транзакции обычно — когда наступает ожидаемый случай — более элегантны, просты, а также более приватны. Только в нежданных случаях срабатывает дерево сценариев. Результат получается таким же сложным, как и при использовании метода P2SH, но он несколько более частный.

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

С P2TR, с другой стороны, достаточно, если я напишу опцион, который фактически происходит в транзакции открытым текстом. Все остальные варианты остаются затуманенными.

Прорыв для мультисигма

Нет необходимости обсуждать, является ли Taproot элегантным. Так и есть. Дерево сценариев является полезным дополнением к сигнатурам Шнорра. Понятно, что такой разработчик, как Марк, в восторге от Taproot и не может дождаться, когда обновление поступит во все кошельки.

Но те, для кого техническая элегантность — не самоцель, а средство, сейчас, скорее всего, спросят: а какой смысл в реальности? Так что же теперь Биткойн может делать лучше с Taproot, чем раньше?

«Multisig — это гораздо более безопасный стандарт управления деньгами, — говорит Марк. «Вы можете создать резервные копии и усложнить процесс траты денег. Это делает вас менее уязвимым».

Однако до сих пор мультисиговые методы имели существенные недостатки: они часто были сложными как для пользователя, так и для разработчика, ограничивали конфиденциальность и обходились дороже. Все эти недостатки исчезают с Taproot. «Вы передаете меньше частной информации, меньше раскрываете свои настройки, и вы можете делать больше с меньшим количеством данных на блокчейне».

Марк надеется, что Taproot поможет Multisig вырваться вперед. Что больше кошельков примут Multisig, появятся лучшие стандарты, и что пользовательский опыт, который в настоящее время зачастую все еще не очень хорош, станет лучше.

Что Taproot не делает

Несмотря на весь энтузиазм, Марк предостерегает от преувеличенных и ложных ожиданий. Что возвращает нас к тому, с чего мы начали. О докладе DPA и его интерпретации в редакциях.

«Иногда говорят, что Taproot привносит DeFi в Биткойн, потому что он позволяет заключать смарт-контракты. Это неправильно. Умные контракты уже существуют, и все, что может сделать Taproot, было возможно и раньше — просто это было сложнее, дороже и менее приватно».

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

Аналитики блокчейна будут без проблем анализировать и кластеризовать кошельки и адреса, как и раньше, даже после Taproot. «Вы просто немного меньше узнаете о настройках под капотом. Будь то обычный адрес, канал Lightning или многосигнальная установка, вы больше не сможете его увидеть. Но общая прослеживаемость денежного потока остается прежней. «

Теперь очередь экосистемы

Как это часто бывает с Биткойном, требуется некоторое время, чтобы обновление дошло до кошельков и пользователей. Просто подумайте о SegWit. Обновление заняло много времени, чтобы распространить его на большую часть транзакций, и еще больше времени, чтобы поддержка адресов bech32 была широко распространена.

Мерч надеется, что для Taproot это произойдет быстрее. «Кошельки BitGo уже могут принимать монеты с помощью Taproot. Это показывает, что на этот раз все может быть быстрее».

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

  • Адреса по умолчанию называются «Pay-to-Public-Key-Hash» (P2PKH) и начинаются с 1.
  • Адреса «Pay-to-Script-Hash» (P2SH), о которых мы уже говорили, начинаются с цифры 3. Они использовались для multisig и других смарт-контрактов, таких как временные замки.
  • SegWit также изначально был построен на адресах, начинающихся с цифры 3: Вложенные SegWit-адреса» или — простите: «хэш Pay to Script Hash Pay to Witness Public Key Hash» (P2SH-P2WPKH). Здесь более или менее скрипт для SegWit был хэширован и передан в адрес P2SH. Это позволило внедрить SegWit менее разрушительным способом.
  • Родные адреса SegWit-v0, или адреса Pay to Witness Public Key Hash (P2WPKH), которые технически работают более эффективно, используют формат bech32. Этот недавно разработанный стандарт выглядит совершенно иначе, адреса длиннее, состоят только из строчных букв и начинаются с «bc1».

Pay-to-Taproot (P2TR) также использует стандарт bech32. Однако существует небольшая разница в генерации адресов, поэтому используемые до сих пор адреса v0 несовместимы. Это сделано специально, чтобы никто не потерял деньги.

«При подготовке к Taproot мы обнаружили, что некоторые кошельки игнорировали версию Witness в адресах bech32 и всегда определяли выходные данные как Native-Segwit-v0», — объясняет Марк. «Если бы один из этих кошельков отправил деньги на адрес P2TR, криптовалюта P2TR была бы закодирована в выходных данных, но для расходования из-за ошибки в версии потребовалось бы завершить скрипт P2WPKH. Получатель не смог бы потратить эти деньги».

Поэтому для Марка важно, чтобы как можно больше кошельков сначала разрешили отправлять деньги на адреса Taproot. Поскольку пока это не станет возможным, пользователям всегда будет невыгодно использовать эти адреса.

Разработчики ядра сделали свою работу. Но работа для экосистемы на данном этапе только начинается.

Related Posts

Leave a Comment