Taproot, MAST и подписи Шнорра простыми словами

Taproot, MAST и подписи Шнорра простыми словами

6 мая 2019 года известный разработчик Bitcoin Core Питер Вьюл отправил электронное письмо в список рассылки bitcoin-dev под названием «Предложение Taproot». В письме изложены цели трех новых BIP (предложений по улучшению Биткоина), которые борются за добавление в код Биткоин-ядра. Два из предложенных BIP связаны с Taproot, улучшающим конфиденциальность и многофункциональным обновлением для языка сценариев Биткоин; последний BIP описывает схему подписи Schnorr. Вместе подписи Taproot и Schnorr улучшают как масштабируемость, так и конфиденциальность, и эти изменения могут быть реализованы в обновлении софт-форка без необходимости широкой координации обновления.

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

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

Биткоин и смарт-контракты

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

Базовые транзакции в биткоине (отправка биткоинов на открытый ключ) известны как Pay-to-Public-Key-Hash (P2PKH). В отличие от P2PKH, Pay to Script Hash (P2SH) является расширенным типом транзакции, используемой в биткоине, и позволяет отправителю переводить средства в хэш произвольного допустимого сценария. P2SH в основном используется для многосигнальных и ненативных транзакций SegWit (P2WPKH-in-P2SH). Изначально изложенная в BIP 16, цель P2SH состоит в том, чтобы «передать ответственность за предоставление условий для выкупа транзакции от отправителя средств к получателю». Вместо того, чтобы заставлять отправителей вставлять длинные сценарии условий расходов в свои scriptPubKey, отправители могут поместить хэш своих условий расходов, вместо этого известный как сценарий погашения. Транзакция финансирования P2SH содержит хэш сценария погашения в scriptPubKey.

Однако в настоящее время, если создать сценарий погашения P2SH, условия будут видны всем участникам сети после того, как средства будут потрачены. Это снижает конфиденциальность и увеличивает объем данных, что влияет на масштабируемость. Однако цель Taproot состоит в том, чтобы гарантировать, что транзакции P2SH кажутся неотличимыми от других типов транзакций, что улучшает конфиденциальность и масштабируемость. Чтобы достичь этого, будут введены два улучшения: подписи Шнорра и Merklized Abstract Syntx Trees (MAST).

Подписи Шнорра

Схема подписи Шнорра была запатентована Клаусом Шнорром в 1991 году, а срок действия патента истек в 2008 году.

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

Подписи создаются владельцем закрытого ключа, чтобы подтвердить право собственности на закрытый ключ, не раскрывая его. Они подлежат публичной проверке с использованием открытого ключа, а Биткоин использует схему подписи, называемую ECDSA — Алгоритм цифровой подписи эллиптической кривой.

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

Предложение в Taproot состоит в том, чтобы заменить EDCSA на подписи Шнорра (Schnorr) и, следовательно, позволить подписывающим сторонам совместно создавать подпись, а не вычислять самостоятельно и добавлять в транзакцию. Это интерактивный и эффективный процесс, который скрывает количество оригинальных подписчиков и любые пороговые условия (например, n из m подписчиков требуется для погашения), тем самым улучшая масштабируемость и конфиденциальность.

У подписей Шнорра есть и другие незначительные преимущества. Они являются фиксированной 64-байтовой сигнатурой, которая меньше существующих сигнатур ECDSA размером 70–72 байта. У Шнорра есть формальное доказательство безопасности; для ECDSA нет. У Шнорра есть адаптивные подписи, что является функцией, которая помогает с атомарными свопами, а также может использоваться для общих каналов оплаты.

Вторая часть Taproot — это введение Merklized Abstract Syntx Trees.

MAST

Первоначально MAST был предложен разработчиком протокола Bitcoin доктором Джонсоном Лау в 2016 году

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

В настоящее время, если Алиса отправляет Сереже 10BTC, но желает установить для него ряд условий для их погашения, тогда все условия будут видны в блокчейне.

Пример условий:

а) Сергей может потратить 10 BTC, только если он ждет 7 дней

б) Если он хочет потратить их до истечения 7 дней, он может получить доступ только к 4 BTC, а оставшиеся 6 должны быть возвращены Алисе по указанному адресу.

Вышеуказанные условия используют скрипт временной блокировки, который позволяет указывать либо блок, либо время (в формате эпохи) в информации о транзакции. Это поле обычно устанавливается в «0», и поэтому ненулевое значение снижает конфиденциальность транзакции, увеличивает размер транзакции и может быть фактором, который используют предвзятые майнеры, чтобы избежать включения транзакции в блоки-кандидаты.

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

Taproot стремится использовать MAST, чтобы скрыть все условия для расходов и уменьшить размер этой информации. Таким образом, вместо того, чтобы каждое условие включалось в информацию о транзакции, MAST создает мерклизированный хэш этой информации (корень merkle), тем самым уменьшая размер информации и скрывая различные маршруты, которые может пройти транзакция.

Это учитывает приверженность всем условиям, не раскрывая каждое условие в отдельности.

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

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

В нашем примере выше давайте рассмотрим дополнительное условие:

Сергей может получить доступ к 10 BTC до 7 дней, но только если Дима также подпишет транзакцию.

При использовании Taproot транзакция будет выглядеть как любая обычная транзакция P2PKH, и после того, как Сережа успешно получит 10BTC, можно будет узнать, что это произошло потому, что он ждал 7 дней, однако невозможно было бы узнать, что он мог получить доступ к средствам ранее, если бы Дима также подписал сделку, так как этот альтернативный маршрут не был бы раскрыт.


Подписи Шнорра и Taproot с Tapscript улучшают масштабируемость и конфиденциальность, скрывая скрипты и скрывающие ключи, и ограничивают возможность третьих сторон определять типы происходящих транзакций. Эти улучшения могут существенно улучшить принятие, безопасность и безопасность транзакций с несколькими подписями. В будущем разработчики Биткоин и его сообщество планируют интегрировать эти улучшения в основной код. Различные дополнения, ориентированные на конфиденциальность, намечены для добавления в код Bitcoin Core и сделают транзакции более безопасными, более приватными, а биткоин — более прибыльными.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *