Новости Bulletproofs+ в Monero

Тема в разделе "Новости", создана пользователем Mr. Pickles, 5 янв 2021.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    941
    Симпатии:
    244
    1.png

    Опубликовал: Саранг Ноезер (доктор наук)
    24 декабря 2020 г.


    Аннотация

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

    Благодаря деятельности некоммерческой организации Multidisciplinary Academic Grants in Cryptocurrencies (Мультидисциплинарные академические гранты в криптовалютной области), сокращённо MAGIC, которая заключалась в координации и поддержке выдачи гранта для реализации данного решения, а также благодаря спонсорам, вносившим свои пожертвования, эта работа стала возможной.

    Ресурсы
    • Препринт Bulletproofs, написанный Бенедиктом Бюнцем, Джонатаном Бутлем, Дэном Боне, Эндрю Поэлстра, Питером Вуйлем и Грегом Максвеллом. Это препринт (который будет опубликован позже после независимой экспертной оценки) служит основой для текущей реализации в рамках протокола Monero.
    • Препринт Bulletproofs+, написанный Хивоном Чонгом, Кюхёном Хана, Чаньянгом Джу, Мёнсоном Кима и Джэ Хон Со. Данный препринт используется в качестве основы для предлагаемой реализации в рамках протокола Monero.
    • Код Bulletproofs+, написанный Сарангом Ноезером. Это код нового варианта реализации, написанный так, чтобы обеспечивать совместимость с кодовой базой Monero.
    • Код, связанный с алгоритмом консенсуса, написанный moneromooo. Этот код необходим для обновления сети, которое позволит включить доказательства Bulletproofs+ в качестве правила консенсуса.
    Доказательство диапазона с нулевым разглашением

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

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

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

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

    Эффективность

    Непосредственное сравнение эффективности доказательств диапазона Bulletproofs и Bulletproofs+ можно осуществить при помощи структуры тестирования производительности, содержащейся в кодовой базе Monero.

    Размер и временные характеристики доказательств диапазона зависят от структуры транзакции, которая их использует. Из-за того, как работают алгоритмы Bulletproofs и Bulletproofs+, в целях доказательства диапазона количество выходов в транзакции эффективно округляется до следующей степени двойки, при этом транзакции могут содержать 16 выходов максимум. Подавляющее большинство транзакций Monero содержит два выхода, но наличие 16 выходов также является обычным делом при выплате пулом и для достижения иных целей.

    Размер

    «Независимо от количества выходов в транзакции, соответствующее доказательство диапазона Bulletproofs+ на 96 байт меньше, чем доказательство диапазона Bulletproofs».

    В этой таблице показано уменьшение размера наиболее распространённых в сети Monero транзакций с двумя выходами.

    Потраченные входыТекущий размерНовый размерСокращение размера в %
    11,42 Кбайт1,33 Кбайт6,60%
    21,92 Кбайт1,83 Кбайт5,10%
    Результаты вновь очевидны. Доказательства диапазона Bulletproofs+ меньше, чем Bulletproofs, что позволяет сэкономить место в блокчейне!

    Время

    Время создания доказательства обычно не вызывает практического беспокойства, поскольку программное обеспечение кошелька делает это только при проведении транзакции. Однако стоит отметить, что доказательства диапазона Bulletproofs+, в случае с двумя выходами (самый распространённый вариант), генерируются на 10,2% быстрее! Время доказательства для другого количества выходов масштабируется почти линейно.

    С другой стороны, время верификации доказательства очень важно! Участникам сети при присоединении к ней и синхронизации с целью получения новых блоков приходится проверять очень большое количество доказательств диапазона. К счастью, доказательства диапазона Bulletproofs+ (как и те, что были в Bulletproofs) можно верифицировать группами, что намного эффективнее, чем по отдельности. Отличие очевидно просматривается.

    В данной таблице показано процентное сокращение времени верификации между алгоритмами Bulletproofs и Bulletproofs+ для доказательств, содержащих разное количество выходов. Тестовые показатели верификации одиночных доказательств - это средние значения, полученные по результатам проведения 10 000 случайных тестов. Тестовые показатели групповой верификации доказательств представляют собой средние значения, полученные по результатам проведения более чем 1000 случайных тестов. При этом каждая группа содержала 64 доказательства. Абсолютное время не указывается, поскольку оно зависит от вычислительной среды; однако относительное время в целом сопоставимо.

    Кол-во выходов на доказательствоОдиночные доказательства, % ускоренияГрупповые доказательства, % ускорения
    21,50%5,30%
    40,50%9,20%
    81,60%9,20%
    160,90%10,80%
    Результаты вновь очевидны. Доказательства диапазона Bulletproofs+ верифицируются быстрее, чем доказательства Bulletproofs, что обеспечивает более быструю синхронизацию!

    Спасибо Mortanta Manolete за разработку логотипа Bulletproofs+ !

    ---

    Источник: Bulletproofs+ in Monero

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 Mr. Pickles, 5 янв 2021
    Последнее редактирование: 5 янв 2021
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.