Что такое Miniscript Bitcoin и как работает

6 сентября, 2020 / Главные новости

скрипт биткоин

Изначально в сети Bitcoin использовался язык смарт-контрактов под названием Script. Этот язык обладает множеством возможностей, однако, подавляющее большинство транзакций в сети первой криптовалюты используют лишь небольшой набор четко определенных смарт-контрактов: подпись одним ключом (p2pkh, p2wpkh), мультиподпись (часто выполняется с использованием p2sh или p2wsh) и некоторые HTLC для Lightning. Как бы это ни было странно, но большинство возможностей Script не используются вообще, в то время как создание смарт-контрактов занимает немало времени.

Что такое Miniscript

Bitcoin Miniscript, был создан в августе 2019 года разработчиком Питером Вюлле. Miniscript – это подмножество скриптов, отражающих условия, необходимые для удовлетворения смарт-контракта. Его основная цель – упростить процесс создания смарт-контрактов на базе Bitcoin без ущерба безопасности сети.

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

Как поясняет разработчик на GitHub, использование более удобного языка сценариев дает ряд преимуществ:

«Miniscript- это язык для написания (подмножества) скриптов Bitcoin в структурированном виде, позволяющий анализировать, составлять, обобщать подписи и многое другое».

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

  1. В зависимости от комбинации условий расходов, находится наиболее экономичный сценарий реализации.
  2. При наличии двух сценариев, создается сценарий, реализующий набор условий для расходования (например, мультиподписи).
  3. По мере создания сценария, определяются условия для реализации расходов.
  4. При наличии сценария и доступа к достаточному набору закрытых ключей для него создается общий свидетель.
  5. Далее определяется стоимость затрат на вывод.
  6. В зависимости от сценария, могут иметь место определенные ограничения, такие как лимит операций, при расходовании.

Таким образом, Miniscript функционирует как представление сценариев при проведении приведенных выше операций. Он имеет структуру, которую легко анализировать со стороны различных уcловий, таких как условия расходования, правильность, свойства безопасности и гибкость. В то же время совместимые скрипты легко преобразовываются в форму Miniscript – без дополнительных метаданных.

На сегодняшний день доступна интеграция с языками C++ и Rust.

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

Актуально