Цифровое золото: невероятная история Биткойна - [10]
Прикрепленный к письму девятистраничный PDF-файл ясно давал знать, что Сатоши прекрасно осведомлен обо всех предыдущих усилиях по созданию автономных цифровых денег. В своем документе Сатоши цитировал Бека, Вэя Дая и приводил выдержки из нескольких малоизвестных журналов по криптографии. Собрав идеи многих своих предшественников, Сатоши каким-то образом умудрился объединить их в систему, которая радикально отличалась от всего, что было предложено до него.
Вместо того чтобы доверять эмиссию и отслеживание денег центральной организации, как это реализовано в существующей финансовой системе и в DigiCash Чома, Сатоши предложил отслеживать все биткойн-транзакции с помощью общедоступной базы данных, совместно обслуживаемой самими пользователями новых денег.
Впоследствии даже экспертам потребовались месяцы, чтобы разобраться в нюансах работы Биткойна, но базовые элементы системы можно за пару десятков минут объяснить любому человеку. На таком уровне и была написана работа Сатоши, которую впоследствии стали называть официальным документом Биткойна.
Согласно этому документу каждый пользователь Биткойна может создать один или несколько общедоступных биткойн-адресов – аналогов банковских счетов – и по одному закрытому ключу для каждого адреса. Монеты, связанные с конкретным адресом, может потратить только владелец закрытого ключа, соответствующего этому адресу. Закрытый ключ несколько отличается от традиционного пароля, который обычно хранится в некоторой центральной организации, проверяющей, имеет ли пользователь право на доступ к ресурсу. В Биткойне Сатоши задействовал чудеса криптографии с открытым ключом, чтобы уже знакомая нам Алиса могла подписывать свои транзакции, не сообщая никому свой закрытый ключ.
Итак, подписав транзакцию закрытым ключом, Алиса отправляет ее остальным узлам биткойн-сети, которые затем проверяют, действительно ли у Алисы есть монеты, которые она пытается потратить. Они проверяют платежеспособность Алисы, сверяясь с общедоступным журналом всех биткойн-транзакций – так называемым блокчейном, копию которого может хранить у себя каждый узел сети. Убедившись, что по адресу Алисы действительно хранится нужная сумма, компьютеры-узлы подтверждают транзакцию и добавляют ее в список (“блок”) недавних биткойн-транзакций.
Пожалуй, самой сложной частью системы является алгоритм добавления блоков с транзакциями в блокчейн. Он представляет собой что-то вроде соревнования между биткойн-узлами, которое во многом напоминает решение задачи, придуманной Адамом Беком для Hashcash. Компьютер, победивший в конкурсе, получает право записать блок недавних транзакций в блокчейн. Зачем ему эта сомнительная честь? Дело в том, что победитель конкурса также получает в награду новые биткойны, и это единственный способ эмиссии новых биткойнов в системе. Именно награда в виде новых монет мотивирует пользователей направлять вычислительные ресурсы своих компьютеров на обработку биткойн-транзакций.
При возникновении разногласий по поводу того, какой компьютер победил в конкурсе, приоритет отдается блоку, принятому большинством узлов сети. Например, если большинство узлов считает, что в последнем раунде конкурса победила Алиса, но какие-то узлы-диссиденты отдают победу Бобу, сторонники Алисы будут игнорировать блоки от компьютеров, поддержавших Боба, пока те не присоединятся к большинству. Этот поистине демократичный способ принятия решений хорош тем, что он предотвращает махинации со стороны “плохих” узлов, которые могли бы попытаться записать на свои счета много новых биткойнов. Благодаря реализованной в Биткойне защите злоумышленникам, задумавшим неладное, пришлось бы заручиться поддержкой большинства узлов сети.
Решения об изменении ПО, работающего на биткойн-узлах, также принимаются демократически. Любой пользователь может внести изменение в ПО Биткойна (исходный код которого открыт), но изменения вступят в силу только в том случае, если новая версия ПО будет установлена на большинстве компьютеров в сети. Если один компьютер ни с того ни с сего перейдет на другую версию ПО, другие узлы просто станут игнорировать его.
Давайте подытожим сказанное, кратко описав процесс в пяти шагах.
1. Алиса инициирует перевод биткойнов со своего счета, подписав транзакцию своим закрытым ключом и сообщив о ней остальным пользователям сети.
2. Узлы сети убеждаются в том, что по адресу Алисы достаточно средств, и добавляют транзакцию в список (блок) недавних транзакций.
3. Компьютеры-узлы соревнуются за право добавить блок в блокчейн.
4. Компьютер, победивший в конкурсе, удостаивается права добавить блок в блокчейн и получает в награду новые биткойны.
5. Компьютеры составляют новый список неподтвержденных транзакций, и начинается новый раунд конкурса.
Объединение всех этих процессов дает нам нечто, чего никогда ранее не существовало, – финансовую сеть, способную создавать и перемещать деньги без банков, эмитентов кредитных карт, регуляторов и вообще каких бы то ни было центральных организаций. Система спроектирована так, чтобы никто, кроме владельца закрытого ключа, не мог потратить деньги, связанные с конкретным биткойн-адресом. Более того, в любой момент времени существует один и только один общедоступный неизменяемый журнал со сведениями о суммах, принадлежащих каждому участнику системы. Чтобы пользоваться Биткойном, не нужно верить Сатоши, в отличие от DigiCash или доллара, которые вынуждают их пользователей доверять Дэвиду Чому или Федеральному резерву. ПО узлов Биткойна работает на собственных компьютерах пользователей, а написанный Сатоши код открыт, и кто угодно при наличии соответствующих знаний и навыков может проверить, все ли с ним в порядке. Если кому-то из пользователей не нравится что-то в правилах, реализованных в Биткойне, никто не мешает ему изменить правила и попытаться убедить других пользователей следовать им. Пользователи 6иткойн-сети в буквальном смысле являются и клиентами, и владельцами монетного двора и банка. Однако на момент публикации предложения Сатоши ничего этого в реальности еще не существовало. Он лишь вынес на обсуждение описание своей революционной схемы.