Вернуться в блог
MultiSig

MPC или MultiSig: честное сравнение

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

Попросите десять инженеров по безопасности разрешить спор MPC против мультиподписи — и услышите знакомое разделение: вендоры технологий хранения выступают за MPC, ветераны Bitcoin — за мультиподпись, и оба лагеря говорят мимо друг друга. Это сравнение заслуживает большего, ведь оба подхода решают одну и ту же задачу — ни один человек, ни одно устройство и ни один сервер не должны иметь возможности перемещать средства в одиночку — но делают это в принципиально разных местах. MPC (многосторонние вычисления, multi-party computation) разделяет сам ключ с помощью офчейн-криптографии. Мультиподпись разделяет полномочия, опираясь на правила, соблюдение которых обеспечивает сам блокчейн.

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

Два способа разделить право тратить

MPC-кошелёк обычно строится на схеме пороговой подписи (threshold signature scheme, TSS). Она разбивает один приватный ключ на математические доли, которые хранятся у разных сторон или на разных устройствах; чтобы подписать транзакцию, держатели долей выполняют интерактивный протокол и совместно вычисляют одну обычную подпись. Полный приватный ключ ни в один момент не существует целиком ни в одном месте — даже когда кошелёк только создаётся. Блокчейн видит обычный адрес и обычную подпись и понятия не имеет, что в подписании участвовал кворум.

Мультиподпись идёт противоположным путём. Каждый участник владеет полноценным независимым ключом, а правило расходования — скажем, 2-of-3 — записано там, где сеть может его видеть и обеспечивать его соблюдение: в скрипте Bitcoin, который нативно поддерживает мультиподпись с 2012 года, или в смарт-контракте в сетях вроде Ethereum. Мультиподпись 2-of-3 не выпустит средства, пока два из трёх зарегистрированных ключей не создадут каждый свою действительную подпись. Кворум здесь — не обещание запускаемого вами программного обеспечения, а правило, соблюдение которого обеспечивает консенсус сети.

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

MPC переносит кворум в криптографию и просит вас довериться реализации. Мультиподпись записывает кворум в блокчейн и позволяет проверить его кому угодно.
Схема: доли ключа MPC подписывают офчейн, так что блокчейн видит одну подпись, в сравнении с ключами мультиподписи, которые подписывают по отдельности, а соблюдение правила 2 из 3 обеспечивает сам блокчейн
Одна и та же политика 2-of-3, обеспечиваемая в двух разных местах: офчейн-протокол против ончейн-правила.

Аргументы в пользу MPC

Преимущества MPC реальны, и именно они объясняют, почему значительная часть институционального хранения построена на этой технологии.

  • Покрытие сетей достаётся почти бесплатно. Одна реализация порогового ECDSA в принципе покрывает любую сеть, которая принимает подписи ECDSA. Не нужно писать, аудировать и разворачивать отдельный контракт под каждую сеть — а для продуктов на мультиподписи это реальная статья затрат, ведь им приходится заново реализовывать свою модель в каждой поддерживаемой сети.
  • Адрес выглядит обычным. MPC-кошелёк платит комиссии как за одну подпись и ничего не раскрывает о своей политике в блокчейне. До активации taproot в 2021 году траты с Bitcoin-мультиподписи были заметно крупнее и дороже, чем траты с одной подписью; у MPC такой проблемы не было никогда.
  • Доли можно ротировать. Проактивное обновление (proactive refresh) позволяет держателям заново рандомизировать свои доли, не перемещая средства и не меняя адрес пополнения, так что атакующему приходится скомпрометировать кворум долей в пределах одного окна ротации, а не за годы.
  • Нет риска смарт-контракта. В блокчейне ничего не разворачивается, а значит, нет кода контракта, который можно проэксплуатировать. Инцидент Parity 2017 года — ошибка в общей библиотеке мультиподписи, которая заморозила сотни миллионов долларов в ETH — это поучительная история, на которую ссылается каждый вендор MPC, и ссылается справедливо.

Где MPC ломается

Слабые стороны столь же структурны — и о них рассказывают куда меньше.

Криптография по-настоящему сложна. Пороговый ECDSA — это интерактивный многораундовый протокол с острыми углами, и ошибки в нём доходили до продакшена. В 2023 году исследователи безопасности раскрыли практические атаки на извлечение ключа против нескольких широко распространённых реализаций порогового подписания — изъяны в коде, а не в лежащей в основе математике, но пользователи затронутых кошельков всё равно оказались под угрозой. Ключевое допущение пользователя мультиподписи — «блокчейн проверяет подписи корректно». Ключевое допущение пользователя MPC — «мой вендор корректно реализовал тонкий криптографический протокол». Это допущения совсем разного масштаба.

Никто со стороны не может проверить кворум. MPC-адрес выглядит как любой другой адрес, а значит, порог, заявленный в маркетинговых материалах, невозможно проверить в блокчейне. Инцидент Multichain в июле 2023 года сделал это наглядным: около $125 млн ушли с адресов проекта, а последующие заявления команды указали на то, что серверы, хранившие ключевой материал, всё это время фактически находились под контролем одного человека. Что бы ни обещала схема архитектуры, операционной реальностью была одна точка отказа — и ни один сторонний наблюдатель не смог бы обнаружить это по блокчейну.

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

Подотчётность слабее. Результат церемонии подписания MPC — одна агрегированная подпись. Блокчейн не может показать, кто из участников одобрил транзакцию; какая бы атрибуция ни существовала, она живёт в логах вендора, которыми управляет сам вендор.

Табло, показывающее, что мультиподпись делает проверяемыми кворум, личность подписанта и восстановление без вендора, тогда как MPC оставляет их непроверяемыми, но сохраняет политику приватной
Что на самом деле может проверить сторонний наблюдатель. Каждый подход выигрывает в разных строках.

Аргументы в пользу мультиподписи — и её честная цена

В сравнении MPC против мультиподписи ончейн-мультиподпись переворачивает почти все эти свойства. Политика публична, и её соблюдение обеспечивает консенсус, поэтому аудитор, сооснователь или суд могут подтвердить кворум, не доверяя чьей-либо панели управления. Каждое одобрение — это отдельная подпись от отдельного ключа, так что после инцидента вы точно знаете, какие ключи подписали. А поскольку ключи — обычные ключи (в MultiSig от Ownbit каждый участник — это стандартная seed-фраза BIP39), восстановление не зависит от того, продолжит ли существовать какая-либо компания. Мультиподпись Bitcoin защищает средства таким образом уже больше десяти лет.

Цена столь же конкретна. Больше подписей — значит крупнее транзакции и выше комиссии, хотя на Bitcoin taproot сократил этот разрыв. Политика, которую так любят аудиторы, видна и злоумышленникам: кошелёк 2-of-3 сам заявляет, что он собой представляет. Мультиподпись нужно реализовывать под каждую сеть — скрипт Bitcoin, контракты EVM, нативная схема TRON, программы Solana — и качество реализаций разнится. А в сетях со смарт-контрактами сам контракт становится поверхностью атаки, поэтому код контрактов мультиподписи должен быть открытым и поддаваться независимому аудиту; именно по этой причине Ownbit публикует свои контракты мультиподписи.

MPC против мультиподписи: как выбрать

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

Выбирайте мультиподпись, когда политика должна быть проверяемой людьми, которые не вполне доверяют друг другу — сооснователями, деловыми партнёрами, членами семьи — или должна пережить любую причастную компанию. Если два партнёра хотят доказательства, а не заверений, что ни один из них не может в одиночку перемещать средства казначейства, ончейн-схема 2-of-3 даёт именно это — и любой из них сможет подтвердить эту договорённость через блокчейн-обозреватель спустя годы, не спрашивая ни у кого разрешения. Для организаций, которым нужна структура поверх кворума, Корпоративный MultiSig добавляет роли владельца и подписанта, веса подписантов, лимиты трат и белые списки адресов.

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

Итак, честное резюме сравнения MPC против мультиподписи: MPC покупает операционную гибкость и приватность, а платит проверяемостью и зависимостью от вендора; мультиподпись покупает проверяемость и независимость, а платит комиссиями, приватностью и инженерными усилиями под каждую сеть. Решите, в какой валюте вы предпочли бы платить — средства по-настоящему принадлежат вам только тогда, когда режимы отказа вам понятны.

Часто задаваемые вопросы

MPC безопаснее мультиподписи?

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

Есть ли у MPC-кошелька seed-фраза?

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

Можно ли восстановить кошелёк с мультиподписью без компании, которая его создала?

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

Можно ли использовать MPC и мультиподпись вместе?

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

Если вы склоняетесь к проверяемому концу этого компромисса, Ownbit MultiSig — практичный способ его попробовать: схема 2-of-3 на двух телефонах и устройстве члена семьи, каждый ключ — стандартная seed-фраза, контракты с открытым исходным кодом и 7-дневный бесплатный период для новых пользователей. Ваши ключи и активы остаются вашими независимо от статуса подписки.