FROST
Кратко
- FROST (Flexible Round-Optimised Schnorr Threshold Signatures) — это протокол пороговой подписи и распределённой генерации ключей: несколько подписантов хранят долю общего приватного ключа, и для создания одной подписи должно совместно действовать пороговое число участников.
- Поскольку результатом является одна подпись Schnorr, такая транзакция выглядит в сети как обычная транзакция.
- Для него требуется минимальное количество раундов коммуникации, он может выполняться параллельно и способен выявлять и исключать участника, ведущего себя некорректно.
- Для Zcash это означает, что FROST позволяет нескольким географически распределённым сторонам контролировать право расходования экранированных ZEC — это полезно для кастодиального хранения, эскроу, некастодиальных сервисов и Zcash Shielded Assets (ZSA).
- Он был создан Chelsea Komlo (University of Waterloo, Zcash Foundation) и Ian Goldberg (University of Waterloo).
Базовое объяснение
Что такое подпись Schnorr?
Цифровая подпись Schnorr — это набор алгоритмов: (KeyGen, Sign, Verify).
Подписи Schnorr обладают рядом преимуществ. Одно из ключевых преимуществ состоит в том, что когда несколько ключей используются для подписи одного и того же сообщения, получившиеся подписи можно объединить в одну подпись. Это может значительно уменьшить размер multisig-платежей и других транзакций, связанных с multisig.
Что такое FROST?
Flexible Round-Optimised Schnorr Threshold Signatures -
Создан Chelsea Komlo (University of Waterloo, Zcash Foundation) и Ian Goldberg (University of Waterloo).
FROST — это протокол пороговой подписи и распределённой генерации ключей, которому требуется минимальное число раундов коммуникации и который может выполняться параллельно. Протокол FROST является пороговой версией схемы подписи Schnorr.
В отличие от подписей в модели с одной стороной, пороговые подписи требуют сотрудничества между пороговым числом подписантов, каждый из которых хранит долю общего приватного ключа.
Что такое пороговые подписи? Chelsea Komlo - Zcon3
Следовательно, создание подписей в пороговой модели влечёт накладные расходы из-за сетевых раундов между подписантами, что делает процесс затратным, когда секретные доли хранятся на устройствах с ограниченными сетевыми возможностями или когда координация происходит по ненадёжным сетям.
Сетевые накладные расходы во время операций подписания уменьшаются за счёт применения новой техники, которая защищает от атак подделки и применима также к другим схемам.
FROST улучшает протоколы пороговой подписи, позволяя безопасно выполнять параллельно неограниченное число операций подписания (concurrency).
Он может использоваться либо как протокол с 2 раундами, в котором подписанты в сумме отправляют и получают 2 сообщения, либо как оптимизированный однораундовый протокол подписания со стадией предварительной обработки.
FROST достигает повышения эффективности, в частности, за счёт того, что позволяет прерывать протокол при наличии участника, ведущего себя некорректно; такой участник затем идентифицируется и исключается из будущих операций.
Доказательства безопасности, показывающие, что FROST устойчив к атакам с выбранным сообщением при условии, что задача дискретного логарифмирования является трудной, а противник контролирует меньше участников, чем порог, приведены здесь.
Как работает FROST?
Протокол FROST содержит два важных компонента:
Сначала n участников выполняют протокол распределённой генерации ключей (DKG), чтобы сгенерировать общий ключ проверки. В конце каждый участник получает долю приватного секретного ключа и долю публичного ключа проверки.
После этого любые t из n участников могут выполнить протокол пороговой подписи, чтобы совместно сгенерировать корректную подпись Schnorr.
Визуально / Аналогия
Представьте, что FROST — это банковская ячейка, которая открывается только тогда, когда несколько уполномоченных держателей ключей одновременно поворачивают свои ключи, — но при этом нужны не все держатели ключей, а только определённое количество (например, любые 3 из 5). Когда ячейка открыта, внешний наблюдатель не может определить, какие именно держатели ключей пришли, и даже то, что участвовало больше одного человека. Точно так же группа может совместно авторизовать транзакцию Zcash, в то время как сеть увидит только одну подпись, внешне не отличимую от обычной.
Подробный разбор
Распределённая генерация ключей (DKG)
Цель этой фазы — сгенерировать долгоживущие доли секретного ключа и общий ключ проверки. Эта фаза выполняется n участниками.
FROST строит собственную фазу генерации ключей на основе DKG Педерсена (GJKR03), который использует как подсхемы схему разделения секрета Шамира и схему проверяемого разделения секрета Фельдмана. Кроме того, каждый участник должен продемонстрировать знание собственного секрета, отправив остальным участникам доказательство с нулевым разглашением, которое само по себе является подписью Schnorr. Этот дополнительный шаг защищает от атак rogue-key, когда t ≥ n/2.
В конце протокола DKG генерируется общий ключ проверки vk. Каждый участник Pᵢ хранит значение (i, skᵢ), которое является его долгоживущей секретной долей, и долю ключа проверки vkᵢ = skᵢ *G. Доля ключа проверки участника Pᵢ, vkᵢ, используется другими участниками для проверки корректности долей подписи Pᵢ во время фазы подписания, тогда как ключ проверки vk используется внешними сторонами для проверки подписей, выпущенных группой.
Пороговое подписание
Эта фаза опирается на известные методы, использующие аддитивное разделение секрета и преобразование долей для неинтерактивной генерации nonce для каждой подписи. Она также использует методы привязки, чтобы избежать известных атак подделки без ограничения concurrency.
На стадии предварительной обработки каждый участник подготавливает фиксированное число пар точек Elliptic Curve (EC) для последующего использования. Эта стадия выполняется один раз для множества фаз порогового подписания.
Раунд подписания 1: Каждый участник Pᵢ начинает с генерации одной пары приватных nonce (dᵢ, eᵢ) и соответствующей пары точек EC (Dᵢ, Eᵢ), а затем рассылает эту пару точек всем остальным участникам. Каждый участник сохраняет эти пары точек EC для дальнейшего использования. Раунды подписания 2 и 3 — это собственно операции, в которых t из n участников сотрудничают для создания корректной подписи Schnorr.
Раунд подписания 2: Участники работают вместе, чтобы создать корректную подпись Schnorr. Ключевая техника, лежащая в основе этого раунда, — аддитивное разделение секрета по схеме t-out-of-t.
Этот шаг предотвращает атаки подделки, потому что атакующие не могут комбинировать доли подписи из разных операций подписания или переставлять набор подписантов либо опубликованные точки для каждого подписанта.
Вычислив challenge c, каждый участник может вычислить отклик zᵢ, используя одноразовые nonce и долгосрочные секретные доли, которые являются долями секрета Шамира группы по схеме t-out-of-n (степени t-1) для долгоживущего ключа группы. В конце раунда подписания 2 каждый участник рассылает zᵢ другим участникам.
Прочитать полную статью
Использование FROST в более широкой экосистеме
FROST в Coinbase
Чтобы повысить эффективность систем пороговой подписи Coinbase, они разработали версию FROST. Эта реализация Coinbase вносит небольшие изменения по сравнению с исходным черновиком FROST.
Они решили не использовать роль агрегатора подписи. Вместо этого каждый участник является агрегатором подписи. Такая архитектура более безопасна: все участники протокола проверяют вычисления друг друга, тем самым достигая более высокого уровня безопасности и снижая риск. Одноразовая стадия предварительной обработки также была удалена для ускорения реализации, а вместо неё используется третий раунд подписания.
ROAST от Blockstream
Для использования в Blockstream Liquid Sidechain для Bitcoin предлагается улучшение FROST, ориентированное на конкретное применение.
«ROAST — это простая обёртка вокруг схем пороговой подписи, таких как FROST. Она гарантирует, что кворум честных подписантов, например functionaries в Liquid, всегда сможет получить корректную подпись даже при наличии участников, нарушающих работу, когда сетевые соединения имеют сколь угодно высокую задержку».
FROST в IETF
Internet Engineering Task Force, основанная в 1986 году, — ведущая организация по разработке стандартов для интернета. IETF разрабатывает добровольные стандарты, которые часто принимаются пользователями интернета, сетевыми операторами и производителями оборудования, помогая формировать траекторию развития интернета.
FROST версии 11 (двухраундовый вариант) был подан в IRTF. Это важный шаг к полной оценке FROST как нового стандартного механизма пороговой подписи для использования по всему интернету, в аппаратных устройствах и в других сервисах в ближайшие годы.
Практические последствия
Безусловно, да. Внедрение FROST в Zcash позволит нескольким сторонам, географически отделённым друг от друга, контролировать право расходования экранированных ZEC. Транзакции, транслируемые с использованием этой схемы подписи, будут неотличимы от других транзакций в сети, сохраняя высокую устойчивость к отслеживанию платежей и ограничивая объём данных блокчейна, доступных для анализа.
На практике это позволяет создавать в сети широкий спектр новых приложений — от эскроу-провайдеров до других некастодиальных сервисов.
FROST также станет важнейшим компонентом безопасного выпуска и управления Zcash Shielded Assets (ZSA), обеспечивая более безопасное управление правом расходования в организациях-разработчиках и у кастодианов ZEC, таких как биржи, а также предоставляя эту возможность пользователям Zcash.
Распространённые ошибки
Путать FROST с традиционным on-chain multisig. Традиционный multisig может раскрывать нескольких подписантов или несколько подписей on-chain. FROST создаёт одну агрегированную подпись Schnorr, поэтому транзакция неотличима от транзакции с одной подписью.
Предполагать, что подписывать может меньше участников, чем порог. Только пороговое число участников (t-out-of-n), действующих совместно, может создать корректную подпись; любая меньшая группа не может этого сделать.
Предполагать, что FROST скрывает абсолютно всё вне сети. FROST защищает on-chain подпись, но координация между подписантами всё равно происходит off-chain и требует собственных мер приватности и безопасности.
Связанные страницы
- Halo — trustless рекурсивная система доказательств, используемая в пуле Orchard сети Zcash.
- Viewing Keys — выборочное раскрытие данных для экранированных транзакций.
- Zcash Shielded Assets — область, где FROST помогает управлять правом расходования и выпуска.
- Синхронизация кошельков Zcash — ещё один ключевой элемент инфраструктуры приватности Zcash.
Дополнительное изучение
Статья Coinbase - Пороговые подписи
Разделение секрета Шамира - объяснение и пример
Короткое видео о цифровых подписях Schnorr