Bitcoin Core: история и применение

Bitcoin Core: история и применение

Bitcoin Core — это программное обеспечение, которое отвечает за проверку и хранение транзакций, совершенных в Bitcoin, одноранговом протоколе обмена электронными деньгами.

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

Bitcoin Core — это фактически название версии программного обеспечения, разработанного Владимиром ван дер Лааном, который создал его на основе оригинального кода. Первые три версии кода биткоина были разработаны Сатоши Накамото в период с 2008 по 2009 год. После того как он исчез из общественной жизни, код Биткойна претерпел ряд изменений.

Разработчики, отвечающие за совершенствование кода Биткойна, решили изменить название последних версий, чтобы отличить их от тех, которые были запрограммированы Сатоши Накамото. Это привело к появлению Bitcoin-Qt, который был включен в Bitcoin, начиная с версии 0.5. 19 марта 2014 года была выпущена версия 0.9.0 Bitcoin-Qt, переименованная в то время в Bitcoin Core.

Каковы функции Bitcoin Core?

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

Клиент-сервер

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

Bitcoin Core обновлялся в различных версиях вплоть до сегодняшнего дня. Самая последняя версия Bitcoin Core — версия 0.23.0. Однако это не единственная программа, позволяющая взаимодействовать с сетью Биткойн. Существуют и другие программы Bitcoin, такие как Bcoin, Bitcoin Knots, BTCD и другие, но Bitcoin Core является самой распространенной и имеет больше всего разработчиков.

Полный узел

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

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

Легкий клиент

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

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

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

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

Добыча биткоинов

Майнеры Биткойна используют Bitcoin Core для распространения блоков транзакций и знают самое актуальное состояние истории всех транзакций, проходящих в системе. Однако не следует путать майнинг-машину с узлом Биткойна. К одному узлу может быть подключено множество машин для добычи. С другой стороны, узел может просто выполнять задачи подтверждения и верификации, не выполняя Proof of Work, которую выполняет оборудование для майнинга. Это задание — своего рода лотерея, победитель которой получает право написать транзакции блока и выиграть за это вознаграждение в BTC.

Программное обеспечение Bitcoin Core широко используется. Согласно данным Coinmarketrate.com, 98% узлов в сети используют это программное обеспечение для работы Bitcoin. Около 50 000 узлов составляют сегодня сеть Биткойн.

Биткойну требуется распределенная сеть передачи данных

Многие люди добровольно управляют целым узлом Bitcoin Core. Для выполнения этой задачи они используют энергию и ресурсы пропускной способности. Это способствует безопасности сети Bitcoin.

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

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

Какова история разработчиков Bitcoin Core?

После исчезновения Сатоши Накамото из общественной жизни в 2010 году Гэвин Андресен вместе с другими программистами стал сопровождающим кода Биткойна. Некоторые источники предполагают, что Андресен не был выбран Накамото, а взял на себя эту роль. Будучи единственным обладателем ключей к коду, после того как создатель биткойна передал их ему и попрощался, он стал ответственным за эту работу.

Форки биткоина

В Биткойне произошло 21 развилка. Некоторые запрограммированы, а некоторые случайны. Ни один из них не привел к серьезным последствиям. В одном случае, 11 марта 2013 года, поступление обновления случайно породило две цепочки транзакций. В каждой из них было отражено по одной транзакции, и, как следствие, майнеры решили договориться о прекращении добычи обеих одновременно. Это вызвало резкое падение цены BTC.

В первые годы существования Bitcoin Core другие люди имели доступ к ключам доступа к коду. Среди них были Мартти Мальми, Ласло (laszloh), Крис Мур, Джефф Гарзик, Нильс Шнайдер и Грег Максвелл.

Однако разработка Bitcoin Core находится не только в руках этих людей. Сообщество программистов гораздо шире, так как код Биткойна получил улучшения от сотен людей. Среди них такие программисты, как Глория Чжао, Мэтт Коралло, Грегори Джон Ньюберри, Кори Филдс и Питер Тодд.

Testnet

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

В 2014 году Майк Хирн и Гэвин Андресен (после ухода с поста сопровождающего кода) создали Bitcoin XT из форка Bitcoin Core. Целью было протестировать реализации, которые еще не были введены в Биткойн. В том числе, спорное изменение лимита размера блока, который, по их замыслу, должен был быть динамическим. К 2017 году в этой сети осталось всего 30 узлов. Сегодня его не существует.

Еще одна подобная дискуссия произошла в 2017 году, когда сообщество разработчиков Bitcoin Core сыграло решающую роль в предотвращении очередного предложения об увеличении лимита размера блока Биткойна до более чем 2 МБ с опасными последствиями. В то время влиятельная группа предпринимателей и майнеров делала ставку на реализацию этой меры, чтобы взять под контроль развитие Биткойна.

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

В конце концов, сторонники форка создали новую сеть, известную как Bicoin Cash, которой в то время управлял Роген Вер, предприниматель, возглавлявший атаки на Bitcoin Core.

Сколько версий Bitcoin Core существует?

На сегодняшний день существует 65 версий Биткойна. Первая версия биткоина была выпущена 9 января 2009 года Сатоши Накамото. Его можно было запустить только под Windows. Одиннадцать месяцев спустя появилась версия 0.2, которую можно было установить на Linux. За ней последовала версия 0.3.2.

13 августа 2010 года Сатоши Накамото выпустил Bitcoin Talk версии 0.3.9, что стало его последним активным участием в разработке кода Bitcoin.

В ноябре 2011 года Владимир ван дер Лаан представил Bitcoin-Qt, который предлагал графический пользовательский интерфейс для обычных пользователей. Эта версия была переименована в Bitcoin Core в версии 0.9.0.