Что такое пороговая схема подписи (TSS)?
Threshold Signature Scheme

Что такое пороговая схема подписи (TSS)?

Основы

Пороговая схема подписи (TSS) — криптографический примитив, который обеспечивает распределённую генерацию ключей и подпись. Её применение в блокчейн-клиентах может дать широкий спектр преимуществ, особенно в области безопасности. Эта инновация также способна повлиять на развитие систем управления ключами, таких как криптокошельки, и даже проложить путь к нативной поддержке в DeFi. Однако, поскольку технология всё ещё новая, важно учитывать её ограничения и потенциальные риски.

Давайте рассмотрим пороговую схему подписи, определим её возможные преимущества в контексте блокчейна и подробно опишем, как её можно интегрировать в блокчейн-клиент. В статье также будет проведено сравнение TSS с другими похожими криптографическими технологиями, такими как схема секрета Шамира и мультиподписи (Multisig). Дополнительно будут обсуждены различные способы использования TSS для распределённого управления ключами, а в конце — обзор рисков и ограничений этой технологии.

The Power of Cryptography 

Прежде чем углубляться в тонкости пороговой схемы подписи, важно иметь базовое понимание криптографии. С 1970-х годов асимметричная криптография, также известная как криптография с открытым ключом (PKC), широко применяется в интернет-системах, таких как TLS и PGP. PKC использует два ключа: открытый и приватный. Открытый ключ может свободно публиковаться и использоваться, тогда как приватный ключ хранится в секрете для обеспечения безопасности.

PKC имеет два основных применения: шифрование и цифровые подписи. Оба применения опираются на набор из трёх алгоритмов. Во-первых, производится генерация пары приватного и публичного ключей. Во-вторых, генерируется шифротекст/подпись. Наконец, выполняется процесс расшифровки/проверки. В случае цифровых подписей алгоритм подписи требует приватный ключ, известный только владельцу, чтобы создать уникальную подпись для конкретного сообщения. Любой, кто обладает публичным ключом, может затем проверить подлинность подписи.

Blockchain 

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

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

MPC and the TSS

Пороговая схема подписи сочетает в себе распределённую генерацию ключей (DKG) и распределённое формирование подписей в рамках пороговой схемы подписи. Многопартийные вычисления (MPC) — направление криптографии, существующее почти 40 лет. Оно позволяет участникам, не доверяющим друг другу, совместно вычислять функцию от их входных данных, сохраняя эти входы в приватности. Например, представьте сотрудников компании, которые хотят узнать, кто получает наибольшую зарплату, не раскрывая при этом свои оклады друг другу. С помощью MPC вычисление проводится так, что ни одна зарплата не становится известна во время вычисления. Аналогично, в распределённом виде можно вычислить цифровую подпись. Процесс создания подписи включает три шага: генерация ключа, подпись и верификация. 

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

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

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

Подводя итог, TSS — это название комбинации распределённой генерации ключей и распределённой подписи в пороговой схеме подписи с применением MPC.

Integrating TSS With Blockchains

Чтобы интегрировать TSS в блокчейн, нужно изменить блокчейн-клиент так, чтобы он выполнял распределённые вычисления вместо команд, связанных с приватным ключом. В традиционной структуре блокчейна новый адрес создаётся путем генерации приватного ключа, вычисления публичного ключа и вывода адреса блокчейна из публичного ключа.

С TSS группа участников может совместно вычислить публичный ключ, при этом каждый держит секретную долю приватного ключа. Доли каждого участника остаются конфиденциальными, превращая приватный ключ в распределённый объект. Сам блокчейн при этом не меняется. Такой подход устраняет единую точку отказа для приватного ключа, так как каждый участник хранит лишь часть ключа.

Аналогично, при подписании транзакций одиночную подпись заменяет распределённая генерация подписи между несколькими участниками. Каждая сторона может внести вклад в корректную подпись при условии, что достаточное число участников честны. Кроме того, распределённая генерация ключей может поддерживать различные структуры доступа. Настройка "t out of n" способна выдержать до t произвольных отказов без ущерба для безопасности.

TSS vs. Multisig 

По сути, мультиподписи (multisig) и TSS преследуют схожие цели. Однако multisig работает на уровне цепочки (on-chain), тогда как TSS использует криптографию вне цепочки (off-chain). Хотя некоторые блокчейны имеют встроенную или программируемую функциональность TSS, multisig является приложением уровня блокчейна.

Недостатком multisig является то, что структура доступа видна в блокчейне, что может компрометировать приватность. Кроме того, multisig-транзакции дороже из-за необходимости передавать информацию о разных подписантах в цепочке. TSS же свёртывает данные о подписантах в обычную похожую на обычную транзакцию, снижая расходы и сохраняя приватность.

Несмотря на удобство неинтерактивности multisig, он специфичен для конкретного блокчейна и требует переосмысленной реализации для каждого блокчейна или может вообще не поддерживаться. TSS же опирается на криптографию, что делает его универсально применимым.

TSS vs. Shamir 

Сравнивая схему секрета Шамира (SSSS) с TSS, можно выделить два основных различия. Во-первых, в SSSS есть единственная сторона, называемая "dealer" (дилер), которая генерирует приватный ключ и распределяет секретные доли между участниками. Это означает, что приватный ключ изначально создаётся в одном месте и затем распределяется, что создаёт потенциальную единую точку отказа. В отличие от этого, TSS не полагается на одного дилера: генерация ключей распределена, и приватный ключ никогда не находится в одном месте.

Во-вторых, в SSSS участники обязаны реконструировать полный приватный ключ для подписи, что снова создаёт потенциальную единую точку отказа при каждой подписи. TSS реализует подпись иначе: она выполняется распределённо без реконструкции полного секрета.

Таким образом, TSS обеспечивает, что приватный ключ не пребывает в одном месте в течение всего срока службы, тогда как SSSS предполагает наличие единой точки отказа при генерации ключей и при подписи.

Threshold Wallets 

В отличие от традиционных криптовалютных кошельков, кошелёк на базе TSS работает иначе. Обычно обычный кошелёк генерирует seed-фразу для детерминированного вывода адресов. Пользователь использует иерархическую детерминированную (HD) структуру для получения приватных ключей, соответствующих адресам кошелька, подписания транзакций и восстановления всех ключей с помощью seed-фразы.

В пороговом кошельке всё сложнее. Хотя возможно сгенерировать HD-структуру, её создание должно выполняться распределённо с помощью другого протокола MPC. Стороны должны совместно решать, какой следующий ключ будет использоваться, при этом у каждой стороны есть своя собственная seed-фраза. Seed-фразы генерируются отдельно и никогда не объединяются, чтобы одна сторона не могла в одиночку вывести приватные ключи.

Кошельки на основе TSS предлагают возможность ротации приватных долей без изменения соответствующего публичного ключа и адреса в блокчейне. Эта функция, также известная как проактивное разделение секрета, принимает текущие доли секрета и выдаёт новый набор долей. Старые доли можно удалить, а новые использовать так же, как и прежде.

Такая временная безопасность затрудняет атаки на пороговый кошелёк. Комбинация долей до и после ротации не даёт атакующему дополнительной силы для подделки подписи.

Однако минус такого кошелька — отсутствие seed-фразы в привычном смысле, что делает его несовместимым с системами одиночных ключей. Важно продумать, какие стороны будут хранить доли секрета. Существуют три возможные архитектуры:

  1. Аутсорсинг TSS: пользователь доверяет "n" серверам выполнять вычисления от его имени, фактически передавая генерацию ключей, управление и подпись провайдерам услуг. Однако провайдеры могут вступить в сговор и украсть активы пользователя.
  2. Использование нескольких устройств: пользователь запускает TSS между собственными устройствами, например IoT-устройством, мобильным телефоном и ноутбуком. Однако такой подход может быть неудобен при совершении транзакций.
  3. Гибрид: TSS выполняется с участием как сторон, контролируемых внешними провайдерами, так и устройств, принадлежащих пользователю. Этот вариант обеспечивает простоту и скорость проведения транзакций без значительной потери в безопасности.

В целом, TSS добавляет новый уровень безопасности для криптокошельков, снижая их уязвимость к атакам. Гибридный подход считается наилучшим вариантом для пользователей, так как он сочетает удобство и безопасность.

TSS and Smart Contracts 

Цифровые подписи имеют множество применений, которые порой трудно реализовать. TSS — криптографический примитив, повышающий безопасность. TSS-основанная криптография может заменить многие функции в блокчейнах. Атомарные свапы, наследование, масштабирование уровня 2 и децентрализованные приложения могут быть построены с использованием TSS, заменяя дорогие и рискованные ончейн-смарт-контракты надёжными и более дешёвыми альтернативами. Multi-Hop Locks, использующие хитроумно двухсторонние подписи, могут стать заменой сети Lightning в Bitcoin для создания безопасной и приватной сети платёжных каналов. ShareLock, основанный на проверке одной пороговой подписи, вероятно, является самым экономичным решением для ончейн-микширования в Ethereum.

Risks 

Несмотря на растущую популярность реализаций TSS в последние годы, технология всё ещё имеет некоторые ограничения и вызывает опасения как относительно новая область. Хотя протоколы TSS способны повысить безопасность, они также гораздо более сложны, чем классическая криптография с открытым ключом, и ещё не прошли полное испытание временем. Кроме того, TSS часто опирается на более слабые криптографические допущения по сравнению с традиционными схемами, что может привести к появлению новых векторов атак. Тем не менее инженеры по безопасности и криптографы могут помочь обеспечить безопасное развёртывание TSS в вашей системе. В плюс можно записать качественные вклады, рецензирование сообществом, аудиты и улучшение производительности алгоритмов, которые усиливают реализации TSS.

Conclusion

В заключение, пороговая схема подписи — это инновационная криптографическая технология, которая потенциально может принести множество преимуществ, особенно в области безопасности блокчейна. Её применение в блокчейн-клиентах может революционизировать системы управления ключами, такие как криптокошельки, и открыть путь к нативной поддержке в DeFi. Однако, несмотря на преимущества, TSS остаётся новой технологией, и важно учитывать её ограничения и возможные риски. Поэтому необходимо следить за последними разработками и исследованиями в области TSS, чтобы принимать информированные решения о её внедрении.

 

Threshold Signature Scheme
Threshold Wallet