Mimblewimble, или как работает блокчейн-заклинание
В октябре 2016 года на открытии международной конференции Scaling Bitcoin в Милане разработчик Blockstream Эндрю Поелстра представил предложение по масштабированию Bitcoin Mimblewimble. White paper проекта датируется 19 июля 2016 года и опубликован под псевдонимом Tom Elvis Jedusor (имя Волан-де-Морта во французских изданиях «Гарри Поттера»). Автор рассказывает, что «назвал свое создание «Mimblewimble», поскольку оно используется, чтобы не давать блокчейну разбалтывать пользовательскую информацию» (в книге «Гарри Поттер и дары смерти» «Mimblewimble» — это заклятие косноязычия, которое связывает язык жертвы, не позволяя сказать ни слова).
Технология направлена на повышение приватности, масштабируемости и взаимозаменяемости токенов сети Bitcoin, и с 2016 года сервис искал способы внедриться в проект: «Mimblewimble — это решение для блокчейна Bitcoin, которое может быть имплементировано как софтфорк или сайдчейн. Также поверх него может быть наложен протокол Lightning Network», — заявил Эндрю Поелстра. Однако в своем нынешнем виде Mimblewimble трудно совместим с протоколом Bitcoin, поскольку требует удалить скрипты, содержащиеся во входах и выходах биткоин-транзакций и подтверждающие их действительность. «Это грустно, но мы продемонстрируем, что конфиденциальных транзакций доктора Максвелла (после небольшой доработки) будет достаточно для авторизации израсходованных выходов», пишет криптовалютный Волан-де-Морт.
Под конфиденциальными транзакциями Максвелла автор white paper подразумевает технологию, позволяющую скрывать количество пересылаемых биткоинов. Впервые эта идея была предложена в 2013 году нынешним президентом Blockstream Адамом Бэком, а затем развита разработчиками Bitcoin Core Грегори Максвеллом, Питером Вюлле и Эндрю Поелстра и реализована в тестовом сайдчейне Blockstream — Elements. Для зашифровки количества биткоинов конфиденциальные транзакции используют «ослепляющие факторы», или строку случайных цифр. Но если в реализации Blockstream эти цифры задавались отправителем и расшифровывались получателем с помощью заключенной в транзакции информации, то Mimblewimble переворачивает этот прием, позволяя получателю самому генерировать строку случайных цифр и отбрасывая приватные ключи и адреса.
Как объясняет Кэтрин Николсон, CEO и сооснователь проекта для блокчейн-приложений BlockCypher, «MimbleWimble изначально приватен», без кольцевой подписи, как в монеро, и без доказательств с нулевым разглашением (zk-SNARK в Zcash), «все детали транзакции полностью скрыты, нет адресов, которые можно вновь использовать или идентифицировать, все транзакции снаружи выглядят одинаково».
Главное требование к участникам Mimblewimble-транзакции — доказать, что не было создано никаких новых монет. Для этого создается уравнение баланса, демонстрирующее, что сумма выходов минус входы равна нулю. Причем при добавлении «ослепляющих факторов» уравнение остается верным. Николсон приводит в пример уравнение транзакции: 17 + 12 = 29, где 17 и 12 — выходы, а 29 — вход, затем добавляется произвольный «ослепляющий фактор», в данном случае — число 11, получаем: 17*11 + 12*11 = 29*11, или 187 + 132 = 319. Уравнение баланса все еще доказывает, что новые монеты не создавались, но, не зная «секретного числа» 11, нельзя получить изначальные детали транзакции.
Эта схема также позволяет решить проблему масштабирования, отбрасывая данные входов и выходов, которые уже «самоверифицировались»: при использовании Mimblewimble нодам достаточно знать, что конкретные выходы действительны, тогда как в сети Bitcoin для подтверждения последней операции необходима валидация всего блокчейна, объем которого на сегодня превышает 145Гбайт. Mimblewimble растет с числом пользователей, а хранящиеся на блокчейне транзакционные данные не увеличиваются: ноды сохраняют лишь неиспользованные выходы и заголовки блоков. В свою очередь, удаление «лишних» данных также способствует повышению приватности.
Следующее вытекающее отсюда усовершенствование состоит в том, что пропадает понятие истории транзакций, что делает токены взаимозаменяемыми, в отличие от сегодняшних биткоинов. Кэтрин Николсон называет взаимозаменяемость ключевой характеристикой валюты, приводя в пример идентичность бумажного и чеканного долларов. Однако, поскольку блокчейн биткоина сохраняет все входы и выходы, каждая монета имеет свою «историю». Таким образом, создается иерархия монет, где самыми ценными являются полученные биткоины при добыче нового блока. За приобретение таких «чистых» монет зачастую доплачивают, тогда как токены с даркнет-прошлым значительно труднее потратить. А поскольку Mimblewimble отбрасывает входы и выходы по завершении операции, все монеты равны и взаимозаменяемы. Кроме того, при обработке биткоин-транзакции в ее сегодняшнем виде платежные сервисы, майнеры и биржи видят входы и историю, оценивая «качество транзакции», тогда как конфиденциальные транзакции Mimblewimble позволяют пользователю выбирать, какие данные ему раскрывать, а также определять время и способ использования этих данных третьими сторонами.
В конце 2016 года разработчик под псевдонимом Игнотус Певерелл (обладатель мантии-невидимки в книгах о Гарри Потере) начал вести Github проекта под названием Grin. В разделе «благодарность» называются имена Tom Elvis Jedusor — «за первое формулирование MimbleWimble», Эндрю Поелстра — «за его вклад», Джона Тромпа — «за создание proof-of-work-алгоритма Cuckoo Cycle» и Джоан Роулинг — «за то, что она сделала это, несмотря на чрезвычайные трудности».
В сентябре 2017 года разработчики сообщили о создании собственной криптовалюты Grin. Из-за сложностей в интеграции с Bitcoin было решено пойти по пути создания независимого блокчейна: «Хотя Grin и стартовал немного не с того места, которое я бы предпочел, все идет в правильном направлении: в сторону повышения конфиденциальности и масштабирования биткоина», — сказал Эндрю Поелстра. Он также не исключает, что в будущем криптовалюта Grin будет привязана к биткоину. В ноябре прошлого года проект запустил тестовую сеть Testnet1 и тестовые токены, которые можно пересылать другим участникам сети. Основная цель — обнаружить уязвимости перед запуском основной сети и реальной криптовалюты. «Мы надеемся получить как можно больше сообщений о багах, чтобы мы могли исправить недочеты, которые просмотрели», — сообщил ведущий разработчик под псевдонимом Игнотус Певерелл. По его словам, это первая сеть, которая тестирует то, что было разработано на данный момент: одноранговую сеть, механизм достижения консенсуса, криптографический протокол цепи Mimblewible, ПО кошелька. Но планируются и дальнейшие тестовые версии (следующая намечена на весну этого года), которые будут включать «бесскриптовые скрипты» для внедрения Lightning Network, мультиподписей и технологии приватности Bulletproofs. В середине декабря Grin также объявил первый фандрайзинг, призванный собрать $30,000 в биткоинах на поддержание фулл-тайм работы разработчика Майкла Корднера в течение года. Одной из первых средства проекту пожертвовала компания Кэтрин Николсон, BlockCypher. На данный момент, по сообщению Игнотуса Певерелла, полноценный запуск готовится «когда-нибудь в 2018-м».