Библиотека

Содержимое страницы

Книги

books

Опубликовано: 4 апреля 2020 года с исходным кодом LaTeX.

Аннотация: Комплексное концептуальное (и техническое) объяснение Monero. Мы стремимся научить любого, кто знаком с базовой алгеброй и простыми понятиями информатики, такими как «битовое представление» числа, не только тому, как работает Monero на глубоком и всеобъемлющем уровне, но также и тому, насколько полезной и красивой может быть криптография.

Опубликовано: 26 июня 2018 года с исходным кодом LaTeX.

Опубликовано: 26 июня 2020.

Аннотация: Руководство по, казалось бы, сложному миру Monero.

Оно включает:

  • внедрение в блокчейн и обьяснение важности конфиденциальности;
  • обсуждение недостатков Bitcoin и решения этих проблем со стороны Monero;
  • истории пользователей (иллюстрирующие, как Monero защищает вашу конфиденциальность), примеры из личного опыта, юридические / этические обсуждения и фрагменты кода, отображающие ключевые технические концепции;
  • подробная информация о децентрализованной сети Monero, одноранговой архитектуре, жизненном цикле транзакций и общих принципах безопасности;
  • введение в технические основы Monero, предназначенные для разработчиков, инженеров, архитекторов программного обеспечения или просто любопытных пользователей;
  • вся информация о новых, и внедреннымх технологиях, таких как Kovri, Bulletproofs (пуленепробиваемый), Multisignature (мультиподписи), аппаратные кошельки и других.

Опубликовано: 29 апреля 2020 года.

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


Шпаргалки Monero

cheatsheet

Аннотация: Что-то между общей картиной и математическим представлением. Одностраничный документ в ключе различных адресов, ключей (приватных/публичных, траты/просмотра, в цепочках и за их пределами, кошельков/покупателей), их областей применения и взаимосвязи между собой.

Аннотация: От универсальной устаревшей подписи до CLSAG. Визуально-целостное путешествие по структуре колец с пошаговым отображением их основных свойств на инфографике размером с плакат.

Аннотация: Рецепт восхитительной RingCT (type 5) транзакции: добавить один CLSAG на каждые одиннадцать UTXO, Moneroj - по вкусу, перемешать всё с помощью обязательств Педерсена. Стоит отметить, что тонкий рецептурный баланс должен быть понятен и для официантов, и впоследствии добавьте в качестве глазури BulletProof; использовать совместно со скрытыми адресами. Пробу снимать не ранее, чем через десять блоков. Приятного аппетита!

Аннотация: Теория доказательств с нулевым разглашением необходима для полного понимания того, как работает Bulletproofs. Кроме того, теория доказательств с нулевым разглашением сама по себе является очень интересной областью, закладывающей основы для многих крутых технологий.


Исследовательские документы и бюллетени

research

Аннотация: Мы анализируем некоторые свойства безопасности протокола Monero в контексте возможностей квантовых компьютеров и используемых ими алгоритмов, включая алгоритм Шнорра, алгоритм Гровера, алгоритм Саймона, квантовый дифференциальный криптоанализ и квантовый доступ к случайным оракулам.

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

Нами также рассматриваются несколько возможных постквантовых настроек: использование криптографии на основе решёток, многовариантной криптографии, криптографии на основе хеширования, а также криптографии на эллиптических кривых с суперсингулярной изогенией. Среди альтернативных протоколов рассматриваются ZK-STARKs, MatRiCT, Raptor-512 и RingRainbow. На основе размера подписи/доказательства, размера публичных ключей, времени генерирования и верификации нами исследуются общие компромиссы и сравниваются возможные протоколы. для заинтересованного читателя нами предлагается простой вариант реализации алгоритмов Шнорра, Гровера и Саймона на языке Python, а также результаты, полученные нами для коммерческого квантового аппаратного обеспечения.

Аннотация: Monero — одна из первых и самых популярных криптовалют, решающих проблемы анонимности, присущие другим монетам, таким как Bitcoin. Monero имеет рыночную капитализацию более одного миллиарда долларов США и, по данным CoinMarketCap, на 17 апреля 2019 оценивается как 12-я из самых ценных криптовалют. Эта цифровая монета обеспечивает различные механизмы защиты пользователей, такие как сложные ключи или миксины, позволяющие скрыть входы транзакций. Однако, несмотря на все попытки защитить анонимность пользователей Monero, нападения, направленные на отслеживание транзакций, по-прежнему возможны. Наш вклад состоит из двух частей. Во-первых, мы предлагаем и оцениваем новый вариант флуд-атаки, направленный на отслеживание транзакций, FloodXMR.

Во-вторых, нами приводится анализ затрат, необходимых проводящему атаку для реализации FloodXMR. Мы демонстрируем, как проводящий атаку может в своих интересах использовать протокол Bulletproof Monero, снижающий размер комиссий за проведение транзакций, чтобы «наводнить» сеть собственными транзакциями и в последствии удалить миксины из входов транзакций. При заданных временных рамках атаки, составляющих 12 месяцев, полученные нами результаты демонстрируют, что злоумышленник может отследить до 47,63% входов транзакций при затратах всего 1746,53 долларов США. Кроме того, мы также показываем, что наш алгоритм отслеживания повлиял более чем на 90% входов.

Аннотация: Нами предлагается модификация протокола приватных транзакций Lelantus, обеспечивающая приватность получателя, более высокий уровень безопасности, а также дополнительные практичные свойства. Наша схема децентрализованных анонимных платежей (DAP), Spark, предусматривает наличие неинтерактивной одноразовой адресации, скрывающей адрес получателя при совершении транзакций. Модифицированный формат адреса обеспечивает гибкость видимости транзакций. Владельцы адресов могут при желании без ущерба для безопасности позволить третьим сторонам просматриваться входящие или все транзакции, связанные с адресом; эта функциональная возможность позволяет снизить нагрузку, связанную со сканированием блокчейна и вычислением баланса, не делегируя полномочий стороны, осуществляющей трату средств. Также предусматривается возможность делегирования затратных операций, связанных с доказательством, без ущерба для полномочий стороны, осуществляющей трату средств, при построении транзакций. Кроме того, техническое решение совместимо со схемой проведения операций с простой линейной мультиподписью, что позволяет взаимно не доверяющим друг другу сторонам совместно принимать и строить транзакции, связанные с адресом с мультиподписью. Нами приводятся доказательства того, что Spark соответствует формальным свойствам безопасности DAP с точки зрения баланса, невозможности внесения изменений и единообразия данных в реестре.

Аннотация: Атаки, направленные на формирование каскадного эффекта (PETS' 18) на механизмы обеспечения неотслеживаемости Monero, можно предотвратить двумя способами. Первый подразумевает увеличение минимального размера кольца для каждого входа: с 3 (версия 0.9.0) до 7 при последнем обновлении (версия 0.12.0). Второй подход заключается в реализации кольцевых конфиденциальных транзакций, повышающих гарантии обеспечения анонимности. Тем не менее до настоящего времени не было проведено формального анализа уровня анонимности, обеспечиваемого новыми контрмерами, используемыми Monero. Кроме того, так как Monero является единственным примером ведущего блокчейна на базе CryptoNote, фактическая гарантия анонимности, обеспечиваемой другими похожими блокчейнами, на практике остаётся неизвестной.

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

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

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

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

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

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

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

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

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

Нами приводятся некоторые варианты применения в рамках моделей конфиденциальных транзакций с сокрытием подписанта, не требующих доверенных настроек.

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

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

Также в работе нами представлен вариант реализации thring-подписей, называемый нами связываемыми спонтанными пороговыми анонимными групповыми подписями, а также приводится доказательство того, что такие подписи экзистенциально невозможно подделать.

Аннотация: В данном бюллетене описана модификация схемы связываемых кольцевых подписей Monero, позволяющей включать в кольцо выходы с двойными ключами. Образы ключей привязаны к обоим одноразовым публичным ключам попарно, что не позволяет потратить оба ключа, используемые в транзакции, по отдельности. Этот метод применим к неинтерактивным транзакциям возмещения. Нами рассматривается, как использование этой схемы влияет на безопасность.

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

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

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

Аннотация: В этой работе предлагается метод сокрытия сумм транзакций предельно децентрализованной анонимной криптовалюты Monero. Подобно Bitcoin, Monero является криптовалютой, распределяемой при помощи процесса «майнинга» с доказательством работы (proof of work). Оригинальный протокол Monero был основан на протоколе CryptoNote, использующем кольцевые подписи и одноразовые ключи для сокрытия адреса назначения и происхождения транзакции. Недавно технология использования схемы обязательств для сокрытия суммы транзакции была рассмотрена и реализована ведущим разработчиком Bitcoin Грегори Максвеллом (Gregory Maxwell).

В этой работе описан новый тип кольцевой подписи - подпись многоуровневой, связываемой, спонтанной анонимной группы (Multi-layered Linkable Spontaneous Anonymous Group). Такая подпись позволяет скрыть сумму, исходный адрес и адрес назначения транзакций с разумной эффективностью и возможностью верификации генерации монеты, не требующей доверия. Предлагается реализация некоторых расширений протокола, например, совокупных доказательств диапазона Шнорра (Aggregate Schnorr Range Proofs) и кольцевых мультиподписей (Ring Multisignature). Автор хотел бы отметить, что ранние варианты этих решений уже публиковались на исследовательских IRC каналах Monero Community и Bitcoin. Хешированные варианты блокчейна приводятся в работе [14], и можно увидеть, что работа началась ещё летом 2015, а завершилась в начале октября 2015. Версия ePrint также доступна на сайте http://eprint.iacr.org/2015/1098.

Аннотация: Нами было выявлено несколько путей атаки, позволяющих проводить анализ блокчейна и способствующих снижению уровня неотслеживаемости протокола CryptoNote 2.0. Мы проанализировали возможные решения, обсудили соответствующие достоинства и недостатки этих решений и представляем свои рекомендации по улучшению протокола Monero, которые, как мы надеемся, обеспечат долгосрочную защиту блокчейна криптовалюты от анализа.

Рекомендуемые нами улучшения предполагают применение политики минимального смешивания по всей сети на уровне протокола, то есть использование n = 2 посторонних выходов на подпись. Спустя два года на уровне протокола это значение вырастет до n = 4, а на уровне кошелька в это время значение n = 4 будет использоваться по умолчанию. Мы также рекомендуем при отправке выходов Monero использовать метод, подобный торренту. Нами также обсуждался метод выбора миксинов на основе их отличия и «возраста». Этот метод позволит избежать других форм анализа блокчейна, о которых говорится в работе. Однако по ряду причин мы не даём каких-либо формальных рекомендаций по реализации. Относительно подробно нами были рассмотрены и результаты таких улучшений. Этот исследовательский бюллетень не проходил независимой технической экспертизы и отражает исключительно результаты внутренних исследований.

Аннотация: Недавно по сети Интернет расползлись страх и сомнения в отношении исходного кода и протокола CryptoNote. Причиной послужил тот факт, что данный протокол сложнее, чем, скажем, протокол, лежащий в основе Bitcoin. Этот бюллетень должен был развеять некоторые заблуждения, а также снять некую завесу тайны, покрывающую кольцевые подписи Monero. Начну со сравнения математической основы кольцевых подписей CryptoNote (как она описана в [CN]) с математическими вычислениями, приводимыми в [FS], на которых основан сам протокол CryptoNote. После этого я сравню математическую основу кольцевой подписи с той, что фактически лежит в основе кодовой базы CryptoNote.

Аннотация: 4 сентября 2014 года против сети Monero была проведена необычная атака совершенно нового типа. В результате этой атаки сеть была разбита на две чёткие подсистемы, каждая из которых отказывалась признавать законность другой. Это повлекло за собой мириады последствий, не все из которых известны и по сей день. У злоумышленника было небольшое окно времени, которого бы хватило, например, на создание подделки. В этом исследовательском бюллетене описаны недостатки кода CryptoNote, которые делают возможным проведение такой атаки, а также решение, изначально предложенное Рафалем Фримэном (Rafal Freeman).

Аннотация: В этом исследовательском бюллетене описаны вероятные способы атаки на систему анонимности, основанную на использовании кольцевых подписей. В качестве примера нами рассматривается протокол CryptoNote 2.0, используемый криптовалютой и якобы опубликованный Николасом ван Саберхагеном (Nicolas van Saberhagen) в 2012 году. Ранее уже было продемонстрировано, что неотслеживаемость, позволяющая скрыть пару одноразовых ключей, может зависеть от неотслеживаемости всех ключей, используемых при составлении кольцевой подписи. Это может стать причиной цепной реакции, которая будет выражаться в отслеживаемости кольцевых подписей, что грозит критической утратой свойства неотслеживаемости всей сети при условии неправильно выбранных параметров, а также если злоумышленник контролирует достаточный процент сети. Тем не менее подписи так и останутся одноразовыми, поэтому совсем необязательно такая атака поставит под угрозу анонимность пользователей. Однако подобная атака, вероятно, сможет ослабить защиту блокчейна, которую обеспечивает CryptoNote, от анализа. Этот бюллетень не проходил независимой технической экспертизы и отражает исключительно результаты внутренних исследований.

Аннотация: Monero использует уникальную хеш-функцию, которая преобразует скалярные величины в точки на эллиптической кривой. В частности, она используется для создания образов ключей. В этом документе, автором которого является Шен Ноезер, приводится преобразование его варианта реализации кода (функции ge_fromfe_frombytes_vartime()) в математические выражения.