Книга: Цифровое золото: невероятная история Биткойна
Глава 2
Глава 2
1997 год
Создание денег нового типа может показаться странным и бессмысленным начинанием. Большинство людей в современном мире даже не могут представить себе деньги, отличные от выпускаемых государством купюр и монет. Право печатать деньги – один из фундаментальных признаков суверенного государства, пусть даже такого крошечного, как Ватикан или Микронезия.
Однако так было не всегда. До гражданской войны в США почти все американские деньги выпускали частные банки, что создавало сумасшедшую финансовую мозаику из конкурирующих купюр, которые могли потерять всю свою ценность в случае банкротства банка-эмитента. Многие государства в те времена вообще использовали во внутренней торговле монеты других стран.
Еще раньше люди пробовали использовать в качестве денег золото, ракушки и даже каменные диски. Поиск лучших форм денег всегда в той или иной мере был связан со стремлением изобрести более точный и надежный способ оценки стоимости окружающих нас вещей – единую метрику, которая позволяла бы с легкостью сравнивать ценность поленницы дров, часа работы плотника и написанного художником пейзажа. Как сказал социолог Найджел Додд, хорошие деньги “преобразуют качественные различия вещей в количественные различия, позволяя обмениваться ими”.
В своих исследованиях шифропанки пытались довести стандартизирующую функцию денег до логического завершения, чтобы создать универсальные деньги, которые можно было бы тратить везде, не обменивая на новые бумажки на каждой границе. Шифропанки прекрасно знали свойства, присущие успешным деньгам. Хорошие деньги должны быть долговечными (только представьте себе доллар, напечатанный на салфетке), портативными (представьте монету весом в 20 килограммов), делимыми (если бы у нас были только стодолларовые купюры и не было монет, экономике тут же пришел бы конец), единообразными (если бы все купюры выглядели по-разному, пользоваться ими было бы невозможно) и редкими (если бы купюры было легко скопировать, они не имели бы никакой ценности).
И все же, помимо всех этих качеств, для создания денег всегда требовалось что-то неуловимое, а именно – доверие со стороны использующих их людей. Чтобы фермер был готов принимать доллары за выращенный урожай, он должен верить в то, что они не утратят ценность через месяц или год. Как показало время, наиболее важным свойством денег является не то, кто их выпустил, и даже не то, насколько они портативны или долговечны, а количество людей, готовых их использовать.
В XX веке доллар получил и сохранил статус глобальной валюты во многом потому, что большинство людей в мире считали, что США и их финансовая система имеют лучшие шансы выстоять в любых кризисах, чем другие страны. Это объясняет, почему многие люди предпочитают хранить свои сбережения в долларах.
Связь денег с доверием наделяет людей, уполномоченных создавать и защищать деньги, почти религиозным статусом. Само слово 42“деньги” (9“money”) происходит от имени римской богини Юноны Монеты, в храме которой монеты и выпускались. В США к руководителям Федерального резерва, которые управляют денежной системой, относятся, как к оракулам, – сотни, если не тысячи, экспертов анализируют их заявления так же тщательно, как когда-то пророки изучали внутренности жертвенных животных. Чиновники Федорезерва настолько влиятельны и независимы, что им могли бы позавидовать любые госчиновники, а защита национальной валюты США доверена специально созданному агентству, Секретной службе, которой лишь намного позже в довесок поручили еще и охранять президента США.
Самый известный глава Федерального резерва, Алан Гринспен, знал, что деньги могут создавать не только центро-банки. В 1996 году, когда шифропанки с головой погрузились в свои эксперименты, Гринспен заявил, что технологическая революция может привести к возврату частных денег и что он не видит в этом ничего плохого.
“Вполне возможно, что в ближайшем будущем эмитенты электронных платежных обязательств, таких как карты предоплаты или «цифровые наличные», смогут создать специализированные корпорации с надежными балансами и открытыми кредитными рейтингами”.
В годы, последовавшие за этим заявлением Гринспена, мир шифропанков буквально бурлил от кипевшей в нем активности. В 1997 году британский исследователь Адам Бек опубликовал в почтовой рассылке для шифропанков описание проекта Hashcash, который решил проблему неограниченного копирования цифровых денег. Позднее идея Бека стала важным элементом Биткойна.
Проект Бека был основан на еще одной концепции из мира криптографии, а именно – на криптографических хеш-функциях. Так называют математические уравнения, которые легко решить, но почти невозможно восстановить, зная ответ. Например, числа 2903 и 3571 можно легко перемножить с помощью карандаша и бумаги, но чтобы вручную разложить число 10 366 613 на эти множители, нужно по-настоящему постараться. Именно этот принцип лег в основу Hashcash, хотя задачи, назначаемые узлам Hashcash, были гораздо сложнее, чем нахождение множителей числа 10 366 613. Когда компьютер, перепробовав множество догадок, находил в итоге правильный ответ к задаче Hashcash, он зарабатывал некоторое количество монет.
Применение такого алгоритма стало важным шагом потому, что он гарантировал редкость Hashcash. Как мы уже выяснили, редкость – важное свойство успешных денег, но исключить дублирование файлов не так-то просто, ведь именно легкостью копирования данных славится цифровой мир. Для создания каждого нового блока Hashcash компьютер должен был выполнять много работы, что дало новому алгоритму название “подтверждение работы” (именно этот процесс позднее станет одной из главных инноваций в Биткойне). Главная проблема системы Бека состояла в том, что каждую единицу Hashcash можно было использовать лишь однократно. Из-за этого каждый участник должен был создавать новые монеты всякий раз, когда он хотел совершить какую-то операцию. Другой проблемой было то, что пользователь, располагающий большой вычислительной мощностью, мог создавать для себя все больше и больше единиц Hashcash, сокращая ценность каждой монеты.
Через год после выпуска программы Бека два участника шифропанковского сообщества независимо друг от друга разработали цифровые токены с подтверждением работы, которые можно было использовать повторно. Одну из систем, названную “bit gold”, изобрел Ник Сабо, эксперт по безопасности. Он поделился своими идеями с единомышленниками вроде Хэла Финни в 1998 году, но не попытался реализовать проект на практике. Другую систему, получившую название “b-money”, придумал американец по имени Вэй Дай. Хэл тоже создал собственный вариант подобной системы, но не стал напрягать фантазию и назвал ее “RPOW” (“повторно используемые подтверждения работы”).
Обсуждение этих идей в сообществе для шифропанков и похожих группах иногда напоминало перебранки конкурентов, пытающихся обойти друг друга в своеобразном состязании. Особенно усердствовал Сабо, который находил множество изъянов в чужих предложениях, чрезмерно, по его мнению, привязанных к специализированному компьютерному оборудованию. Однако все шифропанки испытывали глубокое уважение друг к другу, и, несмотря на многие неудачные эксперименты, их амбиции вскоре вышли за пределы создания анонимных денег. Бек, Сабо, Финни и другие участники стали уделять больше внимания дефектам финансовой системы, взимающей огромные комиссии за любые транзакции и при этом неспособной быстро перевести деньги в другую страну.
“Мы хотим создать полностью анонимные средства обмена с минимальной комиссией, – написал Бек вскоре после выпуска Hashcash. – Если у нас это получится, банки постигнет участь динозавров, чего они в полной мере заслужили”.
В 1999 году Нил Стивенсон опубликовал книгу “Криптономикон”, и у шифропанков, наконец, появился идеал, на который они могли ориентироваться. В этом романе, получившем в хакерском сообществе культовый статус, описан теневой мир со своеобразным цифровым золотом, позволяющим людям сохранять свою личность в тайне. Роман включает подробные описания криптографических схем, благодаря которым это возможно.
Однако в реальном мире эксперименты шифропанков были гораздо менее успешными. Ни у кого не получалось создать деньги, не полагаясь на центральные организации, которые, как все уже прекрасно поняли, подвержены кризисам, сбоям в работе и могут быть уничтожены государством. Со временем обозначилась и более фундаментальная проблема – как убедить людей использовать и ценить эти цифровые токены. К моменту, когда на сцене появился Сатоши Накамото, многие потенциальные сторонники Биткойна уже устали от неудач. Создание цифровых денег стало казаться такой же несбыточной мечтой, как преобразование свинца в золото.
* * *
В августе 2008 года Сатоши написал Адаму Беку письмо, в котором просил его взглянуть на краткое описание чего-то под названием “Биткойн”. Бек не слышал ни о Биткойне, ни о Сатоши и, по большому счету, проигнорировал письмо, но все же указал Сатоши на другие эксперименты шифропанков, которые тот мог пропустить.
Шестью неделями позже, на Хэллоуин, Сатоши отправил более подробное описание своего проекта в специализированную академическую рассылку, посвященную криптографии. Рассылка для шифропанков к тому времени приказала долго жить, но большинство ее участников следили за криптографическими новостями. В типичном для сообщества стиле Cатоши ничего не сообщил о себе, а спрашивать об этом среди криптографов не принято – для них важны идеи, а не личности высказывающих их людей. В своем письме, написанном сухим лаконичным языком, Сатоши смело заявлял, что решил многие из проблем, препятствовавших созданию универсальных денег. “Я работаю над электронной пиринговой денежной системой, не нуждающейся в доверенных сторонних организациях”, – так начиналось письмо.
Прикрепленный к письму девятистраничный PDF-файл ясно давал знать, что Сатоши прекрасно осведомлен обо всех предыдущих усилиях по созданию автономных цифровых денег. В своем документе Сатоши цитировал Бека, Вэя Дая и приводил выдержки из нескольких малоизвестных журналов по криптографии. Собрав идеи многих своих предшественников, Сатоши каким-то образом умудрился объединить их в систему, которая радикально отличалась от всего, что было предложено до него.
Вместо того чтобы доверять эмиссию и отслеживание денег центральной организации, как это реализовано в существующей финансовой системе и в DigiCash Чома, Сатоши предложил отслеживать все биткойн-транзакции с помощью общедоступной базы данных, совместно обслуживаемой самими пользователями новых денег.
Впоследствии даже экспертам потребовались месяцы, чтобы разобраться в нюансах работы Биткойна, но базовые элементы системы можно за пару десятков минут объяснить любому человеку. На таком уровне и была написана работа Сатоши, которую впоследствии стали называть официальным документом Биткойна.
Согласно этому документу каждый пользователь Биткойна может создать один или несколько общедоступных биткойн-адресов – аналогов банковских счетов – и по одному закрытому ключу для каждого адреса. Монеты, связанные с конкретным адресом, может потратить только владелец закрытого ключа, соответствующего этому адресу. Закрытый ключ несколько отличается от традиционного пароля, который обычно хранится в некоторой центральной организации, проверяющей, имеет ли пользователь право на доступ к ресурсу. В Биткойне Сатоши задействовал чудеса криптографии с открытым ключом, чтобы уже знакомая нам Алиса могла подписывать свои транзакции, не сообщая никому свой закрытый ключ.
Итак, подписав транзакцию закрытым ключом, Алиса отправляет ее остальным узлам биткойн-сети, которые затем проверяют, действительно ли у Алисы есть монеты, которые она пытается потратить. Они проверяют платежеспособность Алисы, сверяясь с общедоступным журналом всех биткойн-транзакций – так называемым блокчейном, копию которого может хранить у себя каждый узел сети. Убедившись, что по адресу Алисы действительно хранится нужная сумма, компьютеры-узлы подтверждают транзакцию и добавляют ее в список (“блок”) недавних биткойн-транзакций.
Пожалуй, самой сложной частью системы является алгоритм добавления блоков с транзакциями в блокчейн. Он представляет собой что-то вроде соревнования между биткойн-узлами, которое во многом напоминает решение задачи, придуманной Адамом Беком для Hashcash. Компьютер, победивший в конкурсе, получает право записать блок недавних транзакций в блокчейн. Зачем ему эта сомнительная честь? Дело в том, что победитель конкурса также получает в награду новые биткойны, и это единственный способ эмиссии новых биткойнов в системе. Именно награда в виде новых монет мотивирует пользователей направлять вычислительные ресурсы своих компьютеров на обработку биткойн-транзакций.
При возникновении разногласий по поводу того, какой компьютер победил в конкурсе, приоритет отдается блоку, принятому большинством узлов сети. Например, если большинство узлов считает, что в последнем раунде конкурса победила Алиса, но какие-то узлы-диссиденты отдают победу Бобу, сторонники Алисы будут игнорировать блоки от компьютеров, поддержавших Боба, пока те не присоединятся к большинству. Этот поистине демократичный способ принятия решений хорош тем, что он предотвращает махинации со стороны “плохих” узлов, которые могли бы попытаться записать на свои счета много новых биткойнов. Благодаря реализованной в Биткойне защите злоумышленникам, задумавшим неладное, пришлось бы заручиться поддержкой большинства узлов сети.
Решения об изменении ПО, работающего на биткойн-узлах, также принимаются демократически. Любой пользователь может внести изменение в ПО Биткойна (исходный код которого открыт), но изменения вступят в силу только в том случае, если новая версия ПО будет установлена на большинстве компьютеров в сети. Если один компьютер ни с того ни с сего перейдет на другую версию ПО, другие узлы просто станут игнорировать его.
Давайте подытожим сказанное, кратко описав процесс в пяти шагах.
1. Алиса инициирует перевод биткойнов со своего счета, подписав транзакцию своим закрытым ключом и сообщив о ней остальным пользователям сети.
2. Узлы сети убеждаются в том, что по адресу Алисы достаточно средств, и добавляют транзакцию в список (блок) недавних транзакций.
3. Компьютеры-узлы соревнуются за право добавить блок в блокчейн.
4. Компьютер, победивший в конкурсе, удостаивается права добавить блок в блокчейн и получает в награду новые биткойны.
5. Компьютеры составляют новый список неподтвержденных транзакций, и начинается новый раунд конкурса.
Объединение всех этих процессов дает нам нечто, чего никогда ранее не существовало, – финансовую сеть, способную создавать и перемещать деньги без банков, эмитентов кредитных карт, регуляторов и вообще каких бы то ни было центральных организаций. Система спроектирована так, чтобы никто, кроме владельца закрытого ключа, не мог потратить деньги, связанные с конкретным биткойн-адресом. Более того, в любой момент времени существует один и только один общедоступный неизменяемый журнал со сведениями о суммах, принадлежащих каждому участнику системы. Чтобы пользоваться Биткойном, не нужно верить Сатоши, в отличие от DigiCash или доллара, которые вынуждают их пользователей доверять Дэвиду Чому или Федеральному резерву. ПО узлов Биткойна работает на собственных компьютерах пользователей, а написанный Сатоши код открыт, и кто угодно при наличии соответствующих знаний и навыков может проверить, все ли с ним в порядке. Если кому-то из пользователей не нравится что-то в правилах, реализованных в Биткойне, никто не мешает ему изменить правила и попытаться убедить других пользователей следовать им. Пользователи 6иткойн-сети в буквальном смысле являются и клиентами, и владельцами монетного двора и банка. Однако на момент публикации предложения Сатоши ничего этого в реальности еще не существовало. Он лишь вынес на обсуждение описание своей революционной схемы.
Несмотря на все описанные в документе инновации, за неделю, прошедшую после его публикации, он получил всего лишь два отзыва, и оба отрицательных. Джон Левин, известный эксперт в вопросах компьютерной безопасности, заявил, что хакеры-злоумышленники легко смогут подделать блокчейн. “У хороших ребят гораздо меньше вычислительной мощности, чем у плохих, – написал он 2 ноября. – Есть и другие моменты, которые кажутся мне сомнительными, но и одного этого достаточно, чтобы поставить на проекте крест”.
Опасения Левина были обоснованными, потому что в системе Сатоши предполагалось, что компьютеры принимают решения большинством голосов. На ранних этапах развития сети, пока в ней еще было мало компьютеров, злоумышленники легко могли бы получить контроль над сетью. Однако Сатоши надеялся, что в начале ни у кого не будет серьезной мотивации захватывать контроль над системой. Ну а если такая мотивация возникнет позднее, то сеть к тому моменту привлечет достаточно участников, чтобы организовать такую атаку стало гораздо труднее.
Другой ветеран шифропанковских дискуссий, Джеймс Дональд, заявил, что такая система нужна всем как воздух, но блокчейн быстро станет слишком большим, из-за чего пользователи не захотят загружать его из сети.
В последующие недели Хэл оставался единственным защитником Сатоши. Он написал, что почти не беспокоится по поводу атак, о которых упомянул Левин, но при этом признал, что не знает, как система проявит себя на практике, и выразил желание увидеть реальный компьютерный код, а не концептуальное описание.
“Идея кажется оригинальной и многообещающей, и мне очень хотелось бы увидеть ее дальнейшее развитие”, – написал он в сообществе.
Вероятно, то, что Хэл встал на защиту Биткойна, и побудило Сатоши отправить ему раннюю бета-версию ПО для тестирования. В ходе нескольких тестовых запусков в ноябре и декабре они выявили и устранили несколько багов, и в январе 2009 года Сатоши отправил полный код системы в криптографическое сообщество.
Окончательная версия кода немного отличалась от оригинального документа и содержала несколько интересных дополнений. Например, в коде было прописано, что новые монеты будут выпускаться примерно каждые 10 минут, а при сокращении этого интервала из-за роста общей вычислительной мощности сети хеш-функция, вычисляемая в конкурсе, будет становиться сложнее.
Кроме того, в коде окончательно определялся график эмиссии биткойнов. Сатоши решил, что в первые 4 года победитель в гонке за право создать новый блок будет получать 50 монет, после чего каждые 4 года награда будет уменьшаться вдвое, пока объем эмиссии не достигнет окончательного значения в 21 миллион биткойнов.
Когда Хэл запустил биткойн-узел в первый раз, сеть уже работала. В следующие несколько дней не случилось ничего примечательного. Каждые 10 минут один из компьютеров (обычно компьютер Сатоши) выигрывал 50 монет. Однако воскресным вечером в блокчейне была зарегистрирована первая транзакция – в рамках тестирования Сатоши отправил Хэлу 10 биткойнов. Чтобы выполнить транзакцию, Сатоши подписал ее своим закрытым ключом, отправил в сеть (состоявшую на тот момент только из компьютеров Хэла и Сатоши), и несколько минут спустя транзакция была сохранена в блокчейне, когда один из компьютеров Сатоши победил в очередном раунде конкурса. Любой, кто после этого устанавливал биткойн-узел на своем компьютере, мог видеть в блокчейне запись о 10 монетах, которые Сатоши перевел Хэлу.
В первые недели потенциальные пользователи не торопились присоединяться к сети, поэтому для ее обслуживания Сатоши использовал собственные компьютеры. Он также делал все возможное для популяризации Биткойна и старался быстро отвечать всем, кто проявлял хотя бы малейший интерес к проекту. Когда однажды ночью какой-то программист из Техаса написал Сатоши письмо, в котором продемонстрировал знание цифровых денег и криптографии, он получил ответ уже утром.
“У нас определенно схожие интересы, – написал Сатоши с явным энтузиазмом, прежде чем пожаловаться на отсутствие какого-либо интереса к Биткойну. – Знаете, мне кажется, что в девяностые этой темой интересовалось гораздо больше людей, но после многолетних неудачных попыток создать систему с доверием к сторонним организациям (DigiCash и т. д.) они сочли дело безнадежным. Надеюсь, они поймут, чем уникально мое предложение. Насколько мне известно, это первая попытка создать финансовую систему без доверия”.
Пока что все выглядело так, что программа Сатоши была всего лишь очередным набором кода, готовым разделить печальную участь многих других перспективных, но заброшенных и всеми забытых проектов. Чтобы выжить, Биткойн должен был как-то привлечь больше пользователей и защитников вроде Хэла, но вступать в их ряды никто особенно не торопился. Скорее наоборот: через неделю после выпуска программы один из участников криптографического сообщества написал, что никакое государство не позволит Биткойну в его текущей форме достигнуть мало-мальски значимых размеров.
Хэл признал, что автор этого сообщения может оказаться прав, но снова выступил в защиту Сатоши. “В пользу Биткойна говорит следующее, – написал Хэл. – Он распределен и не имеет единой точки сбоя, в нем нет монетного двора, и он не принадлежит никакой компании, сотрудников которой можно было бы привлечь к ответственности, заставить замолчать или арестовать”.
Однако казалось, что временами даже Хэл теряет энтузиазм. Слушая, как шумит его компьютер, пытающийся получить право сгенерировать новые монеты, он начал беспокоиться о том, сколько углекислого газа начнут выбрасывать все узлы, если Биткойн окажется успешным. Когда его сын Джейсон пожаловался на износ компьютера, Хэл вообще отключил функцию генерирования монет. Кроме того, выяснилось, что из-за открытости и доступности журнала транзакций – пусть даже каждый пользователь представлялся в нем непонятным адресом – Биткойн вовсе не так анонимен, как могло показаться.
А затем дело приняло совсем плохой оборот. У Хэла начались быстро прогрессирующие проблемы с речью, и вскоре все свое свободное время он был вынужден уделять общению с врачами. У него диагностировали боковой амиотрофический склероз – неизлечимый дегенеративный процесс, который приводит к увяданию всех мышц в теле. Ко времени, когда был поставлен диагноз, Хэл из-за свалившихся на него бед покинул биткойн-сообщество. Спустя месяцы он вернется ради нескольких памятных сообщений, но за это время он уже потеряет способность ходить; Биткойн же, напротив, прочно встанет на ноги.
- Worker
- 2.1. Характеристика отечественных и зарубежных систем управления инновациями
- Последовательный поиск
- Ошибки в формулах
- Выделение памяти, связанной с определенным процессором
- Упаковка предложения в виде продукта
- ГЛАВА 13 Подготовка проекта
- Шаг 5. Подкрепите вашу мысль фактами
- Переход на новый уровень Ким Уэлш-Филлипс
- Salix: MATE-редакция
- Пример 9-15. Длина переменной
- 11. Препроцессор языка Си