+

Блокчейн-букварь, который понял бы даже Джордж Вашингтон (часть 2)

24.03.2018

Для того чтобы лучше понять устройство распределенных реестров и консенсуса, давайте отойдем от контекста компьютеров и цифровых систем и рассмотрим пример из истории. Представьте, что вы перенеслись в 1750 год и оказались в Нью-Йорке. Вы только что сошли с корабля, прибывшего из Лондона. Ваше трехнедельное путешествие через Атлантику было непростым, и после качки, плохой еды и дурнопахнущих соседей по каюте вы счастливы вновь оказаться на суше.

Так случилось, что вы человек небедный, и в кармане у вас лежит весьма ценная бумага – поручение на выплату тысячи фунтов, выданное одним из самых уважаемых банков Лондона. Название его хорошо известно даже жителям самых отдаленных английских колоний, и на вашем чеке стоит официальная печать его головного столичного отделения. В Нью-Йорке вы незамедлительно отправляетесь на поиски состоятельного маклера, имеющего официальные связи с лондонским банком. Банк, в свою очередь, открывает ему кредитную линию в Англии, а маклер в обмен обязуется принимать платежные распоряжения в Нью-Йорке и обналичивать их.

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

Как же так вышло? Как маклер может удостовериться, что ваше поручение до сих пор действительно, и как вы можете ему это доказать, несмотря на его отчаянное нежелание выдавать вам наличные? Эта ситуация как нельзя лучше иллюстрирует тонкости отчетности между людьми (и, между прочим, служит фабулой для сюжета романа Фрэнсиса Спаффорда «Золотой холм». Если вам понравилась идея, обратите внимание на книгу).

В лондонском банке лежит бухгалтерская книга с записью о том, что на вашем счете лежит тысяча фунтов. Тем не менее у маклера этой книги нет, а получение необходимых подтверждений с другого берега Атлантики займет не один месяц. Как же распределить сведения из лондонского гроссбуха без необходимости рассылать письма по каждому запросу? У этой задачи есть два решения.

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

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

А теперь давайте перемотаем пленку на 250 лет вперед. Пересылка сообщений через Атлантику теперь осуществляется гораздо быстрее, однако проблемы совместного использования реестров и проверки счетов все еще остаются актуальными. Сама по себе отправка посланий занимает считаные секунды, однако проблема заключается в большом количестве участников процесса, занятых одновременно несколькими сделками. Наш сценарий от 1750 года подразумевал участие всего четырех человек – вас, банка, маклера и капитана второго корабля. За месяц к маклеру попадало считанное количество платежных поручений, поэтому он мог потратить время на проведение подобных транзакций. Сегодня на планете живут миллиарды людей, и теоретически каждый из них может совершать тысячи транзакций в день. Кто выступает в роли контроллеров? Кому принадлежат реестры и кто решает, кому предоставляются учетные записи в них? Кто может запретить тому или иному лицу участвовать в глобальной финансовой системе из-за политических событий, которые произошли задолго до его рождения? Какие альтернативные системы мы могли бы создать для решения этих проблем?

Технология блокчейна обеспечивает возможность изучить эти вопросы вне структуры традиционных систем с единственным источником достоверных данных. Она сочетает в себе две функции, которые мы уже рассмотрели на историческом примере – консенсус и криптографическую проверку. Вместе они формируют децентрализованную систему, где источниками истины могут быть многие участники процесса, имеющие общие стимулы к определению единственной истины и фиксирующие ее в постоянных реестрах. Достоверные сведения сохраняются в блоках (block) с уникальными идентификационными данными, а постоянные и совместно согласованные записи называются цепочками (chain), где каждый блок связан с другим во избежание нарушения целостности. Отсюда и название блокчейн (blockchain).

Несмотря на то что все рассмотренные до этого примеры были связаны с процессом перевода денег, не забывайте, что на самом деле суть технологии заключается в подотчетности людей друг перед другом. Учетные записи и значения, отраженные в распределенных реестрах, необязательно должны быть связаны с валютными транзакциями: они могут быть использованы в любой ситуации, где одна или несколько сторон признают тот или иной факт о другой стороне в сети.
На практике в блокчейнах чаще всего записываются сведения двух категорий – подтверждения собственности и обязательства. То, какую из них поддерживает тот или иной отдельно взятый блокчейн, зависит от его протокола.
(Продолжение следует)