Что такое Sparrow?

Sparrow — это биткоин-кошелёк для тех, кто ценит финансовую независимость и собственный контроль. Основное внимание уделяется безопасности, конфиденциальности и удобству использования. Sparrow не скрывает информацию от вас — напротив, он старается предоставить максимально подробные данные о ваших транзакциях и UTXO, но в удобном и понятном интерфейсе.

Sparrow поддерживает все функции, которые вы ожидаете от современного Биткоин-кошелька:

  • Полная поддержка одно- и мультиподписных кошельков с использованием популярных типов скриптов.
  • Диапазон вариантов подключения: публичные серверы, Bitcoin Core и частные серверы Electrum.
  • Соответствие стандартам, включая полную поддержку PSBT.
  • Поддержка всех распространенных аппаратных кошельков в режимах USB и airgapped mode (в автономном режиме)
  • Полный контроль над монетами и настройкой комиссий в процессе отправки транзакции.
  • Метки для всех транзакций, входов и выходов.
  • Лёгкий и мультиплатформенный.
  • Отправка и получение через PayNyms, как напрямую (BIP47), так и в сотрудничестве.
  • Встроенная поддержка Tor.
  • Поддержка Testnet, regtest и signet.

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

Скачайте Sparrow c официального сайта на любую ОС: https://www.sparrowwallet.com/download/ и следуйте инструкции.


Добро пожаловать в Sparrow

Каждая новая установка Sparrow начинается с приветствия мастера, который объясняет различные способы подключения Sparrow к блокчейну биткоина. Также Sparrow можно использовать оффлайн для проверки адресов кошельков, анализа, подписания транзакций и сообщений.

Есть три способа подключения Sparrow к серверу для просмотра баланса, отправки и получения транзакций:

Public server Public server

Bitcoin Core node Bitcoin Core node

Private Electrum server Private Electrum server

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

На приветственном экране также объясняется, как переключаться между онлайн- и офлайн-режимами с помощью кнопки в строке статуса. Цвет кнопки меняется в зависимости от выбранного типа подключения из трёх доступных вариантов.

Обратите внимание, что URL-адрес в диалоговом окне может быть другим, поскольку Sparrow выбирает сервер случайным образом, если он не настроен. Дополнительная настройка не требуется.

Здесь нужно нажать кнопку “Создать новый кошелек”.


Создание нового кошелька

Введите имя вашего кошелька и нажмите кнопку “Create Wallet”:

Теперь вам показан экран настроек для вашего нового кошелька. Каждый кошелёк Sparrow имеет следующие параметры:

Тип политики:

  • Одноподписной: для управления кошельком нужен только один ключ (обычно это ваш основной ключ).
  • Мультиподписной: для управления кошельком необходимо несколько подписей, что повышает уровень безопасности.

Тип скрипта:

  • Native Segwit (bech32): используется для повышения скорости и снижения комиссии при транзакциях.
  • Nested Segwit (P2SH-P2WPKH): компромисс между совместимостью с более старыми адресами и улучшениями Segwit. И другие.

Хранилища ключей:

  • Кошелёк будет использовать данные о публичных и приватных ключах, которые необходимы для создания транзакций. Важно выбрать безопасное место для их хранения.

Выбирайте эти параметры в зависимости от ваших нужд и уровня безопасности, который вы хотите достичь.

В данном руководстве мы создаем кошелек с одной подписью, используя тип скрипта Native Segwit (P2WPKH). Он используется по умолчанию, поэтому мы можем оставить настройки такими, как они есть.

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

Подключаемый аппаратный кошелёк:

  • Этот вариант подходит для подключения аппаратных кошельков, таких как Coldcard, Trezor и т.д., через USB к вашему компьютеру. Это очень безопасный способ, так как приватные ключи остаются в оффлайне и используются только в самом аппаратном кошельке.

Изолированный аппаратный кошелёк:

  • Этот вариант позволяет использовать аппаратные кошельки, такие как Coldcard или Cobo Vault, без подключения к компьютеру. Вы взаимодействуете с кошельком в оффлайне и передаете данные через QR-коды или SD-карты. Это добавляет дополнительный уровень безопасности, так как ключи никогда не касаются онлайн-устройств.

Новый или импортированный программный кошелёк:

  • Этот вариант подходит для создания нового кошелька или импорта существующего (например, из Electrum). Приватные ключи хранятся непосредственно в Sparrow, что удобно, но менее безопасно по сравнению с аппаратными кошельками, так как ключи остаются на вашем компьютере.

Только для наблюдения (xPub):

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

В этом руководстве мы создаем программный кошелек. Выберите 3-й вариант, Новый или импортированный программный кошелек (New or Imported Software Wallet).

Это откроет окно Хранилище ключей, где можно увидеть слева первые 3 типа хранилищ из списка выше. Для программных кошельков вы можете выбрать мнемонические слова (BIP39) или импорт Electrum. В этом руководстве мы создадим хранилище ключей с помощью BIP39 - распространенного стандарта, который использует набор слов для создания закрытого ключа или seed. Мы выберем количество слов (15), нажав на стрелку рядом с надписью Enter 24 Words, чтобы открыть выпадающий список:

Нажмите кнопку Use 15 Words. Вы увидите 15 текстовых полей, которые будут содержать секретные слова. Нажмите кнопку Generate New, чтобы Sparrow случайным образом выбрал 15 слов (обратите внимание, чтобы ваши слова были разными!):

После того, как кошелек сгененирует слова, вам нужно будет записать эти слова для сохранности. Sparrow проверит, правильно ли вы выполнили этот процесс, и попросит вас повторно ввести слова. Нажмите кнопку Подтвердить резервное копирование… (Confirm Backup…), затем Повторный ввод слов… (Re-enter Words…) и введите 15 слов по порядку. Если слова введены правильно, Sparrow покажет сообщение ‘Valid checksum’. Теперь нажмите кнопку Создать хранилище ключей (Create Keystore), чтобы создать ваш файл.

После этого Sparrow предоставит вам возможность проверить путь деривации. Ничего не нужно менять, поэтому нажимаем Import Keystore:

Sparrow будет использовать ваши seed для вычисления xpub указанного пути деривации и отобразит его на экране настроек:

Каждое хранилище ключей имеет следующие поля:

Label

  • Название хранилища ключей, которое используется для его идентификации при подписании транзакций.

Master fingerprint

  • Он определяет главный закрытый ключ хранилища ключей, который остаётся неизменным независимо от пути деривации.

Derivation

  • Путь деривации для xpub, который обычно отличается для каждого типа сценария

xpub

  • Публичный ключ для заданного пути деривации. Некоторые типы скриптов имеют альтернативные обозначения для xpub, такие как ypub или zpub, которые указывают на тип скрипта. Эти обозначения являются взаимозаменяемыми и Sparrow позволяет переключаться между ними с помощью кнопки переключения xpub справа:

Поскольку мы уже указали все эти детали при создании seed, здесь нам не нужно ничего менять. Нажимаем Apply и кошелек завершен!

Серые вкладки слева станут синими, что означает, что у нас есть действующий кошелек.

Вы можете перейти на вкладку Addresses, чтобы просмотреть адреса для этого кошелька, или перейти на вкладку Receive, чтобы получить адрес для получения средств. На вкладке Receive нажмите Get Next Address, чтобы получить первый адрес:

Как только вы отправите средства на этот адрес, он появится на вкладке Transactions.

Вы можете создавать мультисиговые кошельки, добавлять аппаратные кошельки, создавать и редактировать транзакции, управлять UTXO - поэтому отправляемся дальше!


Что такое UTXO?

UTXO (Unspent Transaction Output - Неизрасходованный Транзакционный Выход) - это некая “сдача” в биткоин-сети, которая остаётся после каждой транзакции. Это базовая единица, которая фиксирует баланс пользователя, но не как сумму, а как набор неиспользованных транзакций.

Чтобы было проще понять, что это такое и как это работает, давайте представим, что вы хотите потратить 12 долларов на обед, используя купюру в 20 долларов, у вас останется 8 долларов. В этом примере оставшиеся 8 долларов будут неизрасходованным результатом транзакции. Они вернутся в ваш кошелек-копилку, чтобы быть использованными для покупки чего-то еще в будущем.

Именно так работают биткоин UTXO. Когда вы совершаете транзакцию, результаты прошлых биткоин-транзакций, то есть ваша сдача, используются в качестве исходных данных для новых транзакций.

Одно дело, когда вы себе на кошелек зачисляете 100 долларов одной купюрой, другое же дело когда вы зачисляете 5 купюр по 20, общая сумма будет та же - 100 долларов, но каждый депозит (каждая купюра) в биткоине является отдельной единицей, отдельным объектом. Поэтому несмотря на то, что общая сумма в кошельке одинаковая (100$), в биткоине каждая транзакция остаётся отдельным объектом. В первом случае — одна “монета” на 100$, во втором — 5 “монет” по 20$.

И вот теперь вы решили перевести 12 долларов за обед (или просто на другой адрес), в вашей “копилке” самая мелкая монета - 20$, используется вся монета UTXO целиков, то есть монета в 20 долларов, после совершения транзакции, на ваш баланс возращается остаток (сдача) в виде нового UTXO, 8 долларов.

Поскольку блокчейн биткоина является публичным, это влечёт за собой несколько последствий для конфиденциальности:

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

  • Если в вашей транзакции есть UTXO для сдачи, те же третьи лица смогут увидеть, когда эта сдача (и сдача от неё) была потрачена, и таким образом узнать больше о вашей истории расходов со временем.

  • Все входящие UTXO в транзакции обычно предполагаются принадлежащими одному владельцу, что позволяет наблюдателям объединять их в «кластер». (Позже мы рассмотрим, как нарушить это предположение).

Анализ блокчейна использует некоторые общеприменимые правила или догадки, чтобы узнать, какая часть денег в транзакции — это оплата, а какая — сдача. Главная цель этого — выявить моменты изменения собственности, проще говоря, когда деньги переходят от одного человека к другому, чтобы понять, сколько у вас средств и как вы ими распоряжаетесь. Хотя такие догадки и основаны на вероятностях, они могут работать очень эффективно. Без инструментов конфиденциальности, как только ваша личность будет связана с одним UTXO, с высокой долей вероятности можно будет определить достаточно информации о вашем состоянии и истории транзакций.

Инструменты конфиденциальности направлены на разрушение таких догадок. Некоторые из них, такие как фейковые транзакции с участием двух сторон (fake two-person coinjoins), создают путаницу (или энтропию) в графе транзакций. Другие, такие как payjoin, нарушают предположения, на которых основаны распространённые предположения. При совместном использовании этих инструментов можно сохранять относительную конфиденциальность при совершении транзакций в биткоин-сети.


Fake two person coinjoin - создаем фейковый coinjoin в Sparrow

Транзакция фейкового второго участника

Основной подход

Для обеспечения конфиденциальности при расходах часто используют coinjoin с равными выходами.

Что такое коинджоин с равными выходами?

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

Такая структура усложняет отслеживание, поскольку становится неясно, какой выход к кому относится. Например, в coinjoin на двух участников с равными выходами каждый из них может принадлежать любому из участников. Более того, выход coinjoin может быть как внешним платежом, так и возвращён обратно в кошелёк владельца (например, для консолидации или разбиения UTXO).

Что такое фейковый coinjoin?

Самый простой способ повысить конфиденциальность — создать фейковый coinjoin (он же Stonewall-транзакция).

Это транзакция, созданная одним человеком, но выглядящая так, будто в её создании участвовали несколько. С точки зрения сторонних наблюдателей, такая транзакция выглядит двусмысленно и они не могут определить, настоящий это coinjoin или нет. Для этого не требуется сотрудничество с другими людьми и такой метод работает с любым типом кошелька, включая аппаратные.

Как создать фейковый coinjoin в Sparrow?

Откройте вкладку Send. Создайте транзакцию, как обычно. Включите опцию Privacy (переключатель в нижнем левом углу). Если в кошельке достаточно средств, Sparrow автоматически создаст фейковый коинджоин, повышая уровень конфиденциальности вашей транзакции.

Обратите внимание, что есть два набора входов (обозначенных скобками слева на диаграмме транзакции), представляющих каждого «участника» в coinjoin. Каждый «участник» должен внести больше, чем сумма платежа, что означает, что ваш кошелек должен иметь средства, которые в два раза превышают сумму транзакции. Если на вашем кошельке недостаточно средств, вы все равно можете выполнить совместный coinjoin, о котором речь пойдет ниже.

Что касается выходов, то первый выход представляет собой платеж на адрес, указанный в поле Pay to. Второй выход — это «маскировка» той же суммы (5670 сатоши), который отправляется на один из адресов сдачи в этом кошельке. Далее идут два выхода сдачи, которые представляют сдачу для каждого из «участников» — оба этих выхода также отправляются обратно в этот кошелек как сдача.

Как указывает всплывающее окно “Analysis…” рядом с Privacy, для внешнего наблюдателя это выглядит как возможный coinjoin для двух участников. Однако на самом деле это транзакция, где все входы принадлежат одному кошельку. Теперь вы можете создать, подписать и передать эту транзакцию как обычно, получив дополнительную приватность за счет немного более высокой комиссии из-за дополнительных входов и выходов.

Обратите внимание, что для создания такого coinjoin в Sparrow адрес, на который вы платите, должен быть того же типа, что и ваш кошелек (чтобы выходы выглядели одинаково).


Что такое PayNym?

PayNym — это специальный идентификатор, который получатель использует для получения монет. Это не обычный адрес, это псевдоним для кошелька.

С помощью BIP47, при каждом новом платеже генерируется уникальный адрес для транзакции. Это значит, что для каждой транзакции будет свой новый адрес, что помогает скрыть основной адрес получателя.

BIP (Bitcoin Improvement Proposal) — это документ, который описываеь изменения или новые функции для биткоин-сети, которые могут улучшить её безопасность, производительность или другие аспекты. BIP может быть предложен любым участником сообщества, но чтобы стать частью сети, он должен быть принят большинством.

Получатель всегда использует один и тот же PayNym (псевдоним в виде робота) для получения денег. То есть, вам не нужно каждый раз давать новый адрес — достаточно одного PayNym. Когда вы отправляете деньги на этот PayNym, система автоматически генерирует новый уникальный адрес для каждого платежа, при этом PayNym остается прежним.


Оплата через PayNym

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

Чтобы выполнить такой платеж, нажмите стрелку “вниз” справа от поля Pay To на вкладке Send и выберите PayNym…

Откроется окно, показывающее PayNym этого кошелька (при необходимости нажмите Retrieve PayNym).

Теперь вам нужно найти PayNym кошелька, на который вы отправляете платеж, в списке Контактов. Если PayNym ещё нет в вашем списке, введите его в поле Find Contact и нажмите Add Contact, когда он появится.

Чтобы отправить на PayNym, нужно нажать кнопку Link Contact, которая появится после добавления контакта. Привязка контакта требует отправки уведомляющей транзакции на адрес, который отслеживается кошельком PayNym, на который вы отправляете деньги. Это будет стоить 546 сатоши плюс комиссия за майнинг.

Примечание: Также можно отправить напрямую на платежный код, вставив его в поле Pay to. Отправка напрямую на PayNym в настоящее время не поддерживается для кошельков Taproot (P2TR).

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

Нажмите Send To Contact, чтобы отправить напрямую на привязанный PayNym. Окно закроется и поле Pay to укажет, что вы отправляете на PayNym. Вы можете ввести Label и Amount как обычно.


Заключение

Используя эти инструменты, можно оставаться относительно анонимным при совершении транзакций. Привязка и отправка напрямую через PayNym — мощная функция, особенно полезная для отправки и получения платежей независимо и без необходимости использовать сервер для создания новых адресов. Рекомендуется использовать эти методы для каждой транзакции, которую вы отправляете. Никогда не поздно начать.


👋 Мы разобрали с вами самые необходимые и полезные функции кошелька Sparrow. Если данная инструкция была вам полезной, поделитесь ей с теми, кто ищет удобный, функциональный и надежный кошелек для хранения своих монет и не забудьте поддержать нас сатошами.