
Для любого, у кого есть существенные запасы биткоинов, структура хранения, включающая единую точку отказа, должна рассматриваться как неприемлемая. Если в кошельке есть один компонент, который — при потере или краже — может привести к постоянной потере средств, то это просто слишком опасно, чтобы рассматривать. Никто не хочет держать значительное богатство на грани катастрофы.
У индивидуальных владельцев биткоинов есть множество инструментов, которые могут помочь снизить риск потери или кражи. В предыдущей статье мы рассмотрели некоторые из этих инструментов, выделив модификации, обычно применяемые к кошелькам singlesig. Однако мы также объяснили, почему эти подходы не позволяют полностью устранить отдельные точки отказа.
Для бизнеса, правительства или другого учреждения, которое хочет обезопасить биткойн-сокровищницу, устранение отдельных точек отказа — это не просто приятное, но и обязательное условие. Единственные модели хранения, которые стоит рассмотреть для этих организаций, — это те, которые включают пороговое требование для доступа к средствам. Пороговое требование описывает структуру, которая включает несколько отдельно защищенных компонентов, где подмножество этих компонентов необходимо для одобрения любого вывода. Это единственный способ достижения безопасности институционального уровня с полным устранением отдельных точек отказа.
В этой статье мы рассмотрим, как применять пороговую безопасность, используя три разных метода: скрипт мультиподписи, разделение секрета Шамира (SSS) и многосторонние вычисления (MPC). Мы также углубимся в компромиссы, связанные с каждым подходом, и как учреждение может выбрать лучшую настройку для удовлетворения своих потребностей.
Что такое мультиподпись?
Если вы не уверены, что такое скрипт multisig, мы рекомендуем ознакомиться с нашей предыдущей статьей, посвященной объяснению того, как работают кошельки multisig и для чего они используются. В качестве краткого обзора, кошелек multisignature включает в себя несколько закрытых ключей и может быть настроен так, чтобы для подписи любой транзакции требовалось определенное количество (порог) этих закрытых ключей. Подписи могут быть созданы в разное время и в разных местах, что позволяет каждому ключу оставаться физически разделенным. После создания порогового количества подписей их можно объединить в одну транзакцию биткоинов, способную расходовать средства.
Кворум с мультиподписями 2-из-3 скриптов, где для вывода средств требуется порог из двух уникальных подписей от двух ключей.
Этот относительно простой способ создания порогового требования очень эффективен для устранения всех отдельных точек отказа. Пока порог расходов больше единицы, но меньше общего числа ключей, любой отдельный ключ может быть утерян, украден или уничтожен без того, чтобы биткоин стал невозможным для восстановления. Оставшиеся ключи могут подписать транзакцию восстановления, перемещая средства в новую установку multisig.
Сатоши Накамото заложил основу для multisig, когда биткоин был впервые выпущен, предвидя, что он может стать популярным механизмом для защиты средств. Однако только после софтфорка P2SH в 2012 году multisig стал широко используемым инструментом. С тех пор multisig зарекомендовал себя как проверенная в боях модель безопасности на протяжении более чем десятилетия, на нескольких различных типах адресов.
В чем секрет Шамира?
Разделение секрета Шамира (SSS) — это алгоритм разделения секрета, разработанный известным криптографом Ади Шамиром в 1979 году. Его можно использовать как еще один способ введения порогового требования для защиты биткойна. SSS позволяет пользователям разделить ключ на несколько распределенных «долей», при этом для повторной сборки ключа требуется только определенный порог долей. Это можно использовать для проектирования кворумов типа 2-из-3 или 3-из-5, аналогично multisig.
Схема SSS 2-из-3, где любые две доли, представленные цветными фигурами, могут собрать ключ к кошельку singlesig. Ключ может создать одну подпись, необходимую для вывода средств.
Однако этот подход все еще приводит к появлению отдельных точек отказа в определенных моментах в течение его жизненного цикла. Одним из примеров является случай, когда ключ изначально разделен на доли SSS. Эта операция обычно выполняется на одном устройстве в одно время и в одном месте. Если злоумышленник скомпрометирует это устройство, процесс генерации ключа или процесс создания доли, он скомпрометирует ключ. Другой пример — когда пользователю необходимо повторно собрать ключ для подписания транзакции. Пороговое количество долей должно быть собрано вместе, снова на одном устройстве в одно время и в одном месте, что может использовать злоумышленник.
Достаточно простым и широко используемым методом внедрения технологии SSS для хранения криптовалюты является резервное копирование Shamir, разработанное Satoshi Labs в 2017 году. Его можно найти в качестве опции в некоторых моделях аппаратных кошельков Trezor.
Что такое ПДК?
MPC, или многопартийное вычисление, является подразделом криптографии, который восходит к 1970-м годам. Цель MPC — позволить нескольким участникам совместно выполнять вычисления, при этом вклад каждого участника в вычисления не раскрывается остальной группе и, следовательно, может оставаться конфиденциальным. Это позволяет нескольким сторонам сотрудничать в различных контекстах без необходимости доверять друг другу.
Применительно к хранению биткоинов MPC использует распределенные «доли», похожие на SSS. Однако, в отличие от SSS, доли не отделяются от закрытого ключа и не используются для восстановления закрытого ключа. Вместо этого несколько сторон вычисляют одну подпись напрямую из порогового значения своих долей.
Схема MPC «2 из 3», в которой любые две доли, представленные цветными фигурами, могут создать подпись напрямую, без предварительной сборки ключа.
В отличие от SSS, MPC не требует единой точки отказа. Акции MPC могут быть сгенерированы отдельно друг от друга, и их никогда не нужно объединять для работы кошелька. Информация, полученная из акции, может быть передана другим участникам без раскрытия самой акции.
Поскольку биткоин и другие криптовалюты в основном использовали систему подписи на основе ECDSA (алгоритм цифровой подписи эллиптической кривой), MPC пришлось адаптировать для этого контекста. Первые практические пороговые протоколы для ECDSA были опубликованы в 2018 году. [GG18, LNR18]
Каковы компромиссы между пороговыми моделями?
Имея на выбор три различные модели пороговой безопасности, следующим шагом станет понимание сильных и слабых сторон каждого варианта.
Компромиссы с мультиподписью
Script multisig — это стандартизированный способ достижения пороговой безопасности, свойственный протоколу биткойна. Структура считается относительно простой и надежной. Порог входа также невелик — если пользователь биткойна знает, как работать с кошельком singlesig, то ему не составит большого труда научиться настраивать и использовать кошелек multisig.
Когда инициализируется кошелек с мультиподписью, адреса, созданные для получения биткоинов в кошелек, имеют встроенное пороговое требование. После того, как адрес с мультиподписью был пополнен, биткоин защищен неизменяемым контрактом, который по сути был записан в сам блокчейн. Единственный способ изменить контракт (например, изменить политику контроля доступа, скорректировать ключи, защищающие биткоин) — это переместить биткоин на новый адрес, созданный с помощью другого контракта. Для нескольких сторон, которые сотрудничают для обеспечения безопасности биткоинов, этот базовый механизм неизменяемых контрактов может обеспечить наивысшую степень уверенности в том, что деньги защищены в соответствии с тем, как задумали все стороны. Если что-то должно было быть принципиально изменено, это стало бы очевидным для всех при возникновении публичной транзакции, и ключи, которые одобрили изменение, были бы известны. Вот почему поставщики услуг совместного хранения, такие как Unchained, полагаются на скриптовую мультиподпись для своих продуктов.
Однако публичное размещение контрактов на блокчейне сопряжено с компромиссами. Поскольку биткоины расходуются с адреса с мультиподписью, политика контроля доступа для этого адреса должна быть постоянно опубликована на блокчейне. Затем наблюдатели могут видеть детали кворума с мультиподписью, который использовался. Хотя оставшиеся средства можно легко перенести на новый адрес в будущем, тот факт, что прошлые меры безопасности будут раскрыты, не является идеальным. Кроме того, необходимость перемещать биткоины с одного адреса на другой для корректировки политики контроля доступа означает, что в процессе всегда будут задействованы комиссии за транзакции (и чем больше кворум, тем дороже это будет).
Для организаций, которые ценят хранение альткоинов, таких как криптовалютные биржи, скрипт multisig может представлять большую проблему, чем два других метода пороговой безопасности. Это связано с тем, что пороговый кворум multisig накладывается на уровень блокчейна, а разные криптовалюты используют разные блокчейны. Многие криптовалюты вообще не поддерживают собственную, надежную реализацию multisig. Между тем, SSS и MPC обеспечивают пороговые кворумы на уровне ключей и публично выглядят как транзакции singlesig. Поскольку почти все криптовалюты поддерживают аналогичный стандарт для хранения singlesig (один и тот же ключ может использоваться в большинстве криптовалют), это позволяет SSS и MPC быть более совместимыми между цепочками.
Компромиссы с секретным обменом Шамира
SSS предлагает другой способ разработки порогового требования на основе относительно простой и проверенной криптографии. Для целей хранения криптовалюты SSS также имеет широко используемый метод с низким порогом входа (резервная копия Shamir). Как только у кого-то появится опыт использования обычного кошелька singlesig, для него не составит большого труда использовать Trezor для настройки кошелька с резервной копией Shamir.
В отличие от multisig, SSS работает полностью вне общедоступных адресов и транзакций в блокчейне. Вместо этого пороговое требование определяется тем, как закрытый ключ разделяется на доли. Это означает, что разделение ключа на доли и их последующая повторная сборка могут быть выполнены в частном порядке, так что только люди, участвующие в соглашении о хранении биткоинов, знают, что используется SSS. Помимо преимуществ конфиденциальности, сохранение пороговой структуры за пределами блокчейна также означает, что транзакции SSS не приведут к увеличению комиссий, и ее можно использовать для защиты множества различных криптовалют. Хотя большинство криптовалют имеют свои собственные уникальные блокчейны, все они могут совместно использовать один и тот же закрытый ключ в качестве точки доступа, и этот ключ, в свою очередь, может быть разделен с помощью SSS.
Самый большой недостаток SSS уже был упомянут выше — закрытый ключ должен существовать в одном месте в один момент времени, до того, как он будет впервые разделен на акции, а также когда акции рекомбинируются для целей одобрения вывода. Эти уязвимости создают временные отдельные точки отказа, что означает, что SSS сам по себе не обеспечивает по-настоящему институционального уровня безопасности, в отличие от multisig или MPC.
Кроме того, SSS изначально не предлагает метода для настройки политики контроля доступа. После того, как закрытый ключ разделен на кворум акций, эти акции всегда будут сохранять возможность воспроизводить этот ключ. Если группа совместно защищает казну с помощью SSS, и член группы покидает ее, отзыв разрешений для этого человека безопасным способом может представлять собой проблему. Оставшиеся члены группы могут повторно собрать ключ, а затем разделить его на новые акции, но старые акции должны быть проверяемо уничтожены. В противном случае средства должны быть отправлены на совершенно новый кошелек, защищенный другим ключом.
Компромиссы с MPC
Подобно SSS, MPC обеспечивает соблюдение порогового требования на уровне ключей, а не на уровне блокчейна. Это открывает аналогичные преимущества, такие как предоставление более высокой емкости для конфиденциальности, избежание повышенных комиссий за транзакции и возможность использования одной структуры хранения MPC для множества различных криптовалют.
Важно, что MPC удается избежать временных отдельных точек отказа, которые возникают при использовании SSS. Используя другой криптографический метод, ключевые акции могут существовать отдельно с момента первого создания кошелька и даже оставаться отдельными при подписании транзакций вывода. Большинство реализаций MPC также включают собственный метод настройки политики контроля доступа (создание нового кворума акций) без необходимости отправки средств на новый адрес кошелька.
Однако MPC для порогового ECDSA считается очень сложной криптографией, и не существует согласованного стандарта для его использования. Существует много различных протоколов, первые два из которых были разработаны независимо в 2018 году Дженнаро и Голдфедером [GG18] и Линделлом и др. [LNR18]. С тех пор мы также видели протоколы от Дёрнера и др. [DKLs19], Кастаньоса и др. [CCL+20], Дамгарда и др. [DJM+20], Канетти и др. [CMP20], Гонгола и др. [GKSS20], Дженнаро и Голдфедера [GG20], Канетти и др. [CGG+21], Абрама и др. [ANO+21], Дёрнера и др. [DKLs23] и, возможно, других. Хотя новые протоколы, как правило, вносят определенные улучшения по сравнению со старыми, у них может быть меньше возможностей для коллегиальной оценки, аудита и других видов тестирования.
Более высокий уровень сложности, связанный с MPC, создает расширенную поверхность атаки. С дополнительными компонентами и процедурами появляется больше места для ошибок и потенциальных уязвимостей безопасности. Доказательства серьезных недостатков безопасности, включая атаки полного извлечения закрытого ключа, уже не раз проявлялись, затрагивая некоторые из пороговых протоколов ECDSA, перечисленных выше.
Вот несколько примеров:
Уязвимости AS20, сентябрь 2020 г., влияющие на реализации GG18
Уязвимости Alpha-Rays, декабрь 2021 г., затрагивающие GG18 и GG20
Уязвимости TSSHOCK, август 2023 г., затрагивающие GG18, GG20 и CGG+21
Уязвимости BitForge, август 2023 г., затрагивающие GG18 и GG20
«Криптографии необходимо пройти испытание временем, чтобы достичь долговечности, а эти новые протоколы явно не прошли испытание временем [...] это исследование не было готово к внедрению или широкому принятию. С моей точки зрения, внедрение и выпуск таких недавних исследований довольно опасны». — технический директор Ledger Шарль Гийемет, ответ Alpha-Rays за декабрь 2021 г.
«[MPC] сложнее, в нем больше ошибок. Продвинутые криптопротоколы хрупки в деталях и в реализации. Я бы чувствовал себя более уверенно в multisig, который очень прост и надежен». — Сообщение известного криптографа Адама Бэка, январь 2023 г.
MPC также ограничен тем, кто может использовать его в первую очередь. Как упоминалось ранее, порог ECDSA очень сложен. Для обычного человека нет инструментов, которые можно было бы безопасно или легко настроить MPC самостоятельно. Хотя некоторые компании предлагают кошельки MPC для совместного хранения, которые довольно просты в использовании, эти компании не предлагают пользователям простого способа вернуть средства, если компания исчезает (или вообще не предлагают, в таком случае они становятся единой точкой отказа). Поскольку скрипт multisig является простым и открытым стандартом, компании, которые предоставляют решения для совместного хранения с использованием multisig, могут предлагать открытые и простые в использовании инструменты восстановления. Это создает для клиентов простой способ вернуть свои средства, даже если совместный multisig-бизнес больше не может помочь.
Какая модель лучше?
Как мы только что рассмотрели, существует множество компромиссов между использованием multisig, SSS и MPC. Их можно расположить в виде диаграммы для визуального сравнения:
Эта диаграмма демонстрирует сильные стороны (синий) и слабые стороны (красный) для каждого метода реализации пороговой безопасности. Серый может быть сильной или слабой стороной в зависимости от точки зрения.
Если компания специализируется на хранении множества различных криптовалют, она может быть мотивирована нанять команду профессионалов для тщательной настройки модели хранения MPC. Однако, если компания или частное лицо ищут простой и надежный способ защитить биткоины в долгосрочной перспективе, использование скрипта multisig и принятие компромиссов конфиденциальности может быть предпочтительнее. SSS редко используется сама по себе из-за его неспособности обеспечить соблюдение институциональных пороговых требований в любое время.
Объединение моделей совместной опеки
Хотя multisig, SSS и MPC часто рассматриваются как конкурирующие модели безопасности, возможно включение более чем одной из них в общую структуру хранения. Как было описано ранее, SSS и MPC позволяют пороговому значению ключевых акций создавать подпись для транзакции. Если подпись была для расходования средств из кошелька singlesig, то для завершения транзакции больше ничего не требовалось. Однако, если вместо этого подпись была для расходования средств из кошелька multisig, могут также потребоваться дополнительные подписи от других ключей.
Структура мультиподписей 2-из-3, где одна возможная подпись может быть создана из обычного ключа, другая возможная подпись может быть создана из ключа, который повторно собран из 2-из-3 долей SSS, а еще одна возможная подпись может быть создана непосредственно из 2-из-3 долей MPC.
Хотя эта комбинация методов может показаться ненужной и громоздкой, действительно существуют некоторые контексты, где она имеет практический смысл. С ростом популярности ключевых агентов и многоучрежденческого хранения растет число специализированных компаний, которым частные лица и учреждения поручают обеспечить безопасность одного из ключей к кошельку с мультиподписью. Эти распределенные ключевые агенты могут помочь снизить риск хранения. Но как ключевой агент должен обеспечить безопасность этого единственного ключа, за который он несет ответственность?
SSS или MPC могут быть стратегией для минимизации или устранения отдельных точек отказа в этой обязанности. Корпоративный ключевой агент может разработать систему, в которой несколько разных должностных лиц в рамках бизнеса владеют ключевыми акциями, и, следовательно, подпись может быть создана только по соглашению с пороговым числом этих должностных лиц. Кроме того, если атака произойдет во время повторной сборки SSS или реализация MPC в конечном итоге пострадает от новой уязвимости извлечения ключа, подобной перечисленным ранее, то никакие средства клиентов не будут немедленно подвергнуты риску. У ключевого агента будет время отреагировать и решить проблему, в то время как биткоин останется защищенным более широким кошельком с мультиподписью.
Использование скрипта multisig для создания порогового требования в качестве основополагающего неизмененного контракта, а затем поручение профессиональным ключевым агентам защищать ключ multisig с использованием собственного порога SSS или MPC — это, несомненно, самый безопасный метод для учреждения обеспечить безопасность биткоинов в долгосрочной перспективе.
Новые возможности с Taproot
В ноябре 2021 года произошел софт-форк Taproot, добавивший новые инструменты в экосистему биткоинов. Некоторые из этих инструментов влияют на будущее институционального хранения биткоинов, допуская определенные улучшения и опциональности.
Подписи Шнорра: Алгоритм подписи Шнорра теперь доступен в биткойне как альтернатива ECDSA. Использование MPC поверх Schnorr приводит к пороговым схемам безопасности, которые гораздо менее сложны, и, следовательно, также обеспечивают более высокую уверенность в их безопасности по сравнению с протоколами ECDSA, упомянутыми ранее. FROST является ведущим протоколом пороговой подписи Шнорра, в то время как MuSig2 также доступен специально для кворумов N-из-N. Обе эти схемы подписи находятся на пути к тому, чтобы стать стандартизированными инструментами в индустрии биткойна, и ожидается, что они сделают MPC доступным для обычных людей с пользовательским опытом, аналогичным скрипту multisig.
Конфиденциальность типа скрипта: адреса Pay-to-Taproot (P2TR) — это новый тип адреса, который позволяет скриптовым мультиподписным биткойн-адресам выглядеть идентично адресам, используемым для кошельков singlesig. Это обеспечивает значительное улучшение конфиденциальности, поскольку означает, что сам биткойн-адрес не дает никаких подсказок о модели безопасности его владельца, например, о том, может ли он использовать скриптовую мультиподпись.
Несколько путей расходов: адреса P2TR также имеют возможность содержать несколько путей расходов, встроенных в них. Это может создать новые способы структурирования пороговой безопасности для хранения институционального уровня, как описано в BIP 342 (обоснование, раздел 5). Например, пользователь может создать сценарий N-из-N с мультиподписным путем расходов для каждой комбинации ключей, которые могут тратить средства. Вместо того, чтобы создавать кворум 2-из-3 с ключами A, B и C, можно достичь аналогичного результата с тремя отдельными кворумами 2-из-2 в качестве возможных путей расходов — один с ключами A и B, один с ключами A и C и один с ключами B и C. Эта стратегия может повысить конфиденциальность, поскольку будет раскрыт только тот путь расходов, который в конечном итоге будет использован. Подобную концепцию можно применить к кворумам общего доступа к ключам MPC, что позволит использовать MuSig2 для пороговых значений.
Эти инструменты Taproot относительно новые, и их внедрение все еще находится на ранних стадиях. Многие программы и сервисы биткоинов пока не предлагают полной поддержки того, что может предложить Taproot. Также стоит отметить, что большинство альткоинов не имеют этих инструментов изначально.
Заключительные мысли
Все большее число учреждений начинают интересоваться защитой биткойн-сокровищницы, и им требуются эффективные решения. Избежание отдельных точек отказа и минимизация риска контрагента являются первостепенными соображениями. Лучший способ соответствовать этим критериям — использовать структуру мультиподписи, где ключи могут быть распределены между различными ключевыми агентами предприятия, ни один из которых не будет иметь одностороннего контроля над биткойном. Каждый ключевой агент может использовать SSS или MPC для добавления дополнительной пороговой защиты для своего конкретного ключа.
Unchained стал пионером в области корпоративной кастодиальной сети, созданной для институциональных клиентов, которые хотят создать подобное соглашение. Он прост в использовании и настраиваем, так что каждый клиент может выбрать, хочет ли он сам держать контрольное количество ключей или только один ключ, или полностью возложить ответственность за обеспечение безопасности ключей на нескольких независимых корпоративных ключевых агентов. Если вы хотите узнать больше, запланируйте бесплатную консультацию с нами сегодня!
Особая благодарность Дхруву Бансалу за рецензирование этой статьи и предоставление ценных отзывов.
Первоначально опубликовано на Unchained.com.
Unchained Capital является официальным партнером Bitcoin Magazine по совместному кастодиальному хранению в США и неотъемлемым спонсором соответствующего контента, опубликованного в Bitcoin Magazine. Для получения дополнительной информации о предлагаемых услугах, продуктах кастодиального хранения и отношениях между Unchained и Bitcoin Magazine посетите наш веб-сайт.
Источник: Журнал Биткойн
Публикация Multisig, секретный обмен Шамира и сравнение MPC впервые появилась на Crypto Breaking News.
