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