💬 Почему Multisig важен для всех, кто верит в биткойн

Почему Multisig важен для всех, кто верит в биткойн 👑 Premium-робот: получай более 20-ти торговых идей в день!
Размер текста

Почему Multisig важен для всех, кто верит в биткойн

Это редакционная статья Ананта Тападии, компьютерного инженера и участника проектов самообслуживания биткойнов Bitcoin Keeper и Hexa Wallet.

Безопасность с мультиподписью, или «multisig», предлагает другой набор гарантий безопасности, чем решения с одной подписью (singlesig). Хотя я считаю, что одиночная подпись — отличная форма хранения, когда вы только начинаете работать с биткойнами или управляете небольшими суммами, на мой взгляд, любой, кто держит нетривиальное количество биткойнов в течение длительного времени, должен оценить вариант с мультиподписью.

Определение мультиподписи

Крайне важно понять, что мы подразумеваем под «кошельком», прежде чем я изложу свои доводы в пользу одного типа по сравнению с другим. Кошелек с мультиподписью называется «хранилищем» в таких приложениях, как Bitcoin Keeper и Blue Wallet, а некоторые также называют его «координатором» или «координирующим программным обеспечением». По сути, это кошелек, который может взаимодействовать с несколькими устройствами для подписи и координировать между ними подписание транзакций (обычно с использованием формата PSBT). Для сравнения, кошелек singlesig общается только с одним подписывающим лицом. Кошелек singlesig также часто является подписантом, что означает, что ключи горячие.

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

Мультиподпись часто называют «m-of-n», когда для подписания транзакции вам нужно «m ключей из n». Выходной дескриптор или BSMS — это формат, который используется для определения конфигурации мультиподписи. Это можно использовать для воссоздания вашей настройки на других координаторах или для регистрации мультиподписи на подписывающих устройствах.

Соображения по хранению биткойнов

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

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

Надежная мультиподпись от нескольких поставщиков (например, с хранением трех из пяти) может быть достигнута по цене от 250 до 600 долларов. Итак, если у вас есть около 0,5 BTC (около 11 000 долларов на момент написания этой статьи), потратить менее 10% на его обеспечение — неплохая идея, потому что стоимость этого биткойна может очень быстро вырасти.

Стоимость устройств для подписи также снижается, например, Tapsigner от Coinkite. Кроме того, использование неаппаратных программных клавиш дает варианты с нулевой стоимостью, но не рекомендуется использовать их более чем для одной клавиши в настройке с несколькими подписями.

Смягчение распространенных атак

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

Самая прямая атака, которую я опишу, — это когда пользователь пытается получить средства, а приложение-координатор вместо этого показывает адрес злоумышленника. В таких сценариях программное обеспечение все еще может показать, что средства были получены там, где намеревался пользователь. Эта атака теоретически возможна с любым кошельком с одной подписью, потому что пользователь полагается на кошелек, чтобы сгенерировать для него адрес. Невозможно вручную получить адреса из фразы восстановления из 12 или 24 слов.

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

Как и в предыдущем сценарии атаки, координатор мультиподписи может заменить адрес, на который вы пытаетесь отправить средства, при создании PSBT. Ситуация не будет отличаться в случае с обычным кошельком singlesig.

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

Менее очевидная атака — это когда приложение-координатор заменяет адрес изменения в вашей транзакции. Это означает, что сдача от транзакции пойдет на адрес злоумышленника. В отличие от адреса отправки, пользователь может не проверять адрес смены при отправке средств, что делает эту атаку менее очевидной. Опять же, нет никакой разницы, когда речь идет о решении с одной подписью.

Именно здесь крайне необходима регистрация мультиподписи на подписывающих устройствах. Если регистрация выполнена, подписывающее устройство не подпишет транзакцию, если оно не идентифицирует адрес изменения.

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

Поэтому рекомендуется, чтобы в вашей настройке было n зарегистрированных устройств. Более того, вы подтверждаете данные настройки на всех таких устройствах при регистрации. Другой способ проверить правильность регистрации — настроить ту же самую мультиподпись на другом программном обеспечении координатора и проверить, показывает ли она точные данные.

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

Этот тип атаки аналогичен предыдущему, но злоумышленник контролирует меньше «n» ключей, поэтому он не может контролировать средства. Но в ситуации, когда вы потеряете часть ключей, злоумышленник может удержать вас с целью получения выкупа, так как теперь у вас нет необходимого минимального кворума. Эта атака также может быть выполнена путем вставки ключа, когда в настройку добавляются дополнительные подписчики. Это имеет тот же эффект, что и замена некоторых созаемщиков.

Опять же, проверка сведений о соподписанте нескольких координаторов, нуждающихся в регистрации, снизит вероятность таких атак.

Использование мультиподписи для ваших биткойнов

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

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

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

Я также считаю, что никогда нельзя ошибиться при тестировании установки. Как только вы подготовите мультиподпись, продублируйте настройку на других координаторах. Получите небольшую сумму в одном приложении и отправьте ее часть из другого. Убедитесь, что балансы должным образом отражены по всем координаторам после каждого шага.

Ссылки и дополнительная литература:

  • «10-кратное руководство по безопасности биткойнов»
  • «Насколько почти все персональные аппаратные кошельки с мультиподписью небезопасны»
  • Это гостевой пост Ананта Тападии. Высказанные мнения являются полностью их собственными и не обязательно отражают точку зрения BTC Inc или Bitcoin Magazine.

    Ограничение / снятие ответственности (дисклеймер): Вся информация на этом сайте предоставляется исключительно в информационных целях и не является предложением или рекомендацией к покупке, продаже или удержанию каких-либо ценных бумаг, акций или других финансовых инструментов. Авторы контента не несут ответственности за действия пользователей, основанные на предоставленной информации. Пользователи обязаны самостоятельно оценивать риски и проконсультироваться со специалистами перед принятием каких-либо инвестиционных решений. Вся информация на сайте может быть изменена без предварительного уведомления.

    Свежие новости по теме: Криптовалюта, NFT и криптобиржи

    🚀