Четверг, 22 августа 2019 16 +   Регистрация   Подписка на обновления  RSS  Обратная связь
21:52, 05 декабря 2017

Блокчейн для новичков. Общие представления о технологии.


Если вы никогда не слышали о блокчейне, то эта статья для вас.

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

Блокчейн (blockchain, в переводе с английского — цепочка блоков) — это технология, которая позволяет в определенном ЭЛЕКТРОННОМ ЖУРНАЛЕ  вести ЗАПИСИ, которые после попадания в этот журнал почти невозможно изменить или удалить по инициативе человека или программы. Это и есть суть технологии блокчейн – появившиеся записи в журнале живут вечно в неизменном виде.

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

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

Разберем, что же представляет собой этот ЭЛЕКТРОННЫЙ ЖУРНАЛ в контексте технологии блокчейн. Физически такой журнал – это распределенная база данных, часто употребляется и такое название – распределенный цифровой регистр (реестр). По своей сути это простой ФАЙЛ, имеющий определенную СТРУКТУРУ. Специальное ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, установленное на множестве серверов и компьютеров представляет из себя БЛОКЧЕЙН-СЕТЬ.

Каждый такой сервер или компьютер называется БЛОКЧЕЙН-УЗЛОМ сети и содержит копию такого ФАЙЛА (т.е. копию всей цепочки блоков). Поскольку один и тот же файл находится на множестве серверов и компьютеров, поэтому такую конфигурацию и называют распределенной базой данных или распределенным реестром (иногда p2p-реестр). Каждый БЛОКЧЕЙН-УЗЕЛ равноправен в сети, поэтому считается что блокчейн является децентрализованной технологией (без выделенного управляющего центра).

Информация, содержащаяся в блокчейне остается достоверной пока существует хотя бы один узел сети, содержащий свою копию ЭЛЕКТРОННОГО ЖУРНАЛА, прочие узлы сети, если будут выходить из строя, отключаться от сети не приведут к повреждению информации, хранящейся в цифровом реестре (ЭЛЕКТРОННОМ ЖУРНАЛЕ).

Структура электронного журнала.

Журнал состоит логически из набора связанных друг с другом по определенным правилам БЛОКОВ. Каждый БЛОК состоит из ЗАГОЛОВКА и ДАННЫХ. А область ДАННЫХ содержит ЗАПИСИ-ТРАНЗАКЦИИ. По мере добавления ЗАПИСЕЙ в БЛОК, количество самих БЛОКОВ увеличивается.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ работает так, что при добавлении нового блока или новых записей в ЭЛЕКТРОННЫЙ ЖУРНАЛ производятся постоянные проверки на корректность операции – каждый раз при таком добавлении вся цепочка блоков проверяется на целостность и неизменность предыдущих записей. Сторонняя программа злоумышленника не сможет изменить данные ЭЛЕКТРОННОГО ЖУРНАЛА по причине требуемых для этого огромных вычислительных мощностей (пока ограничимся этим определением).

ЗАПИСИ в ЭЛЕКТРОННОМ ЖУРНАЛЕ (другое название записей — ТРАНЗАКЦИИ) – это информация определенного рода. Например, в блокчейне знаменитого биткоина ЗАПИСИ содержат информацию о смене владельца цифровой монетки, по-просту говоря, это информация о переводе электронной монетки. В других блокчейнах в ЗАПИСЯХ может содержаться информация об исполнении контрактов, условий сделок, об авторах статей и голосах (лайках) за эти статьи (к примеру, блокчейн проекта ГОЛОС именно такой).

Примеры реальных блоков (в том числе для блокчейна биткоин) можно посмотреть на сайте https://blockexplorer.com/.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ блокчейн-узла выполняет следующие основные функции:

  1. Добавляет ЗАПИСИ в ЭЛЕКТРОННЫЙ ЖУРНАЛ. Инициаторами записей могут выступать как люди, так и машины (это зависит от конкретного проекта, реализованного с использованием блокчейна).
  2. Следит за целостностью, достоверностью и неизменностью записей в ЭЛЕКТРОННОМ ЖУРНАЛЕ.
  3. Осуществляет синхронизацию данных в копиях ЭЛЕКТРОННОГО ЖУРНАЛА, хранящихся на узлах блокчейн-сети.

Связь между БЛОКАМИ и целостность данных в ЗАПИСЯХ обеспечивается таким математически механизмом как ХЭШИРОВАНИЕ (на рисунке выше обозначены некоторые поля заголовка блока как ХЭШ-чего-нибудь).

Что же такое ХЭШ?

ХЭШИРОВАНИЕ – это преобразование произвольного набора данных любой длины в набор данных фиксированной длины при помощи определенной математической функции (по определенному математическому алгоритму, другими словами). Взять или посчитать ХЭШ обозначает выполнить такое преобразование.

Примером такого алгоритма являтся криптографический алгоритм SHA-256. Не вникая в суть алгоритма, давайте проведем хэш-преобразование для фразы «Привет, Блокчейн!!!», воспользовавшись сервисом https://hashtools.ru/hash/sha256. А потом поменяем лишь регистр буквы Б в слове Блокчейн и пересчитаем ХЭШ. Как видите из таблицы, 256-битный код абсолютно изменился!!! Выполнить обратную операцию преобразования из значения ХЭША в исходную фразу не представляется возможным (вернее – почти невозможным, маловероятным).

Фраза для хэширования ХЭШ фразы
Привет, Блокчейн!!! f05a770e03154c8e6dc7f2dd3c2c621b
34fac3fd470b6773c05634dd9966b721
Привет, блокчейн!!! 4b99114002687ba4d4c67fc509665661
b34768c9abba05530c4c702e004c571f

Поскольку каждый БЛОК или даже ЗАПИСИ внутри БЛОКА – это последовательность символов, можно вычислять соответствующие ХЭШИ.

Программное обеспечение блокчейн-узла вычисляет ХЭШ текущего БЛОКА, ХЭШИ ЗАПИСЕЙ блока, берет ХЭШ предыдущего блока и записывает в соответсствующие поля заголовка. Целостность и корректность этих данных заголовка при проверке цепочки блоков называется ДОКАЗАТЕЛЬСТВОМ РАБОТЫ (proof of work, POW).

Какой такой работы, спросите вы? А той вычислительной работы, которую выполняют специальные подпогрограммы блокчейн-инфраструктуры – МАЙНЕРЫ. МАЙНЕРЫ вычисляют ХЭШИ при формировании новых блоков (для блокчейна биткоина майнеры ищут биткоины и принимают комиссию при проведении транзакций в биткоин-сети).

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

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

Доказательство работы (Proof of Work) в мире блокчейна еще называют механизмом КОНСЕНСУСА (коллективное согласие участников-программ блокчейн-сети по содержимому реестра). Т.е. если все программы-участники, установленные на узлах сети, проголосовали «за», то только после этого информация записывается в цепочку блоков. Помимо Proof of Work существуют следующие виды КОНСЕНСУСА, применяемых в разных блокчейн-проектах:

  • Proof of Stake (PoS)
  • Leased Proof of Stake (LPoS)
  • Delegated Proof of Stake (DPoS)
  • Proof of Importance (PoI).

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

Резюмируя, общая схема работы сети блокчейн:

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

  • Открытый блокчейн (англ. public blockchain) — блокчейн, в котором не существует ограничений на чтение данных блоков (при этом данные могут быть зашифрованы) и ограничений на отсылку транзакций для включения в блокчейн.
  • Закрытый блокчейн (англ. private blockchain) — блокчейн, в котором прямой доступ к данным и к отправке транзакций ограничен определенным узким кругом организаций.
  • Общедоступный (инклюзивный) блокчейн (англ. permissionless blockchain) — блокчейн, в котором не существует ограничений на личность обработчиков транзакций (т. е. пользователей, которые могут создавать блоки транзакций).
  • Эксклюзивный блокчейн (англ. permissioned blockchain) — блокчейн, в котором обработка транзакций осуществляется определенным списком субъектов с установленными личностями.
  • Такую типизацию вводит компания BitFury в своем исследовании:

Часть-1      Часть-2

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

На этом мы закончим краткий экскурс в эту интереснейшую инновационную область.

Обязательно почитайте оригинальный документ, написанный легендарным Сатоши Накамото (тот, кто открыл ящик пандоры, придумав и запустив биткоин):

Оригинал

Перевод на русский

0
Поделиться в соцсетях:

Об авторе: Dmitry Yoda

Помимо силы, мастер Йода очень увлекался блокчейном.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая кнопку [ОТПРАВИТЬ КОММЕНТАРИЙ], Вы соглашаетесь на сбор и обработку своих персональных данных и подтверждаете ознакомление с политикой конфиденциальности!!!

Мы в соцсетях:
О проекте
Реклама и сотрудничество
Обратная связь
Поддержать проект

© 2017-2019 RuHash#
Интернет-медиа о мире высоких технологий

Новости, исследования, интересные события в мире науки и высоких технологий.
Актуальные темы: искусственный интеллект, блокчейн, нанотехнологии, роботы, нейронные сети, квантовый мир.

Дизайн и поддержка: GoodwinPress.ru


Политика конфиденциальности

Материалы, представленные на данном сайте, не являются офертой или рекомендацией к покупке или продаже каких-либо активов.
Копирование и распространение материалов с сайта ruhash.com разрешено только с указанием активной ссылки на RuHash#
как на источник. Указание ссылки является обязательным при копировании материалов в социальные сети или печатные издания.

Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
captcha
Генерация пароля