Перевод статьи https://cexplorer.io/article/understanding-mithril
Mithril доступен в основной сети Cardano. Давайте объясним, как работает Mithril и для чего он полезен.
Не доверяйте, проверяйте
Одним из основных принципов децентрализации является отсутствие третьей стороны, которой вы, как участник системы, должны доверять. Вместо доверия у вас есть возможность проверить всю информацию и таким образом получить единую версию правды. То, что верно для вас в любой момент времени, верно и для всех остальных участников системы.
Если вы хотите быть полноправным участником блокчейн сети, вам необходимо запустить свою собственную полную ноду, которая позволяет вам проверять историю всех транзакций. Люди не хотят запускать свою собственную полную ноду, и это невозможно даже на мобильных устройствах. Запуск полной ноды требует больших ресурсов. Более того, это требует времени и определенных технологических навыков.
Проблема была частично решена с помощью так называемых легких нод, которые хранят только заголовки блоков (своего рода сводку транзакций каждого блока) вместо целых блоков. Это привело к снижению требований к хранилищу, вычислительной мощности и пропускной способности. Однако недостатком является то, что легкая нода не может проверять транзакции независимо от полной ноды. Легкие ноды также полагаются на полные ноды для трансляции своих транзакций в сеть и получения обновлений о состоянии блокчейна.
Легкие ноды могут проверять транзакции без полных нод только в том случае, если у них есть надежный источник информации, такой как криптографическое подтверждение или надежная контрольная точка. Например, некоторые легкие ноды используют протокол упрощенной проверки платежей (SPV), который позволяет им проверять транзакции, запрашивая подтверждение включения у полных нод. Доказательством включения является последовательность заголовков блоков, которые связывают транзакцию с самым последним блоком. Затем легкая нода может сверить подтверждение со своими собственными заголовками блоков и подтвердить, что транзакция действительна и подтверждена сетью.
Есть несколько легких кошельков, которые не являются легкими нодами и взаимодействуют с серверами только по проприетарным протоколам. Обычно это онлайн-кошельки или кастодиальные кошельки, которые хранят ваши личные ключи на своих серверах и управляют вашими транзакциями за вас. Эти кошельки не взаимодействуют с блокчейном напрямую, а полагаются в этих вопросах на свои собственные серверы.
Даже если вы используете аппаратные кошельки Trezor или Ledger обычным способом, вы зависите от сторонних серверов, которые подключены к полным нодам отдельных блокчейнов.
Зависимость от третьих сторон противоречит идеалам децентрализации, поскольку создает потенциальный риск цензуры транзакций, сбора данных, утечки личной информации или даже замораживания аккаунта.
Наивно ожидать, что люди будут запускать полные узлы из-за децентрализации. Необходимо создать технологическое решение, которое предложит им все преимущества полной ноды и которое они смогут удобно использовать на мобильном телефоне.
Mithril позволит создавать надежные легкие клиенты и приложения DeFi, которые полностью независимы от третьих сторон с точки зрения возможности эффективной проверки данных на вашем собственном устройстве. Это также обеспечивает быструю загрузку нод и безопасную синхронизацию данных, децентрализованное голосование на основе распределения стейка (управление ончейн), эффективное управление сайдчейнами, облегчает разработку более масштабируемого блокчейна и т.д.
Схема пороговой мультиподписи на основе стейка (STM)
Mithril - это, по сути, схема подписи, которая позволяет сети Cardano генерировать криптографические сертификаты. Эти сертификаты являются легко проверяемым доказательством того, что они были созданы (криптографически подписаны) участниками, владеющими необходимым размером стейка (монет).
Вы можете рассматривать сертификат как сообщение, с которым согласны несколько участников (держателей ADA), при этом они активно подтверждают сообщение своими (цифровыми) подписями, что демонстрирует их публичное согласие. Участники могут, по сути, подтвердить любую информацию своими подписями. Одним из конкретных применений может быть регулярное создание снапшотов с состоянием блокчейна.
Нет необходимости, чтобы все держатели токенов подтверждали сообщение. Вместо этого каждый раз, когда необходимо сгенерировать новый сертификат, выбирается случайный набор участников, и для его подписания требуется достаточное определенное количество этих участников. Подобно лидеру слота, который получает право создать новый блок в данном слоте, участники из Mithril выбираются случайным образом.
Основанная на стейке пороговая мультиподпись (STM) - это своего рода схема пороговой подписи (TSS), которая учитывает распределение стейка (монет) в сети блокчейн. TSS - это система, которая позволяет генерировать единую цифровую подпись на основе подписей нескольких подписавших лиц.
Это концепция аналогична схеме с мультиподписями K-из-N. В этой схеме, например, 5 участников владеют приватным ключом, который можно использовать для подписи сообщения. Если сообщение подписано только 3 участниками, оно считается действительным (3 из 5).
Схема STM отличается от схемы K-из-N тем, что количество участников, которые могут подписать сертификат, определяется на основе количества зарегистрированных участников (подписантов) и размера их стейков.
Если вы знаете, как работает обычная цифровая подпись, которую вы используете, например, при создании блокчейн транзакции, вы легко поймете основные принципы работы STM.
STM - это тип протокола цифровой подписи, который позволяет группе участников коллективно подписывать сообщение (создавать сертификат), не раскрывая свои индивидуальные приватные ключи. Цифровая подпись - это способ подтвердить подлинность и целостность сообщения. Цифровая подпись обычно генерируется путем применения математической функции к сообщению и приватному ключу подписывающего лица. Приватный ключ - это секретная часть информации, которую знает только подписывающее лицо, в то время как публичный ключ - это связанная с ним часть информации, которую любой может использовать для проверки подписи.
Примечание: Вы лучше поймете изображение ниже, когда прочтете информацию о ролях участников сети Mithril в следующем разделе.
STM работает путем разделения приватного ключа на несколько долей и распределения их между разными участниками в зависимости от размера стейка (монет ADA). Затем каждый участник может использовать свою долю ключа для создания частичной подписи к сообщению, не зная полного приватного ключа. Затем частичные подписи могут быть объединены (с помощью агрегатора) для получения действительной подписи, которая неотличима от подписи, сгенерированной полным приватным ключом. Преимущество такого подхода заключается в том, что он повышает безопасность и устойчивость процесса подписания, поскольку ни один участник не может подписать или скомпрометировать приватный ключ.
Поскольку это схема подписи с пороговым значением, необходимо, чтобы в подписании сертификата участвовал требуемый кворум подписантов. В противном случае невозможно изготовить новый сертификат, что не является проблемой, так как это можно сделать в следующем раунде с другим набором случайно выбранных подписантов.
Подписанты действуют независимо друг от друга, и каждая отдельная подпись может быть проверена. Отдельные подписи суммируются, и при достижении требуемого порога становится возможным выдача нового сертификата. Агрегированная подпись может быть проверена в отношении глобального публичного ключа, который представляет группу держателей токенов.
Генерация сертификатов Mithril регулируется несколькими параметрами. Параметр “m” определяет количество лотерей, которые может подписать один участник. Параметр ‘k’ определяет, сколько подписей требуется для создания действительного сертификата. Параметр ‘φ’ определяет рандомность в системе, которая влияет на вероятность выигрыша в лотерею и подписания сертификата.
Создание сертификата Mithril
Определено несколько ролей, которые участвуют в создании сертификата Mithril.
Подписант Mithril - это нода, которая прозрачно работает поверх нод операторов стейк пулов (SPO) Cardano. Она работает в комбинации с агрегатором Mithril. Подписант Mithril генерирует новую пару ключей Mithril для каждой эпохи и подписывает их ключами KES. Ключи верификации (публичные ключи) затем передаются всем другим подписантам в сети Mithril. Нода-подписант регулярно проверяет снапшоты полного состояния блокчейна Cardano и подписывает эти снапшоты с помощью приватного ключа Mithril.
Агрегатор Mithril - это нода без доверия, ответственная за организацию деятельности нод-подписантов Mithril. Нода агрегатора управляет созданием нового сертификата Mithril. Чтобы сделать это, агрегатору необходимо взаимодействовать с нодами-подписантами и координировать их. Все подписанты в данном раунде подписывают полное состояние блокчейна Cardano (снапшот) и отправляют подписи агрегатору. Некоторые подписанты могут быть не в состоянии отправить подпись (сбой в работе, атака и т.д.). Как только агрегатор получит достаточное количество подписей, он может создать сертификат Mithril на основе объединения всех подписей вместе (объединение частичных подписей создает эквивалентную подпись, как если бы это был сертификат, подписанный приватным ключом).
Нода-агрегатор архивирует все снапшоты и связанные с ними сертификаты. Клиенты могут получать эту информацию из ноды-агрегатора и работать с ней, например, для быстрой загрузки ноды.
Клиент может получать снапшоты и проверять их с помощью сертификатов, поскольку он использует те же криптографические примитивы Mithril, что и подписанты и агрегаторы. Клиент может быстро проверить подлинность данных, то есть целостность блокчейна.
На изображении ниже вы можете увидеть отдельные шаги, которые приводят к созданию сертификата Mithril. Это упрощенная форма, поскольку процесс несколько сложнее и включает в себя больше шагов для всех участников. Для наглядности на картинке изображен только один подписант, но на самом деле их больше.
Необходимо понимать, что весь процесс генерации сертификатов проходит в отдельные этапы.
На первом, так называемом этапе принятия, ноды согласовывают параметры Mithril и группу подписантов.
На втором этапе ключи регистрируются на всех нодах-подписантах. Ключ проверки агрегации создается на основе всех регистраций в данный момент времени.
Третья фаза называется оперативной и проходит циклически. О начале каждого нового цикла сообщается с помощью сообщения. Будет создан снапшот набора UTXO, и ожидается, что подписанты подпишут сообщение. Каждый подписант индивидуально проверяет, имеет ли он право подписывать сообщение. Для каждой действительной подписи он создает доказательство, содержащее подпись сообщения, ключ верификации, стейк и пути ветки в дереве Merkle.
Нода агрегатора проверяет подписи всех подписантов. Несколько подписей могут быть объединены вместе для формирования сертификата. Если кворум достигнут, можно создать совокупную подпись из всех отдельных подписей. Нода создает доказательство, используя совокупные ключи, сообщение и вектор индивидуальных доказательств от каждого участника.
Индивидуальные подписи передаются всем участникам сети. Это важно, поскольку каждый участник может самостоятельно изготовить сертификаты. В частности, от участника, который выполняет агрегирование, не требуется обладать какими-либо конкретными знаниями, и не предполагается, что он ведет себя честно. Можно сказать, что любая третья сторона, имеющая доступ к отдельным подписям, может выполнить агрегирование подписей. Другими словами, любой подписант или любая другая нода могут стать нодой-агрегатором.
Потенциал технологии Mithril
Mithril представляет собой очень полезный примитив, который потенциально интересен для всех существующих блокчейнов. Связывая ключи STM с отдельными криптовалютными аккаунтами, держатели монет могут коллективно участвовать в сертификации любого сообщения полностью децентрализованным образом.
С помощью параметров можно легко определить пороговое значение (1/2 или 2/3), которое должно быть достигнуто для того, чтобы криптографически подтвердить, что требуемая группа (стейк) одобряет сообщение. Подписанты могут подписать сообщение индивидуально и опубликовать подпись через блокчейн. Это очень полезно для ончейн управления. Даже в случае с Bitcoin держатели BTC могли бы ратифицировать, например, обновление программного обеспечения.
Mithril можно использовать для регулярного создания снапшотов, то есть архивирования состояния блокчейна Cardano. Это обеспечит очень быструю загрузку ноды, поскольку нет необходимости загружать весь блокчейн и проверять все отдельные транзакции в истории. Клиенту достаточно загрузить все снапшоты вместе с сертификатами и проверить их. Это возможно за относительно короткое время (минуты), и сразу после этого нода может проверить последние транзакции и блоки. Другими словами, быть легким клиентом, который не зависит от связи с полной нодой. Благодаря Mithril легкий клиент может иметь такую же безопасность, как и полная нода, а требования к ресурсам будут настолько низкими, что можно будет запустить легкий клиент на мобильном телефоне.
Еще одно важное применение криптографических примитивов Mithril - для сайдчейнов, поскольку передача активов между сетями будет значительно упрощена благодаря возможности быстрой проверки последнего глобального состояния.
Как мы упоминали выше, Mithril является подходящей технологией для ончейн управления, поскольку с его помощью легко организовать голосование на основе владения монетами. Третья сторона никоим образом не может манипулировать голосованием, и никому нельзя помешать голосовать, поскольку каждый легкий клиент будет полностью независим от третьей стороны. Все результаты голосования будут прозрачно сохранены в блокчейне, и каждый сможет их подтвердить.
Mithril станет важным кирпичиком в Ouroboros Leios (Input endorsers), поскольку с помощью сертификатов можно будет предварительно подготовить (предварительно проверить) блоки перед их окончательным включением в блокчейн.
Вывод
Mithril можно рассматривать как большой шаг вперед в области децентрализации, поскольку значительная часть пользователей по-прежнему полагается на третьи стороны. Люди хотят проводить быстрые и дешевые транзакции на своем мобильном телефоне, а это в большинстве случаев невозможно без взаимодействия с полной нодой, работающей на другом устройстве. Большинство людей не хотят и никогда не захотят запускать свою собственную полную ноду. Mithril обеспечит надежную одноранговую связь (Peer-to-Peer) с вашего мобильного телефона. Другими словами, ваш телефон может взаимодействовать только с сетью Cardano и обеспечивать безопасность полной ноды.
// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова, а также на канале Чарльз Хоскинсон на русском. Хотите поговорить или задать вопрос о Cardano по-русски? Приглашаем вас в наше уютное сообщество в Telegram. Оставайтесь на связи, все только начинается!