Криптография и конфиденциальность
Несомненным плюсом криптовалют является возможность для пользователя сохранять в своих руках максимум контроля над активами. Владелец крипты может не зависеть от третьих лиц, таких как банки, государства или биржи, держа свои активы на собственном кошельке. В этом случае приватный ключ оказывается защищенн seed-фразой. Тот, кто ею обладает, может восстановить доступ к кошельку.С одной стороны, seed-фраза, если ее надежно хранить, превосходно обеспечивает сохранность криптовалюты. С другой стороны, в случае ее утраты, доступ к средствам может оказаться навсегда потерянным. У Биткоина нет горячей линии, куда можно позвонить, суды, программисты, техподдержка – никто не сможет помочь в случае утраты seed-фразы. Для смягчения данной проблемы без риска уменьшения безопасности используется схема разделения секрета Шамира (Shamir's secret sharing – сокращенно SSS).
Ади Шамир (Adi Shamir) – израильский ученый-криптограф. Его вклад в изучение вопроса сложено переоценить. Криптографический алгоритм с открытым ключом RSA (сокращение от фамилий Rivest, Shamir и Adleman) стал важной вехой в истории развития методов ассиметричного шифрования. Протокол Фиата–Шамира широко используется для идентификации с нулевым разглашением.В то же время, наработки Ади Шамира напрямую используются в криптовалютах весьма ограниченно. BTC использует не RSA-протокол, а более удобный ECDSA, работающий на эллиптических кривых. Протокол Фиата–Шамира также имел довольно ограниченную реализацию. Существует научное исследование, признавшее его недостаточно безопасным.
Схема разделения секрета Шамира
Вернемся к SSS. Алгоритм SSS работает путем разделения секрета на несколько частей, каждая из которых сама по себе бесполезна. Чтобы восстановить и извлечь секрет, необходимо объединить определенное количество долей, которых будет достаточно. Иными словами, секрет делится на n-частей, и чтобы его восстановить, нужно заранее заданное m-количество (понятно, что n>=m).Например, мы разделили секрет на шесть частей и решили, что четырех будет достаточно на его восстановление. В этом случае даже при утрате двух частей мы сможем восстановить секрет. По сути это очень напоминает мультиподпись.
Когда это может быть полезным
В контексте хранения сид-фразы SSS открывает возможности для шифровки информации с последующим дроблением секрета на части. Это в теории позволяет более надежно хранить ключ от биткоин-кошелька. Или, например, распределить секрет среди доверенных лиц. В этом случае каждый отдельный человек не сможет самостоятельно получить доступ к средствам.Обычная seed-фраза может быть подвержена риску потери или перехвата злоумышленником. Снижение обоих этих рисков одновременно невозможно в сценарии с seed-фразой: риск потери можно уменьшить путем создания нескольких копий, но это увеличивает риск кражи; риск кражи можно снизить, имея одну копию, но это увеличивает риск потери. Схема разделения секрета Шамира устраняет оба этих риска, поскольку существует несколько частей секрета (снижается риск потери), а для восстановления кошелька требуется заранее определенное количество частей (снижается риск кражи).
Интересное применение этого способа может быть связано с наследованием: части секрета можно распределить среди наследников, и тогда только сообща они смогут получить доступ к кошельку.Пример реализации схемы – отдельные аппаратные криптокошельки с реализованной функцией Shamir Backup. В частности, ими выступают некоторые устройства от Trezor. Но отметим, что решение может подойти не всем.
Недостатки использования SSS
Использовать SSS можно, как правило, вместе с аппаратными кошельками. В этом случае есть риск вредоносного ПО и прошивок, которые перехватят нужное количество частей секрета, захватят доступ к кошельку. Более того, и без злоумышленников есть риски, связанные с аппаратными кошельками: порча или потеря устройства, неудачная прошивка.Разделение одного секрета на несколько частей может гипотетически снизить риск потери (за счет того, что не все части нужны для восстановления), но этот риск остается, и не так просто оценить, насколько он ниже по сравнению с разумным и аккуратным хранением обычной seed-фразы.
Более того, SSS ограничивает «пользовательскую мобильность», может заинтересовать долгосрочных инвесторовходлеров, но активных юзеров, которым нужен постоянный доступ к активам – уже спорно. В целом, использование SSS в таком виде может оказаться избыточным: привычная всем seed-фраза – это уже вполне надежный механизм, который, кстати, можно усилить и другими способами.