18+
реклама
18+
Бургер менюБургер меню

Андрей Остальский – Новая история денег. От появления до криптовалют (страница 5)

18

Вспоминают еще и логическую задачу, так называемую «проблему византийских генералов». Представьте себе: большое число дивизий, каждая со своим генералом во главе, готовится к наступлению, от которого зависит, уцелеет ли вся византийская армия. Но некоторые из этих генералов, вполне возможно, предатели. Так вот, должна в теории существовать такая система связи между всеми командирами и главнокомандующим, которая подстрахует, не даст предателям погубить всю цепь. Даже если предатель — сам главком! Но ведь для решения этой задачи необходим математический алгоритм, система BFT, «Византийской отказоустойчивости».

Доверие, основанное на недоверии: присматривающие друг за другом, не доверяющие друг другу византийские генералы — они же участники криптовалютной сети, они же ноды. Эта задача решается с помощью технологии блокчейна. Пытаясь объяснить, что это за зверь, чаще всего приводят сравнение с книгой. У каждого участника сети Биткоина есть своя собственная, но идентичная всем другим копия этой книги. Каждый раз, когда биткоины переходят из рук в руки, во всех до единой копиях появляется запись об этой транзакции. Никто на всем белом свете, даже сам изобретатель Биткоина, ни при каких условиях не может эти записи изменить, ведь у системы нет администратора, никто ее не контролирует. Она построена на сложной математике, благодаря которой биткоин крайне трудно, почти невозможно, подделать или потратить дважды.

Каждый, кто пользуется Microsoft Office, сталкивается время от времени с ситуацией, когда возникающий на экране лэптопа или монитора файл открывается с заголовком Read only («Только для чтения»). Ни одной буковки или запятой в тексте изменить нельзя, сколько ни старайся. Но есть возможность кликнуть на команду Enable editing («Разрешить редактирование»), и тогда уже можно сколько угодно вносить любые изменения. Представьте себе, что функция, разрешающая редактирование, отключена. Тогда тот файл останется неизменным. Так вот, в блокчейне эта функция не просто выключена, а уничтожена. Все регистрационные записи как бы имеют статус «Только для чтения» — для всех участников одноранговой сети.

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

Очередной блок занимает место впереди цепи (часто пишут — позади, но это одно и то же: с какой стороны смотреть. Но все же цепь, разрастаясь, движется во времени вперед, в будущее, а не назад, в прошлое). В этом новом блоке содержится информация о всех предыдущих транзакциях, и таким образом создается неразрывная цепочка, которую, соответственно, и называют блокчейном, ведь «чейн» (chain) — по-английски «цепь». Одна из аналогий: ваш организм на клеточном уровне помнит все, что с ним было, даже если все клетки вашего тела поменялись (а ведь это происходит каждые семь лет).

В случае блокчейна вся эта информация доступна всем участникам. Вернее, не вся — кроме приватных ключей, которые хранят для вас ваше право на владение биткоинами, произведенными или купленными. Сложно? Попробую предложить метафору: представьте себе гигантский ковер, на котором каждый участник вышивает свою строчку. Каждый может видеть всю вырисовывающуюся в итоге картину в целом, но не может знать, какие именно нитки и в какой последовательности применял и какой иголкой шил его «коллега», какие строчки принадлежат только ему и никому другому, это остается тайной. Метафора слегка хромает? Ну разумеется, как и всякое сравнение. И все же, мне кажется, дает некое представление о сути системы.

Но тут возникает роковое, на первый взгляд, противоречие: с одной стороны, необходимо иметь запись о всех транзакциях, которую могли бы контролировать все участники (видеть ковер в целом и все итоговые стежки, читать все страницы в своей электронной копии «гроссбуха»); но, с другой стороны, индивидуальную конфиденциальную информацию, дающую доступ к деньгам, надо надежно защитить от всех, в том числе и участников системы. Как же это сделать? На помощь приходит гениальное открытие — хеш-функция (хеширование).

Рискну сказать, что хеширование — это особый вид шифрования, хотя подозреваю, что математики могут возражать против использования этого слова в данном контексте. Действительно, строго говоря, это нечто другое: ведь каждый шифр, независимо от его сложности, теоретически может быть расшифрован, но не хеш-функция, она работает только в одну сторону. Это сложный алгоритм, который превращает любое (практически бесконечное) количество информации в буквенно-цифровой шестнадцатеричный код — хеш-сумму. Меня особенно поражает то, что можно хешировать как полный текст «Войны и мира», так и любые числа, например 123, или даже одну-единственную какую-нибудь цифру, и получить похожую по внешнему виду строку, что-то вроде вот этого:

c3xс2483p0b2923820dcc509a6f7549b

Совершенно невозможно угадать, что такой набор 32 знаков означает: или все перипетии великой исторической драмы, или какую-то цифру, или вообще ничего. Но! Если изменить в тексте романа хоть одну (!) букву, то и этот его хешированный «итог» тут же изменится. При этом вы никогда не сможете произвести вычисление в противоположную сторону, то есть невозможно превратить хеш-сумму обратно в роман. Но можно доказать, что этот на вид бессмысленный и случайный набор цифр и букв «принадлежит» или соответствует «Войне и миру». Между ними существует некая неразрывная, роковая, почти мистическая связь.

Вот еще одна метафора: хеш-сумма подобна отпечатку пальца, по которому можно точно определить личность. Но вы не сможете по нему узнать ни размер пальца, ни форму ногтя, и тем более ничего он вам не скажет о цвете глаз, росте, весе и поле владельца пальца. Личность удостоверит надежно. Но не даст вам доступа к чувствительной личной информации. Точно так же транзакции записываются в сети, чтобы все участники могли их проверить, но при этом частные коды биткоинов надежно защищены. Что-то похожее на хеширование происходит в онлайн-банкинге: компьютеру банка не разрешается знать ваш пароль, но он хранит полученное с помощью алгоритма его производное и может проверить по нему, что это именно вы, а не кто-то другой. Это своего рода «электронный отпечаток» вашего «электронного пальца», и он позволяет надежно удостоверить вашу личность.

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

Некоторые полагают, что история хеширования восходит к 1610 году, когда Галилео Галилей зашифровал свое сообщение о наблюдении колец Сатурна. Он хотел «застолбить» открытие за собой, не выдавая раньше времени его сути. Записал фразу: Smaismrmilmepoetaleumibunenugttauiras.

Пришло время, и он сделал достоянием гласности оригинал: Altissimum planetam tergeminum obseruaui. То есть, в переводе с латыни, «Высочайшую планету тройною наблюдал». Что, конечно, было пока еще довольно сырым, невнятным наблюдением, но то, что Сатурн — необычная планета, было установлено, и начало ее исследованию положено. Но для истории криптографии важнее, что это был пример своеобразной хеш-суммы. Только, разумеется, на выходе она получилась не фиксированной длины и тем более не шестнадцатеричной. Но, по сути, близко. Или прочитайте такую строчку: ааааааа, ссссс, d, еееее, g, h, iiiiiii, lllll, mm, nnnnnnnnn, oooo, pp, q, rr, s, ttttt, uuuuu. Механизм алгоритма здесь предельно простой: все буквы зашифрованной фразы расставлены по алфавиту. Но мыслимо ли ее расшифровать, вычислить в обратную сторону? Нет, практически невозможно. Но это как раз и есть способ получить доказательство связи с исходной фразой, но так, чтобы угадать ее нельзя было. Это и есть суть хеширования. А исходная фраза была такая: Annulo cingitur, tenui plano, nusquam cohaerente, ad eclipticam inclinator. То есть «Окружен кольцом тонким, плоским, нигде не подвешенным, наклоненным к эклиптике». И речь шла о все том же Сатурне и его кольцах, с которыми более толково разобрался голландский физик, астроном и изобретатель Христиан Гюйгенс, почти полвека спустя продолживший дело Галилея.

В системе Биткоина транзакции записываются в блок, хешированная сумма которого входит в новый блок, будто цепью прикрепляя его к предыдущему. Получается блокчейн. Как тот самый ковер, на котором каждый участник вышивает свои строчки. Или книга, или каменная плита с выбитыми на ней записями. Опять же результат — у всех на виду, и его не изменить.