Это – третья публикация в серии материалов, посвященных становлению движения шифропанков. Эти статьи призваны познакомить сообщество с технологиями, предшествующими киберкоммерции, которую мы сегодня наблюдаем. Понимание истории, осознание мотивов и методов достижения целей первопроходцами в области криптографии и информатики, поможет не только пролить свет на возможные варианты дальнейшего развития событий, но и выстроить более эффективные стратегии по защите собственных средств, приватной информации и личностного суверенитета.
Перевод подготовлен Тони⚡️. Поддержать проект.
“Эффективное сотрудничество требует средства обмена (денег) и способа обеспечения исполнения контрактов”
— Вэй Дай ноябрь 1998 года.
Все шифропанки ценят приватность; по сути, это основополагающий принцип коллектива криптографов, ученых, разработчиков и активистов, объединившихся в этом списке рассылки в 1990-х годах. Но лишь немногие ее практикуют так, как это делает Вэй Дай. Об однажды описанном в газете New York Times как “очень скрытный компьютерный инженер” человеке, который два десятилетия назад придумал систему электронных денег, интригующе похожую на Биткоин, известно не так много подробностей. Недостаток персональных деталей восполняется работой Дая и распространением его идей. Талантливый криптограф, Дай создал и до сих пор поддерживает Crypto++ – библиотеку C++ для криптографических алгоритмов. Вэй также по сей день активен на форумах по рациональности, таких как LessWrong, где он философствует на такие темы, как искусственный интеллект, этика, эпистемология и многие другие. Его проницательность заслужила похвалу известного исследователя ИИ Элиезера Юдковски и неоднократные приглашения выступить в его Институте исследований машинного интеллекта (MIRI; ранее известный как Институт сингулярности). Интерес Дая к философии и политике не нов. Еще в 1990-х годах, будучи молодым студентом-бакалавром компьютерных наук в Вашингтонском университете, его любопытство привело его к трудам Тимоти Мэя, одного из “отцов-основателей” движения шифропанков. Дай был вдохновлен криптоанархией, за которую выступал Мэй; совершенно новой идеологией, распространенной среди шифропанков, основанной на убеждении, что криптография и программное обеспечение могут предоставить и защитить политическую и экономическую свободу лучше, чем любая государственная система.
“Я очарован криптоанархией Тима Мэя. В отличие от сообществ, традиционно ассоциирующихся со словом “анархия”, в криптоанархии правительство не временно уничтожено, а навсегда запрещено и навсегда ненужно. Это сообщество, где угроза насилия бессильна, потому что насилие невозможно, а насилие невозможно, потому что его участники не могут быть связаны с их настоящими именами или физическим местонахождением.”
— Вэй Дай, 1998 год.
К середине 1990-х годов Дай участвовал в обсуждениях различных тем в списке рассылки шифропанков, таких как системы цифровой репутации, теория игр, приватность и анонимность в системах цифровой наличности. Возможно, более важным является то, что Дай сделал ряд предложений по развитию идеи шифропанков, включая доверенную временную метку, зашифрованный TCP-туннель, безопасную систему обмена файлами и многое другое. Это принесло ему репутацию активного участника сообщества шифропанков – хотя даже в те времена никто ничего не знал о нем лично. (Даже о том, был ли Дай мужчиной или женщиной, однажды сказал Тимоти Мэй).
Но наибольшую известность Даю принесла идея, которую он вскользь озвучил в ноябре 1998 года, сразу после окончания университета:
“Эффективное сотрудничество требует средства обмена (деньги) и способа обеспечения исполнения контрактов. Протокол, предложенный в этой статье, позволяет неотслеживаемым псевдонимным сущностям сотрудничать друг с другом более эффективно, предоставляя им средство обмена и способ принудительного исполнения контрактов. […] Я надеюсь, что это шаг к тому, чтобы сделать криптоанархию возможной как с практической, так и с теоретической точки зрения”.
Он назвал свое предложение “b-money”.
b-money #
Типичные системы цифровых денег используют централизованный реестр для отслеживания остатков на счетах. Будь то центральный банк, коммерческий банк, компания-эмитент банковских карт, такая как VISA или любой другой провайдер платежей, централизованная база данных отслеживает, кто чем владеет.
Проблема этого подхода, с точки зрения Дая и криптоанархистов, заключается в том, что оно в конечном итоге позволяет правительствам контролировать денежные потоки посредством регулирования, в то время как участники системы обычно обязаны идентифицировать себя.
“Моей мотивацией для создания b-money было желание создать онлайн-экономику, которая была бы исключительно добровольной … которую нельзя было бы обложить налогами или регулировать с помощью насилия”
— Вэй Дай.
Поэтому Дай придумал альтернативное решение. Точнее, два альтернативных решения.
В первом решении вместо центральной организации, контролирующей реестр, все участники хранят отдельные копии одного и того же реестра. Каждый раз, когда совершается новая транзакция, все обновляют свои записи. Кроме того, эти реестры будут включать в себя открытые ключи с привязанными к ним суммами – никаких реальных имен. Такой децентрализованный подход не позволит ни одному субъекту блокировать транзакции, обеспечивая при этом определенный уровень приватности для всех пользователей.
В качестве примера, предположим, что Алиса и Боб – пользователи b-money. У них обоих есть публичный ключ: у Алисы есть публичный ключ “A”, а у Боба – публичный ключ “Б”. Алиса и Боб, соответственно, контролируют собственные уникальные приватные ключи. И, как записано в реестрах, которые ведут все пользователи, оба их публичных ключа содержат единицы b-money; допустим, по три единицы. Если Боб хочет получить от Алисы две единицы b-money, потому что он продает ей товар, он посылает ей свой публичный ключ Б. Учитывая, что Алиса хочет приобрести этот товар, она создает транзакцию в виде сообщения: 2 b-money от A к Б
. Затем она подписывает это сообщение своим приватным ключом, соответствующим А. Затем сообщение и криптографическая подпись отправляются всем пользователям b-money. Подписанное сообщение доказывает всем пользователям b-money, что законный владелец A хочет отправить две единицы b-money владельцу публичного ключа Б. Таким образом, все обновляют свои реестры, приписывая теперь одну единицу b-money A и пять единиц b-money Б – не зная, что Алиса или Боб контролируют какие-либо из этих ключей.
Если это решение звучит знакомо, это нормально: Примерно по этому принципу 10 лет спустя Сатоши Накамото создал биткоин.
b-money, версия 2 #
Однако Дай счел свое первое решение b-money непрактичным, “поскольку оно в значительной степени использует синхронный и нерасширяемый анонимный широковещательный канал”, – пояснил он в своем предложении. Другими словами, первое предложение b-money не решало проблему двойной траты. Алиса могла отправить две единицы b-money одновременно на Б Боба и на К Кэрол, передавая эти транзакции в разные части сети. И Боб, и Кэрол дали бы Алисе взамен продукт … лишь для того, чтобы позже узнать, что половина сети не признает их новые балансы.
Вот почему Дай придумал второе решение b-money, описав его все в том же предложении.
В этом варианте не каждый ведет свою версию реестра. Вместо этого система будет состоять из двух типов пользователей: обычных пользователей и “серверов”. Только серверы, связанные через сеть вещания в стиле Usenet, будут вести реестры b-money. Чтобы убедиться, что транзакция прошла надлежащим образом, обычные пользователи – такие как Боб и Кэрол – должны будут проверить ее на случайном подмножестве этих серверов. (В случае конфликта Боб и Кэрол, предположительно, отклонят транзакцию от Алисы и ничего ей не продадут). Хотя в предложении это подробно не описано, любой человек, вероятно, мог бы стать сервером, но “каждый сервер обязан внести определенную сумму денег на специальный счет, который будет использоваться в качестве потенциальных штрафов или вознаграждений за подтверждение тех или иных действий”, – предложил Дай. Серверы также должны периодически публиковать и криптографически фиксировать базы данных владельцев.
“Каждый участник должен проверять правильность остатков на своих счетах и то, что сумма остатков на счетах не превышает общую сумму созданных денег. Это не позволяет серверам, даже в полном сговоре, постоянно и без затрат расширять денежную массу”.
Если и это звучит несколько знакомо, то и здесь удивляться нечему: Второе предложение Дай по b-money очень напоминает то, что сегодня называется системой Proof of Stake.
Кроме того, Дай добавил к своему предложению (предложениям) раннюю версию смарт-контракта. Эти типы смарт-контрактов больше всего напоминают смесь системы Proof of Stake и арбитражной системы, где обе стороны контракта и арбитр должны внести средства на специальный счет. Однако, что любопытно для современных стандартов, в этих контрактах не была закодирована система разрешения споров. Вместо этого существовала возможность того, что в случае возникновения споров разные пользователи (или серверы) будут по-разному корректировать свои собственные реестры, фактически выводя состояние реестров в сети из консенсуса. (Предположительно, потенциальные штрафы сделали бы стоимость обмана слишком высокой, чтобы рисковать).
Монетарная политика #
И все же, пожалуй, наиболее резким отличием b-money от Биткоина была предложенная Даем монетарная политика. Денежная политика Биткоина, конечно, очень проста. Чтобы ввести монеты в обращение, первоначально сеть выпускала 50 новых биткоинов с каждым блоком, снижая субсидии вдвое каждые 210,000 блоков (или около 4 лет). Сегодня мы находимся в так называемой четвертой эпохе и субсидия за блок составляет 6.25 BTC. Это число будет продолжать уменьшаться со временем, пока через сто лет общее количество выпущенных биткоинов не достигнет (почти) 21 миллиона. Является ли такая монетарная политика идеальной, остается предметом споров, но ясно одно: до сих пор она не позволила достичь стабильной стоимости монет.
Дело в том, что стабильная стоимость монет была явной частью видения Дая. Для достижения этой цели стоимость b-money должна была быть привязана к стоимости (теоретической) корзины товаров. Например, стоимость 100 единиц b-money будет равна стоимости одной корзины товаров. Это должно обеспечить стабильную стоимость b-money, по крайней мере, по отношению к этой корзине товаров: на те же 100 единиц b-money можно будет купить ту же корзину товаров в прошлом, настоящем и будущем.
Для выпуска новых монет пользователи должны были определить, сколько будет стоить корзина товаров по отношению к решению вычислительной задачи Proof of Work. Если, например, в определенный момент времени корзина товаров должна стоить 80 долларов, то ей должно соответствовать количество проделанной работы. Если через 10 лет та же корзина товаров будет стоить 120 долларов, то тем же 100 единицам товара нужно будет подобрать доказательство работы, производство которого обойдется в 120 долларов. При использовании этого показателя первому, кто произведет валидное доказательство работы, все пользователи или серверы начислят 100 новых b-money. Таким образом, ни у кого не будет особого стимула производить доказательства работы, если они не собираются использовать b-money, что ограничивает инфляцию “экономики b-money”.
В качестве альтернативы, в приложении к своему решению, Дай предложил, чтобы создание денег осуществлялось через аукцион. Сначала либо все пользователи (первый протокол), либо серверы (второй протокол) должны будут определить оптимальное увеличение денежной массы. Затем, если бы это идеальное увеличение было установлено, например, в 500 единиц b-money, аукцион определил бы, кто должен создать эти 500 единиц – того, кто хочет и может предоставить наибольший объем доказательства проделанной работы.
Биткоин #
B-money так и не были реализованы. Они и не могли – “b-money не была законченным практическим проектом”, – позже признал Дай в одном из разделов форума LessWrong. Более того, Дай не ожидал, что b-money имели бы большой успех, даже если бы они были реализованы.
“Я думаю, что b-money будут в лучшем случае нишевой валютой/механизмом исполнения контрактов, обслуживающей тех, кто не хочет или не может использовать спонсируемые государством инструменты”
– Вэй Дай в электронном письме, отправленном в список рассылки шифропанков.
Действительно, несколько проблем b-money остались нерешенными или, по крайней мере, недостаточно конкретизированными. Возможно, главной преградой было то, что модель консенсуса этого предложения была не очень надежной, что лучше всего показало предложенное Даем решение смарт-контракта. Впоследствии также выяснилось, что системы Proof of Stake создают новые проблемы, которых Дай, возможно, не предвидел; например, неясно, как можно объективно установить “неправомерные действия”. И это еще не говоря о более тонких проблемах предложения, таких как отсутствие приватности из-за отслеживания средств или потенциальная централизация выпуска монет. Действительно, некоторые из этих проблем до сих пор не решены для Биткоина.
Дай – который после предложения b-money продолжил работать в TerraSciences и Microsoft, а затем, возможно, рано ушел на пенсию – не стал задерживаться для решения этих проблем.
“Я решил не продолжать работу над проектом, потому что к тому времени, когда я закончил писать b-money, я уже несколько разочаровался в криптоанархии. Я не ожидал, что подобная система, будучи реализованной, привлечет столько внимания и будет использоваться кем-то помимо небольшой группы хардкор-шифропанков”.
Тем не менее, предложение Дая не было забыто: b-money стала первой ссылкой в “белой книге” Биткоина. Тем не менее, как бы ни были похожи проекты b-money и Биткоин, возможно, Сатоши Накамото вовсе не вдохновлялся идеей Дая. Сам Дай считает, что изобретатель Биткоина пришел к этой идее самостоятельно.
Белая книга Биткоина на русском
Незадолго до публикации белой книги Биткоина изобретатель Hashcash доктор Адам Бэк поделился с Сатоши Накамото работой Дая, что делает Вэя одним из немногих людей, к которым изобретатель Биткоина лично обращался перед публикацией своей белой книги. Но Дай не ответил на письмо Сатоши. Оглядываясь назад, он жалеет об этом. Неудивительно, что Дай ставит под сомнение модель генерации биткоинов.
“Я считаю, что Биткоин потерпел неудачу в отношении своей монетарной политики (поскольку эта политика приводит к высокой волатильности цен, что налагает большие издержки на его пользователей, которые вынуждены либо принимать нежелательные риски, либо заниматься комплексным хеджированием для использования этой валюты)… Одно из возможных последствий для Биткоина может заключаться в том, что из-за несовершенной монетарной политики и связанной с ней волатильности цен он не сможет вырасти до значительных масштабов, и, заняв нишу криптовалют, исключит будущее, в котором криптовалюта действительно вырастет до очень больших масштабов. Возможно, отчасти в этом есть и моя вина, потому что когда Сатоши написал мне письмо с просьбой прокомментировать его проект документа, я так и не ответил ему. Иначе, возможно, я смог бы отговорить его (или их) от идеи ‘фиксированного предложения денег’”.
— писал Дай на LessWrong.
Примечание автора: После завершения этой статьи было отмечено, что первая версия Bit Gold Ника Сабо относится к началу 1998 года. Даже более похожий на изобретение Сатоши Накамото, чем b-money, Bit Gold, вероятно, правильнее считать “первым прародителем Биткоина”.
Оригинал статьи на английском: