Что такое блокчейн и как он работает

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

Большинство объяснений в сети технического характера, и пытаясь понять, что к чему, рядовой пользователь запутывается еще больше. Простое объяснение простыми словами для простых людей в адаптированном переводе статьи Мохіта Маморіа (Mohit Mamoria), опубликованной на LinkedIn.

блокчейн

Есть ли необходимость в сложной системе блокчейн?

Начнем не с определения технологии блокчейн, а из понимания проблемы, которую она решает. Представьте, что Ваш лучший друг Саша путешествует за границей. На пятый день отпуска он звонит и говорит: «Друг, одолжи немного денег. Я все потратил». Вы отвечаете: «Дружище, без проблем. Сейчас все сделаю». И звоните своему менеджеру в банк: «Ольга Андреевна, пожалуйста, перечислите 10 000 грн с моего счета на счет Саши». Ваш менеджер открывает бухгалтерскую книгу (для простоты понимания мы говорим про некомпьютеризированные системы), проверяет остаток на счету, чтобы узнать, есть ли у Вас достаточно средств. Вы обеспеченный человек, поэтому перевод такой суммы простое дело. Менеджер делает запись в бухгалтерской книге про перечисление средств.

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

Что произойдет, если и бухгалтерская книга, в которую была занесена запись о переводе, сгорит? Что делать, если менеджер Вашего счета ошибочно указал 15 000 грн вместо 10 000? Что делать, если он сделал это намеренно? Может ли существовать система, в которой возможно переводить деньги без необходимости обращаться в банк? Задумайтесь на минутку, что означает перевод средств это просто запись в бухгалтерской книге. Можно ли вести книгу самим, а не поручать это дело посреднику? Ответом на этот вопрос и стала технология блокчейн способ самостоятельно управлять «бухгалтерской книгой», а не зависеть от кого-то другого.

Как работает блокчейн

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

«Если эта идея найдет поддержку, будет иметь смысл ввести что-то типа Bitcoin. Если достаточное количество людей мыслит одинаково, все дело становится самореализационным пророчеству, так объяснил суть технологии еще в 2009 году Сатоши Накамото (Satoshi Nakamoto), или доктор Крейг Райт (Craig Wright), который называет себя изобретателем криптовалюты Bitcoin»

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

  1. Пустая папка. У каждого представителя нашей группы есть пустая папка. В будущем все эти десять человек будут добавлять листы в своих пустых папок. И эта коллекция листов сформирует «бухгалтерскую книгу», в которой ведутся записи о денежные переводы.
  2. Денежный перевод. Все участники нашей группы «сидят» с чистыми листами и ручками. Каждый готов записать данные любого денежного перевода, что происходит внутри системы. Предположим, что участник №2 хочет отправить 100 евро участнику №9. Для этого участник №2 заявляет всем: «Я хочу передать 100 евро участнику №9. Пожалуйста, сделайте все соответствующую запись в своих книгах». Все проверяют, достаточно ли средств у участника №2, чтобы перечислить 100 евро участнику №9. Если это так, каждый записывает данные о переводе на своем чистом листе. Считается, что перевод осуществлен.
  3. Переводы продолжают происходить. Со временем у большего количества людей из нашей группы возникает потребность перевести деньги другим и каждый раз они объявляют об этом другим. Как только человек слышит о переводе, он/она записывает информацию о нем на своем листе. Так продолжается, пока у каждого участника группы не заканчивается свободное место на листе. Допустим, что на листе достаточно пространства, чтобы записать информацию про десять переводов. После десятого перевода у всех заканчивается свободное место на листе и наступает время положить этот лист в папку, достать новый и повторить процедуру, начиная с пункта 2.
  4. Защита использованного листа. Прежде чем мы положим лист в папку, необходимо «опечатать» его уникальной печатью, которую согласовывают все участники группы. Опечатав лист таким образом, мы гарантируем, что после того, как лист попал в папку, никто и никогда (не сегодня, не завтра и не через год) не может внести в него никаких изменений. Если все участники группы доверяют печати, понятно, что все участники доверяют содержанию листа. Именно опечатывание листа является важнейшим элементом этого метода.

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

Блокчейн и майнинг (опечатывание)

блокчейн

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

Допустим, вы кладете слева число 4, а справа машина выдает комбинацию букв dcbea. Как машина превратила число 4 на такую комбинацию? Никто не знает. Однако, этот процесс необратим, то есть из комбинации dcbea нельзя вычислить, что положили в машину слева. Но каждый раз, когда Вы будете давать машине число 4, она всегда будет отдавать комбинацию dcbea. Попробуем другое число, например, 26. На этот раз мы получаем 94c8e. Следовательно, комбинации на выходе могут быть алфавитно-многочисленные.

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

Используем эту волшебную машину, чтобы опечатать лист. Представьте, что у Вас есть две шкатулки. В первой содержится число 20 893. Вопрос: «Какое число надо прибавить к числу в первой ячейке, чтобы при вводе в машину, на выходе получить комбинацию, которая начинается с трех нулей?»

Единственный способ выяснить это, вводить числа в машину, пока не получим нужный результат. Скажем, что после нескольких тысяч попыток мы вычисляем, что это число 21 191. Добавив его к числу 20 893 (21 191 20 893 42 084), на выходе получим комбинацию, которая удовлетворяет наши требования. В таком случае число 21 191 становится печатью числа 20 893. Предположим, что есть лист с номером 20 893. Чтобы опечатать этот лист чтобы никто не мог изменить его содержание, мы разместим на нем значок 21 191. Лист опечатано, как только на него нанесен номер опечатывания.

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

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

Вернемся к нашему примеру. На листе записаны сведения про десять денежных переводов и свободного места больше нет. Необходимо опечатать лист, чтобы начать новый. Участники группы начинают высчитывать номер опечатывания и первое лицо, которому удалось вычислить его, сообщает этот номер другим. Каждый участник проверяет, получаем заданные исходные данные при вводе номера опечатывания и данных листа в волшебную машину. Если номер верный, все участники группы маркируют ним свои листы и складывают каждый в свою папку. Что произойдет, если №7 при вводе номера опечатывания не получит заданный результат? Возможные причины:

  • лицо допустила ошибки при введении данных денежных переводов, которые были объявлены в группе;
  • лицо намеренно ввел ложные данные в свою пользу или в пользу кого-то другого в группе.

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

Почему все тратят ресурсы на вычеты номера опечатывания, если известно, что кто-то другой занимается исчислением и можно просто подождать? Работает система стимулов – каждый, кто является участником блокчейн, имеет право на вознаграждение. Первый, кто вычисляет номер, получает вознаграждение за свои усилия. Скажем, если №5 вычисляет номер опечатывания листа, он получает вознаграждение в 10 евро и его счет увеличивается на 10 евро, но при этом не уменьшается баланс на счета других участников группы. Именно таким образом появилась валюта Bitcoin. Это была первая валюта для осуществления переводов в блокчейн (то есть в распределенных «бухгалтерских книгах»). Чтобы люди выполняли определенную работу в сети, обеспечивая ее функционирование, им предоставлялось вознаграждение в виде Bitcoin.

Когда у многих людей есть монеты Bitcoin, их стоимость растет, другие люди тоже хотят иметь криптовалюту, что опять повышает ее стоимость, что опять увеличивает количество желающих обладать ею, и т.д. Как только все участники группы кладут лист в папку, они получают новый пустой лист и повторяют весь процесс — и так бесконечно. Это и есть схема функционирования технологии блокчейн. Представьте, что один лист – это блок (block), а папка с листами – это цепочка (chain) листов (блоков), так и получаем блокчейн (blockchain).

Защитный трюк блокчейна

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

Помните, в нашем примере было две шкатулки: одна с числом 20 893, а другая – пустая, ее надо было вычислить? На самом деле, для расчета номера опечатывания в блокчейн используется не два, а три ящика. Два – по заданным данным, третий – для исчисления. И когда содержимое всех трех ящиков добавляют и вводят в машину, ответ с правой стороны должна соответствовать необходимым условиям. Мы знаем, что в одном ящике содержится список переводов, во втором будет указан номер опечатывания, а в третьем ящике содержится исходная комбинация волшебной машины для предыдущего листа. Этот маленький трюк гарантирует, что каждая следующая страница зависит от предыдущей. И если кто-то захочет изменить данные опечатанной страницы, такому лицу также придется изменить содержание и номер опечатывания всех страниц после этого, чтобы не нарушить цепочку.

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

Что случится, если вместо одного человека шесть человек окажутся лжецами? Этот случай называется «атакой 51%». Если большинство людей в сети станут обманывать других, протокол намеренно перестанет работать — и это единственная «Ахиллесова пята» технологии блокчейн. Система построена на предположении, что пользователи, в большинстве своем — честные. Вот, собственно, и все. Ничего сложного.

Также читайте: Что такое криптовалюта...

Может ли интернет-торговля перейти на блокчейн?

блокчейн

Добровольно –вряд ли. Однако новые сервисы могут сделать это за них, принудительно.

Швейцария привлекает блокчейн-стартапы к созданию правового регулирования Fintech

Швейцария и криптовалюты

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

Прозрачные ICO? Проекты на основе блокчейн подтверждают ценность ICO

Balanc3 и контроль ICO

С появлением первичного предложения монет (ICO), которое сегодня объявляется почти ежедневно, инвесторам все сложнее решить, куда инвестировать или что именно они получают за свои деньги, пишет Coindesk.

ООН переходит на блокчейн Ethereum для реализации своих проектов

ООН блокчейн Ethereum

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

...

Платежные системы на базе блокчейна вытеснят традиционные банковские системы

блокчейн

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

Украина внедряет технологию блокчейн в организацию торгов

блокчейн

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