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

Мы используем 🍪. Продолжая использовать наш сайт вы соглашаетесь с политикой конфиденциальности.

ЧТО ТАКОЕ БЛОКЧЕЙН И КАК ОН УСТРОЕН?

 15 минут
120
 01.07.2021, 12:43

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

 

Блокчейн, как список, который нельзя подделать

 

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

 

Рассмотрим пример. 

 

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

 

  1. Отдал Сергею “Мастер и Маргарита”
  2. Отдал Олегу “Гарри Поттер”
  3. Сергей вернул “Мастер и Маргарита”
  4. Отдал Олегу “Война и мир”

 

Теперь Саша в любой момент может подойти к доске и увидеть, что Сергей вернул книгу, а Олег уже должен вернуть 2 книги. Однажды Саша приглашает Олега к себе в гости, и пока Саша не видит, Олег меняет запись на доске “Отдал Олегу “Война и мир”” на “Олег вернул “Гарри Поттер””. После этого записи на доске стали выглядеть следующим образом:

 

  1. Отдал Сергею “Мастер и Маргарита”
  2. Отдал Олегу “Гарри Поттер”
  3. Сергей вернул “Мастер и Маргарита”
  4. Олег вернул “Гарри Поттер”

 

Саша доверяет записям на доске, но учитывая, что записи были изменены, он теряет две книги “Гарри Поттер” и “Война и мир”. 

 

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

 

Например.

 

СТРОКА: Отдал Олегу “Война и мир”

ХЭШ: 196fd7d02c90a29f20e6800b9efe01df1dae3995241846ac75ec15835c63533d

 

СТРОКА: Отдал Олегу “Война и мир”!

ХЭШ: 6754a1be88638e71b2eb41613efd91bc8bf88ce4947a9c90ac7f78606f6e0a39

 

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

 

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

 

1. Отдал Сергею “Мастер и Маргарита”

947c4bcf74e3ea0d1368c27dce442c10ddf8d8ba9c83c639ff7f432c9c9b58cb

 

2. Отдал Олегу “Война и мир”

196fd7d02c90a29f20e6800b9efe01df1dae3995241846ac75ec15835c63533d

 

3. Сергей вернул “Мастер и Маргарита”

b67f70fdd3b489f4395bf1922641845e063eb457f49995da5a0a33512cfd9889

 

4. Отдал Олегу “Гарри Поттер”

f9245d5f13ab9e0c9e2e298b76d04f2df9b1aa3755224abbe4ba43346b6ee02a

 

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

 

1. Отдал Сергею “Мастер и Маргарита”

947c4bcf74e3ea0d1368c27dce442c10ddf8d8ba9c83c639ff7f432c9c9b58cb

 

2. Отдал Олегу “Война и мир” + 947c4bcf74e3ea0d1368c27dce442c10...

c0418bb780f9754df1540613905fb38b012af0bf5aae48ebaef7a7bbbb896b2e

 

3…..

 

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

 

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

 

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

 

Зато проверить список Саше также просто, как и раньше - сначала необходимо проверить все хеши, а потом решения уравнений простой подстановкой, если все сошлось, то список не менялся. 

 

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

 

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

 

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

 

Децентрализация списка

 

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

 

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

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

 

Биткоин, как пример использования блокчейна

 

Один из ярких примеров использования технологии блокчейна - это криптовалюта биткоин. По сути там также используется доска с записями, только в виде журнала, в котором все записи - это транзакции, совершенные в сети. Выглядят они примерно следующим образом “Передать столько-то биткоинов с кошелька Х на кошелёк У”. При этом в каждую транзакцию блокчейна входит не только информация о том, сколько вы хотите передать биткоинов, но и ссылки на все ваши предыдущие транзакции, по которым видно, как вы получили необходимое количество биткоинов. То есть если вы хотите отправить 1 биткоин, то вместе с транзакцией передается ваша история доходов и расходов, где видно что ранее вам передавали 0,3 + 0,2 + 0,5 биткоинов, тем самым доказывается, что у вас есть этот 1 биткоин. Таким образом по записям в журнале блокчейна биткоина можно отследить и увидеть любую транзакцию за всю историю существования данного списка. 

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

 

Как работает майнинг

 

Изначально все транзакции попадают в общий пул и ждут своего подтверждения. Далее каждый работающий компьютер в сети (майнер) выбирает из общего пула любые транзакции, которые ему нравятся. Обычно просто по самой высокой комиссии, которую он может на ней заработать. Транзакции записываются в журнал блоками (несколько транзакций, собранных воедино). Кто первый из компьютеров решит математическую задачу по поиску числа nounce, чтобы получить в результате хеш с 10 нулями вначале, тот и добавляет блок с транзакциями в журнал и сообщает об этом всем участникам сети «посмотрите, я создал новый блок, предлагаю добавить его в наш блокчейн». Остальные должны проверить, что блок построен по всем правилам, а затем добавить его в свой журнал. 

 

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

 

В заключении

 

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



Разрешите доступ к микрофону, чтобы совершить онлайн звонок
Спасибо, что связались с нами!
Для нас очень важно помочь вам и надеемся, что оператору удалось это сделать.Будет прекрасно, если вы оцените качество его работы:
Анастасия

Написать в чат...
×