Что такое блокчейн?

Блокчейн. Общие сведения.

Блок транзакций. 

Хэширование.

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

Подтверждение транзакций.

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

Аргументы противников блокчейна.

 

Блокчейн. Общие сведения.


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

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

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


Блок транзакций. 


Для записи группы транзакций в системе Биткойн и аналогичных используется специальная структура - блок транзакций . Транзакция считается завершённой и достоверной (подтверждённой), когда проверены её формат и подписи, и когда сама транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок. Содержимое блоков может быть проверено, так как каждый блок содержит информацию о предыдущем блоке. Все блоки выстроены в одну цепочку, которая содержит информацию обо всех совершённых когда-либо операциях в базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок.

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

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или меньше определённого целевого числа, величина которого периодически корректируется. Так как результат хеширования функции SHA-256 считается необратимым, на данный момент нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш.


Хэширование.


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

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования блокчейна на уровне 2016 блоков в две недели. Таким образом, 1 блок должен создаваться примерно раз в десять минут. На практике, когда вычислительная мощность сети растёт — соответствующие временные промежутки короче, а когда снижается — длиннее. Перерасчёт сложности с привязкой ко времени возможен благодаря наличию в заголовках блоков времени их создания. Оно записывается в Unix-формате по системным часам автора блока.


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


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

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

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

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

 

Подтверждение транзакций.


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

Таким образом, попадание транзакции в блок является подтверждением её достоверности вне зависимости от наличия других транзакций с теми же биткойнами. Каждый новый блок считается дополнительным «подтверждением» транзакций из предыдущих блоков. Если в цепочке 3 блока, то транзакции из последнего блока будут подтверждены 1 раз, а помещённые в первый блок будут иметь 3 подтверждения. Достаточно дождаться нескольких подтверждений, чтобы вероятность отмены транзакции стала очень низкой.


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


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

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

Еще один удачный вариант применения системы – это область авторского права, а также личных сведений пользователей. Так, популярный сервис Ascribe дает возможность многим художникам и многим другим представителям творческих профессий подтверждать их авторство с применением блокчейн-технологий. А такие стартап-проекты, как Civic и UniqWallet, дают возможность людям создавать свои цифровые ID при помощи блокчейна. Данные записи невозможно подделать, и они имеют все шансы заменить в будущем обыкновенные удостоверения проверки личности.

Областей для внедрения блокчейн-технологий на самом деле существует огромное множество!


Аргументы противников блокчейна.


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

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

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