Taproot приходит: что это такое и как это принесет пользу биткойну

Автор:Доброта, Создано: 2019-02-12 09:33:46, Обновлено:

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

Несмотря на то, что это большое предприятие, это не просто теория. Некоторые из самых плодовитых участников Bitcoin Core, включая Питера Уилля, Энтони Таунса, Джонсона Лау, Джонаса Ника, Эндрю Польстры, Тима Раффинга, Расти Рассела и, действительно, Грегори Максвелла, работают над предложением подписи Шнорра, которое включает Taproot, все в одном обновлении протокола.

Вот что такое Taproot и как он работает.

P2SH

Все биткойны по существу "заперты" в скриптах: пара строк кода, встроенных в транзакцию, включенную в блокчейн, которые определяют, как монеты могут быть потрачены в следующей транзакции. Условия расходования обычно включают предоставление подписи, чтобы доказать владение монетами.

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

С 2012 года сценарии (условия) часто не видны публично вначале; только новый владелец монет знает, как они могут быть потрачены. Это делается с помощью трюка под названием P2SH (pay to script hash), где изначально только хэш сценария включен в блокчейн. Это, казалось бы, случайный номер, удерживающий монеты. Когда владелец тратит монеты, он раскрывает весь сценарий, а также решение к сценарию одновременно.

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

Маст

MAST (Merkelized Abstract Syntax Tree) - это предложенное решение, которое использует деревья Меркле (десятилетняя компактная структура данных, изобретенная криптографом Ральфом Мерклем), чтобы обойти эти два недостатка.

Уникальное преимущество заключается в том, что если какие-либо данные в дереве Меркле раскрываются, корня Меркла и некоторые дополнительные данные (называемые путем Меркла) могут быть использованы для проверки того, что конкретные данные были включены в дерево Меркла.

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

Тем не менее, с Шнорром Taproot может сделать еще лучше: транзакция может скрыть, что структура MAST вообще существовала.

Шнор.

Схема подписи Шнор уже давно находится в списке пожеланий многих разработчиков Биткойна и в настоящее время находится в разработке для развертывания в качестве обновления протокола мягкой вилки.

В качестве наиболее известного преимущества в контексте биткойна, линейная математика Шнорра позволяет агрегировать подписи: несколько подписей в одной транзакции могут быть объединены в одну.

И схема подписи может быть использована еще более интересными способами. Например, можно использовать данные для tweak как частного ключа, так и общественного ключа. В качестве упрощенного примера частный ключ и соответствующий ему общественный ключ можно настроить, умножив оба на два. private key x 2 и public key x 2 по-прежнему будут соответствовать, а private key x 2 по-прежнему может подписывать сообщения, которые могут быть проверены с помощью public key x 2.

Это то, что позволяет Taproot.

Скорпион

Taproot основан на интересном понимании: независимо от того, насколько сложно, почти любое создание MAST может (или должно) включать условие, которое позволяет всем участникам договориться о результате и просто подписать сделку.

Taproot напоминает MAST и всегда включает условие, при котором все участники могут сотрудничать, чтобы потратить средства: кооперативное закрытие.

Используя подписи Шнорра, здесь становится интересно.

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

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

Все альтернативные способы расходования средств несовместимые результаты на этот раз объединяются в другой скрипт. Этот скрипт, затем, хэшируется и используется для настройки порогового общественного ключа. Вместо общественного ключа x 2,, как использовалось в примере ранее, это приводит к пороговому общественному ключу x скрипту.

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

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

В этом случае раскрывается как первоначальный пороговый публичный ключ, так и скрипт. Это доказывает, что threshold public key x script был отредактирован с помощью этого конкретного скрипта. Таким образом, как и хэш в P2SH, отредактирование доказывает миру, что средства должны быть потрачены, если выполнены альтернативные условия, указанные в этом скрипте. (И, как и в случае с P2SH, эти условия, конечно, немедленно выполняются для расходования средств.)

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

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

Это общий очертание концепции Taproot; особенности реализации могут варьироваться.


Больше