Введение в Биткоин: Сеть

in #ru5 years ago (edited)

Начинаем знакомство с тем, как устроен и как работает децентрализованная электронная денежная система Биткоин. Начало смотрите здесь: Введение в Биткоин: Краткое техническое руководство

Предметом этой публикации будет собственно сеть Биткоина или Биткоин-сеть.

Что такое сеть Bitcoin?

Сеть Bitcoin или Биткоин-сеть состоит из всех, кто работает с программным обеспечением Bitcoin (более известным как «биткоин-клиент»).

Фактически, Биткоин — это сеть людей (компьютеров), работающих с одной и той же компьютерной программой.

Что делает сеть Bitcoin?

Люди (точнее — биткоин-клиенты) в сети общаются друг с другом. Под «общением» подразумевается передача информации о том, что происходит в других частях сети. Это делается путем отправки друг другу сообщений.

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

Сеть Bitcoin описывается как «одноранговая» или peer-to-peer (p2p) сеть (пиринговая сеть), потому что:

  1. Все связаны друг с другом, так что это действительно сеть.
  2. Все в сети равноправны, т.е. все одного ранга (peerравный, одноранговый).

Кто является участником сети?

Как уже упоминалось, любой, у кого есть активное подключение к Интернету и работает биткоин-клиент.

Действительно, любой может присоединиться к сети Bitcoin. Все что нужно для этого — это подключение к интернету и биткоин-клиент, который является частью программного обеспечения, как и любая другая программа.

И как только вы начнете работать, ваш компьютер будут называть узлом (node) в сети Биткоин.

Как присоединиться к сети?

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

Поздравляю, вы создали полный узел (full node) в сети Биткоин.

Узлы

(компьютеры с запущенной программой биткоин-клиент)

Что такое узел (node)?

Узел (node) — это просто компьютер, на котором запущена программа Bitcoin (биткоин-клиент). Что еще более важно, узел подключен к другим компьютерам (под управлением той же программы) для создания сети Bitcoin. Другими словами, сеть Bitcoin состоит из узлов (node).

Что делает узел?

Узел имеет три назначения:

  1. Следовать правилам.
  2. Делиться информацией.
  3. Хранить копию подтвержденных транзакций.

Рассмотрим все три задания узла подробнее.

1. Следовать правилам

Каждый узел (биткоин-клиент) запрограммирован на выполнение набора правил. Следуя этим правилам, узел может проверять транзакции, которые он получает, и ретранслировать их, если с ними всё в порядке. При возникновении каких-либо проблем транзакция не передается далее в сеть Bitcoin.

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

2. Делиться информацией

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

Есть два типа транзакций, которые передают узлы:

  1. Новые (свежие) транзакции — транзакции, которые недавно поступили в сеть.
  2. Подтвержденные транзакции — транзакции, которые были «подтверждены» и записаны в файл. Они совместно используются в блоках транзакций, а не по отдельности.

Не беспокойтесь сейчас о разнице между этими двумя типами транзакций. Все станет ясно в главах о Майнинге и Блоках.

3. Хранить копию подтвержденных транзакций

Как уже упоминалось, каждый узел также хранит блоки подтвержденных транзакций. Они хранятся вместе в файле (базе данных) под названием блокчейн (blockchain).

Каждый узел также хранит копию блокчейна.

Новые транзакции передаются по сети до тех пор, пока они не будут вставлены в цепочку блоков, которая является регистром (ledger) подтвержденных транзакций.

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

Процесс добавления новых транзакций в блокчейн называется Майнинг(Mining).

Следует упомянуть, что каждый узел является автономным.

Имеется ввиду, что когда вы запускаете биткоин-клиент, сеть не «говорит вам, что делать». Вместо этого ваш биткоин-клиент уже знает, что делать, и он сам принимает решения.

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

Даже если бы все остальные узлы были бы отключены, ваш единственный узел поддерживал бы всю Биткоин-сеть.

Нужно ли быть узлом, чтобы пользоваться биткоинами?

Нет! Вы можете отправлять и получать биткоины, не будучи узлом. Вам просто нужно отправить транзакцию в Биткоин-сеть, и всё готово.

Если вы отправите сообщение о транзакции одному узлу, оно в конечном итоге распространится по всей сети.

Например, если вы используете веб-кошелек, он будет передавать ваши транзакции в Биткоин-сеть, не будучи узлом. 

* * *

В следующей публикации будет рассмотрено, как работает Майнинг

 Подписывайтесь на мой аккаунт @uanix