Блокчейн: великий и ужасный часть 2

Автор: rendo от 4-02-2018, 00:10, посмотрело: 35

0 2.2. Организационно-техническая суть блокчейна (главы из книги Блокчейн: Как это работает и что ждет нас завтра ...)

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

Илья Боев, блогер, пишущий о бизнесе и технологиях

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

Джереми Аллер, основатель и CEO компании Circle (США)


Ключевые особенности блокчейна

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

Итак, блокчейн подобен бисерному ожерелью. Каждая бусинка – это блок, запись действия. Например, оплаты кем-то чего-то или сдачи домашнего задания – не важно, что именно было совершено. Важно то, что совершение действия доказано, потому что сразу после него и перед ним тоже есть бусины. Такое ожерелье – или «чейн» (цепь) – не можетбыть уничтожено или повреждено. Следовательно, блокчейн – это нерушимая цифровая
запись действий[98]

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

По мнению экспертов OliverWiman, технология блокчейн представляет собой совокупность инновационных решений в области организации и хранения данных. Ее суть – в создании единой точки доступа для всех участников к обширным объемам информации, значительно превышающим объемы любой из существующих на сегодняшний день систем. Это, в свою очередь, позволяет разработать новые отраслевые процессы на основе использования
прозрачных актуальных данных, мгновенного совершения транзакций и продления смарт-контрактов с автоисполнением с прописанной в реестре бизнес-логикой.

«Любая транзакция в блокчейне – это информация, которая впоследствии проверяется независимыми участниками, собирается в блоки и встраивается в глобальную историю транзакций. У блокчейна есть набор механизмов, которые позволяют системе оставаться независимой (от участников, от их количества и намерений) и прозрачной. По блокам транзакций можно отследить верность каждой сделки, – считает следующий источник. – Блокчейн – это не что иное, как децентрализованная база данных, позволяющая производить транзакцию (связанную с чем угодно: куплей/продажей, переходом прав, изменением статуса) анонимно, мгновенно и без участия специализированных посредников».

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

Итак, какие же элементы характерны для блокчейна в целом?

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

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

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

• У блокчейна есть механизмы, благодаря которым сложно (но не невозможно) изменять хронологические записи: даже при том, что блокчейн позволяет считывать все данные и добавлять новые, те записи, которые уже существуют, теоретически не поддаются исправлению, кроме тех случаев, когда встроенные в протокол правила позволяют изменения – например, если более 50 % участников сети договорятся об этом.

• К транзакциям, основанным на блокчейне, добавляется метка времени, что делает удобным отслеживание и проверку информации.

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

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

В блокчейне сам токен, или электронная монета, – носитель стоимости, которую определяет рынок. Именно это делает систему действительно децентрализованной площадкой для обмена.
.
По мнению блокчейн-евангелиста и сооснователя сyber.fund Дмитрия Стародубцева, основными характеристиками блокчейна являются:

• доверие к алгоритму;

• неизменность данных;

• прозрачность операций;

• полный контроль над цифровым активом.

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

• децентрализованность;

• публичность;

• консенсус участников;

• отсутствие посредников.

По мнению А. Бубеля, «механизм действия блокчейна основывается на… консенсусе и открытой истории транзакций. Суть консенсуса заключается в том, что подтверждение сделок в сети пользователей данного блокчейна осуществляется путем периодической синхронизации согласия большинства ее участников с единой версией истории сделок. Согласие большинства необходимо в блокчейнах, основанных на консенсусе типа Proof-of-Work (PoW), как, например, в случае с биткоином. Большинство участников посредством решения математических задач доказывает сети, что их версия истории сделок легитимна. Альтернативой является Proof-of-Stake (PoS) – механизм, в котором решающую роль имеют держатели большей части активов. Открытая история трансакций означает, что каждый пользователь может просмотреть всю историю сделок от начала существования блочной цепи
данных. Однако сторонами сделок являются анонимные адреса, не привязанные к конкретным физическим или юридическим лицам».

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

Техника в основе блокчейна

Биткоин-блокчейн стал примером использования в системе платежей распределенного публичного реестра (Distributed Public Ledger, DPL), включающего:

• формирование журнала из блоков транзакций и организацию связи между ними за счет включения в блок хеша предыдущего блока;

• формирование транзакций в виде сообщений, использующих криптографические элементы защиты и проверки того, корректна ли технология трансляции транзакций, по сети и синхронизации копий журнала в узлах сети;

• защиту цепочки блоков от модификации путем доказательства работы (Proof-ofWork) на основе технологии поиска хеша;

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

В своем исходном отчете о биткоине Сатоши Накамото определил электронную монету как «цепочку цифровых подписей». В силу длительности применения биткоином блокчейна проще будет объяснить принцип действия технологии на примере именно этой криптовалюты.

Участниками такой системы являются:

• пользователи – владельцы электронных кошельков, которые могут хранить криптовалюту и переводить ее в системе другим пользователям;

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

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

По другой классификации, в системе блокчейна фигурируют два типа участников:

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

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

Функция самого блокчейна проста: регистрировать каждую транзакцию с биткоинами. Любая передача какого-то количества биткоинов подтверждается в сети (с помощью майнинга) внесением транзакционного блока. Блок добавляется к длинной цепочке, которая позволяет любому желающему отследить в сети смену собственников каждого из биткоинов от момента создания.

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

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

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

Приведем пример хеш-функции. Представим слово «кит» в виде числа. Каждой букве дадим порядковый номер (а = 1… я = 33), получится: 12, 10, 20. Перемножив все числа, получаем свертку (хеш) слова «кит»: 2400. После передачи основного сообщения этот хеш необходимо передать получателю информации как подтверждение, что все сходится. Если сообщение в процессе передачи изменилось и стало звучать как «кот», то свертка изменится и примет вид: 12; 16; 20 = 3840, но тогда получатель, зная изначальный хеш, догадается о фальсификации данных.

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

Майнеры и майнинг.

Как было показано ранее, алгоритм формирования блокчейна включает создание нового блока цепи (новой записи), который содержит защищенную криптографией информацию из предыдущего блока (хеш), то есть каждая запись создается с учетом предыдущей. Новые блоки транзакций должны быть подтверждены путем подбора хеша определенной сложности. Для подтверждения используется алгоритм на основе доказательства выполненной работы (PoW). Что это означает на практике?

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

Один из экспертов пишет: «Работа узлом/майнером выгодна. Майнеры формируют из массы транзакций блоки, проверяют их и встраивают в общую цепь, за что и получают вознаграждение. Поскольку количество транзакций растет каждую минуту, для получения вознаграждения необходимо выполнить еще больше вычислений, нужно еще больше мощностей, еще больше майнеров».

Как поясняют В. Кузнецов и А. Якубов, «основа работы Bitcoin – это расчет хеш-функции майнерами, которые таким образом демонстрируют остальным пользователям, что они затратили достаточно много вычислительных мощностей на обработку текущих транзакций.

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

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

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

Децентрализованный консенсус

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

Подобный обмен называют децентрализованным консенсусом.

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

Еще нагляднее

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

Допустим, Боб должен деньги Алисе за ланч. Он устанавливает приложение на своем смартфоне, чтобы создать новый биткоин-кошелек. Приложение похоже на программу мобильного банкинга, а кошелек похож на банковский счет. Чтобы заплатить Алисе, Бобу нужны две части сведений: его приватный ключ и ее публичный ключ. Далее происходит следующее.

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

Приложение «Биткоин» оповещает о сделке майнеров по всему миру. Майнеры проверяют сделку и обнаруживают, что Боб имеет достаточное количество биткоинов, что осуществить платеж.

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

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

В течение десяти минут с момента, когда Боб начал сделку, он и Алиса получают первое подтверждение, что биткоин был передан. Новый блок помещается в сеть, чтобы майнеры могли подтвердить законность транзакции. Выполненная проверка завершает комплекс криптографических вычислений. Когда майнер решает криптографические задачи, объявляется перерыв в сети. Алгоритм награждает победившего майнера 25 биткоинами, и к концу цепочки добавляется новый блок. Каждый блок присоединяется к предыдущему.

Все сделки в блоке теперь выполнены, и Алиса получает деньги.

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

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

Механизм обработки транзакций функционирует следующим образом.

1. Новые транзакции рассылаются всем серверам децентрализованной сети.

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

3. Каждый сервер пытается рассчитать хеш полученного блока, который бы удовлетворял текущей сложности сети.

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

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

Правило самой длинной цепочки призвано препятствовать злоумышленникам. Чтобы заставить сеть принять измененный им блок, Боб должен
продлевать свою версию блокчейна быстрее, чем вся остальная сеть продлевает свою. Средний интервал формирования блока в биткоине — 10 минут. За это время на всех узлах, или компьютерах майнеров, обновляется база данных. Считается, что без контроля над более чем половиной вычислительной мощности сети («атака на 51%») такое невозможно.

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

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

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

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

Эмиссия криптовалюты производится по следующему алгоритму.

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

2. Блок рассылается всем серверам сети.

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

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

Категория: Криптовалюта / Блокчейн

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.