Как работает Блокчейн, зачем он нужен и как помогает создавать децентрализацию: гид новичка

Blockchain

Многие спрашивают, что такое блокчейн и как он работает. Объясняю на пальцах.

Можешь объяснить, что такое блокчейн, чтобы я понял?

Ок, смотри, блокчейн — это список транзакций. Просто список. Это не какая-то супер-непонятная штука вроде синхрофазотрона.

Вот пример. У тебя двое товарищей. Вы втроем ходите кушать в кафе. Кто-то периодически забывает кошелек 😉 И ты им одалживаешь. Конечно, ты будешь записывать все… Ведь если ты не будешь записывать, то они точно потом все забудут…

Представь, что на листке написано следующее:

1) Леха одолжил Паше 500 рублей

2) Паше одолжил Сане 300 рублей

3) Леха одолжил Сане 400 рублей

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

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

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

И тогда некий деятель или группа умников под именем Сатоши Накамото создали блокчейн. Блокчейн — это тоже список транзакций, как будто в Google Docs. Любой человек может зайти и посмотреть на суммы переводов. Транзакции сохраняются в блоки, а блоки добавляются к цепочке блоков (поэтому технология называется — блок-чейн (цепочка из блоков)).

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

Любой участник может создать запрос на перевод денег. Что для этого нужно? Нужно просто создать кошелек. Что такое кошелек? Это просто программа, в которой указывается публичный адрес, приватный адрес — и больше ничего. Кошелек никак не привязан к твоему имени, компьютеру и т.д. Это определенная степень анонимности, при работе через карты и т.д., такой анонимности нет. Публичный адрес — это как будто адрес электронной почты, ты его можешь всем раздавать, чтобы тебе высылали на него биткоины. А приватный адрес — это как будто код к твоему ящику. Если ты передашь кому-нибудь пароль, то этот человек сможет отправлять письма с твоего адреса и т.д. Так же работает и Bitcoin.

Так вот, ты просто создаешь кошелек, а затем направляешь запросы. Например, ты просишь, чтобы тебе прислали денег. Высылаешь мне свой публичный адрес и говоришь «вышли мне 1 биткоин, спс». Я тебе его высылаю, все ок. А потом ты решаешь выслать своему другу биткоинов, но ты ошибаешься при указании в кошельке и пишешь «10 биткоинов».

Запрос начинает обрабатываться. Он попадает в руки майнеров. Майнеры — это компьютеры, на которых хранятся копии списка (то есть, блокчейна). Компьютеры-майнеры умеют проверять, есть ли у тебя такой остаток в кошельке или нет.

Если у тебя нет 10 биткоинов, то сделку просто аннулируют и все. Они не будут себе сохранять такие некорректные запросы в свои копии этого «журнала» транзакций.

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

А что так реально можно сделать?

Неа 😉 И вот почему. Майнеров в системе Bitcoin уже миллионы. А ты вступил в сговор только с одним из них.

Он может сделать вот так — выслать всем остальным майнерам свою «нахимиченную» копию журнала и сказать всем остальным, что это правильная копия. Однако остальные миллионы майнеров могут сами пойти посмотреть на запрос, который ты направил. У тебя есть два адреса — публичный и приватный. Публичный адрес позволяет посмотреть, сколько у тебя на адресе лежит денег. А вот приватный позволяет отправить с этого адреса Bitcoin другому пользователю. Майнеры могут зайти на твой публичный адрес и увидеть, есть ли у тебя деньги. Ты можешь сделать то же самое в обозревателе блокчейна вот здесь. Вот, например, адрес — 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Это один из адресов, на который Сатоши Накамото собирал биткоины, когда только запускалась система.

Ну так а если остальных майнеров подговорить?

На самом деле, можно. Это называется риск атаки 51%. Все эти майнеры (или ноды (узлы)) являются просто компьютерами, а не живыми людьми. Они не способны мыслить критически и просто распространяют данные. Если 51% нодов сообщат, что ты перечислил другому человеку 10 биткоинов, то тогда остальные ноды могут согласиться.

Это называется consensus mechanism (механизм достижения консенсуса). Вот так этот механизм работает в Bitcoin и он называется Proof of Work. Бывают еще Delegated Proof of Work (DPoW), Proof of Stake (доказательство доли владения) и многие другие.

А, то есть, вот этот вектор атаки может сработать?

Фишка в том, что даже если ты сможешь сговориться с 51% нодов, то получится следующее — твои ноды создадут блок с фиктивной транзакцией, а остальные 49% нодов создадут блок без нее, так они сами могут пойти и посмотреть, что у тебя в кошельке не было 10 биткоинов. И тогда будут существовать 2 блокчейна — фиктивный и реальный. Вот так создаются форки от криптовалют. Форки — это когда какая-то группа майнеров/нодов говорит, что им надоело использовать правила этого блокчейна и они их чуть-чуть изменяют. В результате создается новый блокчейн и майнеры уходят трудиться туда.

Таким образом появляются валюты вроде Bitcoin Cash и другие. Но в таких случаях мы говорим не про фиктивные транзакции, а просто отделение группы майнеров и уход в другую ветку блокчейна. А вот против фиктивных транзакций также сработает механизм создания нового блока через разгадку загадки.

Это как работает?

А вот как. Все эти ноды — а их в Bitcoin миллионы — получают все заявки о платежах и добавляют в новый блок, который сохраняют у себя на компьютерах. Затем они получают мега-сложную математическую задачу. Даже не математическую, а криптографическую. Вот что им нужно разгадать — какой номер указан в качестве идентификационного номера для нового блока. И в этом номере штук 30 цифр.

И все ноды — реально — начинают предлагать системе свои варианты. Они вводят в систему вопрос «Это 1?». Приходит ответ — «Нет». «Это 2?». Приходит ответ — «Нет». … «Это 000004500454570543545045?» «ДА, вы угадали!»

Все ноды задают эти вопросы одновременно. И тот нод, который первым угадает (не вычислит, а именно угадает) правильный ответ, получает право добавить новый блок. Это может быть компьютер из Москвы или laptop в Буэнос-Айрес. Чтоб было не влом заниматься этим, он получает чуть-чуть битков. Сейчас, это 12,5 BTC. Можешь посчитать сам, сколько это 😉

Если у тебя компьютер посильнее, то ты можешь быстрее предлагать варианты ответа и, следовательно, повышается вероятность, что именно ты угадаешь ответ первым. Мы об этом рассказываем в карте про майнинг. Эта скорость угадывания называется hashrate (хешрейт), так как в этой методике используется криптографический метод hash.

В соответствии со спецификацией, новый биткойн-блок создается каждые 10 минут. Если повышается hashrate (то есть, подключается больше компьютеров), то система автоматически подстраивает уровень сложности. При этом, после того, как первый компьютер угадал правильный ответ, то он рассылает отгадку в таком формате, который позволяет всем остальным нодам быстро проверить, что он был прав. В этом сила hash.

Если группа нодов имеют огромный hashrate и он значительно больше hashrate всех остальных нодов, то у этой группировки появляется почти реальная возможность влиять на работу системы. Сейчас формируются такие картели майнеров. 60% майнеров из Китая, так как дешевое электричество. Во главе крупная компания по производству специального харда — Bitmain. Однако мы говорим только про изменение последнего блока, а не блоков внутри блокчейна, так как здесь работает принцип «сборочного» хеша.

Это что еще такое?

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

У блокчейнов огромное количество реальных случаев использования (user case). Одно из основных преимуществ — децентрализация. Здесь нет централизованного контроллера — посредника, третьей стороны, которая гарантирует, что деньги придут. Это означает, что никто не может изменить данные в блокчейне. Никто.

Ну, слушай, если наши органы захотят, то они смогут.

Нет, никто не может ничего поменять в Bitcoin. В этом соль. Это единственная система в мире, которую нельзя подвинуть или прессануть.

Да взломают просто все эти ноды или отключат им энергию.

Ноды потребляют энергию, равную потреблению Аргентины. Ты сможешь выключить свет у Аргентины. Где этот рубильник?

Ну а взломать их можно же?

Ноды в Bitcoin — это «фермы» с видеокартами, размерами с ангары. Эти ангары занимают уже целые деревни в горах в Китае, в Норвегии, Исландии. Это все равно что взломать всех людей, у которых установлен Counter Strike или которые режутся в Танки.

При этом, не понятно, что хакеры будут делать потом, так как есть куча механизмов против “химичинья”.

Именно поэтому банки по всему миру инвестируют в блокчейны и начинают понимать, что Bitcoin с нами будет существовать лет так 500-600. И поэтому его начинают называть store of value (инструмент для сохранения ценности).

Ой, ну, слушай, Bitcoin упал с 20 000 до 3 000 долларов. Ну это уж точно не инструмент для сохранения чего-то там.

Да, есть такое… Bitcoin находится на своем первом этапе развития. А ты в курсе, что в США было два доллара. Первый доллар был всего 10 лет, что-то пошло не так, и создали новый… А ты в курсе, что в России постоянно идут девальвации, когда деньги становятся туалетной бумагой — последние 100 лет идут? А ты в курсе, что в куче стран полный ужас с ценностью валюты и биток, который вот так скачет — это там “стабильный” вариант…

100 триллионов долларов
100 триллионов долларов

Купюра в 100 триллионов долларов из Зимбабве. Примерно, на полбатона.

Поэтому, следующие лет 5-15 Bitcoin будет колбасить, а потом он устаканится и станет новым золотом. Тогда блокчейн принесет самую главную пользу для человеков.

Что это за польза?

Возможность пересылать деньги по всему миру без участия посредников вроде Paypal. Интернет принес свободный обмен информацией. И через 20 лет с этим никто не спорит. Блокчейн принес свободный обмен ценностями. И доказательство не за горами.