Обновление Safe Network 🇷🇺 2 сентября 2021 г

Это машинный перевод. Оригинал на английском здесь: Update 02 September, 2021

Последние пару недель мы рискуем получить обновленную информацию о безопасной экономике, и мы рады представить обзор наших текущих взглядов на цифровые сертификаты на предъявителя (DBC). В воздухе все еще витает несколько шаров с пометками «одноразовые ключи» и «номиналы», но мы определенно собираемся разработать работоспособное решение, которое будет быстрым, конфиденциальным и безопасным.

Как и во многих других безопасных инновациях, цели DBC заключаются в простоте и заставлении клиента выполнять работу везде, где это возможно, что обычно сводится к одному и тому же. Мы хотим избежать необходимости хранить состояние (например, остатки на счетах) в сети или прибегать к условной логике, что порождает сложность. Вместо этого мы внедряем Anti-Entropy во многих коммуникациях, где поток следующий: попробуй -> успех (продолжай) | fail (retry) , а отслеживание состояния - задача Клиента.

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

Общий прогресс

Мы пытаемся решить периодически возникающую проблему, когда разные старейшины в разделе получают разные сообщения от одного и того же узла (этого не должно происходить) и / или выбирают разных взрослых для хранения одного и того же фрагмента. Также старейшины иногда пишут данные, что является работой взрослых. @Qi_Ma и @lionel.faber изучали эти аномалии обмена сообщениями.

У нас был толчок к завершению внедрения AE на клиенте, и за это возглавили @bochaco и @yogesh. Там все еще есть некоторые незначительные проблемы, и @lionel.faber помогал с отладкой Client AE и уже определил одну из причин аномального поведения, поскольку у старейшин разные ключи раздела.

@oetyng завершил рефакторинг самошифрования (который теперь был объединен с основным), а также работал над рефакторингом способа обработки чанков.

И @danda изучает вопрос о номиналах DBC: при выборе номиналов для нашей валюты, какие номиналы мы должны выбрать и почему? То, что кажется достаточно простым вопросом, на самом деле включает в себя некоторые интересные компромиссы между эффективностью сети и удобством использования человеком.

Обзор DBC

DBC - это уникальный «цифровой ваучер», имеющий ценность в силу того факта, что он был выдан надежным монетным двором как часть экономической системы. Чтобы потратить DBC, вам нужно перевыпустить его в монетном дворе. Монетный двор может взять ваш DBC и перевыпустить его как два или более новых DBC, если вы хотите (например, оплата в магазин, оставшаяся сумма в качестве сдачи вам), а несколько DBC могут быть перевыпущены как один DBC.

Для нас важно то, что DBC обеспечивают быстрый, безопасный и гибкий способ совершения платежей, который совместим с криптографией с несколькими подписями / пороговыми подписями и может использоваться онлайн и офлайн. Они упрощают многие аспекты экономики безопасной сети.

Текущее положение дел

В настоящее время наша система DBC включает в себя следующее:

Шардинг: Монетный двор разделяется между разделами, так что каждый раздел отвечает за переиздание только определенных DBC, определяемых именем / идентификатором DBC.

Децентрализованные узлы монетного двора: Внутри секции отдельные узлы монетного двора (старейшины) работают автономно, без координации. Клиент, выполняющий операцию повторной выдачи, должен получить ReissueShare от подавляющего большинства узлов mint (не менее 5 из 7). Каждый ReissueShare содержит BLS SignatureShare. Клиент объединяет эти SignatureShare, чтобы получить полную подпись. Клиент добавляет эту подпись к содержимому DBC, чтобы сформировать полный DBC, готовый к расходам.

Владение DBC: У каждого DBC есть владелец, определяемый «PublicKey». Это позволяет сохранять и передавать файлы DBC в открытом виде без их кражи. Монетный двор проверяет, правильно ли владелец подписал каждый входной DBC, когда он израсходован (переиздан).

Скрытие суммы: Суммы в формате DBC скрыты, так что их могут знать только отправитель и получатель. Даже узлы монетного двора не видят количества. Тем не менее, монетный двор может проверить, что сумма входных DBC совпадает с суммой выходных DBC, используя обязательства Педерсена и доказательства диапазона (bulletproofs).

Spentbook: Каждый узел Mint записывает в Spentbook. Во время каждой перевыпуска узел монетного двора сначала проверяет, что все входные DBC еще не находятся в Spentbook (не были потрачены) и что все подписи и выходные данные верны. Затем он записывает каждый ввод как потраченный в Spentbook. В идеале мы хотим передать это клиенту, см. Ниже.

Будущие улучшения

Мы все еще ищем возможности усовершенствовать систему DBC, и все следующие вопросы находятся на рассмотрении:

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

Клиент пишет в Spentbook: При такой настройке клиент будет записывать записи в Spentbook, прежде чем связываться смята. Преимущество этого состоит в том, что повторный вызов становится идемпотентным, что означает, что клиент может делать один и тот же повторный вызов много раз и каждый раз получать один и тот же ответ.

Слепые подписи: Это принесет нам настоящий бесхозный сертификат на предъявителя. Чистая форма неотслеживаемых цифровых денег, если хотите.

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

Для всех, кто интересуется более глубоким погружением, наш код DBC находится в sn_dbc crate.


Полезные ссылки

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

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