Глава 3. Блокчейн: Машина доверия, или как работает магия

Давайте забудем на время о сложных терминах вроде «криптографическое хэширование» и «асимметричное шифрование». Представим себе самую простую ситуацию.

Есть небольшая деревня, где живут 10 человек: Анна, Борис, Виктор, Галина и так далее. У них нет банка, но им нужно как-то вести учет, кто кому сколько должен.

Аналогия: общая деревенская тетрадь

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

И тут мудрый Виктор предлагает гениальное решение: «А давайте такая тетрадь будет у каждого из нас!».

Распределенный реестр (Distributed Ledger). Теперь у каждого из 10 жителей есть абсолютно идентичная копия тетради. Когда Борис хочет перевести 5 монет Виктору, он громко объявляет на всю деревню: «Я, Борис, перевожу 5 монет Виктору!».

Транзакция и проверка. Все остальные жители слышат это, достают свои тетради, проверяют, есть ли у Бориса эти 5 монет, и если все в порядке, делают у себя одинаковую запись: «Борис -> Виктор: 5 монет».

Неизменность. Теперь эта запись есть в 10 тетрадях. Если Борис захочет схитрить и стереть эту запись в своей тетради, это ничего не даст. У остальных 9 жителей запись останется. Чтобы изменить прошлое, ему придется вломиться в дома всех соседей и одновременно внести правки во все тетради, что практически невозможно.

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

А теперь добавим немного технических деталей, чтобы наша аналогия стала точнее.

Блоки и цепь (Blocks and Chain)

Записей в тетради становится все больше. Чтобы было удобнее, жители решают записывать транзакции не по одной, а целыми страницами. Как только страница заполняется (скажем, 10 записей), они ее «запечатывают» и кладут в архив, а для новых записей берут новую страницу.

В блокчейне эти «страницы» называются блоками. Каждый блок содержит в себе пачку транзакций. Когда блок заполняется, он добавляется в конец цепочки.

А как эти блоки связаны? Каждый новый блок содержит в себе не только новые транзакции, но и уникальный «отпечаток пальца» предыдущего блока. Этот отпечаток называется хэш.

Хэш: цифровой отпечаток пальца

Представьте себе волшебную мясорубку. Вы можете закинуть в нее что угодно – хоть роман «Война и мир», хоть одно слово «привет» – а на выходе всегда получите уникальный набор символов фиксированной длины, например: 0a4d5e.... Это и есть хэш.

У него два ключевых свойства:

Если изменить в исходных данных хотя бы одну букву (например, написать «Привет» с большой буквы), хэш на выходе изменится кардинально.

Зная хэш, невозможно восстановить исходные данные. Мясорубка работает только в одну сторону.

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

Децентрализация: нет главного

В нашей деревне было 10 жителей. В сети Биткоина – десятки тысяч «жителей» (компьютеров-узлов, или нод), разбросанных по всему миру. У каждого из них – полная копия этой «тетради». Нет центрального сервера, который можно было бы атаковать или отключить. Пока работает хотя бы один узел, сеть живет. Это и есть децентрализация – сердце блокчейна.

Консенсус: как все договариваются?

Остался один вопрос. Кто имеет право «запечатать» очередной блок с транзакциями и добавить его в цепь? Ведь за это полагается награда (именно так «добываются», или «майнятся», новые биткоины).

Загрузка...