Клуб 4CIO
Системы распределённого реестра. Блокчейн

Системы распределенного реестра. Блокчейн

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

Никола Тесла, 1926 год

Распределенный реестр (distributed ledger technology, DLT) – это база данных, которая распределена между несколькими сетевыми узлами или вычислительными устройствами. Каждый узел получает данные из других узлов и хранит полную копию реестра. Обновления узлов происходят независимо друг от друга.¹

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

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

• 

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

• 

Прозрачность – все изменения (транзакции) в реестре видны всем участникам сети, что способствует аудиту и контролю.

• 

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

• 

Неизменяемость: ранее записанные данные не могут быть изменены без согласия (консенсуса) сети узлов реестра.

• 

Доступность: данные доступны для всех участников сети в режиме реального времени.

• 

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

Реестры могут быть открытыми и закрытыми – см. Рис. 1.

Рис. 1. Классификация распределенных реестров

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

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

Направленные ациклические графы (Directed Acyclic Graph, DAG) – предлагают альтернативу линейной структуре блокчейна. В DAG транзакции формируют графоподобную структуру, что позволяет параллельную обработку и масштабируемость. Участники обмениваются данными, для одобрения транзакции системой она должна пройти проверку в нескольких узлах. Любой узел может инициировать транзакцию, но для проверки он должен проверить две (или более) предыдущие транзакции в реестре.

Hashgraph – в реестре hashgraph в пределах одной временной метки, называемой «событием», в параллельном стеке могут храниться несколько транзакций hashgraph не отсеивает транзакции, майнеры не могут выбрать, какую транзакцию им выполнить, а какую нет, все операции выполняются в хронологическом порядке.

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

Что такое технология блокчейн. Виды блокчейн

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

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

bitcoin.org

В 1991 году Стюарт Хабер (Stuart Haber) и В. Скотт Сторнетта (W. Scott Stornetta) представили то, что многие люди стали называть блокчейном. Их первая работа в статье «Как создать временную метку в цифровом документе» была связана с работой над криптографически защищенной цепочкой блоков, в которой никто не мог подделать временные метки документов.

Каждый блокчейн – это распределенный реестр (DLT), но не каждый распределенный реестр – блокчейн.

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

Как первое применение технологии блокчейн в 2008 году появился Биткойн. Сатоши Накамото (Satoshi Nakamoto, если, конечно, такой человек реально существовал), в своем техническом документе описал это как электронную пиринговую систему.

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

Рис. 2. Как работает Блокчейн. Источник: rbc.ru.

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

Блок – запись нескольких транзакций в определённом формате. Транзакция – минимальная логическая операция, которая может быть совершена только полностью (т.е. транзакция либо выполнена, либо нет; состояния, например, в 62% выполнения транзакции быть не может).

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

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

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

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

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

Таким образом, мы получаем упрощенное Хеш-дерево, или дерево Меркла (англ. Merkle tree) – полное двоичное дерево, в листовые вершины которого помещены хеши от блоков данных, а внутренние вершины содержат хеши от сложения значений в дочерних вершинах.

Дерево Меркла применяется для эффективного хранения транзакций в блокчейн. Оно позволяет получить «отпечаток» всех транзакций в блоке, а также эффективно верифицировать транзакции.

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

Открытая блокчейн-сеть полностью децентрализована:

• 

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

• 

нет механизмов запрета на подключение к сети новых узлов;

• 

нет механизмов, дающих каким-либо участникам сети возможности управления децентрализованной логикой (смарт-контрактами);

• 

нет механизмов ограничения области видимости данных и инструментов репликации данных на узлах.

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

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

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

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

Свойства блокчейн²:

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

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

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

Виды блокчейн:

Блокчейн без необходимости в разрешениях (Permissionless Blockchain). База хранится на любом компьютере в мире. Публичный блокчейн подразумевает абсолютную децентрализацию. Нет человека, который управляет всей системой и подтверждает транзакции, а значит, нет необходимости и в авторизации. Примером как раз и служит Биткоин. Если отправить кому-то несколько биткоинов, то об этом (о факте перевода, но не о личностях отправителя и получателя) узнает вся сеть.

Открытый блокчейн с разным уровнем разрешений (Public Permissioned Blockchain). База может храниться на любом компьютере, любой пользователь может создать свой собственный блокчейн для своих целей, установив разные уровни разрешений для его пользователей. Определённые пользователи (управляющий орган, правительство, учреждение) обладают правом подтверждать транзакции, а остальные пользователи могут просматривать данные. Таким пользователям необходима авторизация. К примеру, производители товаров могут создать свой блокчейн для исключения подделок, в котором любой пользователь сможет отследить, когда и где выпущен тот или иной продукт – но не сможет изменять записанные данные самостоятельно.

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

Майнинг. Консенсус

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

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

За каждый подтвержденный блок в публичном блокчейне выдаётся вознаграждение в валюте конкретного блокчейна. Этот процесс получил название майнинга.

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

Майнеры – узлы, которые генерируют блоки и получают награду за каждый проверенный блок, прошедший подтверждение.

С помощью такого параметра, как сложность (Difficulty Target), в блокчейн обеспечивается определённая скорость (время) подтверждения транзакций. К примеру, сеть Биткоин регулирует сложность майнинга в проверке блоков каждые 2016 блоков. Сложность автоматически регулируется так, чтобы поддерживать время проверки (верификации) блоков на уровне 10 минут.

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

Угадывание происходит простым перебором значений нонс, для обеспечения безопасности нужно «работать», то есть производить доказательства работы (Proof of work, PoW).

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

Существуют и другие алгоритмы консенсуса, которые не требуют производить интенсивные расчеты, например:

• 

Proof-of-Stake (PoS)

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Примечания

1

https://ru.wikipedia.org/wiki/Распределённый_реестр

Вернуться

2

Информация с сайта imponderablethings.com

Вернуться