Краткое пошаговое руководство по технологии Blockchain


Понимание трех основных технологий, лежащих в основе Bitcoin.

Спросите 10 человек, «что такое технология blockchain?», и вы получите 10 разных ответов, — даже в самой крипто-тусовке. Лучший подход к формированию истинного понимания blockchain заключается в понимании базовых его технологий шаг за шагом. 

Поэтому в этой статье мы рассмотрим три основных компонента технологии blockchain: собственно блокчейн, одноранговые (пиринговые) сети и механизм консенсуса. Bitcoin не сможет существовать, если какой-либо из этих компонентов отсутствует. Начнем с блокчейна.

«Если вы не можете объяснить это просто, вы не понимаете это достаточно хорошо». — Альберт Эйнштейн

1. Понимание собственно  блокчейна

Попросту говоря, блокчейн — это всего лишь способ структурирования данных. Вот и всё! Это регистр: файл, который отслеживает записи бухгалтерского учета.

Этот файл сравним с книгой, которая никогда не заканчивается.

На каждой странице книги записана информация и номер страницы внизу. По номеру страницы вы сразу же знаете, где эта страница находится в книге. Очевидно, что страница 49 располагается между страницами 48 и 50.

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

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

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

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

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

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

2. Понимание роли одноранговых сетей

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

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

Эти компьютеры называются «узлами» или «нодами» (nodes), и они работают совместно в одноранговой (peer-to-peer) сети, чтобы гарантировать, что блокчейн является безопасным и актуальным. Каждый из этих узлов хранит полную, обновленную (актуальную) версию blockchain. Каждый раз, когда добавляется новый блок, все узлы обновляют свой блокчейн. Использование одноранговой сети имеет определенные преимущества:

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

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

Например, как узнать, что все транзакции в блокчейне верны? Как узнать, что в блоках нет недействительных транзакций? И если есть разные версии blockchain, откуда мы узнаем, которые из них являются истинными?

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

3. Понимание механизма консенсуса

Механизм одноранговой сети использовал еще в 1999 году Napster (файлообменная пиринговая сеть).

Блокчейн также существовал до Биткоина.

Гениальный Сатоши Накамото, загадочный и анонимный основатель Биткоина, объединил блокчейн с консенсусным механизмом, основанным на криптографии. Консенсусный механизм — это то место, где происходит настоящая магия: он позволяет узлам в одноранговой сети работать вместе, не зная и не доверяя друг другу.

«Целью консенсусного алгоритма является обеспечение безопасного обновления состояния в соответствии с некоторыми конкретными правилами изменения состояния, когда право на выполнение изменения состояния распределяется среди (…) пользователей, которым предоставляется право коллективно выполнять изменение через алгоритм» — Виталик Бутерин

Теперь, если вы не совсем это поняли, механизм консенсуса — это просто набор правил, который согласовывается узлами в сети, запуская программное обеспечение сети. Эти правила обеспечивают, чтобы сеть работала по назначению и оставалась синхронизированной.

Консенсусный протокол устанавливает правила:

  • Каким образом блоки должны быть добавлены в блокчейн,
  • когда блоки считаются действительными, и
  • как разрешаются конфликты.

Добавление блоков в блокчейн

Различные блокчейны добавляют блоки в свои цепи по-разному. Наиболее известным механизмом консенсуса является Доказательство выполненной работы (PoW) Биткоина.

Первое правило PoW состоит в том, что один блок должен быть добавлен в блокчейн, в среднем, каждые десять минут.

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

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

Впоследствии все остальные майнеры начинают добывать следующий блок.

Доказательство работы (PoW) Биткоина — не единственный механизм консенсуса. Доказательство ставки (PoS) также широко используется в распределенных книгах. В механизме «Доказательство ставки» можно «сделать ставку» на свои монеты, чтобы получить возможность добавить следующий блок в блокчейн. В некотором смысле, делающий ставку говорит: «Я ставлю свои монеты, что я правильно добавляю этот блок». Если он солжет, то потеряет свои монеты.

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

Проверка блоков

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

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

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

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

Теперь, допустим, я получил 1 биткоин, который затем послал Алисе. Потом я пытаюсь отправить тот же 1 биткоин Бобу. Как только блок с моей первой транзакцией в нем будет добавлен в цепочку, все узлы обновят блокчейн, чтобы отразить, что у меня больше нет этого одного биткоина. Любой новый сформированный блок, который будет содержать мою транзакцию для Боба, просто будет отклонен узлами. Программное обеспечение узлов видит, что транзакция в блоке не соответствует правилам, поэтому они не обновляют блокчейн с этим блоком.

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

Как разрешаются конфликты 

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

Мы называем это непреднамеренным «форком» ( ‘fork’ — «вилка»): блокчейн разветвляется на две разные цепи. У кого же оказался мой 1 биткоин? У Алисы или Боба? Какая из двух ответвленных цепей блокчейна является «истинной»?

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

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

Почему мы знаем, что это всегда произойдет?

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

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

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

Вывод

Вышеприведенное следует рассматривать как очень краткое введение в работу распределенных регистров (distributed ledgers). 

Однако, в следующий раз, когда кто-то упоминает о блокчейнах на вечеринке, пожалуйста, не делайте того, что я только что сделал, а просто скажите: «Эй, дружище, блокчейн — это всего лишь способ структурирования данных. Я думаю, вы имеете в виду распределенный регистр, используемый для ведения записей, который размещен в одноранговой сети, состоящей из узлов и майнеров, сотрудничество которых регулируется консенсусным протоколом, который устанавливает правила сети»

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

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

Если это не захватывающая перспектива, тогда я не знаю, что это…


Источник: The Quick, 3-Step Guide to Blockchain Technology



Комментарии 16


Чтобы читать и оставлять комментарии вам необходимо зарегистрироваться и авторизоваться на сайте.

Моя страницаНастройкиВыход
Отмена Подтверждаю
100%
Отмена Подтверждаю
Отмена Подтверждаю