*Кастодиальный кошелек — это приложение для хранения и перевода криптовалют, особенность которого в том, что его оператор (кастодиан) управляет адресами пользователей или имеет доступ к их приватным ключам. Кроме того, клиенты кастодиана должны проходить процедуру верификации личности (KYC)Преимущество централизованных систем – возможность сброса и восстановления паролей. Это удобно для пользователей, и они привыкли к тому, что такие опции есть. Но централизованные системы несут в себе огромные риски. Такие досадные инциденты, как крах биржи FTP и поглощение Mt. Gox, подчеркивают важность хранения ключей вне централизованных сервисов.
При хранении приватного ключа или мнемонической фразы в децентрализованных системах нет возможности сбросить или восстановить их. Исследование Chainalysis показало, что от 17 до 23 % биткойн-кошельков были потеряны из-за потери доступа к ним. В пересчете на монеты BTC это примерно 2,78 – 3,79 миллионов или 71,7 миллиарда долларов США. И это только в биткойнах, а сколько еще потеряно средств в ETH и других криптовалютах… Так где же лучше хранить цифровые активы, чтобы исключить взлом кошелька и возможность потери ключевой фразы?
Специалисты проекта Haqq озадачились вопросом разработки некастодиального кошелька с возможностью восстановления доступа. Настоящий текст – первый в серии статей, посвященных решению этой задачи.
Начнем с изучения основных технологий и математических методов, которые помогут решить поставленную задачу.
Схема разделения секрета Шамира (интерполяция Лагранжа)
Схема интерполяционных полиномов Лагранжа, известная также как схема разделения секрета Шамира (Shamir’s Secret Sharing) — это метод разделения секрета на несколько частей, которые затем могут быть использованы для восстановления исходного секрета. Согласно этому методу разделение секрета выполняется таким образом, что его можно восстановить только путем сбора заданного количества частей (k ≤ n), где k или более частей требуется для восстановления секрета. Важно отметить, что наличие k-1 или меньшего количества частей недостаточно для восстановления. Части секрета разделяются между несколькими сторонами, что позволяет безопасно хранить их в разных местах. В базовом случае приватный ключ разделяется на три части, причем для его восстановления необходимы только две части. Для разделения и восстановления секрета используется полиномиальная интерполяция.
Для интерполяции многочлена степени k-1 требуется k точек. Например, для задания прямой достаточно двух точек, для задания параболы — трех и так далее. Интерполяция невозможна, если известно меньшее число точек. Если мы хотим разделить секрет между n людьми таким образом, чтобы восстановить его могли только k человек, мы «прячем» его в формулу многочлена степени k-1. Восстановить этот многочлен и исходный секрет можно только по k точкам. Примечательно, что количество уникальных точек, которые можно получить из полинома, не ограничено. Этот алгоритм является одним из базовых в пороговой криптографии.
Плюсы и минусы схемы Шамира
К преимуществам схемы Шамира можно отнести:- Оптимальность. Отсутствие избыточности, поскольку каждая из составляющих секрета (часть или тень) имеет точно такой же размер, как исходный секрет.
- Масштабируемость. В пределах параметров схемы (k, n) количество сторон, владеющих частями секрета (n), может быть расширено до значения p, равного размеру числового поля, в котором ведутся расчеты. Однако количество частей (k), необходимых для восстановления секрета, останется неизменным.
- Динамичность. Можно периодически менять используемый полином и пересчитывать части, сохраняя при этом секрет (свободный член) неизменным. Это снижает вероятность нарушения защиты из-за утечки частей, поскольку для восстановления секрета требуется k частей, полученных с использованием определенной версии полинома.
- Гибкость. В ситуациях, когда участвующие стороны обладают разными ролями или привилегиями, схема учитывает это, позволяя выдавать несколько частей одной стороне.
- Ненадежность распределяющего. По умолчанию схема предполагает, что тот, кто генерирует и распределяет части секрета, надежен, что не всегда верно. Уязвимостями схемы можно также считать точки сбора и распределения частей секрета, так как в них секрет полностью собран.
- Отсутствие проверки корректности теней сторон: сторона, участвующая в разделении, не может с уверенностью сказать, что ее тень подлинная — при подстановке в исходный многочлен получается правильное равенство.
Этот метод имеет множество реализаций. Посмотреть их работу можно на демонстрационной странице.
Алгоритм является продолжением разработки VSS (Verifiable secret sharing). Существует два разных варианта этого алгоритма: схема Фельдмана и схема Бенало. Обе они – усовершенствованные варианты алгоритма SSS. VSS позволяет членам группы проверять, являются ли их общие ресурсы совместными (согласованными), то есть, воссоздают ли они один и тот же секрет. Другими словами, алгоритм гарантирует существование секрета, который участники впоследствии смогут восстановить, даже если распределение частей секрета было изменено намеренно или случайно.
Протокол конфиденциального вычисления
Протокол конфиденциального вычисления (Secure multi-party computation) или MPC — это криптографический протокол (набор алгоритмов), позволяющий нескольким участникам выполнить вычисление, зависящее от тайных входных данных каждого из них, таким образом, чтобы ни один участник не смог получить никакой информации о чужих входных данных. Протокол конфиденциального вычисления тесно связан с задачей разделения секрета. Используя его, мы повышаем сложность и надежность алгоритма. Полное описание криптографического протокола довольно обширно и не требуется для общего понимания. Важно лишь знать, что в MPC участники расчетов не делятся друг с другом своими входными данными.
Для решения нашей задачи (восстановление доступа к холодному криптовалютному кошельку) алгоритм MPC позволяет создать безопасную систему управления ключами без недостатков, имеющихся в схеме разделения секрета. То есть, несколько сторон, например, сервер и мобильное приложение, рассчитывают значения криптографических функций (подпись транзакции, генерация ключей и т. д.).
Критически важным является тот факт, что в MPC закрытый ключ никогда не генерируется и не восстанавливается. Вместо этого используются специализированные функции MPC, например, подписи. Это основное отличие MPC от классических алгоритмов исключает кражу закрытого ключа, которого изначально не существует.
Практическое применение протокола MPC в сфере криптовалют успешно реализовали две известных компании: Fireblocks и ZenGo.
Кошельки смарт-контрактов
Кошельки смарт-контрактов (Smart Contract Wallets) или CSM – это любопытный набор решений, в которых крипта фактически хранится на смарт-контрактах. Этими смарт-контрактами управляет пользователь или группа пользователей. Такой метод позволяет реализовать многофакторный ввод, восстановление и все остальные фишки подобных решений. Проблема заключается в том, что деньги хранятся не на кошельках, а на смарт-контрактах и по сути — не ваши (не ваш приватный ключ, значит, не ваши и деньги). Из-за этого подобные решения подвергаются множеству проверок на предмет доверия пользователей. Но если исключить ошибки в коде смарт-контракта (злонамеренные или случайные) и проблему с газом, то такие кошельки безопаснее и гибче классических, так как имеют более высокий уровень защиты. А еще они часто переходят на Layer 2 для контроля стоимости газа и для большей гибкости решений, в том числе для реализации AA — абстракции аккаунта.
Подробнее о том, что такое крипто-социальные кошельки или криптокошельки с функцией социального восстановления (Social Recovery), мы расскажем в следующей статье, а пока предлагаем ознакомиться с базовыми понятиями этой темы.
Введение в понятие крипто-социального кошелька от Виталика Бутерина.
Argent — кошелек на основе смарт-контракта без мнемо-фразы для восстановления. По сути, деньги хранятся на смарт-контракте, пользователю доступно только управление. Закрытый ключ хранится на телефоне в зашифрованном виде. Предусмотрена возможность восстановления через разделение ключа на части «хранение» и «распространение», включая аппаратные кошельки и передачу частей/прав другим пользователям. Имеется свой Oracle-сервер для возможности восстановления (дополнительная информация).
Athereum — самые замороченные ребята, прошедшие множество проверок (от Cure53, от Quantstamp, от g0 Group). Они пытались работать над Layer 2, но, похоже, не смогли и остановили проект. Можно сказать, что они стали жертвами платы за газ.
Safe Ecosystem Gnosis — в этом проекте используется защита с помощью мультиподписи, ориентированная в первую очередь на безопасность и фрагментацию доступа. На базе Gnosis можно строить целые сообщества. Тем, кто о нем еще не знает, рекомендуем изучить этот интересный проект.
Холодное хранение мнемонических фраз для криптовалютных кошельков
Холодное хранение мнемонических фраз – отличный способ сделать резервную копию пароля для восстановления доступа к кошельку в случае его утери или кражи. На видео показано, как работает холодный кошелек для хранения мнемонических фраз.
Холодный кошелек содержит:
- Полный набор слов английского словаря BIP39
- Монета с верхним и нижним винтовыми кольцами
- Два инструмента для отвинчивания колец и размещения слов
Сначала собирается монета для запоминания мнемонической фразы. Чтобы поместить слова внутрь монеты, необходимо открутить оба кольца. Набор пластин содержит полный словарь английского языка BIP39. Чтобы извлечь слова из табличек, используйте специальный инструмент из комплекта поставки. Чтобы слово попало в прорезь монеты, используйте специальную выемку в прорези. Используйте прилагаемый инструмент, чтобы выровнять слово в выемке и переместить его в прорезь для кольца. Крайне важно сохранить существующий порядок слов мнемонической фразы! Порядок слов – ключ к восстановлению доступа к кошельку!
Этот кошелек подходит не только для хранения мнемонических фраз BTC. Его также можно использовать для хранения фраз кошельков, созданных в блокчейне HAQQ. Холодный криптокошелек c мнемоническими фразами уже доступен для членов сообщества HCC. Вы можете оплатить часть стоимости токенами HCC, и это еще один отличный стимул для покупки цифровой валюты Halal Crypto Community.
Для членов сообщества HCC и Islamic Coin предусмотрены эксклюзивные условия покупки этого уникального криптокошелька из нержавеющей стали! Розничная цена составляет 350 долларов, цена для владельцев Islamic Coin и HCC — 320 долларов! 20 долларов от этой суммы можно оплатить с помощью Islamic Coin или HCC по цене 0,5 цента за монету!
Чтобы оформить заказ и стать одним из первых владельцев холодного кошелька, заполните форму – https://forms.gle/YtCVVHRq1vfC4HB89