Что такое подписи Шнорра? Что такое Taproot?

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

  • публичного ключа в качества обычной подписи;
  • расходование с помощью скрипта.

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

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

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

Taproot использует структуру MAST, чтобы скрыть условия, стоящие за корнем Меркла. Сам корень Меркла в этом сценарии скрывается и позволяет осуществлять посредством ключа прямые траты. В блокчейн отправляется только одиночный ключ – никто не видит, что существуют дополнительные условия.

В комбинации с подписями Шнорра структура MAST скрыта благодаря выходам Taproot. В верхней части дерева Меркла присутствует опция публикации одиночного публичного ключа и подписи. В результате транзакции P2PKH и P2SH выглядят идентично.

Иллюстрацией может служить закрытие Lightning-канала.

Lightning-каналы – это вариации мультиподписи 2-из-2. Вместо того, чтобы закрывать транзакцию с помощью громоздкого скрипта, Шнорр позволяет объединить подписи и представить в виде открытого ключа/подписи Taproot. Когда обе стороны согласны, то результат выглядит так, словно кто-то израсходовал этот выход с помощью обычной подписи, послав на два адреса. Наблюдатель не сможет определить, что это Lightning-канал.

TapBranch – это дерево скрипта (TapTree) для закрытия канала Lightning

Чтобы скрыть структуру MAST, хеш TapBranch на графике выше хешируется с помощью агрегированного публичного ключа (благодаря схеме Шнорра Алиса и Боб могут добавлять свои публичные ключи для создания внутреннего ключа Taproot).

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

Далее измененный публичный ключ добавляется к внутреннему ключу Taproot для создания ключа выхода Taproot. Процесс проиллюстрирован ниже:

Как было сказано, существуют два ключа траты. Путь расходования по умолчанию – это когда Алиса и Боб соглашаются закрыть Lightning-канал, а ключ выхода Taproot гарантирует, что транзакция выглядит как стандартная транзакция P2PKH. В других сценариях используемый скрипт раскрывается, как только монеты потрачены, тогда как все другие опции остаются скрытыми.

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

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

В случае, когда закрытие несовместное, раскрывается только используемый скрипт. Верифицирующие смогут определить, что пороговый публичный ключ был изменен посредством корня Меркла. Однако все остальные опции/скрипты останутся скрытыми.

График выше показывает, что дерево скрипта предлагает новую опцию восстановления для получения доступа к биткоинам. Taproot обеспечивает опцию восстановления для потерянных монет (для пользователей с обновленными кошельками). Если теряется одиночный ключ, он утрачен безвозвратно. Если же пользователь теряет закрытый ключ, и его средства находятся в форме выхода Taproot, то должен существовать другой путь, посредством которого можно заявить права на монеты (например, восстановить резервные ключи 3-из-5, которые удерживают родственники пользователя).

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

Усложненные транзакции позволяют значительно сэкономить на комиссиях, поскольку требующие обработки большого количества данных скрипты уже не должны платить комиссии, суммы которых превышают суммы комиссий в стандартной транзакции Pay-to-Public-Key-Hash. Чем сложнее транзакции, тем выше их эффективность.

Поскольку Taproot позволяет осуществлять усложненные транзакции с помощью всего лишь одной подписи, количество байтов, используемых для агрегированных ключей и подписей, не меняется в зависимости от числа подписантов. При использовании мультиподписи Witness-Script-Hash (P2WSH) каждый дополнительный публичный ключ добавляет 8,5 байтов, а каждая дополнительная подпись – приблизительно 18,25 байтов.

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

Хотя схема Шнорра позволяет придавать мультиподписным транзакциям видимость обычных транзакций Pay-to-Public-Key-Hash, Taproot расширяет круг транзакций, которым можно придать такую видимость (сделать Pay-to-Public-Key-Hash и Pay-to-Script-Hash неотличимыми).

Подписывайтесь на канал Forklog в YouTube!

Закладка Постоянная ссылка.

Комментарии запрещены.