Blockchain

Blockchain

Alex Zenin

Итак, давайте разберемся, что же такое Blockchain, что в дословном переводе звучит как "Цепочка блоков". Понимание того, как на самом деле работает та или иная технология - прямой путь к пониманию того, что случится с нами и нашим окружением в будущем.

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

Если до сих пор не понятно, посмотрите вот это видео:

Hash

Начнем с того, что такое Hash. Все просто, это функция, которая для любого файла вычисляет номер, и, если вы увидите, что такие номера у двух файлов совпадают, то можете быть уверены, что они на 100% идентичны. Файлом здесь может быть все, что угодно - текст, музыка, фильм... Приведу пример такого номера для текста:

Если же поменять хоть один символ в сообщении или изменить букву на заглавную, то Hash полностью поменяет свое значение:

Block

Далее разберемся, как выглядит блок:

У блока есть номер, число, значение которого я объясню позже, поле для данных и его Hash. Также есть одно правило: чтобы блок был действительным, Hash должен начинаться с четырех нулей. Для того, чтобы найти такое значение нам и нужен этот номер - 115567. Компьютер подставляет по порядку значения в это поле, начиная с номера - 0 и до бесконечности, пока 4 первые цифры в поле Hash не будут равны - 0000. Соответственно, в нашем случае, ему улыбнулась удача на шаге номер 115567. Если же вы предложите другой способ поиска этого числа, вам дадут Нобелевскую премию, серьезно.

Теперь просто изменим текст и посмотрим чему будет равно число:

Как видно, номер 115567 не подходит, но 115231 подошел.

Blockchain

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

Вот как может выглядеть такая цепочка из 4х блоков:

Обратите внимание на новое поле - в каждом блоке теперь записан Hash предыдущего. Давайте посмотрим, что же случится, если Bishop во 2-м блоке захочет изменить свои 88$, которые он должен Burke на 80$.

Правильно - сам 2-ой блок и все последующие перестали удовлетворять правилу о том, что Hash должен начинаться на 0000 и стали недействительными. Теперь, чтобы 2,3 и 4 блоки снова стали действительными, Bishop должен последовательно пересчитать заново число Nonce в каждом из них, что займет какое-то время и подмену успеют заметить, о чем подробнее будет рассказано далее. Вот зачем нужно правило четырех нулей в Hash. Стоит добавить, что многие вещи в этой статье сильно упрощены, но суть от этого не меняется. Обратите внимание на новые номера Nonce в 2,3 и 4 блоках.

Distributed

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

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

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

Вернемся немного назад и посмотрим, что же произойдет, когда Bishop изменил что-то во втором блоке?

Даже, если он пересчитает номера Nonce каждого из блоков, чтобы Hash начинался с 0000 и соответствовал правилу, его цепь все еще будет отличаться от цепей блоков, которые есть у каждого из трех других пользователей, способных добавлять блоки в цепь. Это означает, что его цепь не будет принята. Да, здесь действует принцип демократии - побеждает большинство. Единственное, существует одно НО, которое называется атакой 51%. Предположим, что таких пользователей 100, если 51 из них сговорятся и поменяют цепь на свой лад, то остальным 49 ничего не останется, как принять их условия.

Блоки добавляются в цепь постоянно, механизм выглядит примерно так: например Peer B и Peer A хотят добавить блок, они начинают одновременно перебором искать такое число Nonce, чтобы первые четыре символа Hash были равны 0000, Peer A нашел такой номер для своих данных раньше, после чего все остальные пользователи A, B,C и D подтверждают соответствие условию о 4-х нулях в Hash и все добавляют себе этот блок. Peer B ничего не остается, кроме как увеличить номер блока на 1 и начать искать заново. В реальности правила могут быть сложнее и их может быть несколько, главное - это то, чтобы все остальные пользователи независимо друг от друга подтвердили их выполняемость для добавляемого блока. Опять же здесь побеждает большинство.

Само правило для Hash о 4-х нулях нужно для защиты от злоупотребления и хакерских атак, называемых DDoS. Peer A, Peer B, Peer C, Peer D требуется время на вычисление такого числа Nonce, чтобы первые четыре символа Hash были нулями. В противном случае каждый бы из них мог посылать на подтверждение сколь угодно много блоков в единицу времени. Вернемся к примеру с деревней и рассмотрим, почему это плохо. Представим ситуацию, что за один день было бы около 1000 сделок между жителями деревни и они бы не подводили итог, скажем, через каждые 12 часов, а записывали сразу каждую сделку, то рано или поздно, либо кто-то не успел что-то запомнить, либо случилось бы перерасходование средств. Перерасходование означает, к примеру, ситуацию, когда бы один из них заплатил 50$ за один товар и еще 25$ за второй, при этом имея всего 50$. В интернете с этим борются по разному, но с одним из способов вы все встречались - это те самые капчи, когда вас спрашивают не робот ли вы.


Анонимность и безопасность

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

Smart contracts

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

Примерно так же работают умные контракты, следуя логике IF THEN ELSE из языков программирования. IF (сумма $ >= 5) THEN (выдать шоколадку и дать сдачу) ELSE (ждать, пока сумма не достигнет нужной или выдать деньги обратно). Автомат контролирует положенную в него сумму, так как у него есть считывающее устройство, умный же контракт может получить подтверждение одного из условий либо от человека, либо от датчика. При этом, следуя этой логике, ответ всегда будет однозначным, нет условий, которые можно двояко истолковать.

Приведем пример и покажем взаимосвязь с блокчейном. Предположим, человек хочет продать квартиру. Прежде, чем продолжить, скажем, что между гос. органами есть свой blockchain, в котором, кроме всего прочего, содержатся данные о правах собственности на недвижимость. Преимущество его в том, что он распределен между множеством гос. органов и, таким образом, данные в нем невозможно подделать. Так же очень просто выслать подтверждение о правах на дом или квартиру, если потребуется, сейчас это очень долгий процесс. Если вы достаточно дотошны, то можете спросить: "Если блокчейн существует только между гос. структурами, то почему они не могут сговориться и что-то изменить в нем?" Ответ довольно прост - к примеру они могут отсылать значение Hash последнего блока в ежедневную газету, либо, что более приемлемо, в публичный блокчейн. Такой умный контракт будет выглядеть так:

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

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

И так, теперь вы знаете о том, как работает блокчейн и можете представить проекты с его применением, спасибо за внимание!

Report Page