Bits.media logo

Русскоязычный информационный сайт о криптовалюте Bitcoin


Baikal miners

Bitcoin Core - официальный кошелек

Как вы уже знаете, кошелек (англ. Bitcoin wallet - он же клиент сети, бумажник) - это программное обеспечение для работы с Bitcoin. Именно в кошельке проводятся все операции. Вы можете хранить монеты, отправлять и получать их, подписывать и проверять сообщения. Есть и другие полезные функции, которые интересны продвинутым пользователям. 

Мы надеемся, что этот обзор будет интересен не только новичкам, но и поможет опытным пользователям узнать о новых возможностях, которые добавлены в последней версии бумажника Bitcoin Core v 0.10.0. Наличие более глубоких знаний о Bitcoin позволяет делать индивидуальную настройку и дает дополнительные возможности при создании транзакций и мониторинге.

Кошельки Bitcoin бывают нескольких видов – толстые и тонкие, мобильные и онлайн. Первый и главный из них – это полный или, как иногда говорят «тяжелый», «толстый» кошелек, который называется Bitcoin Core. Эта статья именно о нем.

Bitcoin Foundation logo

Bitcoin Core – это так называемый «официальный» клиент сети, который разрабатывается и продвигается Bitcoin Foundation – некоммерческой организацией, объединяющей разработчиков ядра и отвечающей за контакты сообщества с корпорациями и правительствами. Филиалы Bitcoin Foundation открыты в нескольких десятках стран по всему миру.

Первоначально Сатоси Накамото делегировал право принятия решений по изменению кода официальной версии кошелька Гэвину Андресену, который, в свою очередь, передал его в 2014 году Владимиру Ван дер Лаану.

Внедрение любых изменений в следующий релиз программы кроме главного разработчика согласуется с другими разработчиками ядра: Джеффом Гарзиком, Грегори Максвеллом и Питером Вуллем.

Когда нужен Bitcoin Core

Если вы еще не решили, какой кошелек вам подходит, сделайте обоснованный выбор. Bitcoin Core наиболее предпочтителен для тех, кто хочет стать полноценным членом сообщества Bitcoin и взять на себя частичку груза поддержки глобальной сети. Эта частичка сейчас обходится примерно в 50 гигабайт на жестком диске и забирает немного вычислительных ресурсов компьютера. Но объем блокчейна быстро растет, а вместе с ним и требования к оборудованию. Однако, можем порадовать вас тем, что в последней версии кошелька время первичной загрузки всей цепочки блоков сократилось до 3-4 часов, а раньше она шла несколько суток.

Bitcoin Core logo

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

Дело в том, что безопасность вашего кошелька главным образом зависит от двух компонентов: гарантированно правильной версии блокчейна и безопасности хранения ключей доступа к кошельку. Локально хранят закрытые ключи все программы-клиенты, устанавливаемые на компьютеры или ноутбуки. А вот онлайн-кошельки и некоторые мобильные оставляют ключи на сервисе, который разработал программу. Вопросы защиты компьютера и сохранности файла wallet.dat, содержащего ваши закрытые ключи, подробно рассмотрены в статьях, посвященных безопасности.

Клиент работает под Windows, Linux, Mac OS, полностью переведен на русский язык и десятки других. Если у вас хороший современный компьютер, то Bitcoin Core - отличный выбор.

История развития Bitcoin Core по версиям

Как правило, большинство изменений кода имеют небольшой и последовательный характер. Они касаются, в основном, введения новых функций, улучшения интерфейса, уменьшения расхода памяти или решения проблем безопасности, преследуя основную цель - обеспечить эволюцию Bitcoin и стабильность работы сети. Однако, иногда происходят «авральные» обновления, так называемые «хард форки» - когда необходимо срочно устранить какую-то серьезную уязвимость или несовместимость версий.

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

В версии 0.5.0, появилась Bitcoin-qt — программа с графическим интерфейсом, совместимая с консольной программой (демоном) bitcoind. Следующая, v.0.5.3, вышла уже с измененными, в соответствии с BIP30, правилами принятия решения о правильности блоков. Более подробно о ранних версиях Bitcoin Core читайте здесь.

Релиз версии 0.6.0, прошедший 30 марта 2012 года, предлагал более 20 языковых локализаций и исправлял некоторые проблемы безопасности.

Устранение уязвимости привело к тому, что Гевин Андресен, рекомендовавший пользоваться только вновь вышедшей версией, удалил с SourceForge все старые релизы до 0.3.24, а также некоторые промежуточные. Проблема заключалась в возникновении ошибок в обработке многопоточности, при которых программа переставала отвечать на запросы, а также из-за потенциальной уязвимости для атаки DoS (denial-of-service.

В версиях 0.6.3 – 0.7.2 были исправлены ошибки, оптимизированы процессы проверки транзакций, добавлена контрольная точка для повышения скорости загрузки исходной цепочки блоков.

В 2013 году состоялся выход версий 0.8.0-0.8.6, в которых старая база данных блоков, начиная от Биткойн 0.7.2 и старше уже не поддерживалась; были введены значительные изменения в коде сети, уменьшающие потребление памяти и задержки, добавлена команда «send coins» в контекстное меню, в адресной книге улучшен отчет о процессе синхронизации. Также были уменьшены комиссии и минимальный платеж. В мае 2013 года был проведен хардфорк  - массовое обновление на версию 0.8, так как ее блокчейн был несовместим с предыдущими версиями.

19 марта 2014 года в версии 0.9.0 произошел ребрендинг - для уменьшения путаницы между функциями клиента и сервера Биткойна, BitcoinQt переименовали в Bitcoin Core. С этой версии начался процесс разделения монолитного ядра на несколько узкофункциональных утилит. Первой была отделена консольная версия клиента - bitcoin-cli, которая начал дублировать функционал RPC-клиента в bitcoind.

Кроме этого, впервые был разработан 64-битный клиент под Windows, за счет чего был усилен лимит памяти в CNode, а также уменьшена комиссия за проведение транзакции до 10 uBTC за килобайт.

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

В релизе версии 0.9.1. была исправлена проблема безопасности, связанная с Heartbleed, багом в исходном коде программы шифрования OpenSSL, а в версии 0.9.3 добавлены опции -maxorphantx, -maxorphanblocks и улучшена обработка транзакций.

Bitcoin Core 0.10.0 

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

Вы можете более подробно ознакомиться с интерфейсом Bitcoin Core v0.10.0, его основными функциями и возможностями ниже (картинка кликабельна):

Первичная синхронизация блокчейна стала более быстрой благодаря тому, что теперь, в первую очередь, скачивается полная цепочка заголовков блоков. По состоянию на февраль 2015 года весь объем составляет почти 30 Мб. Только после загрузки и проверки заголовков, со всех доступных пиров в параллельном режиме запускается скачивание самих блоков.

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

Обновлены команды RPС, дающие информацию по блокчейну, добавлена команда "getchaintips", при помощи которой выводятся все известные альтернативные цепочки, в том числе те, которые состоят из одних заголовков.

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

Кроме этого, оплата транзакции рассчитывается динамически, предоставляя возможность оптимизировать время подтверждения.

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

Также, при помощи RPC-команды "estimatefee nblocks" можно рассчитать необходимый размер комиссии на килобайт передаваемых данных.

По умолчанию, кошелек создает транзакции, которые быстро подтверждаются, и если параметр "sendfreetransactions" включен, комиссия по умолчанию не добавляется. Для контроля компромисса между сборами и временем подтверждения добавлена настройка 'txconfirmtarget'

Статистика начисления комиссии и приоритетов сохраняется в директории Data в файле `fee_estimates.dat` перед выключением программы, читается при запуске.

Кроме этого:

  • Добавлен новый анонимный интерфейс HTTP API клиента под названием REST, ускорена работа демона оптимизацией серверной части.
  • Повышена безопасность подписи транзакций, теперь вместо пакета OpenSSL, который недавно подвел своих поклонников критической уязвимостью, используется библиотека Libsecp256k, оптимизированная для используемой Bitcoin curve.
  • Добавлен новый режим "Только просмотр", который предоставляет возможность подключить просмотр любого (даже чужого) кошелька для отслеживания всех его транзакций. Нужно знать все адреса, которые использует этот кошелек. В режиме просмотра действуют большинство команд RPC, но с существенными ограничениями. Естественно, создавать и отправлять транзакции в этом режиме нельзя.
  • Для улучшения взаимодействия клиента Bitcoin с другими программами по API, добавлена библиотека согласования (Consensus library)
  • Разработан механизм, позволяющий майнерам (пулам) оперативно управлять транзакциями, включаемыми в следующий блок, что помогает в том числе быстрее передавать транзакции по сети.
  • Продолжена работа по разделению монолитного ядра на несколько самостоятельных узкоспециализированных утилит. Кроме bitcoin-tx теперь добавлены bitcoin-key и bitcoin-script.

Дальнейшие разработки и безопасность

Программное обеспечение Bitcoin-qt, созданное на основе первых разработок Сатоси, длительное время не имело аналогов; это была первая и единственная реализация протокола Биткойн. Впрочем, до сих пор в сети Bitcoin все остальные клиенты работают на уровне «легких», то есть не хранят блокчейн, запрашивая данные по транзакциям у узлов с Bitcoin Core.

Владимир Ван дер Лаан:

В первые годы Bitcoin Core был невероятно важен, и разработчики должны были поддерживать инфраструктуру узлов и исправлять баги в любое время дня и ночи. Но для того, чтобы стать глобальной распределенной сетью, Биткойн должен мыслить шире. В своей речи на Bitcoin Conference 2014 Гэвин [Адресен] отметил, что для него важна диверсификация. Он говорил об альтернативных реализациях полных узлов и даже сказал, что чем их больше - тем лучше. И хотя моя работа — поддерживать разработку Bitcoin Core, я скорее согласен с ним”.

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

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

Объединение усилий всего сообщества необходимо не только для нововведений, но в большей степени тогда, когда речь идет о тестировании важных, сложных и критически необходимых компонентов.

Armory

Armory logo

Для пользователей, которым собственная безопасность важнее всего остального, мы рекомендуем использовать Armory - дополнение к Bitcoin Core. Этот кошелек способен обеспечить режим повышенной безопасности - при использовании функции Armory Offline Wallets ключи хранятся оффлайн на USB или бумажном носителе, не требуя онлайн-подключения, но при этом сохраняются все транзакции пользователя. Они сначала формируются в оффлайн-режиме, после чего ключи "убираются" в хранилище, кошелек переходит в режим онлайн и совершает обмен транзакциями с сетью. Более подробно о возможностях Armory, его интерфейсе и работе с ним смотрите в этой презентации.



Все материалы с данного сайта Вы можете свободно копировать с указанием на источник - bits.media
Любые пожелания, предложения, материалы и т.п. Вы можете присылать на адрес admin@bits.media
Адрес для добровольных пожертвований на развитие - 1BQ9qza7fn9snSCyJQB3ZcN46biBtkt4ee (QR)