28 февраля 2020

Защита приватных ключей: Схема Мультисиг против схемы Разделения Cекрета Шамира

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

Недостатком безопасного хранения любой конфиденциальной информации, такой как приватные ключи, является проблема безопасности данных:

  • ПОТЕРЯ ДАННЫХ: потеря доступа к необходимым данным.
  • КРАЖА ДАННЫХ: возможность доступа к конфиденциальным данным для третьих лиц.

Давайте предположим, что вы должны охранять что-то ценное, например, рецепт колы. У вас с собой только одна копия. Вы можете защитить рецепт любым из следующих способов, указанных ниже:

  1. Защитить рецепт с помощью шифрования. Данный метод кажется очевидным для защиты рецепта, но, на самом деле, он просто смещает вектор атаки с нахождения рецепта на подбор ключа шифрования.
  2. Оставить рецепт на хранение в банковском хранилище. Данный подход по своей сути основан на том, что банковские хранилища воспринимаются как очень безопасные. Но что произойдет в случае, если хранилище будет уничтожено по какой-либо причине, например, в результате стихийного бедствия? Вы теряете рецепт, и это становится проблемой, так как у вас в наличии имеется лишь один экземпляр данного рецепта. Что происходит в случае, если кто-то вломится в хранилище и опустошит каждый шкафчик? В подобном случае, вы не только теряете единственную копию рецепта, но его приобретает и кто-то другой, кто получает возможность извлечь из этого свою собственную выгоду. Помимо этого, восстановить рецепт по памяти не представляется возможным в силу его сложности. Очевидно, что данный подход не решает ни проблему потери данных, ни проблему их кражи.
  3. Сделать несколько копий рецепта и хранить их в разных хранилищах по всему миру. Теперь, в случае, если какое-либо из хранилищ будет взломано, у вас все еще есть рецепт, и, следовательно, риск потери рецепта снижается благодаря устранению единственной точки уязвимости (single point of failure). Хотя вы по-прежнему имеете доступ к оригинальному рецепту, точная копия этого рецепта попадает к третьему лицу, которое может им воспользоваться без вашего согласия, что в данном случае является основным недостатком. Следовательно, подобный способ не решает проблему кражи данных.
  4. Разбить сложный рецепт на несколько частей и хранить их в разных местах. Теперь, если что-то случится с одним из хранилищ, вы потеряете только часть рецепта, но будете иметь доступ к остальным данным. Недостатком такого подхода является то, что рецепт бесполезен по частям и имеет ценность только при условии наличия всех частей. Это приведет к сложности восстановления недостающей части и, в конечном счете, рецепта в целом. Таким образом, данный способ не решает проблему потери данных.

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

Мультисиг

Мультисиг | Источник: en.bitcoinwiki.org

С целью решения данной проблемы разработчики Биткоин-протокола внедрили мульти-подпись или, как это принято называть, мультисиг. Идею, стоящую за внедрением мультисига, можно понять, взяв в качестве примера банковскую ячейку. Для открытия ячейки понадобится 2 ключа: один принадлежит клиенту, а второй хранится в банке. Аналогичным образом, используя мультисиг, любой может быть уверен, что сделки могут совершаться только при условии их одобрения минимальным количеством лиц, уже обладающих ключами.

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

  • Не существует стандартной реализации схемы мультисиг для различных поддерживающих его блокчейнов. Существуют различные реализации, предложенные разными организациями, код некоторых из них даже не является открытым. Кроме того, существуют риски, связанные с изменениями on-chain протоколов, которые в идеале должны оставаться неизменными.
  • При использовании несколькими участниками схемы мультисиг имеет место потеря конфиденциальности в отношении средств среди соавторов подписей. Таким образом, если третье лицо выступает в роли соавтора подписи, оно может легко отследить объемы средств. Если это третье лицо окажется злоумышленником, оно может использовать полученную информацию в собственных интересах.
  • Лишь некоторые блокчейны на данный момент поддерживают схему мультисиг. Мультисиг не является универсальным решением и должно быть реализовано для каждого блокчейна отдельно, что препятствует распространению схемы. Кроме того, они не могут привычным способом быть использованы для обеспечения безопасности других цифровых активов, таких как ключи SSH.
  • Сделка с несколькими центрами передачи данных сопряжена с более высокими затратами по сравнению со сделкой, совершаемой с помощью одного ключа.
  • Существует ограничение на число соавторов, приемлемое для использования системы мультисиг.
  • Смена схемы является нелегкой задачей. Например, если один из приватных ключей при использовании схемы “3 из 5” скомпрометирован, появляется необходимость обновить данную схему, что, в свою очередь, потребует выполнения дополнительных шагов для отправки монет на новый адрес, а именно:
  • сгенерировать новый адрес мультисиг с новым приватным ключом,
  • собрать как минимум 3 из 5 подписей к старому адресу

Основной альтернативой схеме мультисиг является схема разделения секрета Шамира.

Разделение секрета Шамира

Рис. РСШ | Источник: Ethos

Разделение секрета Шамира (РСШ) позволяет разделить секрет на определенное количество частей — n таким образом, что с помощью любых m-из-n частей можно восстановить исходный секрет. При этом, обладая лишь m-1 частями, раскрыть секрет невозможно. Это позволяет пользователю установить порог безопасности, равный количеству = ‘m’ требуемых частей. Секрет расшифровывается обладателями частей приватного ключа при достижении минимального порога с помощью Интерполяционного многочлена Лагранжа. Методика очень похожа на мультисиг, но РСШ выполняется офчейн (вне цепочки), в то время как мультисиг полностью реализован ончейн (в самой цепочке). В случае с мультисиг различные приватные ключи используются при генерации мультисиг-адреса, в то время как в РСШ один приватный ключ разбивается на несколько частей. С точки зрения баланса между удобством и безопасностью, схема РСШ предпочтительнее для физических лиц, в то время как схема мультисиг лучше подойдет предприятиям.

У схемы РСШ есть ряд преимуществ, которые ставят ее в выигрышную позицию по сравнению со схемой мультисиг:

  • Поскольку вычисления производятся офчейн, можно реализовать иерархическую систему РСШ, в которой РСШ далее применяется на каждой самой части секрета. Это позволяет осуществлять многомерный контроль доступа, не представляющийся возможным при использовании мультисиг. В связи с офчейн реализацией отсутствует риск изменения протокола ончейн.
  • Так как схема РСШ может быть применена к любой конфиденциальной информации, в отличие от мультисиг, стандартизированная реализация возможна для защиты любой конфиденциальной информации, такой, как приватные ключи на блокчейне, корневые ключи сервера, PGP/GPG сертификаты и т. д.
  • В отличие от схемы мультисиг, РСШ может работать с любым блокчейном. Защита сид-фразы протокола BIP39 с помощью РСШ избавляет приватные ключи от проблемы единой точки отказа и позволяет защитить приватные ключи любого блокчейна.
  • Конфиденциальность не теряется при условии, что совладельцы не имеют информации об открытом ключе.
  • Использование одного приватного ключа приводит к снижению затрат на транзакцию.
  • Количество частей, сгенерированных с помощью РСШ, практически неограничено.
  • Процесс изменения схемы при использовании РСШ упрощен. Например, при использовании установки “3 из 5” РСШ, где одна из частей ключа оказалась скомпрометированной, вам просто потребуется сгенерировать новые части приватного ключа. То есть, не возникнет необходимости совершать какие-либо дополнительные операции.

В аппаратном кошельке Cypherock X1 для создания криптографических составляющих используется схема РСШ. Это гарантирует разделение фазы восстановления кошелька между различными защищенными от взлома устройствами. Результатом является обеспечение эффективности и безотказности механизма восстановления кошелька. Целью Cypherock является решение проблемы восстановления кошелька и передачи криптографических валют по наследству. Команда Cypherock заинтересована в спокойствии и абсолютной уверенности пользователей в безопасности их криптовалютных сбережений.

Заказать Cyperock X1 можно, перейдя по ссылке.

Контактная информация:

Твиттер: twitter.com/CypherockWallet

Телеграм: t.me/cypherock

Обсудить в Discord!