Блог им. Ilia_Zavialov
Перед тем как вы погрузитесь в изучение статьи, обратите внимание на тот факт что всё упомянутое в ней не является финансовой рекомендацией для принятие более взвешенного решения просьба провести свое собственное исследование.
Термин “кошелек” не является самым точным отражением функций, выполняемых этим инструментом в мире Биткоина. Когда люди обычно думают о биткоин-кошельке, распространенным предположением является то, что биткоин живет в программном или аппаратном решении (“кошельке”), подконтрольном пользователю. В действительности кошельки хранят и координируют ключи, которые затем могут быть использованы для взаимодействия с монетами на адресах, отслеживаемых блокчейном.
“Кошелек” используется для описания программного или аппаратного обеспечения, которое выполняет некоторые или все следующие задачи:
Консенсус – синхронизирует данные об уже добытых блоках, а также о текущем наборе UTXO и состоянии мемпула с остальной частью сети.
Координация – рассчитывает и отображает балансы, создает транзакции, производит запросы на подпись.
Хранение ключей – хранит данные приватных ключей, экспортирует публичные ключи, подписывает транзакции.
Некоторые кошельки выполняют все эти функции. Само программное обеспечение Bitcoin Core, как первый из созданных биткоин-кошельков, выполняет все три задачи. Другие кошельки, такие как Electrum, поддерживают собственный консенсус через сеть серверов Electrum, координируют транзакции и балансы и даже могут хранить программные ключи.
Мобильный кошелек, такой как Samourai, является одновременно координатором и хранилищем ключей. Приложение Samourai хранит приватные ключи на вашем мобильном устройстве и координирует ваши транзакции и баланс. Консенсус передается на аутсорсинг программному обеспечению Bitcoin Core, либо путем подключения к вашему собственному полному узлу, либо к одному из узлов Samourai.
Некоторые компании предлагают продукты, которые в совокупности представляют собой полноценный кошелек. Например, аппаратный кошелек Trezor является специализированным аппаратным хранилищем ключей. Для функционирования аппаратный кошелек должен взаимодействовать с веб-сайтом Trezor, который является координатором. Собственные серверы SatoshiLabs обеспечивают консенсус благодаря работе программного обеспечения Bitcoin Core.
Во всех приведенных выше примерах по умолчанию используются адреса с одиночной подписью. Единая подпись означает, что для создания подписи и трансляции транзакции биткоина требуется только один ключ. Если хотите провести аналогию, представьте, что подпись – это единоразовое действие ключа, используемого для запуска автомобиля, а трансляцию транзакции можно представить как езду на автомобиле.
Для примера в контексте Биткоина, отдельный Trezor (хранилище ключей), подключенный к wallet.trezor.io (координатор), может в одностороннем порядке перемещать средства, находящиеся по адресу, который контролируется одним из закрытых ключей, хранящихся на Trezor. Кошельки с одной подписью наиболее полезны для совершения частых, ежедневных транзакций, применения технологий повышения приватности, таких как CoinJoin, или для перемещения средств в сети Lightning.
Думая о биткоин-кошельке, большинство представляет себе одно аппаратное устройство (то есть хранилище ключей), способное подписывать транзакции, поскольку это наиболее близкая ассоциация с банковским счетом в традиционной финансовой системе, или на подсознательном уровне это ближе к физическому бумажнику, хранящему ваши купюры. Однако, обозначив три отдельные выполняемые кошельком функции (консенсус, координация, хранение ключей), биткоинеры могут лучше понять, что на самом деле происходит, когда они создают биткоин-транзакции.
Ни в какой момент времени биткоин не “хранится” на аппаратном устройстве. Аппаратное устройство просто хранит коллекцию ключей, которые могут санкционировать расходование биткоина, что отслеживается по выходам неизрасходованных транзакций (UTXO), расположенным по адресам, отслеживаемым блокчейном. Блокчейн живет на тысячах компьютеров, распределенных по всему миру. Ваш биткоин “живет” в блокчейне; ваше аппаратное устройство хранит ключи (не биткоин), но эти ключи необходимы для передачи биткоина. А кошелек – это пользовательский интерфейс для взаимодействия с адресами, которые находятся под контролем приватных ключей, координируемых программным или аппаратным обеспечением.
В кошельке с одной подписью ключи очень важно защищать и держать в секрете, поскольку адреса генерируются таким способом, что ваши адреса могут быть относительно легко обнаружены, если ваш приватный ключ будет скомпрометирован. Таким образом, отдельные ключи (и резервные копии) становятся единой точкой отказа в кошельках с одной подписью.
Современные адреса с мультиподписью защищают от этого, устраняя опасность в виде единой точки отказа, по крайней мере, в схемах m-из-n, где n больше единицы. Мультисиг разрывает связь отдельных ключей с адресами. Адрес можно узнать, только если известны все отдельные публичные ключи, составляющие его, поскольку публичные ключи криптографически связаны между собой алгоритмом. В качестве ментальной модели, представьте, что современный мультисиг разделяет карту местонахождения сундука с сокровищами и ключи, которые открывают этот сундук. Если найдена только часть ключей, у противника нет возможности узнать, где находится сам сундук. Если карта сокровищ найдена, но у злоумышленника нет достаточного количества ключей, чтобы открыть сундук с сокровищами, у него также нет возможности заполучить содержимое.
Мы надеемся, что эта статья пролила свет на то, что происходит под капотом биткоин-кошельков. Это критически важный фундамент, заложив который мы сможем обсудить практическую сторону мультисиг. В следующих статьях мы поделимся более подробной информацией об этой схеме.