0Pricing
Cryptology Academy · Урок

Пороговая ECDSA: многос​​тороннее подписание

Изучите протоколы GG18, GG20 и CGGMP, обеспечивающие распределенное подписание ECDSA без восстановления ключа.

«Пороговая ECDSA: многос​​тороннее подписание» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Почему сложно реализовать пороговую схему для ECDSA

Подписи ECDSA требуют вычислить случайный одноразовый параметр k, точку кривой R = k*G и подпись s = k^{-1}(h + r*x) mod n, где x — закрытый ключ, а r — x-координата точки R. Инверсия k и умножение на закрытый ключ делают ECDSA принципиально нелинейной, в отличие от подписей Schnorr, где ответ представляет собой простую линейную комбинацию. Эта нелинейность делает распределение вычисления между сторонами чрезвычайно сложным.

GG18: пороговая ECDSA Дженнаро—Голдфедера

Протокол GG18 Дженнаро и Голдфедера (2018) стал первой практической двухсторонней и пороговой конструкцией ECDSA, безопасной без доверенного дилера. Ключевая идея — использовать гомоморфное шифрование Paillier для выполнения преобразования мультипликативного представления в аддитивное (MtA), необходимого для нелинейного вычисления ECDSA. GG18 обеспечивает безопасность на основе симуляции против статических получестных противников.

GG20: улучшения безопасности

GG20 (Дженнаро и Голдфедера, 2020) улучшил GG18, доказав безопасность против злонамеренных противников без доверенной настройки. GG20 добавил доказательства с нулевым разглашением, чтобы гарантировать корректное соблюдение протокола каждой стороной. Эти доказательства не позволяют злонамеренной стороне сместить одноразовый параметр или подпись, чтобы извлечь информацию о долях ключей других сторон. GG20 стал основой для многих промышленных реализаций кошельков MPC.

CGGMP21: современный уровень технологий

CGGMP21 (Canetti, Gennaro, Goldfeder, Makriyannis, Peled, 2021) — самый современный пороговый протокол ECDSA. Он обеспечивает идентифицируемое прерывание: если протокол подписывания завершается сбоем из-за злонамеренных действий, протокол может определить, какой участник несёт за это ответственность. Это особенно важно для корпоративных внедрений, где имеет значение подотчётность. CGGMP21 реализован в популярных библиотеках MPC, включая tss-lib и multi-party-sig.

Преобразование из мультипликативной формы в аддитивную

Основная проблема в пороговом ECDSA — вычислить произведение секретных долей, не раскрывая их. Преобразование MtA (из мультипликативной формы в аддитивную) преобразует произведение a*b долей двух участников в аддитивные доли: участник 1 получает alpha, а участник 2 — beta, так что alpha + beta = a*b. Это достигается с помощью шифрования Paillier: участник 1 шифрует a, участник 2 гомоморфно умножает шифртекст на b и добавляет случайное значение, после чего участник 1 расшифровывает результат и получает аддитивные доли.

Гомоморфное шифрование Paillier в протоколе MtA

Шифрование Paillier — это схема частично гомоморфного шифрования, поддерживающая сложение и умножение на открытый текст. Имея шифртекст Enc(a), любой участник может вычислить Enc(a*b) для известного b, не выполняя расшифрование. Это свойство позволяет реализовать протокол MtA: участник 1 генерирует пару ключей Paillier и отправляет Enc(k1) и Enc(x1) — доли одноразового значения и закрытого ключа. Участник 2 использует гомоморфные операции, чтобы вычислить свой вклад, не узнав k1 или x1.

Раунды подписывания в пороговом ECDSA

Пороговое подписывание ECDSA обычно включает несколько раундов обмена данными. В GG20 есть фаза предварительной обработки (2 раунда), в которой формируются обязательства для одноразового значения и случайных маскирующих значений, а также онлайн-фаза подписывания (1 раунд), объединяющая частичные подписи. Предварительную обработку можно выполнить до того, как станет известно сообщение, сократив задержку онлайн-фазы до одного раунда. CGGMP21 дополнительно оптимизирует этот процесс.

Идентифицируемое прерывание

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

EdDSA и FROST: более простой переход к пороговой схеме

EdDSA (подписи на основе Schnorr над Ed25519) гораздо проще перевести в пороговую форму, чем ECDSA, поскольку подписи Schnorr линейны: ответ z = r + c*x представляет собой сумму аддитивных долей. FROST (гибкая пороговая схема Schnorr, оптимизированная по числу раундов), разработанная Komlo и Goldberg (2020), обеспечивает двухраундовое пороговое подписывание Schnorr без доверенной инициализации. IETF стандартизирует FROST (проект RFC) для использования в протоколах с сохранением конфиденциальности и криптовалютных кошельках.

Производительность порогового ECDSA

Пороговый ECDSA требует больше вычислительных ресурсов, чем ECDSA с одним участником, из-за протокола MtA и доказательств с нулевым разглашением. Подписывание двумя участниками по GG20 занимает примерно 1–2 секунды на современном оборудовании; пороговое подписывание при большем n длится дольше из-за большего числа попарных выполнений MtA. Оптимизации CGGMP21 сокращают это время до нескольких сотен миллисекунд. Для криптовалютных транзакций, где важна задержка подписывания, такая производительность приемлема, хотя задержка всё же заметна.

Промышленное применение

Пороговый ECDSA применяется в институциональных финансовых организациях в больших масштабах. Fireblocks использует пороговый ECDSA на основе GG20, обеспечивая защиту транзакций общим объёмом свыше 4 трлн долларов. Coinbase Prime использует хранение активов на основе MPC и пороговых подписей. Qredo и Copper.co предлагают пороговый ECDSA для управления институциональными активами. Библиотека tss-lib для Go, используемая Binance, и multi-party-sig, используемая Coinbase, — это основные реализации с открытым исходным кодом.

Проверка знаний: преобразование MtA

Какую роль играет гомоморфное шифрование Paillier в пороговом ECDSA?

Итоги по пороговому ECDSA

Пороговый ECDSA позволяет t участникам подписывать сообщения, не зная полного ключа. Нелинейная структура ECDSA требует преобразования MtA с использованием гомоморфного шифрования Paillier. GG18 положил начало этому подходу, GG20 добавил защиту от злонамеренных действий, а CGGMP21 — идентифицируемое прерывание. Для EdDSA/Schnorr проще построить пороговую схему с помощью FROST (2 раунда, без доверенной инициализации). Промышленные решения Fireblocks и Coinbase обеспечивают защиту активов на триллионы долларов.

Часто задаваемые вопросы

Урок «Пороговая ECDSA: многос​​тороннее подписание» бесплатный?

Да — полный текст урока «Пороговая ECDSA: многос​​тороннее подписание» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Пороговая ECDSA: многос​​тороннее подписание»?

Изучите протоколы GG18, GG20 и CGGMP, обеспечивающие распределенное подписание ECDSA без восстановления ключа. Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Пороговая ECDSA: многос​​тороннее подписание»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Пороговые схемы подписей: основные понятия
  2. Пороговая ECDSA: многос​​тороннее подписание
  3. Протоколы распределенной генерации ключей
  4. Пороговые схемы в блокчейнах и HSM
← Назад к Cryptology Academy