Как устроено разбор
Как работает блокчейн: блоки, хеш, цепочка и майнинг простыми словами
Блокчейн — это общая журнальная запись, которую независимо хранят тысячи компьютеров. Записи собираются в блоки, каждый блок содержит хеш предыдущего и потому связан с ним в цепочку. Изменить старую запись, не переписав всю цепочку и не убедив большинство участников, практически невозможно.
Редакция «Как устроено», разборы по первоисточникам 6 мин чтения
Моё избранноеПредставьте деревню, где долги записывают не в одну тетрадь у старосты, а в тетради у каждого жителя. Когда Лена одалживает Диме пятьсот монет, она громко объявляет об этом на площади, и все дописывают строку в свои тетради. Пока у всех записи совпадают, никто не сможет вписать себе лишнее. Если Дима захочет стереть свой долг, ему придётся исправить страницу у сотен соседей, а они сверят её с остальными и заметят подделку. Блокчейн устроен похоже, только тетради — это компьютеры, а «громкое объявление» — рассылка данных по сети. Ниже — из чего состоит блокчейн, как в него попадает запись, как сеть решает, чья запись верна, и что он не умеет. Материал объясняет технологию и не является финансовой рекомендацией.
Из чего состоит блокчейн
Слово переводится как «цепочка блоков». Главные элементы удобно разобрать в таблице.
| Элемент | Что это |
|---|---|
| Транзакция | Одна запись: например, «Лена передала Диме 5 единиц» или «сертификат выдан такому-то» |
| Блок | Пачка транзакций за небольшой промежуток времени, оформленная как единое целое |
| Хеш | Короткий цифровой отпечаток данных; из отпечатка нельзя восстановить данные |
| Хеш предыдущего блока | Поле в блоке, которое ссылается на предыдущий блок и связывает их в цепочку |
| Метка времени | Когда блок был создан |
| Узел | Компьютер, который хранит копию цепочки и проверяет новые записи |
| Открытый и закрытый ключи | Пара, которая работает как адрес и подпись: закрытым ключом владелец подписывает транзакцию, открытым все проверяют подпись |
| Кошелёк | Программа, где хранятся ключи и которая подписывает операции |
| Консенсус | Правила, по которым узлы решают, какой блок считать следующим |
Слово хеш стоит пояснить. Хеш-функция берёт любой текст и выдаёт строку фиксированной длины, а для распространённого алгоритма SHA-256, который использует биткоин, это 64 символа. Два свойства делают её полезной. Одинаковые данные всегда дают один и тот же хеш. А малейшее изменение данных, даже одной запятой, меняет хеш до неузнаваемости. Обратно из хеша данные не собрать.
Как в блокчейн попадает запись
- Участник создаёт транзакцию. Например, переводит другому участнику часть средств.
- Он подписывает её закрытым ключом. Подпись доказывает, что запись сделал владелец, и её нельзя подделать, не зная ключа.
- Транзакция рассылается по сети. Узлы проверяют подпись и достаточность средств и складывают допустимые записи в очередь.
- Записи собирают в блок. Специальный участник (майнер или валидатор) берёт пачку транзакций, добавляет метку времени и хеш предыдущего блока.
- Сеть проверяет и принимает блок. Другие узлы убеждаются, что всё правильно, и добавляют блок к своей копии цепочки.
- Запись считается подтверждённой. Чем больше блоков добавлено сверху, тем труднее её отменить.
Почему цепочку трудно подделать
Каждый блок хранит хеш предыдущего. Допустим, злоумышленник изменил сумму в блоке пятидесятом. Хеш этого блока сразу стал другим, а значит, ссылка на него в пятьдесят первом блоке больше не совпадает. Придётся пересчитать хеш блока 51, потом 52, потом все остальные. В сети, где новые блоки добавляются постоянно и у тысяч участников хранятся честные копии, догнать честную цепочку и убедить большинство принять переписанную практически невозможно.
Возьмём цепочку из трёх блоков. В первом записано «Лена передала Диме 5 единиц», и у него есть собственный хеш. Во втором записано «Дима передал Кире 2 единицы» и хеш первого блока, а хеш второго блока считается уже от всего его содержимого, включая эту ссылку. То же в третьем. Если Дима исправит первую запись на «Лена передала Диме 50 единиц», хеш первого блока изменится, и второй блок будет ссылаться на несуществующий отпечаток. Каждый честный узел сразу увидит несовпадение и отвергнет подделку.
Так работает защита от двойной траты: нельзя отдать одну и ту же монету двум людям, потому что общий журнал покажет, что она уже потрачена.
Майнинг и валидаторы
Остаётся вопрос: кто имеет право добавить следующий блок, если участникам нельзя доверять? Для этого придуманы способы консенсуса.
Доказательство работы (proof of work), майнинг. Майнеры соревнуются в решении вычислительной задачи: подобрать число, при котором хеш блока получится с определённым количеством нулей в начале. Быстрого способа нет, компьютеры перебирают варианты миллиарды раз в секунду. Тот, кому повезло, публикует блок, остальные проверяют ответ мгновенно и принимают. Сложность подстраивается, чтобы блоки появлялись с заданной периодичностью: у биткоина примерно раз в десять минут. За труд победитель получает вознаграждение. Цена метода — огромный расход электроэнергии на вычисления.
Доказательство доли (proof of stake), валидаторы. Здесь нет перебора: валидаторы вносят залог в сети, а право предложить блок выбирается с учётом размера залога. Нечестному валидатору грозит потеря части залога. Это намного экономнее по энергии. К такой схеме крупная сеть Ethereum перешла в сентябре 2022 года.
Где блокчейн применяют, кроме денег
Идея общей неизменяемой записи оказалась полезной не только для платежей. В блокчейне пробуют вести реестры прав и владения, учёт происхождения товаров по цепочке поставок, регистрацию цифровых документов и подписей, голосования внутри организаций. Общее условие одно: несколько сторон, которые не хотят зависеть от одного хранителя данных, и важна общая история, которую нельзя тихо переписать. Там, где хранитель один и ему все доверяют, блокчейн только усложнит систему.
Чем отличается то, что путают
Блокчейн и криптовалюта. Блокчейн — технология учёта, криптовалюта — одно из применений. Первой сетью с блокчейном стал биткоин: его описал автор под псевдонимом Сатоши Накамото в 2008 году, а сеть заработала в 2009.
Публичный и частный блокчейн. В публичном любой может присоединиться и проверить записи. В частном участвуют только допущенные организации, например банки или логистические компании.
Блокчейн и база данных. Обычная база быстрее, дешевле и позволяет исправлять ошибки. Блокчейн жертвует скоростью и удобством ради того, чтобы никто не мог единолично менять историю.
Блокчейн и деньги. Как устроены обычные деньги и биржи, можно прочитать в статье про банковскую систему России и как работает биржа.
Интересные факты
- Почему нельзя «отменить» перевод. Раз запись добавлена и подтверждена, ссылки на неё зашиты в следующие блоки. Вернуть перевод может только тот, кто его получил.
- Почему потеря ключа — потеря доступа. Закрытый ключ нельзя восстановить у службы поддержки: в сети нет центра, которому можно пожаловаться.
- Почему запись в блокчейне не гарантирует правды. Сеть проверяет подписи и порядок, но не то, соответствует ли запись реальности. Если внести в неё неверные данные, они останутся навсегда.
- Почему майнинг требует специального железа. Задача сводится к бесконечному перебору чисел, и здесь выигрывает тот, кто перебирает быстрее. Поэтому в сети биткоина работают специальные устройства, созданные только для одного вычисления, а обычный домашний компьютер шансов не имеет и почти не сможет соревноваться с ними.
- Почему у мошенников блокчейн любят. Из-за необратимости переводов и отсутствия центра обманутому человеку трудно вернуть деньги. Поэтому самый частый источник потерь — не взлом цепочки, а обман пользователей.
Что блокчейн не умеет
- Не делает систему быстрой. Каждую запись проверяют многие узлы, поэтому пропускная способность ниже, чем у обычных платёжных систем.
- Не защищает от ошибок ввода и мошенничества вокруг. Фишинговые сайты, поддельные кошельки, невыгодные обещания остаются угрозами.
- Не исправляет ошибки в смарт-контрактах. Написанная программа выполняется как есть.
- Требует внимательности. Ключи надо хранить надёжно, а перед любой операцией с деньгами понимать её риски: курсы могут резко меняться, а решения о вложениях каждый принимает сам. Технология сама по себе не гарантирует ни прибыли, ни защиты от обмана.
Вопросы
Блокчейн и биткоин — это одно и то же?
Нет. Блокчейн — способ хранить и защищать записи. Биткоин — первая криптовалюта, которая использует такой способ. Технологию применяют не только для денег.
Можно ли взломать блокчейн?
Изменить прошлую запись в большой публичной сети очень трудно, потому что нужно переписать все последующие блоки быстрее, чем сеть добавляет новые. Слабые места чаще в другом: в кошельках, биржах, ошибках смарт-контрактов, обмане пользователей.
Что такое смарт-контракт?
Программа, которая хранится в блокчейне и срабатывает автоматически, когда выполнены заданные условия. Она выполняется по написанным правилам, поэтому ошибка в коде может стоить денег.
Нужен ли блокчейн для обычной базы данных?
Обычно нет. Если данными управляет одна организация, обычная база быстрее и дешевле. Блокчейн имеет смысл там, где участникам нельзя доверять один другому и нужна общая неизменяемая история.
Автор
разборы по первоисточникам
Пишем по учебникам, исследованиям и клиническим рекомендациям, источники под каждым материалом. Нашли ошибку — напишите на redakciya@kakustroeno.ru, исправим.