Несмотря на то, что биткоин - самый большой и самый первый блокчейн, он не особенно известен возможностями програмирования. В эпоху, когда новые блокчейновые проекты обещают быть еще больше и лучше, биткоин еще ценнее благодаря своей простой и безопасной архитектуре. Однако, это вовсе не означает, что работа над улучшением Биткоина остановилась.
Если и когда достаточно спорное обновление кода SegWit будет развернуто, по словам разработчиков это станет толчком для внедрения целого ряда технических усовершенствований. Он включает и обновление под названием MAST (аббревиатура от Merkelized Abstract Syntax Trees - Мерклизованные абстрактные синтаксические деревья), концепция которого была предложена разработчиком Bitcoin Core Джонсоном Лоу (Johnson Lau) в начале 2016 года.
Ультрасовременное нововведение в области криптографии, MAST сам по себе не дает возможность создавать новые умные контракты, однако благодаря сокращению размера данных, необходимых для скриптов, открывает возможности для «сложных условий погашения», которые в настоящее время нежизнеспособны из-за ограничений в размерах блока.
Автор концепции Джонсон Лоу отмечает: «MAST позволяет уменьшить размер сложных "умных контрактов". Благодаря этому, можно будет снизить спрос на пространство в блоках и улучшить конфиденциальность, так как появится возможность раскрывать только небольшую часть умных контрактов в открытом блокчейне, а их сложнее анализировать».
В техническом смысле, MAST можно охарактеризовать как дополнение к P2SH (Pay to Script Hash) - механизму, который уже несколько лет используется в определенных транзакциях Биткоина. При использовании деревьев Меркла (той же структуры данных, которая хранит транзакции в блоках Биткоина), появляется новая возможность внедрения и обработки сценариев, предлагающих большую масштабируемость и конфиденциальность. Многие разработчики Биткоина очень воодушевлены потенциалом технологии и считают, что она расширяет возможности биткоина для использования в качестве «программируемых денег».
Путаница в умных контрактах
Несмотря на тенденцию рассматривать умные контракты как сложную и комплексную программу, они фактически используются в каждой транзакции Биткоина. Если отправитель не предоставит правильную цифровую подпись, подтверждающую, что он или она владелец средств, сеть не будет производить транзакцию.
Говоря об умных контрактах, Джонсон Лоу отмечает:
«Для того, чтобы умные контракты стали по-настоящему «умными», технология должна позволять людям делать не только простые платежи».
Стоит отметить, что ранее скриптовый язык Биткоина поддерживал более сложные типы умных контрактов. Однако все еще скрывающемуся под псевдонимом основателю криптовалюты Сатоси Накамото (Satoshi Nakamoto) пришлось избавиться от многих из них еще в 2010 году, когда он понял, что в них существуют баги, которые злоумышленники могут использовать для наводнения сети спамом. Потребовалось немало времени, чтобы наладить процессы резервирования.
Помня об этом, Лоу вынес предложение о внедрении пакета новых «опкодов» (операционных кодов), создающих новые умные контракты, многие из которых были возвращены в среду тестирования и возможно будут развернуты совместно с MAST. Джонсон также добавил, что его предложение может в будущем восстановить некоторые части умных контрактов, которые были ликвидированы семь лет назад.
При этом Лоу отметил, что не ожидает одобрения всех предложенных им операционных кодов в предложениях по улучшению Биткоина (BIP).
«Даже только некоторые из них (например, OP_CAT или OP_XOR ) откроют возможности для тех вещей, которые недоступны сегодня», - отмечает Джонсон.
Новое использование биткоинов
Существует также несколько практических применений предложенных Лоу функций. Джонсон указал на несколько возможных случаев применения операционных кодов совместно с MAST.
Один из них – схема ставок «без необходимости подтверждения», отмечает Лоу. Его пример внедрения задействует предложенные им операционные коды OP_XOR и OP_RSHIFT, но он отметил, что и другие комбинации скриптов, именуемые «договорными обязательствами» могут достичь той же самой цели.
Blockstream в прошлом году рассказал, что компания экспериментировала с договорными обязательствами в сайдчейне – блокчейне с другим типом управления, который привязан к Биткоину. Сама идея заключается в том, чтобы дать пользователям больше возможностей для контроля своих биткоинов, даже если они были украдены. Например, если вы хотите послать свои биткоины на биржу, но беспокоитесь, что она может потерять их, как было с Mt Gox.
Используя конструкцию под названием «сейф», возможно один из наиболее известных примеров договорных обязательств, пользователи могут посылать свои биткоины на новый адрес вместе с определенным типом скрипта, который поможет вернуть ваши биткоины в том случае, если произойдет ситуация, похожая на историю с Mt Gox. Конструкция потребует новых операционных кодов, таких как OP_CAT и OP_CHECKSIGFROMSTACK.
Стоит отметить, что некоторые разработчики достаточно скептически относятся к тому, что "сейфы" будут работать как надо и считают, что защиты средств лучше достигать другими способами.
Существует много типов договорных обязательств. Сооснователь проекта MIT Digital Currency Initiative Джереми Рубин (Jeremy Rubin) описал множество других примеров в своей презентации на конференции по безопасности блокчейна в Стэнфорде на прошлой неделе.
Помимо этого, существуют и другие идеи на тему того, как может быть использован MAST. Специалист Lightning Labs Олаолува Осунтокун (Olaoluwa Osuntokun), который также выступал в Стэнфорде, упомянул, что MAST может даже улучшить Lightning Network. Эта сеть верхнего уровня необходима для того, чтобы увеличивать емкость Биткоина. MAST может помочь ей вывести на аутсорс необходимость привлечения третьей стороны, что позволить сократить используемый объем пространства, необходимый для этих целей.
Маленькие шаги
По крайней мере две группы сейчас работают над созданием операционных кодов, которые могут изменить Биткоин и добавить функциональных возможностей сайдчейнам. SegWit мог бы значительно упростить процесс подобных разработок, так как в нем содержатся новые способы внесения изменений.
Сооснователь Lightning Network Джозеф Пун (Joseph Poon) упомянул в недавней презентации, что предложенные им изменения задействуют интересную систему умных контрактов с использованием некоторых операционных кодов, которые уже содержатся в Биткоине.
Джереми Рубин отмечает, что он также подумывал над подобным, возможно более эффективным способом, реализации такой же идеи. Но до поры до времени проблемы с внедрением SegWit остаются главным препятствием на пути воплощения подобных идей.
Однако, даже если обновление не будет развернуто в ближайшие 8 месяцев, Лоу отмечает, что существует и другой, «менее элегантный» способ обойти проблему пластичности транзакций и таким образом оказать поддержку MAST – шаг, который поможет вернуть Биткоин обратно в поле обсуждения расширенных возможностей умных контрактов.