public

Мультисиг. Часть II: Отдельные ключи – основа мультиподписи

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

Время чтения 4 мин

Это вторая статья из нашей серии о мультиподписи. Первую часть читайте здесь:

Мультисиг. Часть I
Основным преимуществом мультисиг является то, что эта схема создает дополнительные ступени в управлении ключами

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

Что такое биткоин-кошелек?

Термин "кошелек" не является самым точным отражением функций, выполняемых этим инструментом в мире Биткоина. Когда люди обычно думают о биткоин-кошельке, распространенным предположением является то, что биткоин живет в программном или аппаратном решении (“кошельке”), подконтрольном пользователю. В действительности кошельки хранят и координируют ключи, которые затем могут быть использованы для взаимодействия с монетами на адресах, отслеживаемых блокчейном.

Функции типичного кошелька разбиты на этапы.

"Кошелек" используется для описания программного или аппаратного обеспечения, которое выполняет некоторые или все следующие задачи:

Консенсус – синхронизирует данные об уже добытых блоках, а также о текущем наборе 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 больше единицы. Мультисиг разрывает связь отдельных ключей с адресами. Адрес можно узнать, только если известны все отдельные публичные ключи, составляющие его, поскольку публичные ключи криптографически связаны между собой алгоритмом. В качестве ментальной модели, представьте, что современный мультисиг разделяет карту местонахождения сундука с сокровищами и ключи, которые открывают этот сундук. Если найдена только часть ключей, у противника нет возможности узнать, где находится сам сундук. Если карта сокровищ найдена, но у злоумышленника нет достаточного количества ключей, чтобы открыть сундук с сокровищами, у него также нет возможности заполучить содержимое.

Переход на мультисиг

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


Статья подготовлена командой Unchained Capital. Оригинал.

Tony Lightninng

Опубликовано 9 месяцев назад