Бесскриптовые скрипты — решение, которое позволит разгрузить блокчейн биткоина. Они позволят убрать из сети смарт-контракты, замаскировать их и выполнять практически так же, как обычные транзакции. Cryptonomist разобрался, как будет работать эта технология.
Смарт-контракты в блокчейне биткоина
Смарт-контракты ассоциируются, в первую очередь, с Ethereum, однако появились они гораздо раньше. Так, в 1994 году криптограф Ник Сабо впервые озвучил термин «смарт-контракт» и описал его как алгоритм, который выполняет транзакцию при соблюдении определенных условий.
Блокчейн биткоина поддерживает базовые функциональные возможности смарт-контрактов. Здесь можно задавать условия для траты монет, создавать мультиподписи, искать прообразы хешей и решать другие относительно простые задачи, применяя смарт-контракты.
Вообще говоря, любую транзакцию в блокчейне биткоина можно рассматривать как смарт-контракт. Посудите сами: при совершении транзакции средства переводятся на условии предоставления валидной криптографической подписи. Кроме того, можно создавать более сложные смарт-контракты для проведения транзакций — таймлоки и мультиподписи. Они используются для блокчейнов поверх блокчейна биткоина, к примеру, Lightning Network.
Проблемы смарт-контрактов в блокчейне биткоина
Прежде всего, смарт-контракты предполагают дополнительную нагрузку на сеть и риски для вовлеченных сторон. С усложнением контракта растет и потребление ресурсов — вычислительных мощностей и энергии.
Это проблематично, потому что каждая нода сети должна выполнить смарт-контракт. Если бы он касался лишь заинтересованных нод, ситуация была бы куда проще.
Кроме того, смарт-контракты угрожают приватности. Детали контракта в данном случае узнает вся сеть.
А если в смарт-контракте будет содержаться уязвимость, вероятна и хакерская атака. Злоумышленники могут эксплуатировать дыру и похитить средства, которые находятся в смарт-контракте.
Что такое бесскриптовые скрипты
Концепцию бесскриптовых скриптов первым описал глава исследований Blockstream Эндрю Поэлстра на конференции Scaling Bitcoin в Стэнфорде, которая состоялась в ноябре 2017 года. С помощью бесскриптовых скриптов можно использовать смарт-контракты в сети биткоина, но при этом полностью убрать их из блокчейна.
Система предполагает, что такой скрипт не будет выполнять вся сеть — он станет актуален лишь для участников сделки. Остальные смогут только удостовериться, что правила сети не нарушаются и что сделка валидна. Фактически блокчейн будет видеть смарт-контракт в формате бесскриптового скрипта как обычную транзакцию.
Поэлстра подчеркнул:
Люди могут верифицировать состояние системы, не загружая все фоновые данные. Определенным образом возможно сжать все транзакции. Многие данные избыточны, и вам не нужно все их публично проверять.
Преимущества бесскриптовых скриптов
Поэлстра назвал бесскриптовые скрипты масштабным исследовательским проектом, который разрабатывается до сих пор. Он пояснил:
Это способ использовать ядро и подпись ядра, чтобы задавать им условия, не модифицируя систему так, чтобы проверяющим не пришлось понимать новые правила.
Используя бесскриптовые скрипты, участники сделки могут выбрать, какой протокол или контракт хотят выполнить. В результате будет создана валидная подпись. Её правильность блокчейн и майнеры смогут подтвердить, не имея никаких конкретных деталей транзакции.
Разработчик добавил:
Ты выкладываешь правила и затем публикуешь явное доказательство того, что эти правила были соблюдены. Исторически это пришло из MimbleWimble… Но фактически любая система, которая поддерживает подписи Шнорра или какую-то другую схему подписей с линейными данными, может выполнять эту технику бесскриптовых скриптов.
Фактически подписи являются базой для бесскриптовых скриптов. Если кто-то ставит подпись, это выглядит как подтверждение обычной биткоин-транзакции. Но на самом деле подпись содержит смарт-контракт, который не хранится на блокчейне, при этом корректно выполняется при получении этой подписи.
Многие организации отмечали, что отсутствие приватности является главным недостатком смарт-контрактов. Бесскриптовые скрипты решают эту проблему, так как не раскрывает контракты. В блокчейне видны лишь публичные ключи и подписи, остальные детали смарт-контракта скрыты.