Если вы не живете в пещере, то слышали о Bitcoin и Blockchain. В конце концов, это популярные темы в средствах массовой информации на сегодняшний день - это основные слова года. Даже люди, которые никогда не покупали криптовалюты или не понимают, как они работают, говорят об этом.
Но тысячи людей больше нетехнические, чем технические и им стоит объяснить, что это такое Блокчейн простыми словами.
Если Вас интересует более техническое определение Блокчейна, тогда читайте эту статью.
В этой же статье, вместо определения Blockchain мы поймем для чего нужен и какую проблему он решает.
Представьте себе, что Ваш лучший друг, путешествует за границей и в какой то момент у него заканчиваются деньги. Он звонит вам и говорит: "Чувак, мне нужно немного денег. Я исчерпал свои ресурсы". Вы отвечаете: "Сейчас же отправлю", и кладете трубку. Далее, Вы заходите в свой аккаунт в банке и переводите нужную сумму товарищу. После чего набираете друга и сообщаете, что деньги ему поступили.
Что только что произошло? Вы с товарищем доверили банку, чтобы он управлял вашими деньгами. Не было реального движения физических векселей для перевода денег. Все, что было – это запись в реестре банка, который ни вы, ни он не контролируете.
И это проблема современных систем. Чтобы выполнить перевод средств между собой, мы зависим от отдельных третьих сторон.
В течение многих лет мы зависели от этих посредников. Вы можете спросить: «Какая проблема заключается в этой зависимости?». Проблема в том, что они являются единственными в своем роде, без альтернативы. Если в обществе нужно сделать хаос, то для этого достаточно одного человека / организации, которые намеренно или ненамеренно навредят всей системе.
Может быть, есть система, в которой мы можем переводить деньги без необходимости банка?
Чтобы ответить на этот вопрос, нам придется копнуть глубже и задать себе лучший вопрос (ведь только лучшие вопросы дают лучшие ответы).
Подумайте об этом на секунду, что означает перевод средств? Просто запись в реестре. Тогда вопрос получше - существует ли способ хранить реестр среди нас, а не чтобы это делала третья сторона? И как вы, возможно, уже догадались, ответом на этот вопрос будет Blockchain.
Теперь, когда появилось несколько вопросов, мы расскажем, как работает технология Блокчейн простым языком.
Основное требование у этой технологии то, что должно быть достаточно людей, которые хотели бы не зависеть от сторонних лиц. Только тогда эта группа сможет самостоятельно вести реестр.
Сколько необходимо людей? По крайней мере три.
Для нашего же примера мы представим, что десять человек хотят отказаться от банков или третьих лиц.
По взаимному согласию они постоянно детализируют счета друг друга - не зная друг друга в лицо.
Пустая папка
Каждый человек имеет пустую папку, с которой можно начинать. Когда сеть будет прогрессировать, все эти десять человек будут добавлять страницы в свои пустые папки. И эта коллекция страниц сформирует реестр, который отслеживает транзакции.
Когда происходит транзакция
Все участники в сети сидят с пустой страницей и ручкой в руках. Каждый готов написать любую операцию, которая происходит внутри системы.
Теперь, предположим, что №2 хочет отправить $10 №9. Для осуществления транзакции №2 сообщает каждому: "Я хочу перевести 10 баксов номеру 9. Поэтому, пожалуйста, все отметьте это на своих страницах."
Каждый проверяет, достаточно ли денег у №2, чтобы перевести $10 №9. Если баланса хватает, каждый делает примечание о транзакции на своих пустых страницах.
Транзакция считается завершенной.
Операции продолжают происходить
По мере прохождения времени больше людей в сети испытывают необходимость переводить деньги другим. Каждый раз, когда они хотят осуществить транзакцию, они объявляют об этом всем остальным. Как только человек услышит объявление, он сделает запись на своей странице.
Это продолжается, пока каждый не исчерпает место на текущей странице. Предполагая, что страница имеет пространство для записи десяти транзакций, как только будет осуществлено десятую транзакцию, каждый исчерпает свободное пространство.
Пришло время отложить страницу в папке, достать новую страницу и повторить процедуру с шага 2.
Прежде чем мы перенесем страницу в наши папки, мы должны закрепить ее уникальным ключом, с которым согласятся все в сети. Закрепив это, мы убедимся, что никто не сможет вносить никаких изменений, как только ее копии будут отправлены в папку каждого участника, не сегодня, не завтра, и даже через год. Попав в папку, она всегда будет оставаться в папке запечатанной. Кроме того, если каждый доверяет печати, каждый доверяет содержимому страницы. И это запечатывания страницы является основой этого метода.
Это понятие носит имя «майнинг».
Надеемся, мы пока объясняем, что такое Блокчейн на понятном языке. Да? Тогда двигаемся дальше.
Прежде чем мы узнаем, как мы можем запечатать страницу, мы рассмотрим, как работает печать в целом.
Представьте себе механизм, который окружен толстыми стенами. Если вы отправите коробку с чем-то внутри с одной стороны, то с другой стороны выйдет коробка, но уже с чем-то совершенно иным внутри.
Эта машина называется функцией Hash, но так как статья не слишком техническая, то будем называть ее простыми словами. Итак, на сегодня это "Магические машины".
Допустим, Вы отправите номер 4 с одной стороны, а с другой стороны получили слово: "acbcad".
Как она превратил номер 4 в это слово? Никто не знает. Но главное, это необратимый процесс. Учитывая слово "acbcad", невозможно сказать, что отправляли в машину изначально. Но каждый раз, когда вы отправляете номер 4, машина всегда будет выбрасывать одно и то же слово "acbcad".
Давайте попробуем отправить другой номер. Как насчет 26? На этот раз мы получили "94c8e". Интересно! Итак, слова могут содержать и номера.
Подумайте над следующим вопросом: "Можете ли вы сказать, что следует отправить, чтобы на выходе получить слово, которое начинается с трех нулей? Например, 000ab или 00098 или 000fa или что-нибудь другое".
Мы уже говорили вам, что в машине есть свойство, из-за которого нельзя вычислить то, что отправлялось на вход, если на руках имеем готовый результат. Предоставляя нам такую машину, как мы можем ответить на вопрос выше?
Можно предположить об одном методе. Почему бы не попробовать отправить каждое число во вселенной один за другим, пока не получим слово, которое начинается с трех нулей?
Будучи оптимистом, после нескольких тысяч попыток мы получим нужный результат.
Было очень трудно вычислить входной сигнал с учетом выхода. Но в то же время, всегда будет невероятно легко проверить, прогнозируемый вход дает нужный результат. Помните, что машина каждый раз выделяет одно и то же слово для числа.
Насколько трудно вам ответить, если есть цифра, скажем 72533 и Вас спросят: «Действительно ли этот номер при введении в машину дает слово, которое начинается с трех нулей?».
Все, что вам нужно сделать, это отправить номер в машину и посмотреть, что получиться на выходе.
Важнейшим свойством таких машин является то, что "При выходном сигнале, крайне трудно вычислить входной сигнал, но, учитывая входной сигнал и выходной сигнал, достаточно легко проверить, соотносятся ли они друг другу".
Давайте запомним это свойство магических машин (или хэш-функций):
Учитывая выходной сигнал, крайне трудно вычислить входной сигнал, но, учитывая вход и выход, очень легко проверить, соотносятся ли они друг другу.
Мы используем этот магический аппарат для создания печати на нашей странице. Как обычно, мы начнем с воображаемой ситуации.
Представьте, что Вам дают две коробки. Первая коробка содержит номер 10794. Можете ли вы сказать номер, который при добавлении к указанному числу, даст число, что поступив на машину, выдаст слово, которое начинается с трех ведущих нулей?
Это подобная ситуация к той, что мы разбирали ранее, и мы узнали, что единственным способом расчета такого числа – это попытка ввода каждого числа, доступного во вселенной.
После нескольких тысяч попыток натыкаемся на число, скажем, 13122, которое после добавления к 10794 (то есть 13122 + 10794 = 23916) и подачи в машину, даст слово, которое удовлетворяет нашим требованиям.
В таком случае этот номер 13122 становится печатью на номер 10794. Предположим, что имеется страница, на которой написано номер 10794. Чтобы закрепить эту страницу (то есть никто не сможет изменить ее содержание), мы разместим на ней значок "13122". Как только номер уплотнения (т.е. 13122) наклеен на странице, страница запечатана.
Номер уплотнения называется «Доказательство работы» («Proof Of Work»), а это значит, что это число является доказательством того, что была предпринята попытка его вычислить.
Мы будем называть это простым языком "номер уплотнения" для наших целей.
Если кто-то хочет проверить, изменилась ли страница, то все, что он должен сделать, это добавить содержимое страницы с номером уплотнения и подать на магическую машину. Если машина выдаст слово с тремя ведущими нулями, содержание остается нетронутым. Если слово, значит, не соответствует нашим требованиям, мы можем выбросить эту страницу, так как ее содержание было скомпрометировано и не подходит.
Мы будем использовать аналогичный механизм уплотнения, чтобы закрепить все наши страницы и, в конце концов, организовать их в наших соответствующих папках.
Чтобы запечатать нашу страницу, содержащую транзакции сети, нам предстоит выяснить номер, который при добавлении в список транзакций и подачи на машину, выдаст слово, которое начинается с трех нулей.
! Фраза "слово, начинающееся с трех нулей" использовалось только в качестве примера. Это показывает, как функционируют функции хеширования. Реальные проблемы намного сложнее, чем пример.
Когда эта цифра рассчитана, после трат какого-то количества времени и электричества, страница запечатывается этим номером. Если кто-то пытается изменить содержимое страницы, номер уплотнения позволит любому проверить целостность страницы.
Теперь, когда мы знаем о запечатывании страницы, мы вернемся к тому времени, когда мы закончили писать десятую транзакцию на странице, и исчерпали свободное пространство.
Как только все переходят на следующую страницу, чтобы записывать дальнейшие транзакции, они пытаются рассчитать номер уплотнителя для предыдущей страницы, чтобы ее можно было убрать в папку. Каждый в сети делает расчет. Первый кто, выяснит номер уплотнителя, объявляет об этом всем остальным.
Немедленно, услышав номер уплотнительного материала, каждый проверяет, дает ли он нужный результат или нет. Если да, каждый запечатывает свои страницы с этим номером и отправляет их в свои папки.
Но что делать, если у кого-то номер опечатывания, который был анонсирован, не совпал с номером данных? Такие случаи не являются необычными. Возможными причинами этого могут быть:
Независимо от причины, есть только один способ – он должен выкинуть неправильную страницу и скопировать ее с другого места, чтобы он также мог добавить ее в папку. Если он не размещает свою страницу в папке, он не может продолжать записывать дальнейшие транзакции, тем самым сообщество запрещает ему быть частью сети.
Независимо от того, какой номер был получен, если большинство согласно с ним, то он становится честным номером уплотнения.
Тогда почему все тратят ресурсы на расчет, когда знают, что кто-то вычислит и объявит об этом им? Почему бы не сидеть в режиме ожидания и просто не ждать объявления?
Очень хороший вопрос. Именно поэтому была придумана система поощрений. Каждый, кто является участником Blockchain, имеет право на вознаграждение. Первый, кто рассчитывает номер уплотнения, получает вознаграждение за свои усилия.
Просто представьте, что если №5 вычисляет номер уплотнения страницы, он получает за это вознаграждение. Иными словами, баланс аккаунта №5 увеличивается, не уменьшая балансы учетных записей остальных пользователей.
Вот так появился Биткоин. Это была первая валюта, которая стала использоваться на Blockchain (то есть распределенных регистрах). И для того, чтобы продолжать работу в сети, людям начислялись Биткойны.
Когда достаточно людей обладают Биткоинами, они растут в цене, завлекая других желающих получать Bitcoin, делая еще больше монет, завлекая еще больше людей, желающих Биткойнов и так далее. Награды позволят всем продолжать работать в сети.
И, как только все отправят страницу в свои папки, они создадут новую пустую страницу и повторят весь процесс повсеместно.
Представьте себе, что в папке уже есть пять страниц и все они запечатаны. Что делать, если кто-то вернется на вторую страницу и поменяет транзакцию в свою пользу? Номер уплотнения позволит любому выявить непоследовательность транзакций, не так ли? Что делать, если он пойдет дальше и вычислит новый номер уплотнителя для измененных транзакций и переобозначит страницу?
На самом деле, для вычисления номера уплотнения в Blockchain, вместо двух кодов, есть три - два заранее заполнены, а один - для расчета.
Когда содержание всех этих трех коробов добавляют и подают в машину, ответ на выходе, должен соответствовать необходимым условиям.
Мы уже знаем, что в одной коробке содержится список транзакций, а в другой коробке будет указан номер заключения. Третья коробка содержит вывод магической машины для предыдущей страницы.
С помощью этого аккуратного трюка мы убедились, что каждая страница зависит от предыдущей страницы. Поэтому, если кто-то должен изменить историческую страницу, ему также придется изменить содержание и номер уплотнения всех страниц после этого, чтобы сохранить цепь последовательной.
Если один из десяти, которые мы себе представили сначала пытается обмануть и изменить содержимое Blockchain (папку, содержащую страницы с перечнем транзакций), ему придется отрегулировать несколько страниц, а также вычислить новое уплотнение номера для всех этих страниц. Мы знаем, как трудно рассчитать количество герметизирует. Поэтому один нечестный парень в сети не может побить девять честных ребят.
Что произойдет с той страницей? Нечестный парень, пытаясь обмануть, будет создавать еще одну сеть в сети, но эта цепочка никогда не сможет догнать честную цепочку - просто потому, что усилия и скорость одного парня не могут быть совокупными усилию и скорости девяти. Это значит, что самая длинная цепь в сети - честная цепь.
Что делать, если, вместо одного, шесть ребят становятся нечестными? В таком случае протокол будет уязвим. И это известно как "51% атаки". Если большинство людей в сети решили превратиться в нечестную и обмануть другую часть сети, протокол не достигнет своей цели.
И это единственная реальная причина, почему Blockchain может рухнуть. Знайте, что это вряд ли произойдет, но все должны знать уязвимые точки системы. Она построена на предположении, что большинство сообщества честные ребята.
В рубрике Книги Вы сможете скачать/купить книги объясняющие, что такое Блокчейн простыми словами для чайников и более опытных пользователей.
Понравилась статья? Пожалуйста, поделитесь:
Вам также будет интересно: