Язык Miniscript призван облегчить программистам создание более полноценных смарт-контрактов в Биткоине. По словам Вюлле, он сам, Эндрю Поэлстра (Andrew Poelstra) и Санкет Саньялкар (Sanket Sanjalkar) работали над кодом примерно год. Хотя об этом и было известно в сообществе разработчиков, Вюлле отметил, что решился опубликовать язык в рассылке для разработчиков только на этой неделе, потому что сейчас он достиг «стадии, на которой я хотел бы привлечь к нему больше внимания».
Miniscript создан на базе языка смарт-контрактов Script, который дает пользователям возможность указывать определенные условия, которые должны быть выполнены, прежде чем биткоины можно потратить. Предложенный Вюлле код улучшает базовый язык сразу по нескольким направлениям.
Например, разработчик отмечает, что использование кода стало проще. В качестве примера он приводит ситуацию, когда «пользователь А может забрать монеты в любое время, а пользователь Б – через один день». Вот как эти правила реализованы коде Script:
OP_EQUALVERIFY OP_CHECKSIGVERIFY <144> OP_CSV OP_ENDIF
А таким образом в Miniscript:
or_d(c:pk(A),and_v(vc:pk_h(B),older(144)))
Miniscript построен на основе Script и способен «компилировать» на родной язык Биткоина.
Новый код получил одобрение разработчиков сообщества. Например, инженер Blockstream Расти Рассел (Rusty Russell) написал в Твиттере:
«Это будет одна из тех технологий, которая значительно упростит нам жизнь. Она будет внедрена незаметно, но окажется жизненно важной».
Существует много потенциальных вариантов использования языка, таких как упрощение реализации сложных скриптов в кошельке, как написал Эрик Ломброзо (Eric Lombrozo). Или, как отметил Джимми Сонг, код даже можно использовать для поддержки Lightning Network.
Сонг также сказал, что этот язык смарт-контрактов отличается от языка Solidity в Эфириуме. Хотя Эфириум позволяет писать гораздо больше типов смарт-контрактов, Miniscript предлагает более скромные возможности. Однако, по мнению Сонга, это к лучшему, так как «уменьшает сложность и возможности для атаки».
В релиз кода включены две рабочие реализации на языках программирования C++ и Rust, которые Вюлле назвал «незавершенными», добавив:
В мае этого года Питер Вюлле представил два BIP для будущего софтфорка Биткоина.«Благодаря масштабным рандомизированным тестам мы уверены, что языковой дизайн и связанные с ним доказательства совместимы с существующими правилами консенсуса и стандартизации».