Перевод В Monero внедрили Bulletproof

Тема в разделе "Статьи", создана пользователем AgentLvM, 23 окт 2018.

  1. AgentLvM

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

    Регистрация:
    19 авг 2017
    Сообщения:
    59
    Симпатии:
    39
    1.jpeg

    Полный обзор технологий, используемых в Monero, а также значимости новой системы доказательства диапазона под названием Bulletproofs.

    Пару недель назад мы поделились некоторыми выводами в нашем отчете о Zcash и убедились в работоспособности его технологии. Хотя мы никогда не планировали как-то дискредитировать Monero, безусловно часть людей из сообщества восприняли данный отчет именно в таком свете, особенно после того, как СМИ раскрутили эту историю.

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

    Тем не менее мы придерживаемся того, что мы говорили в нашем публичном сообщении о Zcash: использование zk-SNARK – практически единственный способ полностью отменить привязку личности к транзакциям в цифровой валюте. Эта позиция не должна рассматриваться как спорная или как дискредитация Monero. На самом деле, я сомневаюсь, что любой серьезный специалист по криптографии стал бы бросать вызов этому предположению. Но как мы узнали в нашем отчете о ZEC, существуют серьезные недостатки в таком подходе, например, необходимость в процедуре генерации доверенного параметра.

    Сообщество Monero выступает категорически против любых доверительных параметров. Однако такая позиция не помешала проекту экспериментировать с равноценно сложными технологиями. В сообществе в целом есть заблуждение, что Monero основано на устоявшихся и простых для понимания технологиях, тогда как Zcash основывается на экспериментальном подходе. Однако в действительности в обоих проектах проводятся довольно смелые эксперименты. На самом деле, как мы выясним в этой статье, Monero и Zcash собираются стать «братьями» после недавней активации в сети Monero нового доказательства диапазона Bulletproofs.

    Bulletproofs – очень нужная вещь, поскольку она позволит увеличить конфиденциальность транзакций в цифровой валюте и в то же время значительно уменьшит их размер. Но чтобы в полной мере оценить важность этого обновления, позвольте мне сначала перейти к трем ключевым технологиям, которые Monero использует в настоящее время для обеспечения конфиденциальности: кольцевые подписи (Ring Signatures), конфиденциальные транзакции (Confidential Transactions) и скрытые адреса (Stealth Addresses).

    2.png
    Идея схемы кольцевых подписей (Ring Signature) очень проста и в то же время очень мощная. Истинный отправитель сообщения объединяет свою собственную подпись с несколькими другими подписантами для создания единой цифровой подписи. Эта единая цифровая подпись представляет собой единую идентификационную группу. Пионер электронных денег Дэвид Шаум и исследователь Евгений Ван Хейст впервые описали такую систему в статье 1991 года, когда они работали с правительством Нидерландов над псевдо-криптографической системой голосования.

    Почти десять лет спустя, в 2001 году, Рональд Ривест, Ади Шамир и Яэль Тауман расширили концепцию групповых подписей в статье под названием «Как раскрыть секрет». В статье они изображали ситуацию, когда Боб, чиновник правительства Kryptonia, хочет раскрыть сочную тайну о премьер-министре страны в средствах массовой информации, но не хочет, чтобы его личность была скомпрометирована. Для этого Боб создает схему кольцевой подписи, состоящую исключительно из правительственных чиновников, все из которых подтвердили идентификационные данные и подписи. Когда сообщение подписывается любым из них, другие лица извне могут проверить, что отправитель действительно является официальным лицом, но все члены в равной степени могут быть авторами.

    Как оказалось, кольцевые подписи (Ring Signatures) также могут применяться к цифровым валютам. Схема кольцевой подписи, описанная в оригинальной белой бумаге CryptoNote, концептуально похожа на описанную выше систему, но в ней конкретно используется реализация прослеживаемых кольцевых подписей, разработанная исследователями Фуджисаки и Сузуки в статье 2006 года. Эта схема предоставила больше гибкости и конфиденциальности для кольцевых подписей, но основная идея остается прежней: скрыть связь конкретного подписанта с текстом в сообщении.

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

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

    3.png
    В терминологии Monero подпись приманок, извлеченных из прошлых транзакций, называется смешиванием (mixin). В гипотетической транзакции на картинке выше значение количества смешиваний (mixin count) установлено в 8, то есть 7 прочих подписей являются ложными в дополнение к реальной подписи отправителя. Обратите внимание, что это своего рода система объединения подписей, когда конфиденциальность достигается путем сокрытия реального отправителя транзакции. Уровень конфиденциальности зависит от количества смешиваний, которые пользователь включает в транзакцию.

    В ранней истории Monero пользователям разрешалось установить 0 смешиваний в своих транзакциях или, другими словами, создавать кольцевую подпись, состоящую исключительно из подписи истинного отправителя. Майнинг-пулы использовали 0 смешиваний при распределении средств для третьей стороны, которая не требовала функций конфиденциальности. Однако как изначально обнаружили в исследовательской лаборатории Monero, такие транзакции раскрывают конфиденциальность всех остальных. В недавней версии протокола для параметра ringize обязательное минимальное значение устанавливалось на значении 7, но пользователи также могли увеличить его по своему усмотрению.

    Помимо кольцевых подписей (Ring Signatures), Monero также использует схему кодирования конфиденциальных транзакций (Confidential Transactions (CT), которая скрывает их суммы. Данная схема получила название RingCT и была активирована в основной (MainNet) сети Monero в январе 2017 года. Это обновление стало значительным технологическим прорывом для Monero, после чего проект существенно превзошел оригинальный протокол CrytpoNote.

    «Кодирование» RingCT это не «Шифрование»

    Чтобы упростить понимание криптографии, я уже использовал слово «шифрование» в для описания NIZKP в контексте Bulletproofs и zk-SNARK. Я также видел, что члены сообщества Monero используют слово «шифрование», чтобы описать, как RingCT скрывает суммы транзакций. Но это не верное слово для описания процесса.

    Несмотря на распространенное мнение, конфиденциальные транзакции (Confidential Transactions) используют «кодирование» (скрытые данные остаются неизменными и поддаются проверке) вместо «шифрования» (скрытые данные обратимы). Вот отличный ресурс, чтобы узнать больше о ключевых различиях обеих методов. На более глубоком уровне фундаментальной основой конфиденциальных транзакций (Confidential Transactions) является криптографический примитив для кодирования под названием обязательства Педерсена (Pedersen Commitment). К слову криптографические примитивы являются фундаментальными блоками систем, которые используют криптографию и состоят из хорошо построенных алгоритмов, таких как хэш-функция SHA-256.

    Схема обязательств Педерсена, используемая в RingCT, обладает аддитивно гомоморфным свойством, которое очень просто позволяет объединять множество входов-приманок путем их последовательного добавления. Это гарантирует, что один из закодированных входов является допустимым / действительным, и что отправитель не совершает двойную трату или не создает XMR из воздуха. Побочным продуктом этого процесса является доказательство диапазона (range proof), которое подтверждает, что сумма, зафиксированная данным обязательством Педерсена, находится в определенном диапазоне и не является отрицательным числом.

    Для схемы конфиденциальных транзакций также требуется специальная подпись для всех закодированных данных внутри транзакции; тип подписи, называемый сигнальной меткой кольца Борромина (Borromean Ring). Это значит, что при генерации кошельком Monero кольцевой конфиденциальной транзакции не только собираются вместе подписи всех участников кольца, но и суммы каждого входа, что позволяет эффективнее скрывать сумму транзакции.

    Эта идея восходит к 2013 году, когда соучредитель Blockstream и изобретатель HashCash доктор Адам Бэк предложил на BitcoinTalk.org систему «биткойнов с гомоморфными значениями», где суммы транзакций могут быть закодированы. В криптографии гомоморфизм часто используется для описания типа шифрования, и поэтому может возникнуть путаница в отношении того, что действительно делают RingCT. В то время как CT в основном предполагались Грегом Максвеллом в контексте Bitcoin. Исследовательская лаборатория Monero сыграла важную роль в тестировании этой технологии, что безусловно также выгодно и для Bitcoin.

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

    Скрытые адреса (Stealth Addresses)

    И хотя RingCT ознаменовал большой отход от стандартной модели CryptoNote, много из функций Monero по-прежнему основаны на нем. Интересным предложением из белой книги CryptoNote была идея «завернутых» («wrapped») адресов для защиты получателей, которые до сих пор используются в Monero. Вместо того чтобы предоставлять истинный адрес получателя, прикрепленный к выходу и отображаемый открыто, как в случае с Bitcoin, отправитель создает временный одноразовый адрес, который может быть идентифицирован только получателем.

    Термин «Скрытый адрес» («Stealth Address») использовался для описания этого механизма, и он обеспечивает продуманный способ скрытия получателя транзакции. Перед передачей платежа XMR отправитель комбинирует открытые ключи получателя со случайным числом в алгоритме генерации ключей, который создает одноразовый ключ. Добавление случайного числа искажает адрес получателя, но получатель все равно может идентифицировать его, как только транзакция будет отправлена в сеть. Только истинный получатель сможет это сделать, сканируя блокчейн для нахождения конкретного набора данных, называемого образом ключа.

    Описанный выше генератор одноразовых ключей основан на обмене ключами по протоколу Диффи-Хеллмана на Эллиптической кривой. В этом случае образ ключа представляет собой идентификатор, который может быть создан и потрачен только предполагаемым получателем, который согласовал общий ключ с отправителем. Когда пользователь отправляет XMR (или любую криптовалюту на основе протокола CryptoNote) получателю, есть один открытый ключ, связанный с этим выходом, и только получатель может воссоздать свою частичную копию ключа.

    Тестовая сеть для Bitcoin-технологий

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

    Фактически Monero в данное время служит более надежным испытательным полигоном для экспериментальных биткойн-технологий, чем Litecoin, который всегда рассматривался как «финансово стимулированная тестовая сеть» для Bitcoin. Начиная с этого года, в Monero начали тестировать еще одну очень сложную часть из области криптографии: Bulletproofs. Эта технология предназначена для решения одного из основных недостатков в RingCT: оптимизации доказательств диапазона, используемых в конфиденциальных транзакциях.

    После завершения работы над схемой конфиденциальных транзакций Грег Максвелл, Эндрю Поелстра и Питер Уйли объединились с исследователями из Стэндфордской прикладной криптографической группы, чтобы сделать ее более эффективной. Их исследования были сосредоточены на применении неинтерактивной системы доказательства нулевого знания (non-interactive zero knowledge proof (NIZKP)) для объединения вместе всех доказательств диапазона конфиденциальных транзакций и совокупного доказательства их достоверности.

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

    В сравнении с zk-SNARK и системой NIZKP концепция, предложенная в WhitePappers Bulletproof, имеет как некоторые преимущества, так и некоторые недостатки. С одной стороны, использование NIZKP Bulletproofs не требует доверительной настройки для создания параметров, таких как формальность Power of Tao, реализованная в Zcash. С другой стороны, проверки в Bulletproof более трудоемки, чем в zk-SNARK.

    Помимо улучшения функций обеспечения приватности в конфиденциальных транзакциях, Bulletproof имеют гораздо меньший размер в сравнении с другими системами доказательств диапазона, используемых на данный момент в сетях блокчейнов. Фактически как и SegWit Bulletproof можно рассматривать как подход к вертикальной масштабируемости, поскольку он может значительно уменьшить размер криптографического доказательства с более чем 10 КБ до менее чем 1 КБ. Технический документ Bulletproof был сосредоточен на применении NIZKP к блокчейну Bitcoin, и было заявлено, что после успешной реализации общий размер данных UTXO Bitcoin будет составлять всего 17 ГБ (по сравнению с 160 ГБ сейчас), если использовать конфиденциальные транзакции.

    Как обсуждалось исследователем из Monero Research Lab (MRL) Сарангом Ноезером в декабре 2017 года, в формате текущего диапазона доказательств размер транзакций XMR масштабируется в основном линейно в зависимости от количества выходов (например: 1 выход = 7kB, 2 выхода = 13kB). В случае использования Bulletproof размеры транзакций будут логарифмически масштабироваться (например: 1 выход = 2 кБ, 2 выхода = 2,5 кБ). Таким образом, эта технология может значительно способствовать масштабируемости Monero.

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

    «Братья» сражаются ...

    Интересное замечание для любителей криптографии: после активации Bulletproof, Monero и Zcash стали «братьями». Оба используют неинтерактивные доказательства нулевого знания (Non-Interactive Zero Knowledge Proofs), которые концептуально происходят от общего предка: эвристики Фиата-Шамира (Fiat-Shamir heuristic). И Zcash, и Monero имеют свои преимущества и недостатки. Не смотря на то, что их часто сравнивают друг с другом, мы считаем, что оба эти проекта преуспеют в долгосрочной перспективе.

    Предупреждение: заключения из материалов данного обзора не являются советами по инвестированию.
    Автор статьи хранит как ZEC, так и XMR.

    Источник: Monero Becomes Bulletproof

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

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