Что такое блокчейн?
Блокчейн — это особый тип базы данных. Возможно, вы также слышали термин «технология распределенного реестра» (или DLT) — во многих случаях они имеют в виду одно и то же.
Блокчейн обладает определенными уникальными свойствами. Существуют правила добавления данных, и после того, как данные сохранены, их практически невозможно изменить или удалить.
Данные добавляются с течением времени в структуры, называемые блоками. Каждый блок строится поверх предыдущего и включает в себя фрагмент информации, связанный с предыдущим. Взглянув на самый последний блок, мы можем убедиться, что он был создан после последнего. Итак, если мы продолжим весь путь вниз по «цепочке», мы достигнем нашего самого первого блока, известного как блок генезиса.
Для аналогии предположим, что у вас есть электронная таблица с двумя столбцами. В первую ячейку первой строки вы помещаете любые данные, которые хотите сохранить.
Данные первой ячейки преобразуются в двухбуквенный идентификатор, который затем будет использоваться как часть следующего ввода. В этом примере двухбуквенный идентификатор KP необходимо использовать для заполнения следующей ячейки во второй строке (defKP). Это означает, что если вы измените первые входные данные (abcAA), вы получите другую комбинацию букв во всех остальных ячейках.
База данных, где каждая запись связана с последней.
База данных, где каждая запись связана с последней.
Глядя на строку 4, наш самый последний идентификатор — TH. Помните, как мы говорили, что вы не можете вернуться и удалить или удалить записи? Это потому, что любому будет легко сказать, что это было сделано, и они просто проигнорируют вашу попытку изменения.
Предположим, вы измените данные в самой первой ячейке — вы получите другой идентификатор, что будет означать, что ваш второй блок будет иметь другие данные, что приведет к другому идентификатору в строке 2 и так далее. TH, по сути, является продуктом всей предшествующей информации.
Как связаны блоки?
То, что мы обсуждали выше — с нашими двухбуквенными идентификаторами — это упрощенная аналогия того, как блокчейн использует хеш-функции. Хэширование — это клей, скрепляющий блоки. Он состоит в том, чтобы брать данные любого размера и передавать их через математическую функцию для получения вывода (хэша) всегда одинаковой длины.
Хеши, используемые в блокчейнах, интересны тем, что вероятность того, что вы найдете два фрагмента данных, дающих одинаковый результат, астрономически мала. Как и наши идентификаторы выше, любая небольшая модификация наших входных данных даст совершенно другой результат.
Давайте проиллюстрируем SHA256, функцию, широко используемую в биткойнах. Как видите, даже изменения заглавных букв достаточно, чтобы полностью зашифровать вывод
Тот факт, что нет никаких известных коллизий SHA256 (т. е. двух разных входных данных, которые дают нам один и тот же результат), невероятно ценен в контексте блокчейнов. Это означает, что каждый блок может ссылаться на предыдущий, включая его хэш, и любая попытка редактирования более старых блоков сразу станет очевидной.
Каждый блок содержит отпечаток предыдущего.
Каждый блок содержит отпечаток предыдущего.
Блокчейны и децентрализация
Мы объяснили базовую структуру блокчейна. Но когда вы слышите, как люди говорят о технологии блокчейна, они, скорее всего, говорят не только о самой базе данных, но и об экосистемах, построенных вокруг блокчейнов.
Как автономные структуры данных блокчейны действительно полезны только в нишевых приложениях. Что становится интересным, так это когда мы используем их как инструменты для координации между незнакомцами. В сочетании с другими технологиями и некоторой теорией игр блокчейн может действовать как распределенный реестр, который никем не контролируется.
Это означает, что никто не имеет права редактировать записи вне правил системы (подробнее о правилах чуть позже). В этом смысле можно утверждать, что реестр одновременно принадлежит всем: участники приходят к соглашению о том, как он выглядит в любой момент.
Проблема византийских генералов
Настоящей проблемой, стоящей на пути системы, подобной описанной выше, является так называемая проблема византийских генералов. Задуманная в 1980-х годах, она описывает дилемму, в которой изолированные участники должны общаться, чтобы координировать свои действия. Особая дилемма связана с горсткой армейских генералов, которые окружают город и решают, атаковать ли его. Генералы могут общаться только через мессенджер.
Каждый должен решить, атаковать или отступить. Неважно, атакуют они или отступают, главное, чтобы все генералы пришли к единому решению. Если они решат атаковать, они добьются успеха только в том случае, если двинутся одновременно. Итак, как мы можем гарантировать, что они смогут осуществить это?
Конечно, они могли общаться через мессенджер. Но что, если мессенджер перехвачен с сообщением «мы атакуем на рассвете», а это сообщение заменено на «мы атакуем сегодня ночью»? Что, если один из генералов злонамерен и намеренно вводит в заблуждение других, чтобы они были побеждены?
Все генералы успешны в атаке (слева). Когда одни отступают, а другие атакуют, они терпят поражение (справа).
Все генералы успешны в атаке (слева). Когда одни отступают, а другие атакуют, они терпят поражение (справа).
Нам нужна стратегия, при которой может быть достигнут консенсус, даже если участники станут злонамеренными или сообщения будут перехвачены. Неспособность поддерживать базу данных не является жизненно важной ситуацией, как нападение на город без подкрепления, но действует тот же принцип. Если некому следить за блокчейном и давать пользователям «правильную» информацию, то пользователи должны иметь возможность общаться между собой.
Чтобы преодолеть потенциальный сбой одного (или нескольких) пользователей, механизмы блокчейна должны быть тщательно спроектированы, чтобы быть устойчивыми к таким сбоям. Система, которая может достичь этого, называется византийской отказоустойчивой. Как мы вскоре увидим, алгоритмы консенсуса используются для обеспечения соблюдения надежных правил.
Почему блокчейны должны быть децентрализованы?
Конечно, вы можете управлять блокчейном самостоятельно. Но в итоге вы получите базу данных, которая будет неуклюжей по сравнению с лучшими альтернативами. Его реальный потенциал можно использовать в децентрализованной среде, то есть в среде, где все пользователи равны. Таким образом, блок-цепочка не может быть удалена или злонамеренно захвачена. Это единственный источник правды, который может увидеть каждый.
Что такое одноранговая сеть?
Одноранговая сеть (P2P) — это наш уровень пользователей (или генералов в нашем предыдущем примере). Здесь нет администратора, поэтому вместо того, чтобы звонить на центральный сервер в любое время, когда они хотят обменяться информацией с другим пользователем, пользователь отправляет ее напрямую своим коллегам.
По сути, это то, что каждый пир делает с блокчейном: вся база данных хранится на их компьютере. Если кто-то покинет сеть, остальные пользователи по-прежнему смогут получить доступ к блокчейну и обмениваться информацией друг с другом. Когда в цепочку добавляется новый блок, данные распространяются по сети, чтобы каждый мог.
На этом наша статья закончилась, если вам понравилось обязательно поставьте лайк и подпишитесь на нас! Хорошего дня!