Что такое блокчейн? Полное руководство

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

Глава 1. Введение в блокчейн

Что такое блокчейн?

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

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

Данные добавляются периодически в виде структур, называемых блоками. Каждый блок добавляется поверх предыдущего и содержит информацию, связывающую его с ним. Если посмотреть на последний блок, то можно убедиться, что он создан после предыдущего. И если пойти вниз по «цепочке», то можно достичь самого первого блока – известного как генезис-блок.

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

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

База данных, в которой каждая запись связана с предыдущей. Источник: binance.com

Если теперь посмотреть на четвёртую строку, то последний идентификатор – . Помните, мы говорили, что нельзя изменить или удалить предыдущие записи? Всё потому, что любой легко поймёт, что это имело место, и просто проигнорирует попытку изменений.

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

Как связаны блоки?

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

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

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

Вход Выход SHA256
BitNovosti 491fd0ac791d6ef2229de5cab423ca6eb21dfe16e129e3a89a6893682a80e219
Bitnovosti 950822b5e38e6c48e20add70a4593d7f4b66917c457d06ff929fe4e7e86d440a
bitnovosti 8b4cd5c3d8be54f7a19cae929f0e15b6de0bdda08ce929c327c90fa82611e2aa

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

Каждый блок содержит отпечаток предыдущего. Источник: binance.com

Блокчейны и децентрализация

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

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

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

Задача византийских генералов

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

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

Да, они могут общаться через гонца. Но что, если того перехватят с сообщением «атакуем на рассвете» и заменят его сообщением «атакуем ночью»? Что, если один из генералов предатель и намеренно вводит других в заблуждение, чтобы они потерпели поражение?

Всех генералов ждёт успех при одновременной атаке (слева). Если одни отступают, а другие атакуют, то они будут побеждены (справа). Источник: binance.com

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

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

Зачем блокчейнам быть децентрализованными?

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

Что такое пиринговая сеть?

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

Централизованная сеть (слева) против децентрализованной (справа). Источник: binance.com

Взгляните на эту диаграмму. Слева A, чтобы отправить сообщение F, нужно переслать его через сервер. Но справа они соединены без посредников.

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

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

Что такое узлы (ноды) блокчейна?

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

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

Публичные и частные блокчейны

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

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

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

Как происходят транзакции?

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

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

Если Алиса хочет отправить Бобу 5 биткойнов, она транслирует сети соответствующее сообщение. Оно не сразу добавляется в блокчейн – узлы его увидят, но для подтверждения транзакции должны быть выполнены другие действия.

Когда транзакция добавлена в блокчейн, все узлы увидят, что она состоялась. Они обновят свою копию блокчейна, чтобы это отразить. Теперь Алиса не сможет отправить те же 5 монет Кэрол (двойное расходование), потому что сеть знает, что она их уже потратила.

Понятия имён пользователей и паролей здесь нет – чтобы доказать владение средствами, используется криптография с открытым ключом. Чтобы получить средства, Бобу нужен приватный ключ. Это просто очень длинное случайное число, которое практически невозможно угадать, даже имея в распоряжении сотни лет. Но если он кому-то сообщит свой приватный ключ, то такой человек сможет доказать, что средства Боба принадлежат ему . Поэтому важно держать приватный ключ в тайне.

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

Источник: bitnovosti.com

Загрузка ...