Найти в Дзене
Криптотехнологии

Эволюция блокчейна

Большинство людей при слове “блокчейн” представляет себе криптовалюту. Так сложилось, что мир увидел первую криптовалюту (Bitcoin) и блокчейн одновременно, поэтому стойкие ассоциации возникают у людей до сих пор. Но насколько они правомерны и что же такое блокчейн? Цепочка блоков Блокчейн — информационная база, информация в которой хранится в виде блоков. Каждый блок содержит порядковый номер и хэш-сумму данных предыдущего блока. Хэш-сумма является односторонней функцией. Это значит, что легко посчитать хэш-сумму от данных, но очень сложно подобрать данные под определенную хэш-сумму. Так как хэш-сумма от данных меняется полностью при изменении даже бита этих данных, и эта хэш-сумма содержится в следующем блоке, получается очень интересная конструкция. Итак, представим себе простую цепочку блоков из семи звеньев. В каждом блоке хранится, ну, например, ваш список покупок за каждый день недели. Не важен формат данных, это может быть простой текст с покупками. Текст с покупками за понедел
Оглавление

Большинство людей при слове “блокчейн” представляет себе криптовалюту. Так сложилось, что мир увидел первую криптовалюту (Bitcoin) и блокчейн одновременно, поэтому стойкие ассоциации возникают у людей до сих пор. Но насколько они правомерны и что же такое блокчейн?

Цепочка блоков

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

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

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

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

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

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

Bitcoin

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

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

Расцвет криптовалют

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

Любопытную попытку предприняли авторы NameCoin, предложив хранить в блокчейне не только транзакции пользователей, но и информацию о владельце и физическом адресе специального доменного имени в виртуальной доменной зоне .bit. Получился децентрализованный DNS (Domain Name System - система доменных имен, позволяющая использовать имена ресурсов вместо безликих IP-адресов). NameCoin — одна из первых прикладных блокчейн-платформ.

Ethereum

Эфириум привнес в блокчейн еще пару нововведений.

Во-первых, в блокчейне эфириума хранятся не только данные, но и код программ Виртуальной Машины Эфириума — смарт-контрактов. Блокчейн эфириума превратился из базы данных в симбиоз базы данных и оперативной памяти. Смарт-контракты позволили сторонним разработчикам создавать разнообразные децентрализованные приложения на высокоуровневом языке. Например, достаточно просто был реализован аналог NameCoin, а криптовалютные токены, аналог акций, стали основой для взрывного роста количества ICO. Да и многие блокчейн-стартапы предпочитают не создавать новый блокчейн, а реализовывать свои идеи на уже существующем блокчейне Эфириума.

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

Hyperledger

Разработчики Linux, IBM и ряда других компаний с декабря 2015 года заняты разработкой open source блокчейн-платформы. Это блокчейн-фреймворк, позволяющий создавать программные продукты с использованием блокчейн-технологий. Используется модульная структура, в которой к проекту можно добавить децентрализацию, работу на мобильных устройствах, и многое другое. Hyperledger — решение для бизнеса, и мало что общего имеет с криптовалютами. Но, вполне вероятно, это будущее блокчейна.

Многомерные блокчейны

Проблемы пропускной способности и масштабируемости блокчейна подтолкнули разработчиков к созданию платформ с “многомерными блокчейнами”.

Например, в криптовалюте Raiblocks “цепочку блоков” заменили на “решетку блоков”, где у каждого адреса свой блокчейн, а при переводе средств создается два блока — в блокчейне отправителя и в блокчейне получателя.

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

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

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

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

Заключение

Так вышло, что развитие блокчейна неразрывно связано с развитием криптовалют. Улучшается не блокчейн валют, а сама валюта. Например добавляется возможность проведения транзакций без сохранения их в блоках. Развитие ли биткоина? Однозначно. Развитие ли это блокчейна как технологии? Сложно ответить. К такому развитию можно отнести и масштабирование базы данных путем создания нескольких блокчейнов с разработкой протоколов общения между ними.

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