Как работает блокчейн

Как работает блокчейн?

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

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

Принцип работы блокчейна

Блокчейн — это концепция надежного хранения данных в цифровом виде. И эти данные в блокчейне нельзя изменить. Распределенный реестр и сетевые системы «точка-точка» (point-to-point) способствуют безопасности и целостности блокчейна, не оставляя возможности для мошенничества.

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

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

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

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

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

Шаг 1. Создание транзакции

Допустим, Сергей и Иван — два узла в блокчейне биткоина. Теперь Сергей хочет отправить 50 биткойнов (BTC) Ивану по защищенному каналу. Эта транзакция будет проведена через сеть блокчейн. Информация, которой они хотят обменяться, будет дважды зашифрована с помощью алгоритмов шифрования с открытым и закрытым ключом. И Сергей, и Иван будут иметь открытый и закрытый ключи.

Шаг 2. Верификация транзакции

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

Все узлы в сети будут проверять такие параметры, как:

  • есть ли у Сергея достаточный баланс, т.е. не менее 50 BTC?
  • является ли Сергей зарегистрированным узлом?
  • является ли Иван зарегистрированным узлом и т.д.

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

Шаг 3. Формирование нового блока

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

Шаг 4. Proof-of-Work

Теперь узлы, формирующие новые блоки, будут пытаться добавить их в основной блокчейн и сделать его постоянной частью. Но если каждый узел будет иметь возможность просто добавить новый блок в блокчейн, то это нарушит его работу и даже может представлять большую угрозу для безопасности сети. Чтобы избежать этого, существует концепция доказательства работы (proof-of-work), которая гарантирует, что действительный блок надежно прикреплен к блокчейну.

Proof-of-work — это протокол проверки блока, который в технических терминах также называется майнингом, поскольку те, кто успешно выполняет доказательство работы, получают вознаграждение в виде биткоинов. Поэтому мы называем их «майнерами». Proof-of-work — это процесс решения сгенерированной системой математической головоломки, в результате которого создается хеш-код для данного блока. Этот уникальный хеш-код блока необходим для успешного добавления нового блока в блокчейн.

В алгоритме proof-of-work система назначает узлу целевое значение (хеш-значение), в соответствии с которым он должен придумать хеш для нового блока. Сервер назначает целевое значение в соответствии с уровнем сложности. Этот уровень сложности меняется с добавлением каждых 2016 новых блоков в блокчейн биткоина.

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

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

Для вычисления требуемого хеш-значения узлу необходимо хеш-значение предыдущего блока и значение nonce. Nonce — это целочисленное значение, сокращенное от «Number only used once». Это случайное целое число, которое необходимо для получения требуемого хеш-значения блока. Целевое значение формируется путем хеширования правильной комбинации nonce и хеш-значения предыдущего блока.

Мы можем продолжать менять значение nonce, пока не найдем правильное значение хеша. Главное здесь — найти такую комбинацию из nonce и хеша предыдущего блока, чтобы предшествующие нули в хеше блока удовлетворяли целевому условию. Когда правильный nonce и хеш-значение предыдущего блока найдены, они хешируются с помощью алгоритма хеширования SHA-256. Таким образом, получается окончательный хеш нового блока.

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

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

Шаг 5. Добавление нового блока в блокчейн

После того как вновь созданный блок получил свое уникальное хеш-значение и аутентификацию с помощью proof-of-work, его необходимо добавить в блокчейн вместе с другими блоками. Только когда этот блок будет добавлен в блокчейн, транзакция будет завершена. То есть Иван получит от Сергея 50 BTC.

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

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

Шаг 6. Завершение транзакции

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

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

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

Резюме

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

Понравилась статья? Поделитесь в соцсетях

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *