Если совсем по-простому, блокчейн – это некоторые данные, которые обрабатываются и записываются группой компьютеров. При этом они записываются: неизменяемо, прозрачно, децентрализовано.
Неизменяемо означает, что ни один хакер не может изменить записи о транзакциях. Прозрачно означает, что любой может увидеть и проверить транзакции в блокчейне через интернет. А децентрализовано означает, что ни один самостоятельный участник не может управлять всей сетью.
Биткойн – первое применение технологии блокчейна (как ни парадоксально, сам термин «блокчейн» появился позже Биткойна). Теперь эта технология используется также в других криптовалютных проектах и в бизнес-приложениях, таких как торговые финансы, денежные переводы и электронная коммерция. Например, транспортный и грузоперевозочный консорциум Maersk раскрыл планы о решении по оптимизации морского страхования с помощью технологии блокчейна.
Технология блокчейна всё ещё находится на стадии активных исследований и разработок, чтобы стать более полезной в повседневной жизни.
Содержание:
Введение в распределённые системы
Блокчейн – распределённая система. Будучи распределённой системой, он уже решает или может решить в будущем много проблем.
Распределённой называется такая система, где аппаратные или программные составляющие, находящиеся на сетевых компьютерах, контактируют и координируют свои действия, только обмениваясь сообщениями. Ключевые характеристики распределённой системы:
Параллельность
Параллельность означает, что на разных машинах одновременно происходят разные вычисления. Это может казаться очевидным, но если рассмотреть, как должны взаимодействовать разные машины, возникают сложности (см. ниже).
Отсутствие глобальных часов
В распределённой системе каждый участник, или машина, имеет равный вес в определении того, что верно, а что – нет. Машина А может считать, что сейчас 11:13, а машина Б 11:14. Сетевая задержка может ещё больше усугубить ситуацию. Даже если на обеих машинах одинаковое локальное время, они не будут знать, сколько времени сеть передавала данные, поэтому, когда машина должна подтвердить время своего соседа, всегда присутствует случайный шум. В распределённой системе нет единого источника истины.
Независимость отказов
Допустим, машине А нужны данные от машины Б, чтобы продолжать работу, поэтому ей нужно связаться с машиной Б и дождаться ответа. Однако машина Б может дать сбой (например, выключиться из-за перегрева), и сеть может произвольно создать задержку или даже оборвать связь. Проектировщик сети должен тщательно продумать обработку коммуникаций и реакции на отказы, чтобы обеспечить бесперебойную работу системы.
Задача византийских генералов
Задача византийских генералов – это состояние компьютерной системы, в частности распределённой вычислительной системы, где компоненты могут дать сбой и информация о том, дал ли компонент сбой, несовершенна.
Для иллюстрации задачи приведём следующую историю.
Группа генералов, каждый из которых командует частью византийской армии, окружила город. Им нужно решить, атаковать или отступить. Но, какое бы решение они ни приняли, главное – достичь консенсуса. Однако достичь консенсуса сложно, потому что генералам не известно решение других генералов.
Рассмотрим следующий случай:
Следовательно, прежде чем начать атаку, генералам нужно передать друг другу сообщения и подтверждения.
Проблема усложняется, если учесть, что могут присутствовать предатели. Мы не можем гарантировать, что все гонцы надёжны, и, кроме того, гонца могут захватить в плен и заставить передать фальшивое послание.
Из этой истории можно вывести следующее:
Поэтому важно, чтобы все, включая вас, признали информацию, которая известна всем остальным. В то же время все, включая вас, должны знать информацию, которая есть у всех остальных. Это создаёт сценарий, когда информация, которая известна большинству и признаётся им, будет окончательным решением, т. е. консенсусом.
Что такое консенсус
Если вы поняли задачу византийских генералов, то несложно будет понять, что такое консенсус. Согласно Википедии:
«Консенсус требует согласия ряда процессов (или агентов) о едином значении данных. Некоторые процессы (агенты) могут дать сбой или быть ненадёжными в другом смысле, поэтому консенсусные протоколы должны быть отказоустойчивыми. Процессы должны каким-то образом представлять свои варианты значений, общаться друг с другом и договариваться о едином консенсусном значении».
Участники децентрализованной сети делают это посредством децентрализованных серверов, известных как узлы. Для участия в сети блокчейна каждый из этих узлов должен соглашаться с предварительно заданным набором правил (называемым консенсусным механизмом). Данный механизм позволяет решить задачу византийских генералов.
Консенсус изучался начиная с 1970-х. Вот некоторые примечательные результаты:
Есть много разных вариаций консенсусных механизмов:
Без отказов или отказы разрешены
Синхронный или асинхронный
Детерминистический или вероятностный
Точное или приблизительное согласие
Лидерный или безлидерный
Большинство исследований до Биткойна фокусировались на безопасности и предполагали фиксированное число участников. Главный прорыв блокчейна открыл новое направление исследований распределённых систем, фокусирующееся на жизнеспособности и снявшее ограничения на число участников, чтобы допустить открытую структуру. Некоторые различия между классическим консенсусом и консенсусом блокчейна:
Классический консенсус |
Консенсус блокчейна |
|
Набор пиров |
Централизованный |
Колеблется в зависимости от стимулов |
Безопасность или жизнеспособность |
Фокусируется на безопасности |
Фокусируется на жизнеспособности |
Самоподдержка |
Нет вознаграждений |
Вознаграждения в виде внутренних токенов |
Читателям стоит обратить внимание на то, что блокчейн всё ещё находится в процессе активных исследований и разработок, так как до сих пор не решена проблема его масштабируемости.
Инклюзивные и эксклюзивные блокчейны
Эксклюзивный блокчейн – это такой, где для участия в сети требуется разрешение, тогда как к сети инклюзивного блокчейна может присоединиться любой. Также участники эксклюзивного блокчейна могут пользоваться полными или выборочными привилегиями.
Частные и публичные блокчейны
Частный блокчейн – это такой, который находится в частной сети. (Например, вы запустили частную версию Эфириума на своём компьютере, чтобы изучить смарт-контракты.) Он изолирован, и другие не видят его и не могут присоединиться к вашей сети. Чтобы иметь доступ к частному блокчейну, нужно получить приглашение и одобрение от администратора сети или в соответствии с определёнными правилами и ограничениями.
Публичный блокчейн полностью открыт, и любой может присоединиться к сети и сделать свой вклад. Примеры публичных эксклюзивных блокчейнов – Ripple и EOS, где обычные участники имеют меньше возможностей, чем привилегированные, такие как уникальные узлы (в Ripple) или создатели блоков (в EOS).
К публичным инклюзивным блокчейнам относятся Биткойн, Эфириум и им подобные.
Примеры частных эксклюзивных блокчейнов – это когда вы запустите собственную версию Hyperledger или Эфириума на своём компьютере или частный блокчейн внутри компании.
Блокчейн-консорциумы
Последний тип – блокчейн-консорциумы, когда группа участников (скорее всего, транснациональные корпорации) образуют сеть (можно представить это как своего рода «интранет») и присоединиться к ней и пользоваться ею могут только они. Примеры блокчейн-консорциумов – R3, Hyperledger от Linux Foundation и Quorum от JP Morgan.
Централизованные, децентрализованные и распределённые системы
Если централизованную систему понять легко, иногда сложно различить децентрализованную и распределённую систему.
Распределённая система хранит и обрабатывает данные в разных местах или на разных компьютерах; обычно данные воспроизводятся.
Децентрализованная система – это такая, где ни один участник не может решить, как система будет себя вести. Прежде чем принять решение, должны быть собраны ответы различных участников.
Децентрализованная система должна быть распределённой, тогда как распределённая система не обязательно должна быть децентрализованной. Другими словами, децентрализованная система – подвид распределённой.
Распределение |
Централизация |
Пример |
Один узел |
Централизованная |
Ваш ноутбук |
Распределённая |
Централизованная |
Amazon, Microsoft, Google и т. п. |
Распределённая |
Децентрализованная |
Биткойн, Эфириум |
Различные уровни в блокчейн-системе
Блокчейн – сложная система. Это база данных, поэтому он должен хранить данные. Это распределённая система, поэтому он должен передавать данные в сети. Он должен решать задачу византийских генералов, следовательно, ему нужен консенсусный механизм. Он должен пересылать деньги, а некоторые блокчейны даже позволяют писать смарт-контракты, поэтому поверх него работает какое-то приложение.
Блокчейн можно условно разделить на 4 уровня:
Уровень |
Описание |
Прикладной уровень |
Смарт-контракты или любые приложения на базе блокчейн-системы (например, Omni в Биткойне или EVM в Эфириуме) |
Консенсусный уровень |
Логика консенсусного механизма (например, PoW в Биткойне, dPoS в EOS, Tendermint в CRO) |
Сетевой уровень |
Логика сетевых коммуникаций между узлами (например, протокол Gossip в Биткойне, транспортный протокол RLPx в Эфириуме) |
Уровень данных |
Структура хранения данных (например, блокчейн в Биткойне, DAG/Tangle в IOTA) |
Блокчейн и технология распределённого реестра
Возможно, вы в некоторых случаях вместо блокчейна встречали термин «технология распределённого реестра» (DLT). В чём разница?
После изобретения Биткойна технологию, лежащую в его основе, обобщили и назвали «блокчейном». Однако оригинальный дизайн Биткойна Сатоши не единственный, какой может работать.
Некоторые предложили вместо блокчейна использовать альтернативные структуры данных, такие как направленные ациклические графы (DAG) или блочная решётка. Они по-прежнему позволяют создавать децентрализованные системы, как изначально задумывалось, но их нельзя назвать блокчейном. Поэтому был изобретён термин DLT, чтобы обобщить все подобные системы, стремящиеся децентрализовано решить консенсусные задачи.
Некоторые альтернативные структуры данных:
Структура данных |
Пример |
DAG |
IOTA, Hedera Hashgraph |
Блочная решётка |
Nano |
Короче говоря, блокчейн – это подвид DLT. Однако в действительности, когда говорят «блокчейн», часто имеют в виду DLT, что охватывает все похожие технологии в данной индустрии.
Источник: bitnovosti.com