Решение Google Cloud для кастодиального хранения: почему говорят, что закрытый ключ «никогда не появляется целиком»?
На этой неделе взломали горячий кошелёк биржи. В ту же неделю я заглянул в документацию Google Cloud о продукте Multi-party Compute (многостороннее вычисление) для кастодиального хранения — он предназначен для управления закрытыми ключами, которыми подписывают операции с цифровыми активами. Суть в одной фразе: разделить ключ на несколько частей, хранить их отдельно и при подписании не собирать вместе.
Если свести официальную документацию к нескольким пунктам:
1. Недостаток старого подхода: полный закрытый ключ хранится в одном аппаратном модуле безопасности — это единая точка отказа. Если скопировать его на несколько устройств и в разные регионы, доступность повысится, но каждая копия будет содержать полный ключ — то есть появится больше дверей, которые можно взломать.
2. Как работает решение: пороговая подпись (в документации описано усиленное расширение протокола DKLS23). Несколько независимых участников генерируют и хранят у себя по одной «доле ключа». При подписании они вместе вычисляют действительную подпись, но полный закрытый ключ нигде не собирается.
3. Границы безопасности: если взломано меньше участников, чем требуется для достижения порога, подделать подпись и восстановить закрытый ключ нельзя. Если несколько участников отключатся или их доли будут безвозвратно повреждены, остальные всё равно смогут подписывать — при условии, что их достаточно для достижения порога.
4. Пример (суть цитаты из документации): три человека из финансовой команды хранят по одной доле; для подписания нужно согласие любых двоих.
5. Поддерживаемые варианты: кривая secp256k1 — для Bitcoin, Ethereum и сетей EVM; для Ed25519 (Solana) указано «скоро появится». Сейчас продукт доступен в предварительной версии (Pre-GA).
Несколько оговорок:
· В документации есть одно очень честное замечание: торговые стратегии (например, лимиты и белые списки) лишь выдают рекомендацию «разрешить/отклонить». Если достаточно много подписантов одобрят транзакцию, она всё равно будет выполнена, даже если стратегия её отклонила. Пороговая схема защищает от взлома одного участника, но не от ситуации, когда мошенникам удаётся обмануть достаточное число людей.
· Разделить ключ — не значит автоматически обеспечить безопасность денег. Если подписантов поймают на фишинг или процедура согласования будет формальностью, неприятности всё равно возможны.
· Официальный полный технический отчёт о том, на каком именно этапе произошла утечка на этой неделе, ещё не опубликован. Я не буду подгонять этот случай под MPC и утверждать, что «с ним вас не ограбят».
· Обычным пользователям кастодиальное хранение для организаций не нужно, но общий принцип применим ко всем: не храните сид-фразу только в одном месте и не фотографируйте её целиком, чтобы загрузить в облако.
А ваша сид-фраза сейчас хранится «в одном экземпляре в одном месте» или «скопирована в несколько мест»?
#MPC #钱包安全 #科普
На этой неделе взломали горячий кошелёк биржи. В ту же неделю я заглянул в документацию Google Cloud о продукте Multi-party Compute (многостороннее вычисление) для кастодиального хранения — он предназначен для управления закрытыми ключами, которыми подписывают операции с цифровыми активами. Суть в одной фразе: разделить ключ на несколько частей, хранить их отдельно и при подписании не собирать вместе.
Если свести официальную документацию к нескольким пунктам:
1. Недостаток старого подхода: полный закрытый ключ хранится в одном аппаратном модуле безопасности — это единая точка отказа. Если скопировать его на несколько устройств и в разные регионы, доступность повысится, но каждая копия будет содержать полный ключ — то есть появится больше дверей, которые можно взломать.
2. Как работает решение: пороговая подпись (в документации описано усиленное расширение протокола DKLS23). Несколько независимых участников генерируют и хранят у себя по одной «доле ключа». При подписании они вместе вычисляют действительную подпись, но полный закрытый ключ нигде не собирается.
3. Границы безопасности: если взломано меньше участников, чем требуется для достижения порога, подделать подпись и восстановить закрытый ключ нельзя. Если несколько участников отключатся или их доли будут безвозвратно повреждены, остальные всё равно смогут подписывать — при условии, что их достаточно для достижения порога.
4. Пример (суть цитаты из документации): три человека из финансовой команды хранят по одной доле; для подписания нужно согласие любых двоих.
5. Поддерживаемые варианты: кривая secp256k1 — для Bitcoin, Ethereum и сетей EVM; для Ed25519 (Solana) указано «скоро появится». Сейчас продукт доступен в предварительной версии (Pre-GA).
Несколько оговорок:
· В документации есть одно очень честное замечание: торговые стратегии (например, лимиты и белые списки) лишь выдают рекомендацию «разрешить/отклонить». Если достаточно много подписантов одобрят транзакцию, она всё равно будет выполнена, даже если стратегия её отклонила. Пороговая схема защищает от взлома одного участника, но не от ситуации, когда мошенникам удаётся обмануть достаточное число людей.
· Разделить ключ — не значит автоматически обеспечить безопасность денег. Если подписантов поймают на фишинг или процедура согласования будет формальностью, неприятности всё равно возможны.
· Официальный полный технический отчёт о том, на каком именно этапе произошла утечка на этой неделе, ещё не опубликован. Я не буду подгонять этот случай под MPC и утверждать, что «с ним вас не ограбят».
· Обычным пользователям кастодиальное хранение для организаций не нужно, но общий принцип применим ко всем: не храните сид-фразу только в одном месте и не фотографируйте её целиком, чтобы загрузить в облако.
А ваша сид-фраза сейчас хранится «в одном экземпляре в одном месте» или «скопирована в несколько мест»?
#MPC #钱包安全 #科普
