Главная - Технологии - MimbleWimble и его реализация в BEAM и Grin

MimbleWimble и его реализация в BEAM и Grin

MimbleWimble – это приложение для повышения анонимности и масштабируемости блокчейна. Мало каким проектам удавалось привлечь столько внимания, как в данном случае. Название протокола взято из книги «Гарри Поттер и дары смерти», где MimbleWimble означает заклятие косноязычия, которое не давало героям говорить на определенные темы. Так же и протокол не дает блокчейну разбалтывать пользовательскую информацию.

Приложение проверяет действительность каждой транзакции, без необходимости хранить всю историю в общей цепочке блоков. Таким образом, MimbleWimble решает проблемы, с которыми сталкиваются практически все блокчейны.

История создания

В июле 2016 года Tom Elvis Jedusor (во французских изданиях «Гарри Поттера» настоящее имя – Волан-де-Морта) впервые опубликовал техническую документацию проекта. Через 3 месяца разработчик и математик из Blockstream Эндрю Поэлстра усовершенствовал документацию и представил протокол на международной конференции Scaling Bitcoin. Предложение вызвало интерес у сообщества.

Изначально предполагалось, что технология будет интегрирована в Биткоин или существовать как сайдчейн. Но разработчик Bitcoin Core Питер Вуйле акцентировал внимание на проблемы, которые может повлечь интеграция протокола в Биткоин.

«Если уже говорить о таких экспериментах, то это уместно делать на отдельных или боковых садчейнах. Ведь в таком случае можно обойтись без создания валюты. MimbleWimble имеет изъяны, например, у него нет скрипта. С другой стороны, скриптовой язык порождает проблемы с приватностью. MimbleWimble предлагает другой подход: хороший уровень приватности достигается за счет ограничения других функций» – сказал Питер.
Справка! MimbleWimble не поддерживает скриптовый язык, который необходим для атомарных свопов и платежных каналов, реализованных в Биткоине. В результате появилось 2 версии MimbleWimble с разными подходами и техническими характеристиками.

В октябре 2016 года разработчик под псевдонимом Ignotus Peverell (первый владелец плаща-невидимки в Гарри Поттере) начал работу над проектом Grin. White Paper MimbleWimble начал превращаться во что-то реальное. В 2017 он опубликовал технический документ, где описал всю специфику работы протокола. Основную сеть Grin запустили в январе 2019 года.

Вторая версия протокола реализована в проекте BEAM. Работа над ним началась в марте 2018, а запуск состоялся в январе следующего года. BEAM был описан в отдельной Белой Бумаге, наряду с документацией кошелька и майнингового узла.

Разработчики BEAM пошли другим путем, нежели Grin. Они создали вокруг проекта формальную структуру с отличительными техническими характеристиками алгоритма хеширования и монетарной политики.

Принцип работы

Методы криптографии пользуются доверием и популярностью. Но доверие основано на долгосрочном отсутствии взломов. По сути, точность криптографии носит эмпирический характер и ничем не доказана. Логика основана на том, что некоторые вычисления практически невозможно выполнить из-за их сложности. Биткоин же основан на криптографическом хешировании и дискретном логарифмировании, которые являются «примитивными» и в то же время грамотными криптографическими решениями. В этом и заключается красота данного блокчейна.

Как и Биткоин, MimbleWimble построен на принципах дискретного логарифмирования. Пока эти принципы будут имеют силу, блокчейны будут оставаться безопасными.

Особенность MimbleWimble в том, что он реализует «примитивные» методы криптографии очень сложными способами, формируя тем самым непростую, но элегантную систему. Давайте подробно разберемся в принципах, на которых базируется идеология MimbleWimble.

Дискретное логарифмирование

Методы криптографии базируются на том, что вычислительные операции легко решаются в одну сторону и практически не решаемы в обратном направлении. Задача дискретного логарифмирования является тому примером, благодаря чему криптографические системы с открытыми ключами могут не только работать, но и быть высокоэффективными.

Дискретное логарифмирование основывается на ограниченном наборе значений. Допустимые значения ограничиваются не числами, а дискретными точками и величинами. Это как в булевой алгебре (алгебра логики), где единственные допустимые значения – 0 и 1. Все это относится к дискретной математике. Кстати, разделы с наборами целых чисел – также ее разделы.

MimbleWimble ориентируется на ECC – эллиптическую криптографию. То есть вычисления определяются диапазоном в виде набора точек, относящихся к эллиптической кривой. На графике это выглядит примерно так:

график

Дискретная математика – это форма абстрактной алгебры. В ней используются известные всем действия: сложение и вычитание. Деление или умножение точек на целые числа допустимо, но результаты этих вычислений определяются не обычной арифметикой, а кривыми. Умножать, добавлять или вычитать точки можно при помощи обычных ПК, но с делением ситуация более сложная. Сегодня решить эту задачу можно только грубой силой. В будущем этой силой станут квантовые компьютеры, но судя по всему, это произойдет через сотни лет. А пока на сложности деления и простоте умножения основываются принципы криптографии.

Публичные ключи в MimbleWimble – производные приватных. На эллиптической кривой протокол выбирает генераторную точку, которая имеет название H или G. Приватный ключ является целым числом, выбранным в случайном порядке из очень большого набора чисел. Механизм получения приватного ключа заключается в умножении целого числа на генераторную точку. Отменить умножение практически невозможно, это и есть основная причина функционирования системы. Математики называют обратное действие взятием логарифма, так собственно, и появилось название дискретного логарифмирования.

Криптографическая хеш-функция

Это своего рода поток входных данных произвольной длины, которые называются хешем. Хеш-функция может использовать методы криптографии только в том случае, если входные и выходные данные не связаны между собой. Причем последние должны быть непредсказуемыми. Самые минимальные изменения входных данных приводят к совершенно другому хешу. Именно на непредсказуемости основывается безопасность MimbleWimble. Расчет делается на то, что злоумышленники не могут подобрать данные к хешу из другого набора данных. В криптографии это свойство называется устойчивостью к коллизиям.

В Биткоине, например, для создания приватного ключа используется RIPEMD-160, а PoW основывается на протоколе SHA-256. Что касаемо MimbleWimble, приложение использует хеш-функцию для создания выходов. В системе они являются обязательствами криптографии. В таком случае адрес получателя остается анонимным, а для получения перевода нужен приватный ключ.

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

CoinJoin

Изобретателем CoinJoin является Грег Максвелл. Техника предназначена для запутывания транзакций путем объединения.

Справка! В транзакциях есть элемент «граф». В нем содержится информация об участнике сделке, взаимодействии пользователей и даже история коина. Иногда допускается, что расходование нескольких входов для одной транзакции говорит о принадлежности к одному кошельку. Применение CoinJoin позволяет решить эту проблему объединением и запутыванием транзакций. Поэтому данное допущение теряет всякий смысл.

В принципе, CoinJoin – эффективная техника, но есть одно но. Транзакцию должны подписать все участники процесса, то есть требуется коллективное взаимодействие, иначе сделка не состоится. Это не всегда возможно по ряду причин, например, кто-то из участников находится оффлайн. По этому поводу проводились многочисленные исследования, в результате которых было создано несколько техник. Одна из них предполагает использовать односторонние подписи. Хотя такая идея выглядит многообещающей, но для ее реализации нужны сложные криптографические механизмы.

В качестве опоры MimbleWimble использует эллиптические кривые, поэтому сложные вычисления не требуются. Главное преимущество системы в том, что она использует комбинации неинтерактивных транзакций. Они автоматически объединяются на уровне блоков. Если какие-то транзакции имеют неподтвержденные входы, в таком случае система исключает промежуточные выходы. Такой механизм обеспечивает валидность цепочки.

Но сквозная функция не может устранить все доказательства промежуточных операций, после них остается ядро, необходимое для должного валидирования цепи. Ядро – это подтверждение права собственности на входы и проделанную работу.

Гомоморфное шифрование

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

Благодаря гомоморфному шифрованию появилась возможность проверить равенство результатов двух транзакций. Во многих моментах MimbleWimble полагается именно на этот механизм.

Конфиденциальные транзакции

Приватность и взаимозаменяемость – это самые основные проблемы, с которыми столкнулся Биткоин практически сразу после запуска. Разработчики комплексно анализировали ситуацию, стараясь найти эффективное решение этих задач. Затем начали появляться криптовалюты, которые ставят анонимность на первый план (Zcash, Monero). Но справедливости ради нужно сказать, что в Биткоине также реализованы механизмы для улучшения этих показателей. Причем не только на уровне транзакций, но и на уровне протоколов.

Grin и BEAM, подобно Биткотну, используют модель непотраченных выходов транзакций (UTXO) при помощи криптографического шифрования. Хеш-функция на высоком уровне позволяет принимать входы и получать выходы, установленных размеров. Главное преимущество хеша в обеспечении перекоса между защищающей и нападающей сторонами. Хеширование входа – это элементарный процесс, а вот получить исходный вход по профилю практически невозможно.

UTXO-модель Биткоина обеспечивает открытость информации о входе, выходе и сумме транзакции. За счет этого можно легко проверить, сколько средств находится в системе. Таким образом, транзакции в сети Bitcoin нельзя назвать приватными, поскольку незашифрованная информация доступна всем. И хотя при повторной операции адрес можно не использовать, есть более эффективные способы защиты данных, например, Confidential Transactoins или выше описанный CoinJoin.

MimbleWimble вносит изменения в UTXO-модель Биткоина. Благодаря Confidential Transactoins, в транзакциях нет адресов и суммы платежей. Эти данные доступны только участникам процесса. Но чтобы другие пользователи смогли проверить валидность транзакции, используется специальное криптографическое обязательство.

Confidential Transactoins предлагает обязательство Педерсона, которое позволяет проверить пропорциональность входов и выходов. Суммы при этом остаются скрытыми без ущерба безопасности системы.

Схема Педерсена работает следующим образом. Зашифрованные суммы входов и выходов вычитываются полными узлами. Это создает сбалансированное уравнение, доказывающее корректность сумм. Получается, что в течение всего процесса, узел знает точную сумму транзакции. 

Чтобы не допустить принятия двух входов, используется криптографический примитив range proof – «доказательство диапазона». Он обеспечивает корректность общего объема средств, гарантируя нахождение всех входов в одном диапазоне.

Для скрытия адресов и сумм Confidential Transactoins используется во всех версиях MimbleWimble.

Объединение транзакций – еще один важный механизм для их конфиденциальности. Он основан на технологии CoinJoin. Скрытие информации имеет для MimbleWimble принципиальное значение.

Протокол MimbleWimble проверяет, чтобы монеты не были созданы из воздуха, и чтобы все стороны владели ключами. Для проверки используется слепящий фактор, который сохраняет конфиденциальность значения транзакции.

Как это работает

Когда протокол MimbleWimble транслируется в пул неподтвержденных транзакций, он по-прежнему содержит информацию о входных и выходных данных. Эта информация доступна всем пользователям сети. Поэтому WM переходит на следующий этап, чтобы попытаться скрыть информацию. Этот этап называется сквозной транзакцией. Рассмотрим на элементарном примере: Алиса отправила Роберту несколько монет, которые он перевел Чарли. Блок WM может быть устроен таким образом, чтобы полностью удалить блок Роберта. В транзакции будет информация, как будто Алиса сразу перевела монеты Чарли. Тот, кто будет проверять последнюю версию публичного журнала, не узнает о сделке Роберта с Алисой и Чарли. Транзакция может сохранить конфиденциальность многих пользователей по мере прохождения.

Grin и BEAM – в чем разница

Обе монеты используют протокол MimbleWimble, но между ними есть кардинальные различия. BEAM создавался как корпоративная структура. Компания наняла разработчиков, чтобы те позволили выиграть гонку с Грин. В 2019 году BEAM превратился в настоящий некоммерческий фонд, а сама компания перешла к созданию бизнес-сценариев. Это децентрализованный проект, которым управляют участники.

BEAM предлагает более профессиональный сценарий использования криптовалюты. Здесь есть простой кошелек с максимально простым интерфейсом, который реализован под различные операционные системы. Грин в этом плане не настолько удобный, поскольку предлагает единственный кошелек командной строки, который разрабатывался для более продвинутых в техническом плане пользователей.

BEAM использует язык программирования C ++, а Grin – Rust. В принципе, в этом нет существенной разницы, чего не скажешь о разнице в экономических моделях. Разработчики BEAM уделили особое внимание анонимному хранилищу стоимости, тогда как Grin больше используется как валюта.

BEAM стимулирует развитие путем вознаграждений от учредителей, а Grin полностью зависим от сообщества и продаж.

Особенности BEAM:

  • Учредители выплачивают вознаграждение в размере 20 %.
  • Ограниченная эмиссия токенов – 262.8 млн.
  • На создание блока уходит 1 минута.
  • Алгоритм майнинга – Equihash PoW.
  • Постепенное уменьшение вознаграждения за блок: первый год – 100 BEAM, но в течение 4 лет поощрение уменьшится до 25 BEAM.

Помимо MimbleWimble, BEAM использует систему SBBS. Зашифрованное сообщение, которое передается получателю, содержит открытый ключ для расшифровки канала.

Особенности Grin:

  • Создание блока занимает 1 минуту.
  • Безлимитная эмиссия монет.
  • Фиксированное вознаграждение за блок – 60 Grin.
  • Алгоритм для майнинга Cuckoo Cycle PoW.

Грин параллельно использует метод Slates, который требует обмена файлом транзакции из 3 операций и 2 сообщений. Анонимность Grin зависит от среды, в которой передается этот файл.

Ситуация с майнингом для обоих проектов остается пока неопределенной. Команда BEAM использует алгоритм, который должен противостоять ASIC-майнерам. Протокол Grin также направлен на борьбу с асиками, но сама команда заявляет, что в будущем интеграция в сеть ASIC-устройств неизбежна.

В 2018 году появился гибридный алгоритм, который позволяет решить проблему майнинга на асиках. Он сочетает в себе оптимизированный под ASIC протокол Cuckatoo 31+ и Cuckaroo 29, который поддерживает конкурентоспособность GPU.

Возможно, разработчикам двух команд удастся не допустить интеграцию ASIC устройств и увеличение сложности майнинга.

Преимущества и недостатки MimbleWimble

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

Но не все так просто с MimbleWimble. Есть недостатки, которые усложняют работу протокола, в частности:

  • Для подписания транзакций обеими сторонами, между ними должна быть связь. Это усложняет отправку платежей, по сравнению с Биткоином.
  • Обработка WM-транзакций усложняет создание многосторонних платежей, поскольку все стороны должны общаться между собой.
  • Когда WM-транзакции публикуются в подтвержденном пуле, входы и выходы по-прежнему открыты. Майнеры должны создавать блоки таким образом, чтобы скрыть часть этой информации. В подтвержденном блоке будет меньше входов и выходов, при этом они смешаются, чтобы затруднить распознание автора транзакции. Но изъян в том, что есть возможность учета транзакций из неподтвержденного пула. Эти данные могут быть использованы для подробного анализа информации.

Многие правительства и компании, например, Chainalysis, могут быть заинтересованы в сборе и хранении этих данных. Ведь очень выгодно быть владельцем информации, которую большинство людей считают анонимной.

Сравнение MimbleWimble с другими механизмами сохранения конфиденциальности

Чтобы понимать, почему гарантия безопасности MW уступает другим проектам, необходимо их сравнить. Самые известные конфиденциальные проекты – Monero и Zcash. Для достижения анонимности они используют 2 разных подхода.

Monero

Проект использует конфиденциальные транзакции Ring и скрытые адреса. Чтобы скрыть подпись отправителя, используется метод кольцевой подписи. Сумма скрывается с помощью техники конфиденциальности транзакций (СТ). Фактически, NW-сокрытие количества монет является аналогом СТ. Адрес получателя видим только участникам процесса.

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

ZCash

Платформа Zcash предлагает экранированные транзакции, которые имеют самые высокие показатели анонимности. В этом мнении сходятся практически все эксперты. Не вдаваясь во многие технические нюансы, экранированные транзакции можно упростить до зашифрованных. Шифрование происходит до того, как монеты покидают кошелек. Скрывается абсолютно вся конфиденциальная информация.

Но сеть все еще может проверить транзакцию, чтобы убедиться, что отправитель является владельцем монет. Это осуществляется при помощи Zk-SNARKS доказательства с нулевым значением. Основная проблема заключалась в том, что данная вычислительная задача была дорогой для генерации экранированных адресов в сети ZCash. Но недавно разработчики интегрировали обновление Sapling, которое снижает сложность вычислений и позволяет эффективнее использовать экранированные транзакции ZCash.

Заключение

Протокол MimbleWimble направлен на конфиденциальность и повышение масштабируемости. Это достигается за счет использования инновационных механизмов, таких как CoinJoin, дискретное логарифмирование, техника конфиденциальности транзакций и т. д.

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

MimbleWimble имеет интересные функции конфиденциальности, которые грамотно реализованы в BEAM и Grin. Команды этих проектов стараются доказать, что WM может достичь баланса между анонимностью и простотой. Но в текущем состоянии, гарантия конфиденциальности ниже, чем у Zcash или Monero, хотя это может измениться в будущем. Для этого разработчикам нужно работать над совершенствованием протокола WM.

Источники

https://www.tokendaily.co/blog/mimblewimble-the-good-and-the-bad

https://bitnovosti.com/2019/06/14/mimblewimble-istoriya-tehnologiya-i-majning/

https://bytwork.com/articles/chto-takoe-mimblewimble

https://cryptocurrency.tech/chto-takoe-mimblewimble/

Сохранить статью

о Дмитрий Шустов

Автор популярных материалов на различных криптовалютных и блокчейн площадках. Интересуюсь данной сферой с 2015 года. Трейдер-аналитик. Junior-программист. Окончил Московскую школу экономики. Работаю в АНО "Рейтинговое агентство оценки проектов цифровой экономики".

Отправить ответ

avatar
  Подписаться  
Уведомление о