Настало время для моего исследовательского отчёта за февраль. Как обычно, я выражаю сообществу свою благодарность за поддержку исследований в области прикладной криптографии. Можно сохранять данные, используя различные системы доказательства. Мною был написан код, позволяющий делать это при помощи Bulletproofs, Triptych с одним входом, Triptych со множеством входов, RCT3 с одним входом и RCT3 со множеством входов. Предлагаемый код может применяться для хранения анонимных данных, предназначенных для подписантов и доказывающих сторон для дальнейшего восстановления. В случае с CLSAG с целью расширения функционала кошелька, предназначенного только для просмотра, может использоваться соответствующий метод, позволяющий идентифицировать исходящие транзакции на выборной (opt-in) основе. Это может оказаться полезным с точки зрения дальнейшей разработки кошелька без согласованного изменения или дополнительного увеличения размера транзакций. Был обновлён код C++, в котором был отделён домен хеш-функций, а также проведена общая чистка. Другая ветка CLSAG была ускорена путём прямого объединения вспомогательных обязательств при верификации подписи (подобная ветка MLSAG, к сожалению, не была улучшена подобным образом.) Значительная часть исследовательской работы была сфокусирована на доказательствах транзакций, которые будут использоваться в выбираемой (opt-in) информации, касающейся данных транзакции. Мною было начато техническое описание существующих методов доказательства входящих и исходящих данных. В связи с этим мною также были переписаны доказательства Шнорра, и это было сделано таким образом, чтобы они предусматривали отделение домена хеш-функций и надлежащую структуру запроса; это было включено в пул-реквест, связанный с тестированием и интеграцией кошелька. Отдельно мною был написан тестовый вариант реализации более безопасного (если сравнивать с существующими) метода доказательства статуса траты выхода. Некоторые перспективные протоколы транзакций потребуют изменения формата образов ключей, что представляет собой определённую проблему с точки зрения структуры мультиподписи. С целью решения этой проблемы я пересмотрел изначальную идею протокола вычисления структуры образа ключа с привлечением множества сторон, чтобы протокол стал устойчивее к действиям злоумышленников. А вот ряд описаний и более хороший пример реализации этого протокола. В связи с протоколами транзакций мною были использованы данные блокчейна, предоставленные сотрудниками лаборатории Noncesense Research Lab. Эти данные позволили произвести непосредственную оценку роста блокчейна и времени верификации в случае с различными возможными решениями протокола. Соответствующий код анализа выложен в доступ. Было ещё множество менее значимых, но интересных моментов. Одним из них стало рассмотрение возможного способа противодействия атаке Януса. Также мною была подготовлена презентация, которая может быть представлена на грядущей Monero Konferenco, рассмотрен обновлённый материал для следующей редакции «Monero с нуля» и пул-реквест по Dandelion++. В этом месяце прошла «Стэнфордская конференция по блокчейн-технологии» (Stanford Blockchain Conference), и некоторые особо интересные выступления были сняты на видео. Мною был написан короткий пул-реквест для улучшения отделения домена хеш-функций во всей кодовой базе. А теперь переходим в «Читательский уголок Саранга». Я предлагаю вашему вниманию короткий список интересных статей, на которые я наткнулся в этом месяце. Наличие статьи в этом списке не означает, что я одобряю её или даже что я согласен с её содержанием или выводами. Названия статей приводятся в произвольном порядке. Authenticated Data Structures for Privacy-Preserving Monero Light Clients (Аутентифицированные структуры данных для лёгких клиентов анонимной криптовалюты Monero) Double-Base Chains for Scalar Multiplications on Elliptic Curves (Двухосновные последовательности для скалярного умножения на эллиптических кривых) Recursive Proof Composition without a Trusted Setup (Рекурсивное построение доказательства без доверенных настроек) Efficient polynomial commitment schemes for multiple points and polynomials (Эффективные схемы полиномиального обязательства для множества точек и полиномов) Bandwidth-efficient threshold EC-DSA (Пороговый алгоритм EC-DSA с эффективным использованием полосы пропускания) On the Profitability of Selfish Mining Against Multiple Difficulty Adjustment Algorithms (По вопросу прибыльности «эгоистичного» майнинга относительно алгоритмов со множественной корректировкой сложности) A Refined Analysis of Zcash Anonymity (Более совершенный анализ анонимности ZCash) Triptych: Comparing Anonymous Transaction Protocols from Linkable Ring Signatures (video talk) (Triptych: сравнение протоколов анонимных транзакций на основе связываемых кольцевых подписей — видео) Zendoo: a zk-SNARK Verifiable Cross-Chain Transfer Protocol Enabling Decoupled and Decentralized Sidechains (Zendoo: протокол верифицируемой передачи данных между блокчейнами на базе zk-SNARK, позволяющий создавать разделённые и децентрализованные сайдчейны) Threshold Ring Signatures: New Definitions and Post-Quantum Security (Пороговые кольцевые подписи: новые определения и постквантовая безопасность) Trustless Groups of Unknown Order with Hyperelliptic Curves (Не требующие доверия группы неизвестного порядка и гиперэллиптические кривые) Источник: Sarang: research funding for 2020 Q1 Перевод: Mr. Pickles (@v1docq47) Редактирование: Agent LvM (@LvMi4) Коррекция: Kukima (@Kukima)