Обновление Safe Network 🇷🇺 5 мая 2022 г

Это машинный перевод. Оригинал на английском здесь: Update 5 May 2022

Недавно мы изучили работу цифровых сертификатов носителя (DBC), изучив, как они работают и почему они так хорошо подходят для безопасной сети, а что на самом деле происходит, когда вы платите за выгрузку данных или передаете СНТ другому человеку? Транзакции DBC — тема обновления на этой неделе.

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

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

@Chriso завершил первую версию автоматизации проверки лицензии. Недавно рационализировав лицензирование нашего кода, мы хотим, чтобы он оставался таким и чтобы наш код использовался только по назначению. Лицензия GPL3 имеет «авторское лево», что предотвращает «сублицензирование», т. е. людям, которые извлекают что-либо новое из исходного кода, не разрешается изменять тип лицензии на своем форке; это гарантирует, что любой безопасный код останется открытым исходным кодом. Для универсальных библиотек мы вводим менее строгие ограничения.

Почему пункт BSD-3? Как и в случае с MIT и Apache, это довольно либерально, но дополнительный третий пункт, который предотвращает поддержку первоначальных авторов в любых производных продуктах, полезен для защиты репутации MaidSafe. Раньше у нас были двойные лицензии на многие репозитории, но, похоже, в этом нет особой пользы, и автоматизированному процессу проще принудительно использовать одну из них.

Что касается системного мониторинга и визуализации, @yogesh работает со стеком ELK, и сообщество должно быть готово к его опробованию очень скоро. Следите за этим пространством :eyes:

И @JimCollinson излагает стратегические цели MaidSafe и Safe Network, рассматривая ключевые меры, которые нам необходимо предпринять для достижения наших целей, а также определяя любые потенциальные препятствия, давая нам время, чтобы проложить курс вокруг них.

Также сердечно благодарим @stout77 за предоставленное изображение обложки этой недели! :bowing_man:

DBC в действии

Что происходит, когда вы проводите DBC в безопасной сети? Каковы элементы транзакции DBC? Прежде чем копнуть глубже, очень краткое резюме…

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

Транзакция также является цифровым файлом. В этом случае он кодирует входные DBC и выходные DBC.

Упрощенная версия транзакции в Safe Network выглядит следующим образом:

Клиент (человек или приложение) создает желаемую транзакцию, например, «возьми эти 100 SNT DBC из моего кошелька и создай два новых DBC, 90 в качестве оплаты магазину и 10 в качестве сдачи мне». Клиент подписывает транзакцию и отправляет ее в соответствующий раздел по своему XOR-адресу.

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

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

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

Проверка и обфускация

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

Во-первых, мы используем библиотеку Rust bulletproofs, чтобы проверить, что диапазон суммы DBC положителен — отрицательные суммы позволят создавать деньги из ничего — очевидный факт. нет нет.

Второй важной мерой является обфускация. Мы используем кольцевые конфиденциальные транзакции (RingCT) для сокрытия ключей владельца и получателя. Хотя ключ владельца скрыт, старейшины все же могут сказать, действительна ли транзакция, записанная в книге расходов. Точно так же пуленепробиваемые скрывают сумму, но они все же могут проверять, чтобы входные суммы уравновешивались выходными суммами.

Этапы обфускации выполняются до того, как транзакция будет записана в книгу расходов, эффективно разрывая связь между родительским DBC и его выходами. Если бы мы этого не сделали, было бы легко отследить все транзакции, поскольку всеl DBC ссылаются на исходный DBC, и не будет никакой конфиденциальности.

Генезис DBC

Мы заканчиваем в начале тем, что точные детали того, как мы распределяем DBC среди фермеров и держателей горничных, все еще прорабатываются. Текущее мнение состоит в том, что все SNT будут закодированы в одном DBC генезиса - одном без входных данных.

Итак, все СНТ, которые когда-либо будут созданы, будут в этой единственной форме, как вселенная до большого взрыва. Как только сеть будет запущена по-настоящему, исходный DBC будет переиздан, разделен и распространен по небосводу. Лучший механизм для этого распределения — это то, что мы сейчас изучаем.


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

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

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