Авторы: Кассандра Харт, Араш Афшар
Цифровые подписи — основополагающая концепция в блокчейне и криптовалютах. Современные блокчейны используют цифровые подписи для защиты миллиардов долларов. Цифровые подписи используют так называемую пару ключей, пару случайных значений, где один ключ является «частным ключом», а другой — «открытым ключом». С помощью цифровых подписей любое лицо, имеющее «закрытый ключ», может «подписать» транзакцию и потратить цифровые валюты. Следовательно, очень важно защитить «закрытый ключ». Некоторые технически подкованные пользователи блокчейнов сами решают защитить этот ключ и принимают на себя риск кражи или потери ключа (и, следовательно, потери своих средств). Напротив, другие пользователи блокчейна доверяют онлайн-кошелькам или биржам, защищая свои ключи. Конечно, это решение сопряжено с собственным набором рисков, основанным на компетенции третьей стороны.
В обоих этих вариантах пользователь полностью доверяет одной организации, что может быть нежелательно. . Введите Пороговая цифровая подпись : решение, которое требует «порогового значения» как минимум двух взаимодействующих участников для создания подписи, и которое устраняет проблему доверия к одному объекту. В этой статье мы:
- даем интуитивно понятное описание пороговых сигнатур и их приложений,
- копаем немного глубже и изучаем различные схемы пороговых сигнатур и
- Сравните пороговые подписи с другими методами, такими как кошельки Mulitsig.
Интуиция для пороговых подписей
Как разработчик в области пороговой криптографии, это действительно Интересно видеть, как эти инновации становятся популярной темой, но читатели, незнакомые с криптографией или математикой, стоящей за ней, быстро сталкиваются с препятствиями, встречая такие фразы, как «криптосистема Пайе», «гомоморфное шифрование» или «поле Галуа». Это становится еще более сложным, когда вы обсуждаете все составляющие, стоящие за ним, чтобы координировать коммуникацию, и, как следствие, очень немногие организации были готовы исследовать его потенциал. Но это не должно быть страшно; в конце концов, математика сводится не более чем к умножению и сложению. Итак, давайте рассмотрим ELI5: Что, черт возьми, такое пороговая сигнатура?
Выражаясь метафорически, сигнатуры сродни запуску воздушного змея на невидимой веревке. Сам кайт является публичным ключом — каждый может увидеть его в небе. Воздушный змей перемещает воздушный змей, манипулируя невидимой цепочкой — закрытым ключом. Путь, по которому он летит в небе, — это его подпись. Все видели, как воздушный змей летит по небу по этой траектории, и только с помощью этой невидимой веревки эта траектория полета возможна. Это кажется действительно упрощенным по сравнению с лежащей в основе математикой, но в конечном итоге эта метафора полезна для демонстрации координации и работы, необходимой для создания пороговой подписи.
Введите пороговую криптографию. Предпосылка порога буквально заложена в его названии: для успешного выполнения операции необходимо соответствие некоторому числовому значению. Часто эти процессы определяются с использованием фразы «t из n», где n — общее количество возможных участников, а t — пороговое число, которое должно быть достигнуто. Распространенная пороговая криптографическая схема, которая использовалась довольно долгое время, — это схема совместного использования секретов Шамира. Для тех, кто не знаком, в этом процессе используется математический метод, называемый интерполяцией Лагранжа, для рекомбинации разделенных значений в секретное значение. В метафорическом мире он берет эту невидимую нить и разделяет ее на отдельные нити, за которые могут держаться многие люди, и для того, чтобы запустить воздушный змей, пороговое количество людей должно собраться вместе и снова объединить свои нити в нить.
Этот процесс работает хорошо, и службы по всему миру используют его для защиты секретных данных. Обратной стороной является то, что каждый, кто участвует, должен выполнять этот процесс в безопасном месте при разрыве и повторном объединении секрета. В криптовалютах это также означает, что после того, как закрытый ключ рекомбинирован и используется для подписи, он должен считаться открытым, и все средства, удерживаемые ключом, должны быть перемещены, поэтому, если какой-либо участник, который помог в рекомбинации ключа, уходит с ним, он не может сделать ничего значимого. Это дорого, не говоря уже о том, что требуется большая координация сотрудников . Что, если мы сможем использовать мощную математику, лежащую в основе криптографии, и улучшить ее, чтобы никому вообще не приходилось встречаться в безопасном месте?
Хорошая новость в том, что мы можем! Есть масса литературы, которая выросла в одночасье с новыми подходами к существующим криптосистемам, улучшениями предыдущих и полностью революционными криптографическими протоколами. Навигация в этой области требует значительного времени и опыта, но здесь, в Coinbase, мы нашли и реализовали стратегии, которые позволяют нам использовать эти подходы и поддерживать новые подходы по мере их обнаружения и рецензирования. В этом процессе много задействовано, поэтому давайте вернемся к метафоре.
Процесс настройки для подготовки наших заядлых летающих воздушных змеев, в конечном счете, является уникальным поворотом, который позволяет всему этому процессу работать: каждый участник следует то же правило: они приносят свою невидимую нить и свой кусок воздушного змея. Каждый летчик заранее согласовывает с другими, как они собираются летать, и все они приступают к бегу со своим кайтом с согласованной скоростью, углом и временем. Если кто-то отклоняется от согласованного плана полета, вся путаница воздушных змеев рушится на землю, но если все действуют, как согласовано, кайт взлетает в небо, как единое целое, и может выполнять полет, как и планировалось. Когда полет завершается, части разбираются в воздухе, и все идут домой со своим воздушным змеем и нитками. Ни в коем случае ни один человек не держит змей или веревку целиком, и каждая сторона заранее видит план полета, чтобы знать, что никто не собирается совершать какие-то дикие выходки, которые позволят им сбежать с кайтом.
Подробнее о пороговых сигнатурах
Теперь, когда у нас есть интуитивное понимание пороговых сигнатур, давайте глубже погрузимся в концепции и терминологию. Схемы пороговой подписи являются частью поля криптографии безопасных многосторонних вычислений (MPC). Основная цель MPC — обеспечить возможность вычислений на личных данных, не раскрывая их никому, кроме владельца личных данных. Например, в метафоре воздушного змея невидимые части потока являются секретными долями закрытого ключа, а пороговая подпись использует эти секретные доли для восстановления закрытого ключа и подписания транзакции без раскрытия составного закрытого ключа или секретных долей.
Очень важным компонентом подписи пороговых значений является математическая конструкция, называемая криптографией на основе эллиптических кривых. Версия TL; DR заключается в том, что при «y = x · G», где «y» и «G» являются общеизвестными значениями, очень сложно или даже невозможно найти «x» в разумные сроки. Есть много «кривых», которые предлагают это свойство:
- Secp256k1 , который используется в Биткойне, Эфириуме и многих других.
- Edwards25519, , который используется в Cardano, Monero и многих других.
- BLS12–381 , который используется в Ethereum 2.0 и некоторых других цепочках.
При наличии подходящей эллиптической кривой следующим шагом на пути к пороговой подписи является сначала выбор стандартной схемы цифровой подписи (то есть с однократной подписью). Вот популярные схемы цифровой подписи:
- ECDSA , основанная на кривой Secp256k1, используемой биткойнами.
- Schnorr , на основе кривой Secp256k1, используемой Bitcoin Cash и Mina
- Ed25519 , на основе кривой Edwards25519, используемой Cardano
Наконец, имея цифровую подпись, мы можем теперь обсудить схемы пороговой подписи. Схемы пороговой подписи начинаются с схемы с единственной подписью и разделяют закрытый ключ между n участниками. Затем, на этапе подписания, t-из-n участников могут запустить алгоритм подписи для получения подписи. Наконец, любая отдельная (внешняя) сторона может проверить подпись, используя тот же алгоритм для проверки подписей с единой подписью. Другими словами, подписи, генерируемые схемами пороговой подписи и подписи с единственной подписью, взаимозаменяемы. Другими словами, алгоритм пороговой подписи состоит из трех этапов.
Схемы пороговой подписи быстро развиваются. На момент написания этой статьи безопасные и популярные схемы включают следующее.
- FROST — это пороговая подпись и протокол DKG, который предлагает минимальные раунды связи и безопасен для параллельной работы. Протокол FROST — это пороговая версия схемы подписи Шнорра.
- DKLs18: это пороговая подпись 2 из 2 и протокол DKG, который предлагает быстрое вычисление подписи для схемы подписи ECDSA.
Пороговые подписи и мультисигнатуры
Multisig, или multisignature схемы предлагают возможности, аналогичные пороговым сигнатурам, с той разницей, что у каждого участника есть свои собственный открытый ключ (вместо секретных долей единого общего открытого ключа). Эта небольшая разница оказывает огромное влияние на стоимость, скорость и доступность мультисигн в различных блокчейнах.
- Эффективность: в схемах пороговой подписи каждый открытый ключ и соответствующие ему частные общие ключи принадлежат постоянно одной фиксированной группе подписывающих лиц; в мультиподписи каждый отдельный участник имеет свой собственный отдельный выделенный открытый ключ. Преимущество этой последней схемы состоит в том, что каждый такой участник может повторно использовать свою пару закрытого и открытого ключей для участия в сколь угодно большом количестве отдельных групп подписи. Стоимость использования мультиподписей, однако, заключается в том, что размер «открытого ключа» (фактически, списка открытых ключей), представляющего любую конкретную такую группу, должен линейно увеличиваться в количестве членов этой группы. Точно так же время проверки мультиподписи, очевидно, должно линейно расти в зависимости от размера группы, поскольку проверяющий должен, в частности, прочитать весь список открытых ключей, представляющих группу. В пороговых схемах, напротив, только один открытый ключ представляет всю группу, а размер ключа и время проверки постоянны.
- Доступность: для обеспечения минимального порога `t` блокчейн должен иметь встроенную поддержку мультисигнатур. В большинстве случаев эта поддержка осуществляется в виде смарт-контракта. В результате не все блокчейны поддерживают кошельки с несколькими подписями. Напротив, пороговые подписи на основе MPC не зависят от блокчейна, пока схема подписи, используемая блокчейном, имеет безопасную пороговую версию.
Заключительные примечания
Пороговые цифровые подписи позволяют нам делать невероятные вещи, которые ранее были невозможны в криптовалютах — контракты с несколькими подписями требуют дополнительных затрат для работы, но это может происходить без смарт-контракта. Это означает, что мы можем поддерживать совершенно новый уровень кошельков: там, где раньше существовал традиционный депозитный кошелек, такой как Coinbase, который предлагает множество различных способов, или варианты кошелька с самостоятельным хранением, такие как наше приложение Coinbase Wallet, этот пороговый подход ECDSA позволяет клиентам быть активный участник этого процесса подписания. При таком подходе пользователь владеет одной частью закрытого ключа, а Coinbase — другой, и только когда оба согласны с планом полета, транзакции могут быть подписаны. Это обеспечивает безопасность и доверие, которыми мы славимся в Coinbase, при этом пользователь остается за одним контролирующим.
Если вас интересует передовая криптография, ознакомьтесь с нашими открытыми ролями здесь.
Пороговая цифровая подпись изначально была опубликована в блоге Coinbase на Medium, где люди продолжают разговор, выделяя эту историю и отвечая на нее.




