Как быстро разобраться в устройстве блокчейна
Человек скачивает фильм с помощью торрент-файла и программы BitTorrent. У фильма есть особенность — он еще не снят. Каждые десять минут кто-то снимает новый кадр и добавляет его к остальному видео. Значит, каждые десять минут человек скачивает на свой жесткий диск еще один кадр и обновляет фильм. Хоть фильм и не снят, человек все равно может посмотреть его с самого начала. Если кто-то решил поменять сюжет фильма, то у него не получится просто так заменить один кадр — он не будет сочетаться с остальными. Чтобы подменить один кадр, ему нужно переписать весь последующий сюжет, а это очень сложно.
Как это понимать
Кадры фильма — это цепочка блоков, десять минут — интервал, за которые составляется новый блок, а кадр — один блок. Блоки с транзакциями идут друг за другом и связаны между собой шифрами (хэшем): хэш первого блока шифрует содержимое блока, а хэш второго блока — содержимое блока вместе с хэшем первого блока. Поэтому нельзя просто так заменить один блок и хэш — в нем не будет информации из всех последующих блоков.
Как понять, что такое хэш
Повар делает кашу для посетителя, хотя он не знает, какой именно она должна быть. Он смешивает разные ингредиенты и проверяет, нужную кашу он приготовил или нет. Так происходит очень много раз, и однажды повар угадывает, какую кашу нужно было приготовить. Другой повар может повторить рецепт и убедиться, что с помощью него приготовили правильную кашу, но человеку со стороны будет сложно по каше разобраться, из каких ингредиентов она была приготовлена.
Как это понимать
Повар — это майнер, а каша — хэш. Когда майнящая программа собирает блок из непроверенных транзакций, она шифрует их с помощью хэша. Для этого она перебирает случайные знаки, пока не получит нужный результат. Компьютерам сложно это делать, а задачу им специально усложняют — найти такой хэш, чтобы вначале него было 18 нулей, например, 000000000000000000198546a8e5a4d64556fb7eb0348e92e0caf9a8a86cf984.
Как объяснить, зачем блокчейн хранится в разных местах
Дети играют в футбол во дворе. У них нет судьи, который считает забитые мячи, поэтому этим занимаются игроки. Но они не записывают это в одном месте, а запоминают — каждый в своей голове. Никто не сможет подойти к одному из игроков и сказать, что счет изменился, потому что он знает, что это неправда. С другой стороны, если кто-то подговорит 20 игроков изменить счет, а потом приведет их в игру, то, возможно, счет удастся изменить. Правда, в случае с одним судьей сделать это еще проще — нужно подкупить всего одного человека.
Как это понимать
Дети — узлы распределенной блокчейн-сети. Каждый узел (то есть компьютер, который подключен к блокчейну) скачивает, хранит и обновляет всю информацию, которая есть в блокчейне. Если какой-то узел перепишет информацию у себя, другой компьютер ему все равно не поверит — у него есть своя копия. Но если кто-то соберет вместе огромное количество компьютеров и получит больше половины всех мощностей сети, то, возможно, он сможет переписать информацию и начать новую ветку блоков.
Как описать прозрачность блокчейна понятными словами
В зале, куда может зайти кто угодно, стоит шкаф с прозрачными дверцами. Он прикручен к полу мощными болтами, сделан из очень прочной стали, а окошки — из очень прочного стекла. Шкаф очень большой, поэтому в нем можно завести столько ячеек, сколько хочется. Человек, у которого есть ячейка, захотел купить носки у другого человека с ячейкой. Он открывает ключом свою ячейку, достает оттуда монеты, находит ячейку продавца и закидывает монеты в нее. Прохожий может заглянуть в эту ячейку и убедиться, что там появились деньги.
Как это понимать
Монеты — это любая криптовалюта, ячейки — криптовалютные кошельки, а ключ — приватный клюк к кошельку. Переводы денег в блокчейне зашифрованы, но открыты для всех: система показывает, кто перевел деньги, кому (то есть открытые адреса кошельков, например, 334mubSzdQAPZkrYoBfYC66p19jsQbryJh), а также какую сумму в криптовалюте. В этой аналогии есть неточность: на самом деле, в ячейках нет монет, в них находится история всех переводов, в котором ячейка участвовала. Поэтому владелец ячейки не переводит не криптовалюту, а высчитывает из своих транзакций сумму для этого перевода.
Как связать блокчейн с биткоинами
На островах Яп в Микронезии живут япцы (это реальное племя). Помимо американских долларов они пользуются собственной валютой — раи, огромными дисками, выточенными из известняка. Диски имеют отверстие по центру и в диаметре могут достигать до трех метров. Япцам не хотелось таскать камни в соседний двор, поэтому они придумали устную систему обмена. Когда япец покупал лодку, он объявлял всем в деревне, что передает часть раи продавцу. Известняковый диск оставался у него, хотя формально его часть уже принадлежала рыбаку. Каждый житель деревни становился хранителем информации о покупке.
Как это понимать
Раи — это грубый аналог криптовалюты, а жители деревни — узлы блокчейна. Как и в примере с детьми-футболистами, хранителями информации в блокчейне являются сами участники сети. Япцы не передают друг другу настоящие деньги, они запоминают прошлые транзакции и переводят друг другу суммы из прошлых переводов.
Как понять, почему биткоины — ненастоящие деньги
Брат захотел купить у сестры игрушечный грузовик. Родители каждый месяц выделяют ему немного карманных денег, но это не настоящие деньги, а депозит, из которого можно запросить средства на покупку. Когда брат покупал грузовик, он попросил деньги из депозита, но не получил их — они просто перевелись на депозит сестры. Брат и сестра подписывают соглашение, но не своими именами, а длинными кодовыми словами. Когда сестра соберется потратить свои деньги, она будет переводить не их, а свой договор с братом.
Как это понимать
Депозиты — это и есть биткоины. На самом деле биткоин-кошелек не хранит криптоденьги, он хранит историю транзакций. Когда биткоины переводятся с одного кошелька на другой, программа просматривает историю транзакций и выбирает подходящие. Например, нужно перевести 5 биткоинов, а в истории кошелька была только одна транзакция на 7 биткоинов. Тогда переводится эта транзакция на 7 биткоинов, а 2 биткоина запрашиваются в качестве сдачи.
Как объяснить плюсы блокчейна
Усложним пример с япцами. Представьте, что давным-давно они решили записывать всю историю платежей на острове и назначили главного бухгалтера. Когда соплеменник покупал лодку, бухгалтер шел к нему, проверял, есть ли у него нужное количество раи, и записывал в книгу, что покупка состоялось. Со временем бухгалтер стал брать комиссию, запрещал сделки, которые не нравились его семье, останавливал всю торговлю на время болезни. Это мешало жителям. Тогда десять могущественных семей выбрали по одному бухгалтеру. Теперь когда соплеменник покупал лодку, он выходил на площадь и объявлял об этом десяти бухгалтерам. Одна семья не могла запретить сделку или установить высокую комиссию, ведь сделку все равно проведут другие семьи.
Как это понимать
Главный бухгалтер — это обычный банк, а десять бухгалтеров — несвязанные между собой майнеры. Но у них нет особых полномочий, например, запрещать сделки и брать собственную комиссию, какие есть у настоящих банков. Поэтому биткоины работают там, где отказываются работать традиционные структуры. Например, ими можно финансировать общественное движение, которое не нравится государству, поэтому оно запрещает банкам переводить ему деньги. С биткоинами так не выйдет: государство запретит работать одному майнеру, но за работу возьмется другой.
Как разобраться в том, почему биткоины отправляются с задержкой
Со временем на островах стало больше семей, которые записывали сделки, и появились три общественных центра, где сделки оглашались. Когда кто-то покупал лодку, он сначала шел в один центр и оглашал сделку там, потом во второй, дальше в третий. Люди столкнулись с проблемой: если покупатель лодки огласил сделку в одном центре, а продавец пошел в другой центр и огласил там свою сделку, то бухгалтеры во втором центре не могли провести его покупку, поскольку известие о том, что у него появились деньги, до них еще не дошло. Тогда япцы решили записывать все новые сделки в одну большую книгу, чтобы потом какая-то семья проводила все сделки в ней: разбиралась, есть ли у покупателей деньги, чтобы заплатить, и привязывала новую книгу с предыдущими. Семья, которая проводила сделки быстрее всех, объявляла об этом другим семьям и получала плату за работу.
Как это понимать
Семьи — это майнеры, которые рассчитывают хэш и закрывают блоки в блокчейне. Платежи и операции в блокчейне не проходят мгновенно. Они зависают в качестве непроверенных, а потом майнеры собирают их в блок, проверяют, связывают с прошлыми блоками и перебирают числа, чтобы составить хэш.
Как понять работу майнеров
В городе есть множество журналистов, которые работают над завтрашней газетой. Каждый день они собирают сводки и актуальные события. При этом каждый узнает о происшествиях в разное время и в разном порядке. Журналисты проверяют, что события произошли на самом деле, отбрасывают те, которые были опубликованы в прошлых номерах. В городе происходит много разных событий, поэтому они берут в завтрашнюю газету только самые важные, а менее важные переносят в следующие номера. Проблема в том, что завтрашнюю газету готовит множество журналистов, но выпустит ее только один — самый быстрый.
Как это понимать
Журналисты — это майнеры, события — транзакции внутри сети, завтрашняя газета — последний блок в блокчейне, а один день — 10-минутный интервал, за который составляется новый блок. В сети Bitcoin зависает множество непроверенных транзакций. Майнеры собирают самые важные из них (то есть те, к которым прикреплена большая комиссия) и начинают проверять: это новая транзакция или она уже была в прошлом блоке, есть ли у покупателя биткоины на транзакцию. Программы майнеров с помощью перебора чисел шифруют и находят хэш для всех операций и связывают последний блок с предыдущим (тоже с помощью хэша).