Как работает Blockchain

admin

Blockchain (блокчейн) – это механизм хранения и изменения данных без центральных узлов. Что в нем особенного, и почему нужно изобретать какой-то новый механизм, если можно все хранить на сервере?

Проблема центрального узла

Блокчейн впервые был описан и применен для обеспечения транзакций цифровой валюты. Рассмотрим, как обмен деньгами происходит обычно. Пусть есть 3 чувака (А, Б и В), у которых на счету есть по 10 баксов. Их счета хранятся в банке (в обычной таблице). Когда чувак “А” хочет перевести 5 баксов чуваку “Б”, он отправит запрос в банк. Банк проверит состояние его баланса и отправит деньги адресату, если их хватает на счету.

С этим механизмом есть несколько проблем:

  • Если банк не работает, клиенты не могут использовать свои счета и проводить транзакции.
  • База данных так или иначе доступна некоторым сотрудникам банка, которые могут вносить в нее изменения (по ошибке либо намеренно).

Решение этих проблем будет подразумевать решение двух задач:

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

Эти принципы положены в основу Блокчейн базы данных.

Распределенное хранение

Представим, что трое наших ребят будут хранить таблицу счетов – каждый у себя. Тогда для перевода денег от “А” к “Б” необходимо будет всего лишь опубликовать событие для всей сети, в котором будет указано, что “А” переводит $5 для “Б”.

У каждого узла будет возможность удостовериться, что у “А” хватает денег на счету для перевода. Ну и обновить данные в своей собственной таблице. Так, если даже узел “А” захочет перевести больше денег, чем у него есть, остальные узлы не примут эту транзакцию. Открытость и возможность проверить любую транзакцию делают эту систему неуязвимой к обману.

Цепь блоков транзакций

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

А -> Б: $5
Б -> В: $2
В -> A: $1
В -> Б: $1
...

## Данные о деньгах в системе хранятся в виде списка транзакций

Для удобства, транзакции группируются в блоки, которые после сборки отправляются по всей сети:

Блок 1: А -> Б: $5
      : Б -> В: $2
      : В -> A: $1

**Блок 2**: В -> Б: $1
...

## Блок 2 будет наполнен и отправлен всем клиентам

Каждый клиент принимает такой блок и добавляет к уже сохраненным блокам. Так получается цепь блоков или блокчейн (Blockchain – chain of blocks). Однако, как убедиться, что клиент получил блок с настоящими данным, а не подделанными другими участниками?

Подтверждение данных

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

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

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

Самое важное

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

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023