Генезис-архивы: Вэй Дай, b-money и первый черновик биткоина
Говорят, что великий физик Исаак Ньютон открыл закон всемирного тяготения благодаря яблоку, упавшему ему на голову. Также утверждают, что периодическая таблица химических элементов явилась Дмитрию Менделееву во сне. Правда это или красивые легенды — уже не важно, поскольку эти открытия навсегда изменили мир.
Однако вряд ли кто-либо другой, без соответствующих знаний и необходимых индуктивных способностей, смог бы разглядеть в падении простого яблока существование некой гравитационной силы, которая в корне изменила науку и понимание многих процессов.
Идея децентрализованной электронной денежной системы родилась в голове Сатоши Накамото. Вполне вероятно, что на создание чего-то подобного его натолкнула банальная невозможность совершить банковский перевод в выходные дни, как когда-то падающее яблоко изменило представление Ньютона о мироустройстве.
Тем не менее, было бы весьма глупо считать, что биткоин ему просто приснился. Накамото, как человек или группа людей с глубоким знанием C++ и криптографических алгоритмов, упомянул в white paper проекты доктора Адама Бэка Hashcash и b-money Вэй Дая.
В первом появился алгоритм Proof-Of-Work, изначально созданный для борьбы со спамом в электронных письмах, а во втором узловая модель сети для распределенного хранения данных о транзакциях и использование криптографических подписей для отправки денег.
Так, Сатоши задействовал уже существующие концепции для реализации своего видения, устранив некоторые слабые места, что не удалось сделать их создателям.
Вряд ли кто-либо другой, без стремления и необходимых знаний, разглядел бы в этих провальных проектах своего рода эмбрион эволюции денег. Именно Сатоши стал тем, кто сделал правильные выводы из падения «криптографического яблока».
ForkLog предлагает вашему вниманию перевод статьи Аарона ван Вирдума, опубликованной в Bitcoin Magazine и посвященной тому, как криптограф Вэй Дай создал первый прототип биткоина.
Все шифропанки дорожат приватностью: это основополагающий принцип движения криптографов, академиков, разработчиков и активистов, которые стали участниками одноименной электронной почтовой рассылки в 1990-х. Но, в отличие от Вэй Дая, мало кто воплотил этот идеал в жизнь. Когда-то издание The New York Times назвало его «сфокусированным на приватности компьютерным разработчиком». Однако о человеке, который еще 20 лет назад создал удивительно похожую на биткоин электронную денежную систему, до сих пор известно крайне мало.
Отсутствие какой-либо информации о персоне Вэй Дая обусловлено его работой и идеями, которые он продвигал. Дай является талантливым криптографом, который создал и по сей день управляет библиотекой криптографических алгоритмов Crypto++ на базе языка программирования C++. Он также является активным участником дискуссий об искусственном интеллекте, этике, эпистемологии и других вещах философского характера на форуме Less Wrong. Его убеждения высоко оценил знаменитый исследователь в области искусственного интеллекта Элиезер Юдковский, сооснователь Machine Intelligence Research Institute (MIRI), ранее известный как Институт Сингулярности.
Интерес Дая к философии и политике вполне понятен. Еще в 1990-х молодой бакалавр компьютерных наук из Вашингтонского университета увлекся трудами Тимоти Мэя, одного из отцов-основателей движения шифропанков. Дай вдохновлялся криптоанархистскими идеями, которые проповедовал Мэй; эта новая идеология, популярная в рядах шифропанков, была основана на убеждении, что криптография и программный код могут обеспечить безопасность экономических и политических свобод намного лучше, чем любая государственная система.
«Я просто очарован криптоанархией Тимоти Мэя, — написал Дай в 1998 году — В отличие от целевых установок традиционных анархистских сообществ, в криптоанархии правительство уничтожается не временно, а запрещается навсегда, поскольку становится абсолютно ненужным. Это сообщество, где угроза насилия сведена на нет, потому что насилие попросту невозможно — участники не могут быть привязаны к настоящим именам или географическому расположению».
К середине 1990-х Дай уже обсуждал множество тем в рамках электронной рассылки шифропанков, включая цифровые системы репутаций, теорию игр, приватность и анонимность электронных денежных системах. Более того, Дай внес на рассмотрение несколько собственных предложений: доверенные временные печати, зашифрованное TCP-туннелирование, безопасная система для обмена файлами и другие. Шифропанки признавали, что Дай вносит существенный вклад в общее дело, однако тогда они даже не знали, мужчина он или женщина, поскольку о его личности им ничего не было известно.
Но настоящую известность Даю принесла идея, о которой он заявил в ноябре 1998 года, сразу после окончания университета.
«Эффективное сотрудничество нуждается в средстве обмена [деньгах] и способе обеспечения исполнения контрактов, — пояснил тогда Дай — предложенный мною протокол позволит анонимным субъектам сотрудничать более эффективно без угрозы отслеживания, путем предоставления того самого средства обмена и способа обеспечивать исполнение контрактов. Я надеюсь, что это важный шаг для реализации идей криптоанархии на практике».
Протокол получил название «b-money».
B-money
Традиционные цифровые денежные системы используют централизованный реестр для отслеживания существующих балансов. Центробанки, коммерческие банки,VISA и другие поставщики платежных услуг контролируют базу данных, в которую занесены права собственности.
По мнению Дая и криптоанархистов, проблемой в этом контексте является контроль государства над финансовыми потоками посредством регулирования, а участники системы почти всегда должны раскрывать личную информацию.
«Целью создания b-money было внедрение онлайн-экономик, работающих исключительно на добровольных условиях…которые не могут облагаться налогом или регулироваться посредством угрозы применения силы», — объяснил он.
Именно по этой причине Дай разработал альтернативное решение, а точнее — целых два решения.
Механизм первого решения предполагал, что все участники должны хранить копии реестра транзакций вместо единой централизованной организации. Как только следующая транзакция производилась бы, участники должны были обновлять свои реестры. Более того, вместо реальных имен Дай предложил использовать открытые ключи. С помощью такого децентрализованного подхода исключалась вероятность того, что какая-либо единая организация сможет блокировать транзакции. При этом пользователи получали достаточный уровень анонимности.
Предлагаю рассмотреть систему на простом примере — представьте, что Боб и Алиса являются пользователями b-money. Каждому из них присвоен открытый ключ — у Алисы — «А», у Боба — «Б». Каждый из них располагает приватным ключом. Как указано в реестрах, хранящихся у всех участников сети, и у Алисы, и у Боба есть по три единицы b-money.
Если Боб продает Алисе товар за две единицы b-money, то он должен прислать ей свой открытый ключ. Предположим, Алиса действительно хочет купить товар и создает транзакцию в форме сообщения: «2 b-money от А к Б». Подписав это сообщение с помощью своего приватного ключа, Алиса отправляет его и криптографическую подпись всем участникам сети.
Подписанное сообщение доказывает всем пользователям, что законный владелец открытого ключа «А» хочет отправить 2 единицы b-money владельцу ключа «Б». Таким образом участники сети обновляют свои реестры, присваивая Алисе 1 единицу b-money, а Бобу — 5. При этом они не знают, действительно ли Алиса и Боб контролируют свои ключи.
Если решение кажется знакомым, то в этом нет ничего удивительного: 10 лет спустя Сатоши Накамото задействует эту концепцию в биткоине.
B-money 2.0
Сам Дай считал первую версию своего предложения непрактичной, поскольку она предполагала «одновременное и синхронное использование канала передачи сообщений».
Иными словами, он не решил проблему повторного расходования. Алиса могла одновременно переслать 2 единицы b-money Бобу («Б») и Виктории («В»), передав сообщение о транзакции разным частям сети. И Боб, и Виктория продадут Алисе товар, но только после узнают, что их баланс верифицировала лишь половина участников.
Поэтому Дай сразу же предложил вторую версию.
В этой версии копия реестра хранилась не у каждого участника сети. Вместо этого, вводились новые понятия: регулярные пользователи и сервера. При этом только сервера, являющиеся узлами сети, хранили копии реестра. Чтобы проверить, успешно ли была осуществлена транзакция, Боб и Виктория должны были бы обратиться к случайной последовательности серверов. В случае возникновения конфликта, продавцы бы просто отказались передавать Алисе товар.
Дай не уточнил, может ли каждый запустить сервер, однако добавил, что «каждый сервер обязан внести стандартный депозит в специальный аккаунт, который бы использовался для штрафов или вознаграждений в случае доказательства недобросовестного поведения». Серверы также обязаны были периодически публиковать и криптографически заверять базы данных о балансах участников.
«Каждый пользователь должен убедиться, что его баланс отображен корректно и что совокупная сумма всех балансов не превышает существующего количества денег. Это не позволит серверам, даже в случае сговора всех узлов, постоянно и без затрат увеличивать эмиссию», — написал Дай.
Если же и это кажется знакомым, то в этом тоже нет ничего удивительного: вторая версия b-money несколько напоминает то, что сегодня мы знаем как алгоритм Proof-Of-Stake.
Одновременно с этим, Дай внедрил раннюю концепцию смарт-контрактов. Этот тип контрактов совмещал Proof-Of-Stake и арбитражную систему, в рамках которой стороны договора и арбитр должны были внести депозиты на специальный аккаунт. Примечательно, однако эти контракты не предусматривали систему разрешения споров, в случае которых сервера могли внести разные изменения в свои реестры, без достижения консенсуса в сети.
(Предполагалось, что потенциальные штрафы за недобросовестное поведение будут превышать возможную выгоду от саботажа сети).
Монетарная политика
Самым существенным отличием b-money от биткоина являлась монетарная политика.
Процесс эмиссии биткоинов крайне прост, вначале сеть выпускала 50 BTC за каждый блок, сейчас эта сумма снизилась до 12,5 BTC и продолжит снижаться до тех пор, пока через несколько сотен лет эмиссия биткоинов приблизится к 21 млн. Является ли такая монетарная политика идеальной — предмет ожесточенных споров, однако ясно одно: на данный момент она не обеспечивает стабильную стоимость монеты.
Дай Вэй же считал, что именно стабильная стоимость является важнейшим фактором. Так, стоимость b-money привязывалась к теоретической потребительской корзине. Например, 100 b-money — это цена корзины. Таким образом Дай стремился обеспечить стабильную стоимость b-money хотя бы в отношении корзины, цена которой оставалась бы неизменной — 100 b-money.
Для эмиссии новых монет в сети b-money пользователи должны были определить стоимость потребительской корзины в отношении стоимости компьютерных вычислений (Proof-Of-Work). Если стоимость корзины составляет $80 в конкретный период времени, то этой цене должна соответствовать стоимость вычислений для генерации монет. Если через 10 лет корзина будет стоить $120, то стоимость вычислений вырастет до $120, а число монет останется неизменным.
Используя этот показатель, первый пользователь, продемонстрировавший корректную вычислительную комбинацию, получал бы 100 единиц b-money в реестрах серверов. Но только желание использовать b-money могло быть достаточным мотивом для выполнения компьютерных вычислений, что привязывало инфляцию к росту экономики b-money.
В дополнительном приложении Вэй Дай также подчеркнул, что эмиссия монет может происходить посредством аукциона. Все пользователи (первая версия) или сервера (вторая версия) должны были бы определить оптимальное увеличение эмиссии. Допустим, все сошлись на 500 единиц b-money, после чего проводился бы аукцион для определения того, кто произведет достаточно вычислительных операций для создания указанного числа монет.
Биткоин
Концепция b-money никогда не была реализована. Она не могла быть реализована, поскольку «механизм b-money был не совсем практичным», признал Дай на форуме LessWrong несколько лет назад. Более того, он не ожидал повсеместного принятия концепции даже в случае имплементации.
«Я думаю, что b-money может выступить механизмом обеспечения денежных переводов или выполнения контрактов для тех, кто не может или не хочет воспользоваться альтернативами, которые предлагает государство», — написал он участникам рассылки шифропанков.
Примечательно, что некоторые проблемы b-money до сих пор не решены или не точно обозначены. Вероятно, самой главной проблемой являлся предложенный алгоритм консенсуса. Теперь нам известно, что концепция Proof-Of-Stake имеет некоторые слабые места, которые Дай мог не предвидеть: например, не совсем понятно, как именно установить факт недобросовестного поведения. И это не учитывая более мелких нюансов — недостаток конфиденциальности из-за отслеживаемости средств и потенциальная централизация эмиссии/майнинга. Некоторые из этих проблем не решены в сети биткоина и по сей день.
Дай, который работал в TerraSciences и Microsoft после предложения b-money, не работал над решением этих проблем.
«Я не продолжил работать над механизмом, поскольку к тому времени, как я закончил писать концепцию b-money, я немного разочаровался в криптоанархии. Я не предвидел, что подобная система может привлечь столько внимания вне круга заядлых шифропанков», — написал он на LessWrong.
Тем не менее, предложение Дая не кануло в Лету: документация b-money стала первой ссылкой в white paper Сатоши Накамото. Стоит отметить, что, несмотря на очевидную схожесть механизмов b-money и биткоина, далеко не факт, что именно Вэй Дай вдохновил Сатоши на создание цифровой валюты. Сам Дай убежден, что создатель биткоина не позаимствовал идею, а реализовал все полностью независимо.
Незадолго до публикации white paper биткоина доктор Адам Бэк ознакомил Сатоши с работами Вэй Дая; последний впоследствии стал одним из немногих, с кем создатель биткоина связывался лично до публикации. Но тогда Дай не ответил на электронное письмо, хотя и жалеет об этом сейчас. Он поставил под вопрос механизм эмиссии монет в сети биткоина.
«Я бы сказал, что биткоин потерпел неудачу в контексте монетарной политики, поскольку она стала причиной высокой волатильности стоимости, возложившей на пользователей слишком большие риски или вынудив их прибегнуть к дорогостоящему хеджированию. Из-за монетарной политики и волатильности цены сеть биткоина не может масштабироваться. Захватив нишу криптовалют, биткоин может уничтожить концепцию криптовалют будущего, которые могут расти до любых масштабов», — подчеркнул Дай на LessWrong.
Он добавил, что в этом, вероятно, есть и его вина, поскольку он проигнорировал сообщение Сатоши.
«Может быть тогда я бы смог убедить его отказаться от идеи ограниченной эмиссии», — предположил он.
Напомним, ранее ForkLog опубликовал перевод статьи Аарона ван Вирдума о проекте Адама Бэка HashCash.