Mimblewimble: всё, что вы хотели знать, но боялись спросить

На связи CEO AXIOMA GROUP - Eвгений Павленко.

Проект Grin, реализующий протокол Mimblewimble, похоже, обеспечивает самый высокий уровень приватности блокчейна из ныне существующих. 15 января он запустил свой mainnet.

Заинтересовавшись, я решил изучить спецификацию протокола Mimblewimble и документацию проекта Grin, пробовал запускать ноду, майнер и пользоваться кошельком. Хочу коротко поделиться тем, что я узнал.

Для кого эта статья:

  • Для тех, кто ничего не слышал о Grin или Mimblewimble: вы узнаете об их существовании и о том,чем они интересны.
  • Для тех, кто слышал, но подробно не разбирался:основные свойства и факты, собранные в одной небольшой статье, помогут вам получить более целостное представление.

Основные свойства протокола и проекта:

  • Скрыта вся история транзакций - существуют только транзакции создания монет и список не истраченных выходов транзакций (UXTO). Все промежуточные данные откидываются (используется концепция “прорезания“ - “cut-through”).
  • Скрыты суммы транзакций - за счёт того, что входы и выходы умножаются на случайное число (blinding factor, который является приватным ключом) (Pedersen Commitment - схема Обязательства Педерсена), а доказательство валидности транзакции осуществляется за счёт проверки нулевых сумм (сумма выходов минус сумма входов должно равняться нулю) и доказательства интервала (Range Proofs - доказательство того, что число входит в определенный диапазон без раскрытия данного числа), которое прикрепляется к транзакции.
  • Все входы и выходы разных транзакций внутри одного блока перемешаны - блок не хранит в явном виде структуру транзакций, благодаря чему невозможно определить, какой выход передаёт монету какому входу.
  • Адресов не существует - доказательство владения осуществляется за счёт использования публичного ключа получателя при создании выходов транзакции отправителем.

Отправляют и получают токены двумя способами:

1. С помощью ручного обмена файлами транзакций между отправителем и получателем. Отправитель генерирует файл транзакции, шлёт получателю, получатель создает файл ответа, шлёт отправителю, отправитель финализирует транзакцию и постит её в сеть.

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

Всё это даёт:

  • Высочайший уровень приватности.
  • Полную взаимозаменяемость монет - так как невозможно установить историю каждой монеты (в отличие от биткойна, где новые смайненные монеты могут стоить дороже тех, которые прошли через даркнет).
  • Отличную масштабируемость - объём блокчейна небольшой и не будет расти слишком сильно, так как хранятся только транзакции создания монет и UXTO. Все промежуточные данные откидываются.

Другие свойства, особенности и факты:

  • Приватная публикация транзакций - за счёт отправления её случайному списку пиров.
  • Алгоритм майнинга Cuckoo Cycle proof of work не подвержен ускорению с помощью квантового компьютера (Grover's search algorithm). Является самым простым из известных PoW алгоритмов - всего 42 строчки кода - примерно в два раза меньше чем SHA256, Blake2b или SHA3 (Keccak), используемые в Bitcoin, Equihash and ethash. Есть реализации алгоритмов для ASICов и видеокарт. Предполагается, что вначале 90% блоков будет майниться с на GPU и 10% на ASIC, а в течение двух лет произойдет плавный переход к 0% GPU и 100% ASIC.
  • Вознаграждение за майнинг фиксированное и на данный момент составляет 60 GRIN.
  • Объём эмиссии будет расти линейно и бесконечно.
  • Среднее время создания блока 1 минута.
  • Комиссия за транзакцию основана на количестве созданных/уничтоженных выходов и общем размере транзакции.
  • Mimblewible не поддерживает скрипты, но мультиподписи, атомарные свопы, Lighning Network и временные локи реализуемы благодаря свойствам используемой в протоколе криптографии на Эллиптических кривых.
  • При установке ноды, кошелька и майнера никаких проблем у меня не возникло, всё поставилось и запустилось как описано в документации. Ставил и запускал бинарники на MacOS Mojave 10.14.2.
  • Документация достаточно подробная и качественная, некоторые страницы переведены на несколько языков, в том числе русский.

Интересные факты из истории:

  • В книге «Гарри Поттер и дары смерти» Mimblewimble - это заклятие косноязычия, которое связывает язык жертвы, не позволяя сказать ни слова.
  • Автор идеи, опубликованной 2 августа 2016 года, аноним под псевдонимом Tom Elvis Jedusor, что является именем Волан-де-Морта во французских изданиях «Гарри Поттера».
  • Эндрю Поелстра, автор White Paper протокола Mimblewimble, опубликованного 6 октября 2016 года, - разработчик из компании BlockStream.
  • Автор и главный разработчик проекта Grin - аноним под псевдонимом ignopeverell (Игнотус Первелл - обладатель мантии-невидимки в книгах о Гарри Поттере). В конце 2016 года он начал вести GitHub-аккаунт проекта Grin.
  • В проекте отсутствует какая-либо модель монетизации и не проводится ICO.
  • Разработка проекта ведётся на пожертвования.
  • Существует второй проект, реализующий протокол Mimblewimble, - Beam. Он запустил Mainnet 3 января 2019 года. Разработкой проекта занимается команда, финансируемая на венчурные инвестиции.

Моё личное мнение:

  • Технология приватности Mimblewimble меня поражает и вдохновляет, так как мне близки идеи шифропанков о том, что наша приватная информация и наши деньги должны принадлежать только нам.
  • То, что авторы данной криптовалюты анонимны и разработка финансируется на пожертвования, может очень хорошо повлиять на её децентрализацию и живучесть. Может получиться такой же сетевой эффект, как у Биткойна. Видимо, этого авторы и добиваются.
  • Однако на данный момент не ясна целевая аудитория полностью приватных монет. Это не очень вписывается в сегодняшний мир с его процедурами KYC/AML и налогами. Поэтому сейчас, наверное, острая необходимость в свойствах таких криптовалют и возможности их применения есть у каких-то чёрных и серых рынков.
  • Смущает необходимость обмена файлами или прямой коммуникации нод для отправки/получения монет, так как при этом может быть нарушена приватность. Хотя этот вопрос решаем другими техническими средствами.

Полезные ссылки:

 

16 января 2019
Последние посты