Изнанка MimbleWimble (часть 1)

1_pmyq27olnvkvaf_jsoexyq

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

Впервые он был представлен в IRC-канале #bitcoin-wizards 1 августа 2016 года анонимным автором, скрывающимся за псевдонимом Том Элвис Жедусор (так во французском переводе звучало настоящее имя Волан-де-Морта). Оригинальное предложение было довольно кратким. Основную архитектуру разработчики MimbleWimble позаимствовали у Биткойна, исключив из нее сценарии и добавив конфиденциальные транзакции и концепцию сквозных переводов. В результате они получили поддающийся сжатию и непрозрачный блокчейн.

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

Текущая ситуация

MimbleWimble был создан с целью привнести в Биткойн ряд улучшений с точки зрения масштабируемости и конфиденциальности. Из-за ряда изменений и компромиссов, его включение в сам Биткойн на данный момент невозможно с политической и технологической точек зрения. Впрочем, в будущем вероятна его реализация как сайдчейна Биткойна либо в виде отдельного блокчейна, использующего собственный протокол консенсуса (возможно, через объединенный майнинг), но не собственный токен. Вместо этого, в нем может использоваться валюта Биткойна через двустороннюю привязку.

С учетом того, что в ближайшее время включение проекта в Биткойн маловероятно, обе команды начали работу над автономными реализациями. Анонимный разработчик Игнотус Певерелл, также выбравший себе псевдоним из вселенной Гарри Поттера, возглавляет работу над проектом Grin, имеющим открытый исходный код и не слишком отличающимся от самого Биткойна. Вторая команда работает над инициативой Beam, в большей степени напоминающей Zcash: работа ведется через формально организованную компанию и с использованием вознаграждения для фаундеров, за счет которого финансируются развитие проекта и оплачивается труд разработчиков. Этот проект возглавляет израильский предприниматель Александр Зайдельсон.

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

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

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

Одно из преимуществ MimbleWimble перед Monero или проектами вроде Zcash заключается в том, что он построен на тех же задачах дискретного логарифмирования и предположениях, что и Биткойн. Пока они сохраняют свою силу, Биткойн и MimbleWimble остаются безопасными. MimbleWimble сочетает эти относительно простые криптографические примитивы очень сложными способами, и в результате получается непростая, но элегантная по сути своей система. Чтобы детально разобраться в этом вопросе, нужно хорошо разбираться в криптографии, однако я постараюсь немного приподнять завесу этой тайны.

Задача дискретного логарифмирования

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

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

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

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

В Биткойне и MimbleWimble публичные ключи являются производными приватных. Протокол выбирает точку на эллиптической кривой и обычно называет ее H или G. Такие точки называются генераторными. Приватный ключ представляет собой целое (скалярное) число, выбранное в произвольном порядке из очень большого набора (порядка 2¹²⁸ или больше). Для получения публичного ключа генераторная точка умножается на выбранный скаляр. Именно сложность отмены подобного умножения позволяет подобным системам функционировать. Обратное действие также известно как взятие логарифма, отсюда и название задачи дискретного логарифмирования.

Более подробную информацию об эллиптической криптографии и вышеупомянутой задаче дискретного логарифмирования можно найти в отличном материале (англ.) главы отдела криптографии Cloudflare Ника Салливана.

Криптографическое хеширование

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

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

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

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

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

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

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

Изначально метод конфиденциальных транзакций (CT) был предложен Грегом Максвеллом, криптографом и бывшим CTO проекта Blockstream, с целью обеспечения анонимности транзакций с использованием Биткойна. Он использует схему обязательства Педерсена, в рамках которой значения неизрасходованных выходов в блокчейне Биткойна (UTXO) заменяются криптографическими обязательствами. UTXO представляют собой индивидуальные наборы неизрасходованных средств в блокчейне Биткойна и олицетворяют альтернативный подход к балансам счетов. Криптографическое обязательство связывает пользователя с определенным значением, не раскрывая его. Таким образом, когда (и если) придет время его обнародовать, пользователь не сможет изменить свое мнение касательно этого значения, так как используемым вычислениям будет соответствовать только первоначальная цифра.

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

Впрочем, у этого метода есть и свои недостатки, сопряженные с использованием отрицательных значений. Создание обязательств, связанных с отрицательными числами, позволило бы генерировать денежные средства путем создания двух результатов – например, 10 BTC и –10 BTC – и последующего игнорирования последнего. Метод конфиденциальных транзакций решает эту проблему с помощью техники, именуемой диапазоном доказательства. Иными словами, это криптографический аргумент, подтверждающий, что обязательство принадлежит определенному диапазону. В рамках конфиденциальных транзакций он подтверждает, что сумма обязательства является положительной, но не раскрывает саму цифру. Диапазон доказательств – крупнейшая часть выходных данных конфиденциальных транзакций. Она играет крайне важную роль, гарантируя, что денежная масса не подвергнется серьезной инфляции.

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

 

(Продолжение следует…)

Источник



Рубрики:Анализ, Теория

Метки: , ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s