Что нужно знать: |
– Miniscript позволяет создавать программные биткойн-кошельки, которые делают невозможным использование бэкдора. Мы рады сообщить, что Ledger — первый производитель коммерческих аппаратных кошельков, поддерживающий miniscript.
– Дополнительные функции могут быть реализованы без ущерба для пользовательского опыта. |
Аппаратные устройства для подписи предназначены для защиты пользователя от различных распространенных векторов атак, таких как:
- Несанкционированный доступ и извлечение семян
- Вредоносное ПО, заражающее ваш связанный программный кошелек
- Программные уязвимости на самом устройстве
Как и в любом другом бизнесе, в интересах производителя делать устройства максимально Неуязвимый как они могут. Успех в этой миссии имеет первостепенное значение, и охранные компании, такие как Ledger, полагаются на репутацию, основанную на их послужном списке.
Тем не менее, у некоторых пользователей все еще могут быть проблемы. Что мешает самой компании скрывать задняя дверь в устройствах?
В самообороне мы не верь, мы проверяем.
Но может ли пользователь на самом деле проверить, что на устройстве нет бэкдора?
Это ключевой вопрос, которому посвящена данная статья. Точнее, в этой статье рассматриваются следующие темы:
- что такое бэкдор и почему трудно, если вообще возможно, доказать, что его нет;
- почему только пользователи могут защитить себя от этого риска;
- как miniscript позволяет практически решить эту проблему для биткойн-кошельков.
Будучи первым аппаратным кошельком, поддерживающим минискрипт, мы надеемся вдохновить разработчиков на создание безопасных решений и модернизацию всей нашей отрасли, а также исключить вероятность того, что такой системный риск когда-либо материализуется.
Как построить незащищенный подписывающее устройство
Скажем прямо: нельзя.
Чтобы защитить себя от потенциального бэкдора, вам нужна модель атаки, отличная от той, которую мы описали выше: в этом сценарии противником может быть сам поставщик или коррумпированный инсайдер.
Часто рекламируемое решение этой проблемы — Open Source: в конце концов, если вы можете проверить код, что может пойти не так?
Однако правда сложнее. Поскольку поставщик собирает оборудование, бэкдор может полностью содержаться внутри него. Аппаратное обеспечение может быть спроектировано так, чтобы в определенные моменты игнорировать программное обеспечение и вместо этого выполнять вредоносный код.
В отличие от программного обеспечения, которое работает на вычислительных устройствах общего назначения (таких как ваш ноутбук или телефон), тщательное изучение оборудования практически невозможно с современными технологиями. Даже если бы спецификации аппаратных средств были полностью открытыми и содержали детали каждого вентиля в схеме, вам все равно понадобилось бы дорогостоящее оборудование для проверки того, что конкретный чип построен в соответствии с ними.
Как заблокировать аппаратный кошелек
Вот несколько простейших методов, которые может использовать поставщик вредоносного оборудования для внедрения бэкдора, а также некоторые способы, с помощью которых опытные пользователи могут защитить себя сегодня.
Генерация семян
Многие устройства предлагают вам возможность генерировать начальное число (также называемое Секретная фраза восстановления) непосредственно на устройстве с помощью Генератор истинных случайных чисел.
😈 Зловредное устройство может генерировать семена, которые кажутся случайными, но на самом деле предсказуемы для злоумышленника.
🛡️ Опытные пользователи могут обойти эту проблему, сгенерировав мнемонику в автономном режиме. Кроме того, включение надежного фраза также может генерировать полностью независимое начальное значение, которое поставщик оборудования не может предсказать. Компромисс заключается в том, что пользователи должны обеспечить правильное резервное копирование парольной фразы в дополнение к мнемоническим словам.
Получение открытого ключа
Аппаратные кошельки получают и экспортируют открытые ключи (также называемый xpubs, Короче для расширенный открытый ключ как определено в БИП-32, xpubs используются для генерации возможных адресов для получения монет.
😈 Злое устройство может вернуть открытые ключи, контролируемые злоумышленником, вместо правильных ключей, полученных из seed.
🛡️ Пользователи могут проверять производные xpub на другом автономном устройстве. Однако ввод сид-фраз на других устройствах сопряжен с риском. Заботящиеся о безопасности пользователи могут счесть любое устройство, получившее доступ к сид-фразе, опасным, вплоть до их уничтожения. Типичный пользователь может столкнуться с трудностями при правильном выполнении этой процедуры при управлении дополнительными рисками.
Утечка информации
An воздушный зазор часто предлагается в качестве решения для предотвращения эксфильтрации секретных ключей вредоносным или скомпрометированным устройством. В конце концов, если устройство не может общаться с внешним миром, оно не может сделать ничего вредного, верно?
Не совсем!
Устройство всегда может обмениваться данными, когда оно используется: оно создает подписи. Эти подписи оказываются внутри транзакций, которые транслируются и навсегда сохраняются в блокчейне.
Подпись представляет собой случайную строку байтов длиной не менее 64 байтов. Однако, поскольку одному и тому же сообщению может соответствовать более одной действительной подписи, вредоносное устройство может передавать несколько битов информации каждый раз при создании подписи, создавая несколько подписей и выборочно выбирая, какую из них опубликовать.
😈 Мошенническое устройство может генерировать неслучайные подписи, которые во многих транзакциях раскрывают злоумышленнику семя!
Злоумышленнику, успешно установившему такой бэкдор, нужно будет просто дождаться появления вредоносных сигнатур в блокчейне, пока у него не будет достаточно информации для восстановления всего начального числа.
🛡️ Для подписей ECDSA с использованием стандартизированного метода детерминированного получения одноразового номера (например, RFC6979) препятствует этой атаке при условии, что полученная подпись соответствует ожидаемой. Однако для обеспечения этого требуется загрузить второе устройство тем же начальным числом, что приводит к тем же практическим проблемам, упомянутым в предыдущем разделе.
🛡️ Интересный подход — использовать умный способ сила устройство, чтобы фактически выбрать случайный одноразовый номер. Протокол для этой цели, известный как против изгнания or антиклепто, в настоящее время реализован в аппаратных кошельках Blockstream Jade и ShiftCrypto BitBox02. Подробнее о Блог ShiftCrypto, который также включает техническое описание того, как такая атака может быть выполнена.
Хорошо, тогда нет никакой надежды?
Большинство средств защиты🛡️, перечисленных выше, в основном требуют от пользователя выполнения явных, навязчивых действий, чтобы защитить себя: либо самостоятельно сгенерировав начальное число (по сути, используя свой мозг для замены функциональности аппаратного кошелька), либо используя дополнительное устройство для проверки правильности выполнения вычислений.
Однако протокол анти-exfil выделяется: учитывая, что между аппаратной подписью и внешним миром всегда есть машина-посредник, эта машина может помочь. Через интерактивный протокол с аппаратным подписантом он может обеспечивать соблюдение использование действительно случайного одноразового номера, тем самым уменьшая или устраняя возможность значительного манипулирования окончательной подписью.
В этом сообщении блога нас в первую очередь интересуют следующие типы мер: хотя стратегии, которые значительно ухудшают UX, могут быть привлекательными для опытных пользователей, они, скорее всего, улучшат ситуацию. хуже на практике для менее технически подкованных пользователей, а это подавляющее большинство.
Модель безопасности
Стандартная модель для подписывающих устройств
Производители средств подписи оборудования стремятся защитить пользователей от различных потенциальных угроз (дополнительные сведения см. Модель угрозы). В этой статье мы сосредоточимся на одном очень важном свойстве, которое можно резюмировать следующим образом:
Пользователей нельзя обманом заставить совершить действие, которое приведет к потере средств, при условии, что они понимают и проверяют информацию на экране до утверждения.
Одобрение необходимо для любого конфиденциального действия, особенно для подписи. Защита начального числа была бы бесполезна, если вредоносное ПО могло создавать подписи для произвольных сообщений, таких как транзакция, истощающая все средства!
Крайне важно подчеркнуть, что вышеуказанное свойство должно сохраняться, даже если программный кошелек полностью скомпрометирован. Нельзя доверять тому, что отображается на экране вашего ноутбука/телефона: вредоносное ПО может подменить адреса, ввести вас в заблуждение относительно того, какие адреса принадлежат вам, представить транзакцию, но затем перенаправить другую на устройство для подписи и т. д.
Таким образом, прошивка и приложения, работающие на аппаратном подписывающем устройстве, изначально считают программный кошелек ненадежный и ненадежный.
Модель защиты от бэкдора для программных кошельков
В этом разделе мы полностью меняем роли. Теперь мы хотим спроектировать программный кошелек что предотвращает кражу или потерю средств производителем оборудования, даже если устройство полностью вредоносное.
Следовательно, это не может быть свойством устройство: скорее, это свойство программный кошелек настраивать. Мы могли бы резюмировать это следующим образом:
При условии, что программный кошелек не скомпрометирован, производитель оборудования не может заставить пользователя потерять средства.
Это может показаться нелогичным, поскольку прямо противоречит описанной выше стандартной модели безопасности. Однако «не иметь бэкдора» означает «делать именно то, что они должны делать». Поскольку программный кошелек является солнце интерфейс между подписывающим устройством и внешним миром, это единственное место, где может быть применена защита от неправильного поведения — будь то из-за ошибки или явной компрометации устройства.
Обратите внимание, что эта модель значительно выходит за рамки сбоя устройства, такого как ошибка, которую можно использовать. В данном случае мы работаем в рамках сценария, когда устройство активно пытается вызвать потерю средств.
Конечно, нет никакой защиты, если производитель успешно скомпрометировал изоферменты печени устройство, а также ваш компьютер, на котором работает программный кошелек. Поэтому абсолютно необходимо убедиться, что ваш программный кошелек имеет открытый исходный код и подлежит аудиту, особенно если он создан тем же поставщиком, который производит оборудование.
Роль мини-скрипта
Miniscript предоставляет разработчикам кошельков возможность в полной мере использовать расширенные функции биткойн-скрипта. Обзор невероятных возможностей, которые открывает мини-скрипт, см. наш предыдущий пост в блоге. Вы также можете послушать Эпизод 452 подкаста Стефана Ливеры для обсуждения того, что минискрипт привносит в биткойн-ландшафт.
Приложение Ledger Bitcoin поддерживает мини-скрипт с момента его выпуска версии 2.1.0, которая была развернута в феврале 2023 года. На конференции Bitcoin 2023 в Майами Wizardsardine объявила о выпуске версии 1.0 своего кошелек лиана, первый развернутый кошелек на основе минискрипта.
Основная идея этого поста заключается в том, что учетную запись биткойн-кошелька можно защитить не одним, а несколькими с разными ключи. Это позволяет создавать гибкие структуры безопасности, в которых даже полный отказ или компрометация ключа не являются катастрофическими.
Размышления о мультиподписи
Multisig — это значительное улучшение возможностей решения для самостоятельного хранения. Используя возможности программирования биткойн-скрипта, он позволяет создавать кошельки, для которых требуется несколько ключей вместо одного. А k-of-n для мультиподписного кошелька требуется комбинация k действительных подписей, из общего числа n возможные.
Однако мультиподпись также создает нагрузку на пользователя и создает новые возможности для ошибок. Настройка мультиподписи 3 из 3, включающая три разных ключа, защищенных резервными копиями в разных местах, обеспечивает надежную защиту… но это также означает, что даже если одинарной ключ утерян, монеты становятся навсегда недоступными!
Таким образом, установки, предлагающие большую избыточность (например, 2 из 3 или 3 из 5), имеют тенденцию быть более популярными: если один ключ будет потерян, другие ключи все еще могут облегчить восстановление. Но это вводит компромисс: если один ключ скомпрометирован без вашего ведома, общая безопасность значительно снижается!
Компании, подобные дом и Освобожденный капитал специализируются на решениях самообслуживания, где они владеют меньшинством ключей для своих клиентов. Они также помогают своим пользователям, направляя их через процесс адаптации и упрощая использование систем хранения, что в противном случае может быть пугающим для большинства нетехнических пользователей.
Мини-скрипт и заблокированные по времени пути восстановления
Лиана использует мини-скрипт для создания кошельков с несколькими способами траты:
- первичное условие траты, которое доступно сразу;
- одно или несколько дополнительных условий расходования, которые становятся доступными по истечении определенного периода (т.н. таймер).
Это позволяет использовать множество интересных вариантов использования:
- Восстановление: стандартный кошелек с одиночной или мультиподписью в качестве основного способа расходования средств; но отдельный механизм восстановления (ключ с другим сидом, мультиподпись, технически подкованный друг, хранитель) становится доступен через 6 месяцев.
- Управление: Компания с двумя директорами может создать 2-из-2 для казначейства компании; в случае разногласий доверенный юрист мог получить доступ к средствам через 6 месяцев.
- Затухание мультиподписи: Кошелек начинается как 3 из 3, переходит в 2 из 3 через 6 месяцев и становится 1 из 3 через 9 месяцев.
- Автоматическое наследование: Путь восстановления через 6 месяцев включает 2 из 3 ваших трех детей; возможно, второй путь восстановления через 1 год включает нотариуса, если наследники не могут прийти к консенсусу.
замечание: во всех приведенных выше примерах используется относительная временная блокировка, который относится к возрасту монет (то есть к моменту последнего перемещения средств). Компромисс заключается в том, что пользователь должен не забывать тратить монеты (отправляя их себе), если время блокировки приближается к истечению.
Это всего лишь несколько примеров, но их должно быть достаточно, чтобы убедить читателя в том, что мини-скрипт — это значительный шаг вперед на пути к реализации потенциала Биткойна как программируемые деньги.
Регистрация политики кошелька
Для учетных записей биткойн-кошелька, использующих несколько ключей (будь то мультиподпись или более сложные решения на основе мини-скриптов), крайне важно научить устройство идентифицировать адреса, принадлежащие этой учетной записи. Это единственный способ, которым устройство может помочь пользователю убедиться, что он получает или тратит деньги с правильных адресов…
Проверка политики и xpubs соподписанта против доверенной резервной копии является важным, но требует относительно много времени.
Хорошей новостью является то, что это нужно сделать только один раз:
Как только политика будет зарегистрирована с именем (в примере «Decaying 3of3»), ваше устройство сможет распознавать ее всякий раз, когда такая политика используется.
Те, кто интересуется техническими подробностями, могут найти дополнительную информацию в предложение БИП.
Резервное копирование политики
Следует отметить один важный аспект: хотя политики с несколькими ключами допускают подмножество частные ключи для авторизации транзакций, знание Найти открытые ключи (и точный политика) обязательны.
Однако, в отличие от исходного кода, резервное копирование политики и открытых ключей гораздо менее рискованно: если кто-то их обнаружит, он сможет отследить все транзакции, связанные с этой политикой. Хотя это не идеально — конфиденциальность имеет значение! − это не так катастрофично, как потеря ваших монет, и менее заманчиво для потенциальных злоумышленников. Следовательно, хранение нескольких копий политики в горячих кошельках, ее печать и хранение в разных местах, шифрование и хранение в облачном хранилище и т. д. — все это жизнеспособные стратегии.
Неуязвимый кошелек с одной подписью
Давайте сделаем шаг назад. Мы обсудили кошельки с мультиподписью, но теперь вернемся к основам создания кошелька с одной подписью. Точнее, мы хотим кошелек, который для многих туристов и внешность как кошелек с одной подписью, после начальной фазы настройки. Тем не менее, мы стремимся создать кошелек, из которого производитель не сможет украсть ваши средства, даже если они будут вредоносными 😈, а аппаратное подписывающее устройство будет вести себя непредсказуемым образом.
Этот подход можно легко обобщить для мультиподписных кошельков.
Приведенные ниже примеры будут написаны на языке под названием политика, а не минискрипт. Политику легче читать и обдумывать людям, и ее можно скомпилировать в мини-скрипт с помощью автоматизированных инструментов. Подробнее о минискрипте и политике.
Аппаратный кошелек может защитить вас в стандартной модели безопасности. Miniscript может защитить вас в модели защиты от бэкдора (и многое другое!).
Нулевой шаг: статус-кво
Это политика, которую сегодня использует большинство пользователей: единый ключ, полученный из начального числа, созданного в аппаратном кошельке.
pk(key_ledger)
Конечно, нет никакого способа доказать отсутствие бэкдора.
Шаг первый: удвойте эти ключи
Первый шаг прост:
and(pk(key_ledger), pk(key_client))
Здесь, key_client
генерируется на машине пользователя, поэтому Горячий Ключ. По сути, это установка мультиподписи 2 из 2. Ключевым аспектом является то, что пользователь мало взаимодействует с key_client
: программный кошелек генерирует этот ключ, включает его в резервную копию кошелька и подписывает, когда это необходимо (например, пока пользователь занят подписанием с помощью своего аппаратного подписывающего лица).
Это уже кажется довольно интересным: средства неизрасходованы без key_client
, который недоступен поставщику оборудования; даже если бы злонамеренный поставщик полностью знал ключ в устройстве, он все равно не смог бы переместить средства без явного нацеливания на пользователя, например, путем компрометации машины, на которой работает их программный кошелек.
Однако есть проблема: во время подключения кошелька подписывающая сторона является единственным лицом, способным сгенерировать открытый ключ (xpub). key_ledger
используется в кошельке. Следовательно, устройство может намеренно генерировать неправильно xpub контролируется злоумышленником, а затем отказывается (или не может) подписать. Возможно, это довольно экстремальный сценарий атаки: создатель бэкдора не может украсть средства, и самое большее, что они могут сделать, это индивидуально нацелиться на пользователя и потребовать выкуп («Я могу помочь вам вернуть ваши деньги, если вы заплатите мне половину»).
Более реально, это увеличивает вероятность ошибок ошибок: теперь у вас есть два сид/приватных ключа, и вам нужно изоферменты печени чтобы иметь возможность тратить. Проиграете либо, и монеты будут заблокированы навсегда.
Шаг второй: временное восстановление
Мы вводим отдельный ключ восстановления, доступный только после определенного времени блокировки: and(older(25920)
, pk(key_recovery))
, где 25920 — примерное количество блоков за 6 месяцев. Полная политика становится:
or(
and(pk(key_ledger), pk(key_client)), and(after(25920), pk(key_recovery))
)
Это похоже на предыдущий сценарий, но с изюминкой: если key_ledger
or key_client
становится недоступным по какой-либо причине (чаще всего из-за потери исходной резервной копии!), путь восстановления становится доступным через 6 месяцев.
Есть несколько вариантов key_recovery
, каждый со своими компромиссами:
a. Использовать другой Горячий Ключ. Это практичное решение, если пользователь не забывает сбрасывать временную блокировку. Однако, если горячие клавиши скомпрометированы (сценарий, который обычно следует считать весьма вероятным!), злоумышленник может попытаться получить доступ к средствам, как только истечет время блокировки, инициировав гонку с законным владельцем.
b. Используйте отдельное аппаратное устройство для подписи. Это надежное решение, которое при желании можно использовать в сочетании с другим поставщиком; однако это увеличивает сложность настройки и стоимость для пользователя с точки зрения пользовательского опыта.
c. Используйте доверенный внешний сервис. Программный кошелек может импортировать xpub из внешнего сервиса, используя его как key_recovery
. Этому третьему лицу доверяют только по истечении срока блокировки, что может быть привлекательным компромиссом для некоторых пользователей.
Как уже упоминалось, как и для любой политики с временными блокировками, важно, чтобы пользователь не забывал обновлять монеты до истечения временной блокировки.
Шаг третий: ненадежная третья сторона
Давайте объединим обе идеи (а) и (в): для пути восстановления нам потребуется локальная горячая клавиша. key_recovery_local
И key_recovery_remote
который размещается в полудоверенной службе; мы также сохраняем блокировку времени.
or(
and(pk(key_ledger), pk(key_client)),
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote))
)
)
Это снижает уровень доверия, требуемый от службы восстановления. Однако мы должны проявлять осторожность: сам сервис может отслеживать блокчейн и обнаруживать наши UTXO — в конце концов, они предоставили нам key_recovery_remote
xpub, чтобы они могли сканировать UTXO, содержащие открытые ключи, полученные из key_recovery_remote
. Они смогут узнать о нашей финансовой истории даже до истечения срока блокировки, и даже если мы никогда не пользовались их услугами.
замечание: основные корневые деревья могут устранить эту проблему конфиденциальности для определенных политик, но это не всегда так и требует тщательной оценки на основе конкретной политики.
Шаг четвертый: ослепите третью сторону 🙈
Чтобы служба восстановления не узнала о нашей финансовой истории, вместо использования открытого ключа, который они нам сообщают, мы можем использовать слепой xpub техника подробно объяснил mflaxman здесь. Короче говоря, вместо использования key_recovery_remote
в нашей политике мы выбираем четыре 31-битных случайных числа a
, b
, c
, d
( ослепляющие факторы), и мы используем следующее БИП-32 производный публичный ключ:
key_recovery_remote_blind = key_recovery_remote_blind/a/b/c/d
Крайне важно, чтобы мы также добавили key_recovery_remote
и ослепляющие факторы a
, b
, c
и d
в нашу резервную копию, для дальнейшего использования.
Если нам когда-нибудь понадобится воспользоваться услугой восстановления, мы сообщим a
, b
, c
, d
им. До тех пор у них нет возможности обнаружить, что ключи, полученные от их key_recovery_remote
публикуются в блокчейне: количество возможных комбинаций для 4 ослепляющих факторов составляет 2^(31*4) = 2^124
, что делает невозможным брутфорс их всех.
Шаг пятый: слишком много горячих клавиш могут вас обжечь 🔥
Нам удалось сделать наш программный кошелек неуязвимым. Однако мы ввели другую проблему: оба условия расходования используют локально сгенерированный, горячим ключ, который не проверен аппаратным кошельком. Поэтому, если хост-компьютер скомпрометирован, он может заставить вас зарегистрировать политику с помощью открытых ключей. key_client
и key_recovery_local
, но поместите случайные, несвязанные закрытые ключи в нашу резервную копию (помните, горячим ключи являются частью нашей резервной копии!).
Это в основном сделало бы любые средства, отправленные на кошелек незаменимый, так как никто не контролирует закрытые ключи, необходимые для подписи.
Есть несколько решений для решения этой проблемы:
- Во время подключения, после печати нашей резервной копии на бумаге, мы можем использовать отдельное устройство, чтобы убедиться, что закрытые и открытые горячие клавиши в резервной копии действительно совпадают. Такой подход устранил бы проблему, поскольку мы были бы уверены, что у нас есть все необходимые ключи, необходимые для реконструкции и подписи.
- Мы можем добавить еще одно условие расходов с еще более длительным временным блоком (9 месяцев, 38880 блоков), которое требует только
key_ledger_failsafe
с аппаратного устройства. Таким образом, в самом худшем случае, когда все остальное не работает, мы возвращаемся к безопасности одного подписывающего устройства. В обычных условиях мы бы никогда не допустили истечения срока действия первого таймлока, поэтому второй таймлок тоже не истечет!
При втором подходе окончательная политика будет выглядеть так
or(
and(pk(key_ledger), pk(key_client)),
or(
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote_blind))
),
and(older(38880), pk(key_ledger_failsafe))
),
)
Эта конфигурация программного кошелька удовлетворяет всем свойствам безопасности, которые мы заявляли в начале. Кроме того, он предлагает путь восстановления в случае, если основные ключи расходов key_ledger
потеряны. Хорошая функция!
Подключение к защищенному программному кошельку
Как будет выглядеть пользовательский интерфейс для кошелька, использующего такую сложную политику? Вот краткий обзор:
- Пользователь открывает программный кошелек и начинает создавать новую учетную запись.
- Программный кошелек предлагает пользователю подключить свое устройство для подписи и извлекает xpubs для
key_ledger
иkey_ledger_failsafe
. - Программный кошелек самостоятельно генерирует горячую клавишу key_client.
- Программный кошелек получает
key_recovery_remote
из службы совместной подписи или позволяет пользователю указать ключ другим способом. Опционально он вычисляетkey_recovery_remote_blind
используя упомянутую ранее технику ослепления. - Программный кошелек создает резервную копию политики, содержащую точную политику мини-скрипта, все xpubs и расширенный закрытый ключ для
key_client
горячая клавиша. Эта резервная копия надежно хранится (например, распечатывается на бумаге или сохраняется на отдельном устройстве). - Наконец, программный кошелек инструктирует пользователя зарегистрировать политику на устройстве. Пользователь перепроверяет резервную копию (на бумаге или на любом носителе, кроме экрана, контролируемого программным кошельком).
Программный кошелек управляет большинством вышеперечисленных шагов, делая участие пользователя не более обременительным, чем ожидаемые усилия, необходимые сегодня для настройки кошелька с мультиподписью.
Онбординг займет всего несколько минут после того, как для него будет создан хороший UX. После завершения программный кошелек может обеспечить пользовательский интерфейс, очень похожий на типичный кошелек с одной подписью. Вот как минискрипт изменит все: исчезнув из поля зрения пользователя!
Улучшения основного корня
Ledger поддерживает мини-скрипт, начиная с версии 2.1.0 приложения Биткойн, выпущенной в марте. Несмотря на то, что поддержка получения и расходования средств с основных адресов была включена с софтфорк в ноябре 2021 года мы завершаем следующий этап дорожной карты: поддержку мини-скриптов для taproot.
Taproot окажет огромное влияние на удобство использования подходов, представленных в этой статье. Если основной путь расходования является условием расходования с одним ключом, существование путей восстановления расходов будет невозможно обнаружить в блокчейне, если они не используются. Это значительно улучшит конфиденциальность, полностью исключив любые отпечатки пальцев для стандартного пути расходования средств. Кроме того, это улучшает масштабируемость, поскольку стандартный путь расходов становится максимально рентабельным. Это означает, что никаких дополнительных затрат не потребуется из-за наличия путей восстановления, если только они не используются. Это значительное обновление по сравнению с транзакциями SegWit, которые требуют публикации всего скрипта, включая все условия траты, во время любой траты.
Наконец, более продвинутые протоколы, такие как МюСиг2 (недавно стандартизированы) и FROST перегрузит основной ключевой путь. Эти протоколы, построенные на подписях Шнорра, позволяют создать единый совокупный открытый ключ который можно использовать для представления n-of-n мультиподпись или k-of-n пороговая схема. Это позволило бы использовать ключевой путь taproot даже в случаях, которые сегодня чаще представлены конкретными сценариями с несколькими подписями.
Выводы
В этой статье исследуется небольшая (но важная) ниша обширного дизайнерского пространства, которое miniscript открывает для программных кошельков.
Мы показали, как можно использовать мини-скрипт для создания программного кошелька, защищенного от бэкдора, а также добавить дополнительный путь восстановления, позволяющий предотвратить катастрофические потери ключей. Хотя аппаратные устройства для подписи не могут обеспечить соблюдение модели защиты от бэкдора, благодаря поддержке мини-скрипта они позволяют создавать программные кошельки, которые делают именно это!
Умело используя комбинацию схем мультиподписи, таймлоков, слепых xpubs и горячих клавиш, мы продемонстрировали безопасную конфигурацию кошелька, которая сочетает в себе безопасность, конфиденциальность и надежность.
Более того, мы утверждали, что это возможно без негативного влияния на пользовательский опыт, поскольку сложность настройки не приводит к большой дополнительной нагрузке на UX.
Мы в восторге от возможностей, которые открывает мини-скрипт для следующего поколения самостоятельного хранения биткойнов.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript
- :имеет
- :является
- :нет
- :куда
- $UP
- 1
- 2021
- 2023
- 30
- 7
- 9
- a
- способность
- в состоянии
- О нас
- выше
- Absolute
- абсолютно
- доступ
- Доступ
- доступной
- соответствие
- Учетная запись
- Учетные записи
- Действие
- действия
- активно
- на самом деле
- Добавить
- добавить
- дополнение
- дополнительный
- Дополнительно
- адреса
- продвинутый
- После
- против
- возраст
- помощь
- цель
- Все
- позволять
- позволяет
- вдоль
- уже
- причислены
- Несмотря на то, что
- всегда
- an
- и
- объявило
- Другой
- любой
- все
- приложение
- привлекательный
- появиться
- Приложения
- подхода
- подходы
- утверждение
- приблизительный
- МЫ
- спорно
- продемонстрировав тем самым
- гайд
- AS
- внешний вид
- помощь
- связанный
- At
- атаковать
- проверяемый
- санкционировать
- Автоматизированный
- автономно
- доступен
- назад
- задняя дверь
- со спинкой
- поддержка
- Восстановление
- Остатки
- основанный
- основной
- в основном
- Основы
- BE
- , так как:
- становиться
- становится
- до
- начало
- не являетесь
- ниже
- ЛУЧШЕЕ
- между
- Beyond
- Bitcoin
- Bitcoin Wallet
- биткойн кошельки
- Бленд
- блокчейн
- Блоки
- Blockstream
- Блог
- изоферменты печени
- Мозг
- Приносит
- вещания
- Ошибка
- строить
- построенный
- бремя
- гореть
- бизнес
- занятый
- но
- by
- под названием
- CAN
- не могу
- способный
- тщательный
- случаев
- случаев
- катастрофический
- Вызывать
- Причинение
- осторожность
- определенный
- вызов
- шанс
- изменение
- Дети
- чип
- Выберите
- Выбирая
- заявил
- явно
- облако
- облачного хранения
- код
- Coins
- сочетание
- комбинации
- коммерческая
- Общий
- обычно
- общаться
- Компании
- Компания
- Компании
- полный
- полностью
- комплекс
- сложность
- Ослабленный
- компромат
- расчеты
- вычисление
- Обеспокоенность
- состояние
- Условия
- Конференция
- Конфигурация
- Свяжитесь
- Консенсус
- вследствие этого
- Рассматривать
- считается
- содержащегося
- контроль
- контрольная
- убеждать
- исправить
- поврежден
- Цена
- может
- "Курс"
- Создайте
- Создающий
- создание
- создатель
- критической
- критический аспект
- решающее значение
- В настоящее время
- попечитель
- Содержание под стражей
- Клиенты
- опасно
- Отклонить
- уменьшается
- считать
- определенный
- Спрос
- убивают
- развернуть
- Производный
- описание
- Проект
- предназначенный
- желанный
- подробность
- подробный
- подробнее
- обнаруживать
- застройщиков
- устройство
- Устройства
- различный
- трудный
- уменьшающийся
- непосредственно
- Директора
- исчезающий
- гибельный
- обнаружить
- обнаружение
- обсуждается
- обсуждение
- отображается
- do
- приносит
- не
- сделанный
- двойной
- два
- в течение
- каждый
- легче
- легко
- усилие
- или
- ликвидировать
- уничтожение
- еще
- подчеркивать
- занятых
- включить
- включен
- позволяет
- конец
- обеспечивать соблюдение
- достаточно
- обеспечивать
- обеспечение
- входящий
- соблазнительный
- Весь
- полностью
- организация
- Оборудование
- ошибки
- особенно
- существенный
- по существу
- установить
- и т.д
- оценка
- Даже
- НИКОГДА
- Каждая
- многое
- точно,
- пример
- Примеры
- возбужденный
- выполнять
- выполненный
- Упражнение
- существование
- ожидаемый
- опыт
- истечение
- Эксплуатировать
- исследует
- экспорт
- продолжается
- и, что лучший способ
- экстремальный
- содействовал
- факторы
- не удается
- Ошибка
- достаточно
- Осень
- далеко
- Особенность
- Особенности
- февраль
- несколько
- окончательный
- финансовый
- финансовая история
- Найдите
- Во-первых,
- гибкого
- кувырок
- Фокус
- после
- следующим образом
- Что касается
- навсегда
- вперед
- 4
- каркасы
- часто
- друг
- от
- полный
- полностью
- функциональность
- фонд
- средства
- Более того
- бесполезный
- будущее
- общее назначение
- в общем
- порождать
- генерируется
- генерирует
- порождающий
- поколение
- данный
- Go
- будет
- хорошо
- большой
- значительно
- было
- Половина
- Аппаратные средства
- аппаратное устройство
- Аппаратный кошелек
- Производитель аппаратного кошелька
- Аппаратные кошельки
- вредный
- Есть
- имеющий
- помощь
- следовательно
- история
- держать
- надежды
- кашель
- состоялся
- ГОРЯЧИЙ
- Как
- Однако
- HTTP
- HTTPS
- огромный
- Людей
- идея
- идеальный
- идеи
- определения
- if
- немедленно
- Влияние
- воздействуя
- в XNUMX году
- Импортировать
- важную
- что она
- улучшать
- in
- включает в себя
- В том числе
- включения
- Увеличивает
- невероятный
- действительно
- независимые
- в отдельности
- промышленность
- информация
- по существу
- начальный
- внутри
- Инсайдер
- внушать
- Установка
- пример
- вместо
- намеренно
- взаимодействовать
- интерактивный
- интерес
- заинтересованный
- интересный
- Интерфейс
- в
- вводить
- выпустили
- Представляет
- навязчивый
- участие
- с участием
- вопрос
- IT
- ЕГО
- саму трезвость
- всего
- только один
- Основные
- ключи
- Знать
- знания
- известный
- пейзаж
- язык
- портативный компьютер
- Фамилия
- новее
- адвокат
- Лиды
- УЧИТЬСЯ
- изучение
- наименее
- Ledger
- оставил
- законный
- Меньше
- позволять
- уровень
- Используя
- такое как
- Вероятно
- связанный
- Включенный в список
- погрузка
- локальным
- места
- запертый
- Длинное
- дольше
- посмотреть
- выглядит как
- терять
- потери
- от
- потери
- потерянный
- машина
- Главная
- Большинство
- сделать
- ДЕЛАЕТ
- Создание
- вредоносных программ
- управляет
- управления
- манипуляционная
- способ
- ПРОИЗВОДИТЕЛЬ
- Производители
- многих
- Март
- Совпадение
- Май..
- означает
- меры
- механизм
- средний
- упомянутый
- просто
- сообщение
- Сообщения
- метод
- методы
- Miami
- может быть
- минискрипт
- меньшинство
- Минут
- Наша миссия
- ошибки
- модель
- деньги
- Мониторинг
- месяцев
- БОЛЕЕ
- Более того
- самых
- в основном
- двигаться
- переехал
- много
- с разными
- Multisig
- должен
- имя
- приближается
- необходимо
- Необходимость
- необходимый
- потребности
- отрицательно
- сетей
- никогда
- Новые
- Новости
- следующий
- хороший
- нет
- нетехнических
- "обычные"
- Ноябрь
- Ноябрь 2021
- сейчас
- номер
- номера
- Получает
- of
- предлагают
- предлагающий
- Предложения
- оффлайн
- on
- Вводный
- консолидировать
- ONE
- те,
- только
- открытый
- с открытым исходным кодом
- Откроется
- операционный
- Операционный отдел
- Возможности
- Опции
- or
- заказ
- Другое
- в противном случае
- наши
- внешний
- изложенные
- внешнюю
- за
- общий
- обзор
- собственный
- владелец
- бумага & картон
- Первостепенный
- часть
- особенно
- вечеринка
- путь
- ОПЛАТИТЬ
- Выполнять
- возможно
- период
- постоянно
- фаза
- Телефон
- Часть
- Мест
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- пунктов
- сборах
- политика
- Популярное
- возможности,
- возможное
- возможно
- После
- потенциал
- потенциально
- мощностью
- практическое
- практически
- практика
- необходимость
- Точно
- предсказывать
- предсказуемый
- присутствие
- представить
- представлены
- предотвращать
- предотвращает
- предыдущий
- предварительно
- в первую очередь
- первичный
- печать
- Предварительный
- политикой конфиденциальности.
- частная
- Секретный ключ
- Частные ключи
- Проблема
- проблемам
- процедуры
- процесс
- производит
- Произведенный
- производит
- должным образом
- свойства
- собственность
- предложило
- для защиты
- защищенный
- защищающий
- защиту
- протокол
- протоколы
- Доказывать
- обеспечивать
- при условии
- что такое варган?
- публичный ключ
- открытые ключи
- публиковать
- опубликованный
- Издательство
- цель
- положил
- Полагая
- вопрос
- Гонки
- случайный
- Выкуп
- скорее
- достигать
- Читать
- читатель
- понимая,
- причина
- получение
- недавно
- признавать
- запись
- выздоровление
- понимается
- зарегистрироваться
- зарегистрированный
- регистрирующий
- относительно
- освободить
- выпустил
- полагаться
- помнить
- замещать
- представлять
- представленный
- репутация
- требовать
- обязательный
- требуется
- в результате
- сохранять
- возвращают
- показывать
- правую
- Снижение
- рисках,
- рискованный
- Дорожная карта
- надежный
- прочность
- Роли
- роли
- Бег
- работает
- то же
- сообщили
- Масштабируемость
- сканирование
- сценарий
- схема
- схемы
- Шнорра
- экран
- скрипты
- Во-вторых
- Раздел
- безопасный
- безопасно
- безопасность
- посмотреть
- семя
- семена
- поиск
- казаться
- кажется
- SegWit
- Самостоятельная опека
- отправка
- чувствительный
- послать
- отдельный
- обслуживание
- набор
- установка
- несколько
- Короткое
- должен
- показал
- подпись
- Подписи
- значительный
- существенно
- подписание
- Признаки
- аналогичный
- просто
- упрощение
- с
- одинарной
- небольшой
- умный
- So
- Software
- Решение
- Решения
- РЕШАТЬ
- некоторые
- Кто-то
- скоро
- сложный
- Источник
- Space
- специализироваться
- конкретный
- спецификации
- тратить
- Расходы
- стандарт
- стоит
- начинается
- Статус:
- Шаг
- Шаги
- По-прежнему
- диск
- хранить
- хранение
- стратегий
- прочность
- строка
- сильный
- Бороться
- успешный
- Успешно
- такие
- суммировать
- перегружать
- поддержка
- поддержки
- Поддержка
- предполагаемый
- систематический
- системный риск
- системы
- Снасти
- взять
- стержневой корень
- цель
- направлены
- Технический
- технически
- Технологии
- terms
- чем
- который
- Ассоциация
- Монеты
- их
- Их
- сами
- тогда
- Там.
- тем самым
- следовательно
- Эти
- они
- вещи
- think
- В третьих
- этой
- те
- угрозы
- три
- порог
- Через
- Таким образом
- время
- кропотливый
- в
- сегодня
- Сегодняшних
- слишком
- инструменты
- Темы
- Всего
- к
- Прослеживать
- трек
- Послужной
- Train
- сделка
- Сделки
- переходы
- переведите
- казначейство
- Деревья
- правда
- Доверие
- надежных
- ненадежный
- Правда
- поворот
- два
- Типы
- типичный
- не в состоянии
- понимать
- развязывает
- В отличие от
- отпереть
- отпирает
- непредсказуемый
- до
- модернизация
- us
- юзабилити
- использование
- используемый
- Информация о пользователе
- Пользовательский опыт
- пользователей
- использования
- через
- использовать
- использовать
- Использующий
- ux
- VALIDATE
- разнообразие
- различный
- Огромная
- продавец
- проверено
- проверить
- версия
- очень
- жизнеспособный
- жизненный
- Уязвимости
- ждать
- Кошелек
- Кошельки
- хотеть
- законопроект
- Путь..
- способы
- we
- были
- Что
- когда
- когда бы ни
- будь то
- который
- в то время как
- все
- зачем
- Википедия.
- будете
- в
- без
- слова
- Мир
- бы
- письменный
- Неправильно
- год
- еще
- Ты
- ВАШЕ
- себя
- зефирнет
- нуль