Спецификация протокола Mimblewimble для проекта Grin
На связи CEO AXIOMA GROUP - Eвгений Павленко.
Проект Grin, реализующий протокол Mimblewimble, похоже, обеспечивает самый высокий уровень приватности блокчейна из ныне существующих. 15 января он запустил свой mainnet.
Заинтересовавшись, я решил изучить спецификацию протокола Mimblewimble и документацию проекта Grin, пробовал запускать ноду, майнер и пользоваться кошельком. Хочу коротко поделиться тем, что я узнал.
Для кого эта статья:
- Для тех, кто ничего не слышал о Grin или 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 и налогами. Поэтому сейчас, наверное, острая необходимость в свойствах таких криптовалют и возможности их применения есть у каких-то чёрных и серых рынков.
- Смущает необходимость обмена файлами или прямой коммуникации нод для отправки/получения монет, так как при этом может быть нарушена приватность. Хотя этот вопрос решаем другими техническими средствами.
Полезные ссылки:
- Сайт проекта: https://grin-tech.org/
- Документация проекта: https://github.com/mimblewimble/docs/wiki/Getting-Started-With-Grin%3A-Links-and-Resources
- Описание токеномики: https://github.com/mimblewimble/docs/wiki/Monetary-Policy
- Изначально сформулированная идея от Tom Elvis Jedusor (псевдоним): https://download.wpsoftware.net/bitcoin/wizardry/mimblewimble.txt
- White Paper Mimblewibmle от Андрю Прэлстра: https://download.wpsoftware.net/bitcoin/wizardry/mimblewimble.pdf
- Введение в Mimblewimble и Grin от авторов проекта Grin: https://github.com/mimblewimble/grin/blob/master/doc/intro.ru.md