Что такое пороговые подписи?

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

Схема пороговой подписи (Threshold Signature Scheme, TSS) – это криптографический примитив для распределённой генерации ключей и подписания транзакций. Внедрение TSS в блокчейн-клиентах – это новенькая парадигма, имеющая много преимуществ, в особенности по части сохранности. В наиболее широком смысле TSS может воздействовать на проектирование систем управления ключами (таковых как криптокошельки) и проложить путь к интегрированной поддержке разных реализаций децентрализованных денег. Тем не наименее TSS пока новенькая разработка, потому стоит также учесть опасности и ограничения.

Сила криптографии

Для того чтоб осознать TSS, нужны некие базисные зания в криптографии. Начиная с 1970-х интернет-системы (такие как TLS и PGP) всё почаще употребляли асимметричную тайнописью, также известную как тайнопись с открытым ключом (public key cryptography, PKC). PKC употребляет два ключа: открытый (общественный) и закрытый (приватный). Открытый ключ не является скрытым и может обнародоваться и употребляться кем угодно, но закрытый ключ – это скрытая информация, от которой зависит сохранность системы.

Увлекательное по теме: Неведомая история человека, с помощью которого сделалось вероятным шифрование каким мы его знаем

Шифрование и цифровые подписи – два основных внедрения PKC. Схемы шифрования и цифровых подписей полагаются на набор из трёх алгоритмов. 1-ый генерирует пару из открытого и закрытого ключа, 2-ой генерирует шифротекст либо подпись, а 3-ий производит расшифровку либо верификацию. Если гласить о цифровых подписях, то метод подписания просит закрытого ключа, известного лишь его обладателю, чтоб сгенерировать неповторимую подпись. Подпись прикрепляется к сообщению так, что хоть какой, у кого есть открытый ключ, сумеет подтвердить её подлинность и верность.

Блокчейн

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

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

Реальная статья посвящена одному из таковых прорывов – неопасным пороговым подписям (TSS).

Читать по теме: BLS-подписи: наилучшая кандидатура подписям Шнорра

Многостороннее вычисление и пороговые подписи

Многостороннее вычисление (Multi-party computation, MPC) – это направление в криптографии, восходящее к знаковой работе Эндрю Яо, которой вот уже практически 40 лет. В MPC несколько сторон, которые не доверяют друг дружке, пробуют вместе вычислить определённую функцию на базе их входных данных, при всем этом не раскрывая эти данные.

Допустим, n служащих компании желают выяснить, кто из их зарабатывает больше, не раскрывая фактический размер собственной заработной платы. Тут секретные входные данные – это заработной платы, а выход – имя сотрудника с самой высочайшей заработной платой. Если употреблять MPC, то ни одна заработная плата не будет раскрыта.

Два основных характеристики MPC – это правильность и конфиденциальность:

  • Правильность: метод выдаёт верный итог (как и следует ждать).
  • Конфиденциальность: скрытые входные данные каждой из сторон не будут раскрыты иным сторонам.

Разглядим, как эти характеристики применимы к распределённому созданию цифровых подписей при помощи MPC. Напомним, что в случае подписей имеется три шага:

  • Генерация ключей: 1-ый шаг – самый непростой. Нужно сгенерировать открытый ключ, который будет употребляться для верификации будущих подписей. Но также необходимо сгенерировать секрет для всякого участника, который мы будем именовать толикой секрета. В отношении правильности и конфиденциальности мы скажем, что функция выдаст однообразный открытый ключ для всех участников и различные толики секрета для всякого из их так, что: 1) конфиденциальность: толики секрета не раскрываются иным участникам; 2) правильность: открытый ключ рассчитывается на базе всех толикой секрета.
  • Подписание: На этом шаге генерируется подпись. Вход всякого участника – это его толика секрета, выход предшествующего шага (распределённой генерации ключей). Также есть открытый вход, узнаваемый всем, – подписываемое сообщение. Выходом будет цифровая подпись, и свойство конфиденциальности гарантирует, что во время вычислений не произойдёт утечки толикой секрета.
  • Верификация: Метод верификации таковой же, как в традиционных критериях. Как и с ординарными подписями, хоть какой, понимающий открытый ключ, должен быть способен проверить и подтвердить подпись. Конкретно сиим занимаются узлы блокчейна.

Такое сочетание распределённой генерации ключей и распределённого подписания и именуется схемой пороговой подписи (TSS).

Сочетание TSS с блокчейнами

Самый тривиальный метод внедрения пороговых подписей в блокчейне – это поменять блокчейн-клиент так, чтоб он генерировал ключи и подписи при помощи TSS. Тут под блокчейн-клиентом понимается набор установок, выполняемых полным узлом. На практике разработка TSS дозволяет все команды, связанные с приватными ключами, поменять распределёнными вычислениями.

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

При использовании TSS у нас будет n участников, которые вместе вычисляют общественный ключ и у всякого из которых есть скрытая толика приватного ключа (не раскрываемая иным участникам). Из общественного ключа можно получить адресок буквально так же, как в классической системе, причём для блокчейна способ генерации ключа не имеет значения. Преимущество в том, что приватный ключ больше не является единой точкой отказа, поэтому что любой участник держит только его часть.

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

Принципиально упомянуть, что распределённая генерация ключей может допускать различные структуры доступа: общее условие типа «t из n» сумеет выдержать до t случайных отказов в операциях, связанных с приватными ключами, не скомпрометировав сохранность.

TSS и мультиподписи

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

Иными словами, мультиподписи и TSS, в сути, имеют похожие цели, но TSS употребляет тайнописью вне блокчейна (офчейн), а мультиподписи – в блокчейне (ончейн). Но блокчейну нужен метод, чтоб зашифровать мультиподпись, что может навредить конфиденциальности, поэтому что структура доступа (число подписантов) доступна в блокчейне. Стоимость транзакции с мультиподписью выше, поэтому что информация о подписантах также обязана передаваться в блокчейне.

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

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

Читайте увлекательное по теме: Подписи Шнорра и неизбежность конфиденциальности в Биткойне

TSS и схема разделения секрета Шамира

Схема разделения секрета Шамира (Shamir secret sharing scheme, SSSS) предоставляет метод распределённого хранения приватного ключа, так что когда он не употребляется, он хранится в нескольких местах. Меж SSSS и TSS есть два различия:

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

Как можно созидать, в TSS приватный ключ (отвечающий за сохранность системы) совершенно никогда не находится в одном месте.

Пороговые кошельки

Кошелёк, основанный на технологии TSS, мало различается от обычных криптовалютных кошельков. Обычно, обычный кошелёк генерирует seed-фразу и употребляет её для детерминистического получения кошельков. Юзер может потом употреблять эту иерархическую детерминистическую (ИД) структуру, чтоб: 1) получить приватные ключи, надлежащие адресам кошелька, и подписывать ими транзакции; и 2) вернуть все ключи кошелька при помощи seed-фразы.

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

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

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

Недочет такового кошелька в том, что отсутствие seed-фразы делает его несопоставимым с кошельками с одним ключом. Потому принципиально учесть, кто будет держать толики секрета.

Есть несколько вероятных архитектур:

  • Аутсорсинг TSS: Юзер дозволяет n серверам делать вычисления для него. В сути, генерация ключей, управление ими и подписание транзакций поручается поставщикам сервисов, которые не обладают активами, но предоставляют уровень сохранности в обмен на какое-нибудь вознаграждение.
  • Внедрение нескольких устройств: Юзер употребляет TSS на нескольких устройствах, которые принадлежат ему. К примеру, одной стороной может выступать какое-нибудь устройство веба вещей, иной – мобильный телефон юзера, третьей – его ноутбук, и т. д.
  • Гибридный подход: Некие стороны в TSS контролируются наружными сервисами, а иными выступают устройства, принадлежащие юзеру.

1-ый способ устраняет юзера от массивных вычислений. Но, с иной стороны, поставщики услуг могут вступить в сговор (мы предполагаем, что сразу не будет атаковано достаточное их число, хотя на практике это может быть) и похитить активы юзера.

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

3-ий вариант считается наилучшим, потому что он дозволяет юзеру просто и стремительно проводить транзакции, причём они не могут проводиться без его авторизации.

TSS и смарт-контракты

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

Если привести определенные примеры, то многоскачковая блокировка (Multi-Hop Locks) изобретательным образом употребляет двухсторонние подписи и может служить кандидатурой сети Lightning Биткойна с наиболее неопасными и секретными платёжными каналами. ShareLock, пожалуй, самое дешёвое решение по перемешиванию монет для Эфириума, основанное на верификации только одной пороговой подписи.

Опасности

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

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

В окончание

В истинной статье мы представили базы схемы пороговой подписи (TSS) – любопытного криптографического примитива, способного значительно поменять то, как мы используем блокчейны.

Если вы желаете поэкспериментировать с реализациями TSS, то тут можно отыскать код двухстороннего кошелька для Binance Chain, либо же сможете испытать кошелёк ZenGo, использующий гибридный способ, чтоб предоставить некастодиальное двухстороннее решение.

Вы постоянно сможете поблагодарить переводчика за проделанную работу: BTC: 1BHr4jrPPVwdWRpFTekaD34EZ2vo9p8FoC ETH: 0xf45a9988c71363b717E48645A412D1eDa0342e7E

 

Author: Anonim