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

0
436

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

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

fintech_blockchain

Блокчейн: правильная постановка вопроса, даст вам правильный ответ.

«Для каждой сложной проблемы существует ответ, ясный, простой и неправильный». — Х.Л. Менкен

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

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

Вы отвечаете: «Постараюсь отправить, как можно быстрее», и вешаете трубку.

Затем вы звоните менеджеру по работе с клиентами в вашем банке и говорите ему: «Пожалуйста, перечислите 1000 долларов США с моего счета на счет Джо».

Менеджер отвечает: «Да, сэр».

Он регистрирует запрос, проверяет баланс счета, чтобы убедиться, что у вас достаточно средств, чтобы перевести $1000 Джо.

Вы перезваниваете Джо и говорите ему: «Я перевел деньги. Можешь снять их в ближайшем банке».

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

В этом и заключается проблема существующей финансовой системы!

Мы всегда зависим от третьей стороны «Посредников» — Банковских организаций.

В течение многих лет мы зависели от этих посредников. Вы можете спросить: «В чем проблема зависимости от них?»

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

  • Что делать, если реестр — счёт, в котором была зарегистрирована данная транзакция, сгорит во время пожара?
  • Что, если, по ошибке, ваш менеджер спишет 1500 долларов вместо 1000 долларов?
  • Что, если он сделал это нарочно?

Может ли существовать система, в которой все мы «в равной степени» можем переводить свои средства без необходимости участия банков?

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

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

Есть ли способ хранить реестр этих запросов среди нас, а не предоставлять то право кому-то другому, делающему это за нас?

Теперь мы сформулировали правильный вопрос, который стоит изучить. И ответом на него будет — то, о чем вы возможно уже догадываетесь, Блокчейн.

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

Хорошо, это мы поняли. Но всё же как работает блокчейн?

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

«Если достаточное кол-во людей станет единомышленниками, то мир блокчейн станет реальностью». — Сатоши Накамото, 2009 год

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

1. Пустая папка

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

2. Когда совершается сделка

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

Теперь, представим что один из них захотел отправить $ 10 другому.

Чтобы совершить транзакцию, он сообщает всем остальным: «Я хочу перевести от 10 долларов. Итак, все, пожалуйста, отметьте это на своих страницах».

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

Затем транзакция считается завершенной.

3. Транзакции внутри сети начинают функционировать

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

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

4. Хранение предыдущих страниц

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

Это понятие носит имя «майнинг».

Интересно! Как мы запечатываем страницу?

Прежде чем мы узнаем, как мы можем запечатать страницу, мы должны знать как это происходит.

Волшебная машина

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

Эта машина носит название «Функция хэширования»

Предположим, вы отправите в нее цифру 4 с одной стороны, с другой стороны выйдет фраза: ‘dcbea.’

Как он преобразовал число 4 в это слово? Никто не знает. Более того, это необратимый процесс. Глядя на фразу «dcbea», невозможно сказать, что отправлялось в машину с другой стороны. Но каждый раз, когда вы загружаете цифру 4 в машину, она всегда будет формировать одну и ту же фразу «dcbea».

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

Как использовать эти машины для печати страницы?

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

Представьте, я даю вам две коробки. В первой коробке содержится номер 20893. Затем я спрашиваю вас: «Можете ли вы подсчитать число, которое добавляется к номеру в первом коробке и подается на машину, даст ли оно нам слово, начинающееся с трех ведущих нулей?»

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

После нескольких тысяч попыток мы наткнемся на число, скажем, 21191, которое при добавлении к 20893 (т.е. 21191 + 20893 = 42084) и прохождение через машину, даст слово, которое удовлетворит нашим требованиям.

В таком случае это число, 21191, становится печатью для числа 20893. Предположим, есть страница, на которой указано число 20893. Чтобы запечатать эту страницу (т.е. Никто не может изменить ее содержимое), мы поставим на нее печать с надписью «21191». Как только номер запечатывания (то есть 21191) окажется на странице, она будет считаться запечатаной.

Номер печати носит имя «Proof Of Work», что означает, что это число является доказательством того, что все условия его вычисления были соблюдены.

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

Теперь поговорим о способах запечатывания страниц

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

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

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

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

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

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

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

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

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

Отличный вопрос. Вот тут и появляются стимулы. Каждый участник системы Блокчейн, имеет право на получение вознаграждения. Первый вычисливший номер печати получает вознаграждение в виде халявных денежных средств за затраченные усилия (т.е. Затраченные мощности ЦП и электричество).

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

Чем больше людей владеют валютой Биткоин, те больше она растет в цене, агитируя других людей покупать данную валюту, либо майнить;

Система вознаграждения заставляет всех участников продолжать работать в сети.

Вот так мои друзья и работает Блокчейн.