Обзор кошелька Bitcoin Core


дата публикации 27 апреля 2019 г. 10:00


Прежде всего Bitcoin Core это официальное ПО, на котором работает вся система bitcoin. Каждый запущенный Bitcoin Core wallet становится частью сети Bitcoin и считается полноценной узлом сети. Каждый узел сети Bitcoin хранит всю копию блокчейн со всеми транзакциями. При создании нового блока каждый узел сети скачивает этот блок, проверяет его на валидность, а затем добавляет в общую цепочку. Таким образом, чем больше узлов сети Bitcoin, тем более децентрализовано и распределена сеть.

Стать частью сети Bitcoin может кто угодно. Для этого надо зайти на официальный сайт bitcoin.org и скачать программное обеспечение Bitcoin Core. С установкой проблем возникнуть не должно. Bitcoin Core можно установить на компьютере с операционной системой Windows, Linux и Mac OS X. После первого запуска Bitcoin Core начнёт синхронизацию с сетью. Bitcoin Core начнёт скачивать полную копию блокчейна с момента создания первого генезис блока. На данный момент полная копия блокчейна Bitcoin весит около 212 Гб. Скорость синхронизации зависит от мощности вашего компьютера и скорости интернета. Стоит отметить, что требование для запуска Bitcoin Core совсем невелики. И запустить полный узел получится даже на слабом компьютере. Как минимум потребуется 1 Гб оперативной памяти и жёсткий диск на 500 или 1000 Гб с учётом того, что каждый день вес блокчейна увеличивается в среднем на 150 Мб.

Первое, что нужно сделать, после запуска Bitcoin Core - это сменить язык на русский. Для этого заходим в раздел Settings → Options. Окрыляется окно настроек, заходим в раздел Display и выбираем русский язык. После этого потребуется перезапустить клиент Bitcoin Core.

Далее, самый важный шаг — шифрование кошелька.

Выбираем раздел «Настройки» и нажимаем «Зашифровать кошелёк». Откроется окно, в котором необходимо установить пароль для доступа к кошельку. Устанавливаем пароль и нажимаем «Ok». Будет показано предупреждение о том, что если вы потеряете пароль, то вы потеряете все свои биткойны. После того как вы зашифровали свой кошелёк, при попытке отправить транзакцию будет показано окно с требованием ввести пароль. Также пароль можно ввести в консоли через специальную программу. Для этого заходим в раздел «Помощь» → «Окно отладки» и далее переходим в раздел «Консоль». Здесь вводим команду Walletpassphrase «пароль» «время в секундах», на которое вы хотите заблокировать кошелёк. После ввода этой команды кошелёк будет разблокирован на 10 минут и не будет требовать пароля при отправке транзакции, и выполнения других консольных команд. К консольным командам вернёмся чуть позже.

А пока перейдём к разделу «получить», где создаются биткойн адреса для получения средств. Поле «Метка» позволяет отметить новый адрес каким-то словом, буквой или цифрой для того, чтобы было удобнее различать новые адреса. Она будет видна только вам внутри кошелька Bitcoin Core. Поле Amount заполняется в том случае, если вы запрашиваете определённую сумму для отправки. Например, вы вводите в поле Amount 1 BTS, и когда другой человек проскандирует этот QR код, сумма отправки автоматически установится на 1 BTS. Также рядом с этим полем есть галочка, которая изменяет тип генерируемых адресов (native segwit). Рекомендуем всегда использовать native segwit адреса, так как segwit транзакции стоят дешевле и занимают меньше места при добавлении в блок bitcoin. Используя Legacy или Segwit совместимые адреса, комиссия за транзакцию будет выше и эти транзакции будут занимать больше места в блоке.

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

Нажимаем «Запросить платёж». Появляется окно с QR-кодом нового bitcoin адреса и адреса в текстовом формате. Новый адрес отобразится в разделе «История платёжных запросов». Но как только на этот адрес будет отправлена любая сумма биткойнов, то он исчезнет из этого списка. Это сделано для безопасности, и чтобы пользователи использовали каждый раз новый адрес для получения средств. Но все адреса, которые были вами сгенерированы ранее можно посмотреть в отдельном окне.

Для этого необходимо зайти в раздел в «Файл» → «Адреса для получения». Здесь вы можете взять ранее сгенерированный адрес и повторно использовать его для получения средств.

Далее, перейдём к вкладке «Обзор».

В ней отображается общий баланс кошелька, а также входящие и исходящие транзакции. Довольно часто можно встреть на различных форумах жалобы о том, что кто-то отправил биткойны на адрес Bitcoin Core, но они не отображаются на балансе. Связано это с тем, что Bitcoin Core должен полностью синхронизироваться с сетью и скачать тот блок, в котором находится нужная вам транзакция. Пока Bitcoin Core не скачает блок с нужной транзакцией, входящая транзакция не будет отображена и, соответственно, баланс тоже не обновится. Поэтому если вы отправили транзакцию на адрес Bitcoin Core и она не отобразилась, то просто подождите пока кошелёк докучает нужные блоки.

Переходим к разделу «Отправить».

Начнём по порядку. Нажав на кнопку «Входы» появится список входов, с которых будут браться биткойны для создания транзакций. Если самому не выбирать входы, то Bitcoin Core выберет их автоматически.

Следующее поле позволяет указать определённый адрес для сдачи. По умолчанию для сдачи Bitcoin Core всегда создаёт новый адрес. Но если поставить галочку, то можно, например, отправить сдачу обратно на тот адрес, с которой была отправлена транзакция или на любой другой адрес. Поля Pay To, Метка и Amount думаем не нуждаются в пояснениях. А галочка напротив Subtract fee from amount заслуживает отдельного внимания. Если в поле Amount будет указана сумма в 100 тысяч satoshi и поставлена галочка, то получателю дойдёт меньше чем 100 тысяч satoshi. Так как комиссия за транзакцию будет взята из самой суммы, которую вы отправляете. Если галочка стоять не будет, то получатель получит ровно 100 тысяч satoshi, а комиссия за транзакцию будет оплачена дополнительно. Это очень важный параметр, который нельзя упускать. Например, некоторые автоматические обменники требуют от клиента, чтобы тот перевёл именно ту сумму, которая указана в заявки. Но если при отправке транзакции будет стоять эта галочка, то обменнику придёт совершено другая сумма, что вызовет некоторые проблемы с обменом.

Теперь переходим к разделу «Комиссия за транзакцию».

Bitcoin Core предлагает пользователю два варианта.

  • Рекомендованное значение комиссии. Подсчитывается в зависимости от загруженности сети и времени, за которое транзакция подтвердится.
  • Пользовательское значение. Оно выставляется вручную.

Какой вариант использовать каждый решает сам. Иногда кошельки, использующие автоматическую комиссию, выставляют её настолько большой, что отправленная транзакция и так бы подтвердилась в следующем блоке, даже если бы комиссия была на 30% меньше. Поэтому иногда стоит выставлять комиссию вручную, оценивая загруженность сети и график общих комиссий выставленных за транзакции. Тут же можно поставить галочку напротив функции «Replace-By-Fre». Отправив транзакцию с этим параметром в дальнейшем можно будет увеличить и комиссию, и ускорить её. С основным интерфейсом закончили.

Теперь поговорим про безопасность кошелька, а в частности про открытый исходный код.

Вы наверняка часто слышали про исходный код, и что это добавляет безопасности и надёжности кошельку, который вы используете. На самом деле это не так. Наличие открытого исходного кода на GitHub не гарантирует безопасности приложения, которое вы скачали. Открытый исходный код не гарантирует того, что в уже готовой программе, которую вы скачали нет вредоносного кода или скрытых функций. Однако, кошелёк Bitcoin Core использует фиксированную процедуру создания приложения или так называемую детерминированную компиляцию. Это позволяет удостовериться в том, что результирующий двоичный код в точности соответствует исходному коду. Скомпилированный исходный код с использованием детерминированной компиляции будет всегда вводить один и тот же двоичный файл, вплоть до бита. В таком случае вы можете быть уверены в том, что исполняемый код не скрывает никаких секретов.

К слову, Wasabi Wallet, как и Bitcoin Core также имеет фиксированную процедуру создания приложения. В противном случае, если разработчик просто выложил исходный код своего приложения на GitHub, то это не дают никаких гарантий того, что его приложение не содержит внутри себя вредоносного кода или скрытых функций. Это касается таких кошельков как Electrum, Bither, Armory и некоторых других кошельков. У них есть открытый исходный код на GitHub, но это ни как не гарантирует того, что приложения, которые вы скачиваете с сайта соответствует тому, что выложено на GitHub. Например, редактор Visual Studio Code от Microsoft также является открытым проектом и имеет открытый исходный код на GitHub. Но на деле официальные релизы приложения отличаются от исходного кода выложенного на GitHub.

А теперь перейдём к рассмотрению основных консольных команд в Bitcoin Core.

Первая необходимая команда, которую рассматривали в начале - это Walletpassphrase. Она даёт доступ к вашему кошельку на определённое количество времени. Эта команда не только даёт возможность отправлять транзакции без ввода пароля, но также и даёт доступ к другим консольным командам.Например, команде dumpprivkey, которая позволяет получить приватный ключ от определённого bitcoin адреса. Команда dumpprivkey выполняется с одним параметром. Этим параметром является bitcoin адрес, от которого вы хотите получить приватный ключ. Копируем любой bitcoin адрес для получения средств из Bitcoin Core, вводим команду dumpprivkey и через пробел вставляем скопированный адрес. Bitcoin Core выдаст нам приватный ключ от этого адреса. Далее, этот ключ можно экспортировать в другой bitcoin кошелёк, например, в Electrum.

Также присутствует и команда импорта приватного ключа в Bitcoin Core - importprivkey. Вводим команду и через пробел вставляем приватный ключ, например, из любого другого кошелька. Импорт ключа займёт какое-то время, в зависимости от мощности вашего процессора. К сожалению, в Bitcoin Core нет возможности импортировать несколько приватных ключей одновременно. Но с импортом приватных ключей надо быть предельно осторожным. Импортировав приватный ключ из другого кошелька в Bitcoin Core, этот приватный ключ не становится частью большого детерминированного кошелька. Это будет просто отдельный bitcoin адрес, который втянут в Bitcoin Core. Если вы импортируете приватный ключ, затем удалите файл из компьютера, а затем воспользуетесь резервной копией для восстановления, то этого приватного ключа внутри кошелька не будет. И вы просто потеряете свои средства.

Следующая полезная команда backupwallet. Эта команда создаёт зашифрованную копию вашего кошелька в основной директории bitcoin, которая по умолчанию находится на диске C. Команда выполняется с одним параметром - «название файла». Например, команда backupwallet bitcoin создаст файл с названием Bitcoin в основной директории. Но где хранится основной файл wallet.dat? Файл wallet.dat можно найти в папке Wallets. Если вы потеряете этот файл, то вы потеряете все свои биткойны без возможности восстановления. Это один из тех минусов Bitcoin Core, из-за которых не стоит использовать этот кошелёк для хранения средств.

Да, вы можете сделать копию файла wallet.dat с помощью консольной команды и закинуть эту копию на флешку. Или сделать несколько копий и раскидать их на несколько флешек. Но в Bitcoin Core нет SEED фразы, которую можно использовать для восстановления в любом другом кошельке. Вы вынуждены хранить файл wallet.dat постоянно, чтобы не потерять доступ к своим биткойнам. Например, SEED фразу можно запомнить и хранить все свои биткойны в голове, и не париться о том, что какой-то файл лежит на флешке. При условном переезде в другое место вам опять нужно брать с собой этот файл, чтобы восстановить кошелёк на новом компьютере. Само по себе наличие файла, который необходимо хранить, уже является недостатком при использовании биткойна.

Но в Bitcoin Core используется детерминированный кошелёк. Почему тогда в нём нет SEED фразы? Если воспользоваться командой dumpwallet, то получим файл со всеми приватными ключами. После использования этой команды в консоле сразу отобразиться путь, по которому был сохранён dump кошелька. Открываем этот файл с помощью любого текстового редактора и видим строку extended private masterkey. Это приватный мастер ключ, из которого создаются обычные приватные ключи. Простыми словами, это и есть SEED фраза только в непривычном формате.

Взяв этот приватный мастер ключ, и вставив его в поле BIP32 Root Key на сайте ioncoleman.io, мы получаем список bitcoin адресов. Перед этим необходимо выставить Derivation Path на BIP141, так как Bitcoin Core сейчас не использует Legacy адреса. Приватный мастер ключ это и есть та самая SEED фраза, из которой генерируются приватные ключи.

Назревает вопрос, а что если хранить только приватный мастер ключ от Bitcoin Core на бумажке, также как SEED фразу. Тогда получается, что файл хранить не нужно. Но проблема в том, что Bitcoin Core не поддерживает импорт приватного мастер ключа. У вас просто не получится импортировать приватный мастер ключ в Bitcoin Core. Такой функции пока нет и неизвестно будет ли она вообще.

Мы попробовали импортировать этот ключ в Electrum, но он не предложил нам Derivation Path, а загрузил Legacy адреса, который Bitcoin Core уже не использует. В итоге получается так, что хранить файл wallet.dat просто необходимо. И потеряв его, вы потеряете все свои биткойны.

Сейчас уже есть достаточное количество Bitcoin кошельков, которые имеют возможность подключения к своей Bitcoin node. Скачали приложение на телефон, подключились к своей Node, которая стоит на ПК. И все транзакции будут отправляться через вашу Node. Это не значит, что Bitcoin Core плохой кошелёк для хранения средств. Просто он не очень удобен для постоянного использования биткойна.

Однако, рекомендуем установить полную Node Bitcoin Core себе на компьютер по следующим причинам.

  • Запуск полной Node Bitcoin Core помогает сети биткойна. Делает её более децентрализованной и защищённой. Чем больше запущено Bitcoin Node, тем лучше для сети биткойна.
  • Запуск полной Node Bitcoin даёт вам возможность выбирать в случае хардфорка блокчейна. Если вы не хотите ему следовать, то вы просто не устанавливаете новое обновление и не переходите на новую версию программного обеспечения, следую старым правилам консенсуса. Если у вас стоит лёгкий кошелёк, то вы просто следуете правилам блокчейна, которые вам дали.
  • Bitcoin Core необходим для того, чтобы полноценно использовать Lightning Network. Однако, сейчас тестируется Neutrino-client, который позволит запускать Lightning Node без скачивания полного клиента Bitcoin Core.

Поиск

Другие статьи из категории

Криптофонд: что это

опубликовано: 22 апреля 2019 г. 10:17