


Для понимания Threshold Signature Scheme (TSS) необходимо начать с основ криптографии. С 1970-х годов всё больше интернет-систем — например, TLS (Transport Layer Security) и PGP (Pretty Good Privacy) — используют асимметричную криптографию, также называемую криптографией с открытым ключом (PKC). В этой схеме применяются два ключа: открытый и закрытый. Открытый ключ можно свободно публиковать и использовать без ущерба для безопасности, а закрытый ключ хранится в секрете и является основой архитектуры безопасности системы.
Шифрование и цифровые подписи — главные применения PKC. Оба процесса строятся на трёх базовых алгоритмах. Первый генерирует пару ключей — закрытый и открытый, устанавливая между ними криптографическую связь. Второй формирует либо шифротекст (при шифровании), либо подпись (при цифровом подписании). Третий обеспечивает дешифрование или проверку, чтобы авторизованные лица могли удостовериться в корректности криптографических действий.
В цифровых подписях алгоритм подписания использует закрытый ключ, известный только владельцу, чтобы создать уникальную подпись. Такая подпись математически связывается с сообщением так, что любой, обладающий открытым ключом, может подтвердить её подлинность и достоверность. Это гарантирует, что сообщение не было изменено и действительно отправлено владельцем закрытого ключа, обеспечивая целостность и невозможность отказа от авторства.
Блокчейн-технология представляет собой революцию в распределённых системах. Она обеспечивает надёжный слой консенсуса, который прозрачно и неизменно организует и фиксирует события. Эта инфраструктура даёт пользователям возможность создавать децентрализованные экономики, системы управления и финансовые приложения без централизованных посредников. Любопытно, что основа для простого блокчейна — это исключительно цифровые подписи, что делает их одним из самых изящных применений криптографии с открытым ключом.
В блокчейн-системах закрытый ключ — это уникальная идентичность или право собственности, а подпись — публичное заявление этой идентичности. Сеть блокчейна упорядочивает такие заявления по времени и проверяет их по заранее установленным правилам консенсуса. Эти правила гарантируют, что подписи криптографически невозможно подделать и они математически корректны, обеспечивая необходимую безопасность для доверенных транзакций без посредников.
В отличие от классической криптографии, применявшейся в ранних блокчейн-проектах, современные криптографические инструменты включают множество продвинутых техник, зачастую кажущихся магическими. Среди них — доказательства с нулевым разглашением, гомоморфное шифрование (вычисления над зашифрованными данными), многосторонние вычисления (совместная работа без раскрытия приватных данных). За последнее десятилетие исследования блокчейна значительно продвинули прикладную криптографию, и в этих областях уже есть крупные достижения.
В этой статье мы рассматриваем одно ключевое достижение, важное для безопасности блокчейна и управления ключами: эффективные безопасные пороговые подписи.
Многосторонние вычисления (MPC) — особое направление криптографии, начатое работами Эндрю Яо около сорока лет назад. В MPC-протоколах группа участников, не доверяющих друг другу, совместно вычисляет функцию по своим приватным данным, не раскрывая их друг другу. Это позволяет работать вместе без раскрытия конфиденциальной информации.
Практический пример: n сотрудников компании хотят узнать, кто получает самую высокую зарплату, не раскрывая свои доходы. Приватные входные — зарплаты, а выход — имя сотрудника с максимальным доходом. MPC позволяет провести вычисление так, что ни одна зарплата не раскрывается, а результат достигается.
Два основных свойства MPC-протоколов: корректность и приватность:
Принципы MPC применимы для распределённого создания цифровых подписей, формируя пороговую схему подписей. Рассмотрим, как эти свойства работают при генерации подписи. Классическая цифровая подпись состоит из трёх этапов, каждый из которых следует адаптировать для распределённой среды:
Генерация ключей: в распределённой схеме это самый сложный этап. Необходимо создать открытый ключ для проверки подписей, но без доступа любой стороны к полному закрытому ключу. Вместо этого каждой стороне выдаётся индивидуальная секретная доля. Корректность и приватность: все получают одинаковый открытый ключ, а каждый участник — свою уникальную долю. Приватность гарантирует отсутствие утечек данных между участниками, а корректность — что открытый ключ корректно зависит от всех секретных долей.
Подписание: распределённая функция генерации подписи. Вход каждой стороны — её секретная доля, сформированная на предыдущем этапе, плюс публичное сообщение для подписи. Итог — цифровая подпись, идентичная той, что была бы создана одной стороной с полным закрытым ключом. Приватность обеспечивает защиту от утечки секретных долей даже при попытках узнать чужую информацию.
Проверка: алгоритм проверки не меняется по сравнению с классическим случаем с одним ключом. Для совместимости с блокчейн-инфраструктурой любой, кто знает открытый ключ, может проверить подпись обычным способом. Именно так действуют узлы блокчейна, и они не отличают подписи TSS от обычных.
Threshold Signature Scheme (TSS) — это сочетание распределённой генерации ключей и распределённого подписания, создающее систему управления криптографическими ключами в распределённом режиме.
Внедрение TSS в блокчейн-инфраструктуру происходит через модификацию клиентского ПО, чтобы ключи и подписи создавались по TSS-протоколу вместо традиционного метода. Здесь «клиент блокчейна» — это набор команд и операций полноценного узла. TSS позволяет заменить любые операции с закрытым ключом на распределённые вычисления с участием нескольких сторон.
Рассмотрим создание нового адреса в классическом блокчейне. Обычно генерируется закрытый ключ с помощью безопасного генератора случайных чисел, затем вычисляется открытый ключ (например, через умножение на эллиптической кривой), и в конце адрес получается из открытого ключа с помощью хеш-функций и кодирования.
С TSS процесс меняется. Вместо генерации ключа одной стороной n участников совместно вычисляют открытый ключ по распределённому протоколу. Каждый хранит только свою секретную долю, и эти доли не раскрываются другим. Из совместного открытого ключа адрес формируется так же, как раньше, и сеть блокчейна не отличает способ генерации. Главное преимущество — закрытый ключ не является единой точкой отказа: никто не может самостоятельно подделать подпись.
Тот же подход применяется при подписании транзакций. Вместо одной стороны, подписывающей полным ключом, протокол подписи запускается между несколькими участниками. Каждый использует свою долю, и вместе они формируют подпись, проверяемую по открытому ключу. Такая подпись выглядит как стандартная, но требует сотрудничества нескольких сторон. Это переход от локального вычисления, уязвимого для атак, к распределённому, более устойчивому к угрозам.
Распределённую генерацию ключей можно конфигурировать под разные структуры доступа. Самая популярная — «t из n», где любые t участников из n могут создать подпись. Такая схема выдерживает до t-1 отказов или компрометаций без потери безопасности. Это позволяет организациям настраивать модель безопасности под свои задачи и уровень риска.
Некоторые блокчейн-платформы реализуют функции, похожие на TSS, как встроенную или программируемую часть протокола — обычно это мультиподпись (multisig). Чтобы увидеть различия, можно считать multisig реализацией аналогичной TSS функции на уровне приложения, а не криптографическом уровне.
И multisig, и TSS стремятся к общей цели — требовать участия нескольких сторон для авторизации транзакции, — но делают это разными способами. TSS использует криптографию вне блокчейна для генерации обычной подписи, а multisig — полностью на блокчейне с индивидуальной проверкой подписей разных участников.
Это различие влияет на приватность и стоимость. Для обработки multisig-транзакций сеть блокчейна должна кодировать их структуру, что раскрывает число подписантов и их личности для анализа. Также стоимость multisig-транзакций обычно выше из-за хранения информации обо всех подписях и участниках.
С TSS все детали о множественных подписантах скрыты в одной подписи, выглядящей как обычная. Это снижает затраты и степень раскрытия информации, повышая приватность. Мультиподпись же не требует дополнительной коммуникации между участниками после публикации транзакции, что упрощает процесс подписания.
Ключевое различие: мультиподпись специфична для каждого блокчейна и требует отдельной реализации для разных протоколов. В ряде случаев, особенно на старых платформах, multisig не поддерживается или доступна частично. TSS основан на криптографии и может применяться в любом блокчейне с поддержкой цифровых подписей.
Схема разделения секрета Шамира (SSSS) — другой способ распределения материала закрытого ключа. SSSS позволяет хранить закрытый ключ в распределённом виде, разбивая его на части и размещая в разных местах. Однако между SSSS и TSS существуют два важных различия:
Генерация ключей: в SSSS есть одна сторона — дилер, которая создаёт полный закрытый ключ и делит его на части. Это значит, что полный ключ существует в одном месте при генерации, а затем дилер раздаёт части по хранилищам. Это уязвимость на этапе генерации. В TSS роль дилера отсутствует: процесс генерации ключа распределён между всеми участниками, и полный закрытый ключ нигде не появляется. Это обеспечивает более высокую безопасность с самого начала.
Подписание: в SSSS для подписи стороны сначала восстанавливают полный закрытый ключ, объединяя свои части. В момент реконструкции возникает точка отказа, так как ключ существует хотя бы временно. В TSS подписание выполняется полностью распределённо, без восстановления полного ключа: каждый использует свою долю, и подпись формируется совместно, не раскрывая полный ключ ни одной стороне.
В TSS закрытый ключ — ключевой элемент безопасности — ни на одном этапе не существует полностью в одном месте: ни при генерации, ни при подписании, ни при других операциях. Это принципиальное преимущество TSS над SSSS для активных криптографических задач.
Криптовалютный кошелёк на базе TSS работает иначе, чем традиционные варианты. Обычный кошелёк создаёт seed-фразу (обычно 12 или 24 слова) и использует её для детерминированного получения всех адресов и закрытых ключей. Пользователь может получить нужные ключи для подписания и восстановить кошелёк по seed-фразе в случае утраты или повреждения.
Архитектура порогового кошелька намного сложнее. HD-структуру можно создать аналогично обычным кошелькам, но она должна формироваться распределённо по MPC-протоколу. Все участники совместно определяют следующий ключ в последовательности, следуя HD-пути. У каждого — своя seed-фраза, созданная отдельно и не объединяемая. Это гарантирует, что никто не может получить закрытые ключи сам, и поддерживает распределённую безопасность на всем цикле генерации ключей.
Кошельки на базе TSS дают дополнительное преимущество: возможность ротации закрытого ключа (proactive secret sharing) без изменения открытого ключа и адреса. Ротация — отдельный MPC-протокол, который перераспределяет старые секретные доли в новые. Старые доли можно удалить, а новые использовать для подписи, при сохранении открытого ключа и адреса.
Такая структура добавляет временной аспект безопасности: злоумышленнику понадобится одновременно взломать несколько точек для атаки на кошелёк. Простое объединение долей, полученных до и после ротации, не даёт возможности подделать подпись. Это повышает устойчивость к атакам, растянутым во времени.
Недостаток такого кошелька — отсутствие единой seed-фразы, что несовместимо с классическими кошельками и процедурами восстановления. Пользователь не может просто записать 12 слов и восстановить кошелёк на другом устройстве. Поэтому важно заранее определить, кто хранит секретные доли и как организовать резервное копирование.
Возможны разные модели внедрения пороговых кошельков:
Аутсорсинг TSS: пользователь делегирует вычисления TSS нескольким независимым серверам, которые проводят протоколы за него. Это означает передачу функций генерации, управления и подписи ключей сервис-провайдерам, не являющимся владельцами активов, но обеспечивающим защиту за вознаграждение. Модель близка к облачным решениям.
Использование нескольких устройств: пользователь запускает TSS-протоколы на своих устройствах (например, IoT-устройство, смартфон, ноутбук). Такой способ даёт полный контроль, но требует синхронизации между устройствами.
Гибридный подход: часть сторон контролируется сервис-провайдерами, часть — устройствами пользователя. Это сочетает плюсы первых двух моделей.
Первый вариант разгружает пользовательские устройства, но есть риск сговора провайдеров для кражи активов. Ожидается, что одновременно не будут взломаны многие провайдеры, но на практике возможны юридическое давление и согласованные атаки.
Второй способ даёт полный контроль и исключает риски третьих лиц, но проведение транзакций становится неудобным: все устройства должны быть онлайн и участвовать в TSS-протоколе, что не всегда реализуемо.
Третий вариант — компромисс между удобством и безопасностью: пользователь может быстро проводить сделки, сохраняя требование авторизации с его стороны. Даже если сервис-провайдеры взломаны, злоумышленник не сможет подделать подпись без доступа к устройствам пользователя.
В последние годы появились десятки инновационных применений цифровых подписей, некоторые из которых весьма сложны. TSS — это криптографическая основа, способная усилить безопасность блокчейн-систем. Во многих случаях функции, реализуемые через смарт-контракты, можно заменить криптографическими протоколами на базе TSS.
Децентрализованные приложения, решения второго уровня, атомарные свопы, миксеры, механизмы наследования и многое другое можно создавать на базе TSS. Это позволит заменить дорогие и рискованные операции смарт-контрактов на более дешёвые и приватные криптографические альтернативы вне блокчейна. Перемещение логики с блокчейна в криптографические протоколы снижает затраты на транзакции и повышает приватность.
Примеры: Multi-Hop Locks — конструкция с двухсторонними подписями, способная заменить некоторые платёжные каналы второго уровня, делая сеть более приватной и безопасной. ShareLock — экономичное решение для микширования на смарт-контрактных платформах, основанное на проверке одной пороговой подписи вместо сложной логики контрактов. Эти примеры показывают, как TSS открывает новые возможности для разработки блокчейн-решений.
Количество и качество внедрений TSS постоянно растёт. Однако как новая технология для блокчейна, TSS имеет ограничения и требует внимательного анализа. В сравнении с классической криптографией, проверенной годами, протоколы TSS сложнее по дизайну и реализации.
Сложность TSS означает, что они ещё не прошли такую же проверку и «боевую эксплуатацию», как стандартные криптографические примитивы. TSS-протоколы обычно требуют дополнительных, иногда более слабых криптографических допущений, например, безопасности схем обязательств, нулевых знаний или других инструментов. Поэтому исследователи регулярно находят и устраняют новые уязвимости, которые не встречаются в традиционных схемах с одним ключом.
Баги реализации — ещё одна проблема: распределённая природа TSS даёт больше шансов для скрытых ошибок. Для безопасного внедрения TSS нужны специалисты по MPC и TSS, профессиональный аудит и тестирование.
Позитивный момент: экосистема TSS становится всё более зрелой благодаря исследованиям, рецензиям, аудитам и оптимизациям алгоритмов. По мере развития и проверки технологии в реальных условиях доверие к TSS будет только расти.
Несмотря на сложности, преимущества TSS для безопасности блокчейна и управления ключами делают технологию перспективной и заслуживающей дальнейшего развития.
При внедрении TSS в блокчейн-системы важно учитывать практические детали. Коммуникационная нагрузка между участниками может быть существенной, особенно если протокол требует многих раундов. Задержки и надёжность сети — ключевые для производительности TSS-систем. Организациям важно тщательно проектировать сеть для эффективной связи при генерации ключей и подписи.
Важный аспект — обработка отказов и восстановление сторон. В распределённой системе неизбежны случаи, когда участники временно недоступны. TSS-протоколы должны быть устойчивы, чтобы система работала при временной недоступности участников, если сохраняется пороговое условие. Также необходимы процедуры добавления новых и удаления скомпрометированных участников.
Выбор пороговых параметров (t и n в схеме t-из-n) критичен и зависит от требований безопасности и операционных ограничений. Более высокий порог повышает безопасность, но требует большего количества согласующихся сторон, что влияет на доступность и эффективность. Организации должны балансировать между безопасностью, доступностью и эффективностью при внедрении TSS.
Наконец, важен пользовательский опыт для кошельков и приложений на базе TSS. Распределённые операции TSS могут приводить к задержкам и усложнению, что затрудняет работу пользователей. Грамотный интерфейс и прозрачное объяснение преимуществ безопасности помогут пользователям принять эти особенности. По мере совершенствования TSS и повышения эффективности многие проблемы пользовательского опыта будут решены.
Пороговые подписи позволяют нескольким участникам совместно создавать подпись, не имея полного доступа к закрытому ключу. В отличие от обычных цифровых подписей, они распределяют полномочия по подписанию, повышая безопасность и устойчивость системы.
Пороговые подписи распределяют полномочия по подписанию между участниками, обеспечивая совместную авторизацию и повышая безопасность. Они применяются в мультиподписных кошельках, схемах децентрализованного хранения и управлении для предотвращения точек отказа.
В обоих случаях требуется несколько подписей для транзакции. Мультиподписные кошельки используют смарт-контракты с независимыми закрытыми ключами, а пороговые подписи реализуют криптографическое разбиение ключей. Пороговые подписи обеспечивают большую приватность и эффективность: подписи генерируются вне блокчейна, не раскрывая отдельные фрагменты ключей.
Пороговые подписи требуют совместной подписи транзакций несколькими сторонами. Даже если часть ключей компрометирована, активы остаются защищены, если соблюдается необходимый порог. Такой подход усиливает безопасность и распределённое управление, предотвращая точки отказа.
Пороговые подписи распределяют контроль над ключами между участниками, исключая единые точки отказа. Никто не владеет всей подписью, что снижает риски компрометации. Для транзакций требуется коллективное согласие, обеспечивая лучшую защиту от кражи ключей и несанкционированного доступа по сравнению с централизованными схемами.
Для пороговых подписей требуется знание алгоритма разделения секрета Шамира, мультиподписных схем и принципов распределённого управления ключами для безопасного разбиения и восстановления криптографических ключей между участниками.











