Долгий путь к биткоину

Crypto
36 min readDec 26, 2017

--

Путь к биткоину усеян трупами неудачных попыток. Я составил лист с примерно сотней криптографических платежных систем, среди которых как e-cash системы, так и credit-card-based технологии (см. табл. 1).

Табл. 1 — Примечательные электронные системы и предложения

Некоторые из них это просто академические предложения (proposals), которые были процитированы много раз, другие же напротив были разработаны, протестированы и проработали какое-то время. Скорее всего, единственное знакомое вам имя из этой таблицы это PayPal. И PayPal выжил лишь благодаря быстрой смене оригинальной концепции, которая заключалась в криптографических платежах при помощи портативных устройств!

Можно многое вынести из этой истории. Чем навеяны идеи, использующиеся в Биткоине? Почему некоторые технологии выжили, когда многие другие исчезли? Что необходимо для технических инноваций, чтобы они имели коммерческий успех? Как минимум, эта история даст вам понимание насколько удивительно, что у нас в конце концов появился настоящий работающий платежный инструмент, порожденный Интернетом.

Традиционные финансовые механизмы

Если вы представите мир без правительств и денег, единственной системой для приобретения товаров, которая сможет при этом функционировать, будет бартер. Предположим, Алисе нужен инструмент, а Боб нуждается в медикаментах. Если у каждого из них есть то, что нужно другому, они могут просто обменяться и таким образом удовлетворить свои потребности.

Но вдруг у Алисы есть еда, которую она хочет обменять на инструмент, в то время как у Боба есть нужный Алисе инструмент, но нет нужды в еде? Бобу нужны медикаменты (с таким-то востребованным инструментом — прим. перев.). Алиса и Боб не могут обменяться напрямую, но если они найдут третью сторону, например, Кэрол, у которой есть медикаменты и которая нуждается в еде, тогда возможен трехсторонний обмен, где каждый получит то, что ему нужно.

Очевидный недостаток — координация групп людей и организация подобного обмена в одном месте в установленное время. Для решения вопросов координации возникли две системы: займы и деньги. Историки, антропологи и экономисты спорят, что появилось раньше, но для нас это не важно.

В основанной на займе системе (a credit-based system) Алиса и Боб могут совершить обмен на манер примера, приведенного выше (где участвует Кэрол — прим. перев.). Боб бы дал Алисе свой инструмент, сделав ей одолжение (a favor), которое ей придется как-то компенсировать. Другими словами, у Алисы появился долг (a debt), который она должна погасить (to settle) через какое-то время. Алиса устранила свою потребность, но теперь у нее есть долг перед Бобом, который она хочет аннулировать (to cancel), и теперь это ее новая потребность. Если Алиса столкнется с Кэрол в будущем, Алиса сможет обменять свою еду на медикаменты Кэрол, затем вернуться к Бобу и аннулировать (to cancel) свой долг (a debt), отдав ему полученные от Кэрол медикаменты.

В основанной же на деньгах системе (a cash-based system) Алиса купит инструмент у Боба. Позже она может продать свою еду Кэрол, которая может продать свои медикаменты Бобу, и все нужды будут снова удовлетворены. Такой обмен может происходить в любой последовательности при условии, что у покупателя есть деньги. По итогу все будет выглядеть так, будто деньги не переходили из рук в руки (деньги сделают круг и вернутся к тому, у кого они были изначально — прим. перев.).

Ни одна из систем не идеальна. В основанной на деньгах системе (a cash-based system) сами деньги должны быть изначально каким-то образом распределены межу участниками системы, иначе обмены не смогут начаться. В основанной на займе системе (a credit-based system) такое распределение не требуется, но недостаток заключается в рисках, которые ложатся на сторону, выдающую займы, т.к. всегда остается шанс, что занимающая сторона не погасит (to settle) свой долг (a debt).

Деньги также позволяют нам более точно оценивать стоимость товаров или услуг. При бартерном обмене очень сложно оценить равнозначность такого обмена — вряд ли инструмент стоит столько же, сколько медикаменты, а медикаменты столько же, сколько еда. Деньги позволяют нам использовать концепцию цифр при определении ценности товаров или услуг. Сегодня мы используем смешанную систему — даже когда мы берем займ (a credit), мы измеряем долг (a debt) в деньгах (cash), которые потребуются для его погашения (to settle).

Эти идеи проявляются во многих контекстах, особенно в онлайн системах, где пользователи обменивают виртуальные товары определенного типа. Для примера, одноранговые файлообменные сети (peer-to-peer file-sharing networks) должны решать проблему с “халявщиками” (freeloaders) — пользователями, которые скачивают файлы, но не встают на их раздачу. В то время как обмен файлами еще может работать, все еще остается проблема координации: проблема поиска узла, который владеет нужным вам файлом и который нуждается в файле, который есть у вас. В проектах наподобие MojoNation и академических предложениях (proposals) вроде Karma среди пользователей изначально распределена виртуальная валюта, которую они должны тратить для получения нужных им файлов и которую они зарабатывают, раздавая файлы другим пользователям. Сеть узлов (централизованная у MojoNation и децентрализованная у Karma) ведет учет балансов пользователей, и MojoNation изучали возможность реализации сервиса по обмену внутренней валюты на традиционную валюту. Хотя MojoNation не просуществовала достаточно долго для реализации подобного сервиса, сама идея является предтечей некоторых протоколов, используемых сегодня — таких как BitTorrent и Tahoe-LAFS.

Проблема с банковскими картами в интернете

Займ и деньги это фундаментальные идеи, на основании которых мы можем разделить множество электронных платежных методов на две группы. Биткоин, конечно же, попадет в группу, основанную на идее денег, но давайте рассмотрим кое-что другое.

Платежи посредством банковских карт сегодня превалируют как способ расчета в интернете. Если вы когда-либо покупали что-нибудь у онлайн продавца вроде Amazon, вы знаете порядок расчета. Вы передаете Amazon данные своей банковской карты, Amazon берет ваши данные и взаимодействует с финансовой системой, вовлекая платежные процессоры, банки, компании, обслуживающие банковские карты и других посредников.

В свою очередь, если вы пользуетесь чем-то вроде PayPal, появляется промежуточное звено. Такая компания находится между вами и продавцом, и вы отсылаете свои данные не продавцу напрямую, а в эту компанию, которая принимает ваш платеж и информирует о нем продавца. Подобная компания урегулировывает (to settle) свой баланс с продавцом в конце каждого дня.

Преимуществом такой модели взаимодействия является тот факт, что покупателю не нужно делиться данными своей банковской карты с продавцом, что снижает некоторые риски, связанные с безопасностью. Покупатель также может даже не делиться своими персональными данными с продавцом, что опять же увеличивает приватность. Недостаток же заключается в том, что вы утрачиваете простоту во взаимодействии напрямую с продавцом. Также может оказаться, что ни покупатель, ни продавец не имеют аккаунта у подобной промежуточной компании.

Сегодня многие уже привыкли делиться данными своих банковских карт во время шоппинга в интернете или хотя бы смирились с правилами игры. Мы также привыкли к тому, что компании собирают персональную информацию и о наших покупках, и о нашей активности в интернете. Но в 1990-х годах интернет был чем-то новым, шифрование на уровне протокола (protocol-level encryption) только зарождалось, и у пользователей было много опасений на счет покупок через интернет. В частности, считалось безумием передавать данные банковской карты онлайн поставщику с неизвестной репутацией через незащищенный канал. Такая обстановка благоприятствовала появлению компаний вроде PayPal.

Компания под названием FirstVirtual является ранним примером таких посредников и была основана в 1994 году. Между прочим, это была одна из первых компаний, которая организовала виртуальный офис с работниками по всей стране и взаимодействовала через Интернет — о чем и говорит само название компании.

Предложенная этой компанией система отдаленно напоминала современный PayPal задолго до его существования. Вы должны были зарегистрироваться в системе и предоставить данные своей банковской карты. Если вы хотели что-нибудь купить у продавца, продавец передавал FirstVirtual детали запрашиваемого платежа, компания согласовывала эти данные с вами, и только после этого совершалось списание средств с вашей карты. Но здесь есть два интересных момента. Первый — все взаимодействие происходило через электронную почту; веб браузеры в те дни только начинали вводить всеобщую поддержку протоколов шифрования вроде HTTPS, и комбинированная природа платежного протокола добавляла сложности (другие посредники пошли по пути шифрования информации в самих ссылках (URLs) или использовали свой собственный протокол поверх HTTP). Второй — покупатель имел возможность в течение 90 дней открыть спор, и поэтому продавец получал деньги только через 3 месяца! В нынешних системах продавец получает свои деньги немедленно, но все еще остается риск, что покупатель запросит возвратный платеж или оспорит выписку по банковской карте (dispute the credit card statement). Когда подобное случается, продавец должен вернуть полученные средства компании-эмитенту банковских карт (a credit card company).

В середине 1990-х годов у компаний-посредников появилась конкурирующая идея под названием SET architecture. В SET architecture так же клиентам не нужно было отправлять свои данные продавцам, а ключевая особенность заключалась в том, что клиент также не должен был регистрироваться у такой компании-посредника. Покупка происходила по следующему сценарию: когда пользователь хотел совершить покупку, его браузер передавал детали платежа в специальное приложение, установленное на его компьютере. Это приложение зашифровывало информацию о покупке вместе с данными банковской карты таким образом, что только компания-посредник могла их расшифровать (продавец эти данные расшифровать не мог). Такие зашифрованные данные покупатель мог без опасений отправлять продавцу. Продавец пересылал полученные от покупателя зашифрованные данные вместе со своей версией деталей этого же платежа. Компания-посредник расшифровывала полученные данные, и если детали платежа от покупателя совпадали с деталями платежа, обозначенными продавцом, то такой платеж одобрялся.

SET был стандартом, который разработали Visa и MasterCard наряду с такими технологическими гигантами как: Netscape, IBM, Microsoft, Verisign и RSA. Спецификация этого стандарта объединила и унифицировала несколько существовавших на тот момент предложений.

Одной из компаний, которая имплементировала этот стандарт, была CyberCash. В этой компании было много интересных моментов. В частности, обработка платежей по банковским картам, в которой участвовала цифровая денежная сущность под названием CyberCoin. Это была система для микроплатежей, с помощью которой, например, можно было заплатить несколько центов за чтение статьи в онлайн газете. Предполагалось, что вы вряд ли когда-нибудь держали на счету более 10$. Однако забавно, что компания имела возможность застраховать депозиты клиентов (U.S. government (FDIC) insurance) вплоть до 100 000$.

Дальше еще интереснее. Во времена работы CyberCash в Америке был необоснованный и позже отмененный государственный запрет на экспорт криптографии, которая была приравнена к оружию. Это означало, что программное обеспечение, использующее шифрование, не могло быть предложено для загрузки пользователям из других стран. Однако для программного обеспечения CyberCash Государственный департамент США (Department of State) сделал исключение. Аргументировали это тем, что извлечь технологию шифрования из программного обеспечения CryptoCash было сложнее, чем написать свою с нуля.

Наконец, компания CyberCash имела сомнительную репутацию одной из компаний, которую затронул Y2K bug — это привело к двойным тратам. Позже, в 2001 году, компания объявила себя банкротом. Их интеллектуальную собственность приобрела Verisign, которая потом доработала технологию и продала ее PayPal, где она используется и по сей день.

Почему SET провалился? Фундаментальная проблема заключалась в сертификатах. Сертификат — это безопасный способ связывания криптографической сущности в виде публичного ключа с данными реального человека. Это то, что нужно получить веб-сайту от компаний вроде Verisign, которые называют центрами сертификации (certification authorities), чтобы ваш браузер посчитал такой сайт безопасным (обычно это иконка замка слева в адресной строке браузера). Ставя безопасность превыше удобства, CyberCash и SET предполагали, что не только платежные процессоры и мерчанты должны будут получить такой сертификат, но и пользователи в их системе будут обязаны это сделать. Процесс получения сертификата примерно так же приятен, как и заполнение декларации о доходах, поэтому идея была ужасной. На протяжении десятилетий большинство пользователей уверенно говорили “нет” всем системам, где предполагались пользовательские сертификаты (end-user sertificates), и такие предложения (proposals) остались лишь на страницах научных работ (academic papers). Биткоин ловко обходит эту насущную проблему просто избегая идентификации в сети. В Биткоине публичные ключи (public keys) сами по себе представляют пользователя и одновременно являются его идентификатором в сети (если простыми словами, то публичный ключ это одновременно и личность пользователя (документы) и номер счета в системе, т.е. вместо двух сущностей, которые связывает сертификат, мы имеем одну с двумя функциями одновременно — прим. перев.).

В середине 1990-х годов, когда SET стандартизировали, Консорциум Всемирной Паутины (World Wide Web Consortium) также хотел стандартизировать финансовые платежи (financial payments). Они хотели сделать это посредством расширения HTTP протокола, так что пользователям не пришлось бы использовать дополнительное программное обеспечение для платежей и достаточно было бы только браузера. На самом деле, у Консорциума было очень обширное и общее предложение по улучшению HTTP протокола, и одним из вариантов использования этих улучшений могла быть обработка платежей. Но этого так и не случилось — полноценный расширенный фреймворк так и не был разработан ни в одном из браузеров. В 2015 году, спустя почти два десятка лет, Консорциум заявил, что нужно возобновить работу в этом направлении и что Биткоин может стать неотъемлемой частью этого стандарта. Однако, учитывая все прошлые неудачи, я бы не стал загадывать.

От займа к (крипто) деньгам

Давайте снова вернемся к деньгам. Ранее мы сравнили деньги и займ и отметили, что система, основанная на деньгах, должна появиться в один момент, а сами деньги должны быть каким-то образом распределены, но при этом выигрыш заключается в том, что пропадают риски невыплат по долгам. Наличные деньги предоставляют два дополнительных преимущества. Первое, это более высокая анонимность. Когда вы выпускаете банковскую карту на свое имя, банк может отслеживать ваши действия, но когда вы платите наличными, банки остаются не у дел, а другой стороне сделки не нужно выяснять кто вы есть. Второе, наличные позволяют совершать оффлайн платежи, при которых не нужно подтверждать платежи по телефону с третьей стороной (банком, например — прим. перев.). Возможно, продавец позже захочет внести наличные на свой счет, но в любом случае наличные уменьшают количество столкновений с банками.

Биткоин не то что бы владеет этими свойствами, но он приближается по полезности к этим свойствам. Биткоин не так анонимен, как наличные. Вам не нужно использовать свои персональные данные для платежей в Биткоине, но вполне возможно, что ваши транзакции будут связаны с помощью умных алгоритмов, основанных на анализе блокчейна, и позже связаны с вашими персональными данными, если вы не будете осторожными (например, с документами, которые вы предоставили бирже — прим. перев.).

Биткоин также не может полностью работать оффлайн. Но хорошая новость в том, что в этой системе нет централизованного сервера, а вместо него технология основывается на одноранговой сети, которая не менее устойчива, чем сам Интернет.

Самая первая идея об использовании криптографии для денег возникла у David Chaum в 1983 году. Рассмотрим эту концепцию с помощью физической аналогии. Давайте представим, что я начал раздавать листочки с надписью “предъявитель этого векселя может погасить его в размере 1$, предъявив его мне”, подписанные моей рукой. Если люди верят, что я буду погашать эти векселя и что мою подпись нельзя подделать, они могут пользоваться ими как банкнотами. В реальности, банкноты и появились как собственные векселя, выпускаемые коммерческими банками. И только совсем недавно государства вмешались и централизовали денежное предложение (a money supply), законодательно обязав банки погашать векселя.

Я могу сделать то же самое в цифровом виде, используя цифровые подписи (digital signatures), но мы упремся в докучающую проблему двойных трат (double-spending) — если вы получили файл, представляющий виртуальные деньги, вы можете просто сделать копии этих файлов и расплатиться ими с разными людьми. Чтобы встрять с нашей аналогией, давайте предположим, что люди могут делать идеальные копии, которые невозможно отличить от оригинала. Сможем ли мы решить проблему двойных трат в таком мире?

Вот одно из возможных решений: на каждом выпущенном мной векселе я ставлю уникальный номер. Когда вы получаете такой вексель от кого-либо, вы проверяете мою подпись, а также звоните мне и уточняете, погашен ли вексель с таким серийным номером или нет. Если я говорю, что вексель не погашен, вы можете его спокойно принимать. Я же отмечаю этот номер в своей книге (a ledger) как потраченный, и если кто-то попробует потратить этот вексель еще раз, то у него не получится, т.к. при подтверждении по телефону я скажу, что этот вексель уже потрачен. Взамен вам нужно будет периодически приходить ко мне и обменивать полученные векселя на новые, выпущенные мною и еще непотраченные.

Это работает. Это обременительно в реальной жизни, но легко выполнимо в цифровой среде. Допустим, я запустил сервер, который подписывает векселя и ведет учет серийных номеров. Единственная проблема, что это больше не наличные, т.к. пропадает анонимность: во время обмена я могу записать серийные номера выданных вам новых векселей и сделать то же самое, когда кто-нибудь другой придет на обмен. Благодаря этому я могу отследить все места, где вы будете тратить выданные вам векселя.

Здесь и появляется инновация Chaum’а. Он придумал как сохранить анонимность и при этом предотвратить двойные траты, разработав цифровой аналог следующей операции: когда я выпускаю новый вексель для вас, ВЫ выбираете серийный номер. Вы вписываете его в вексель, но так, чтобы я не смог его увидеть. Потом я подписываю его, все еще не зная серийного номера. Это называется слепая подпись (a blind signature) в криптографии. В ваших же интересах выбрать длинный, случайный серийный номер, чтобы быть уверенным, что он окажется уникальным. Мне же не нужно волноваться, что вы выберете номер, который уже был задействован — вы сами себе выстрелите в ногу, сделав это, и в конечном счете не сможете потратить такой вексель.

Это было первым серьезным предложением (a proposal) цифровых денег (digital cash). Это работает, но все еще требует сервер, контролируемый централизованным органом вроде банка, которому все должны доверять. Более того, для осуществления каждой транзакции нужно участие такого сервера. Если сервер временно будет недоступен, то платежи остановятся. Спустя несколько лет, в 1988 году, Chaum в сотрудничестве с двумя другими криптографами Amos Fiat (кто бы мог подумать, что человек с такой фамилией приложит руку к свержению фиатных денег с трона; так-так-так, у нас тут историческая ирония подъехала — прим. перев.) и Moni Naor предложили оффлайновые электронные деньги (offline electronic cash). На первый взгляд, это выглядит нереальным: если вы попробуете потратить один и тот же цифровой вексель в двух разных магазинах, как они могут предотвратить двойную трату, если оба магазина не подключены к платежной системе или регулирующей центральной организации?

Хитрость идеи заключается в том, чтобы перестать пытаться предотвращать двойные траты и сфокусироваться на их нахождении, когда они уже произошли и выяснились при очередном подключении мерчанта к сети. В конце концов, именно благодаря такому подходу у вас есть возможность расплатиться своей банковской картой в самолете даже когда в полете отсутствует связь с сетью платежной системы. Обработка платежа происходит позже, когда появляется связь. Если платеж не проходит, вы или ваш банк оказываетесь должны авиакомпании денег. Если призадуматься, немалая часть традиционной финансовой системы основывается именно на обнаружении ошибок или потерь и последующих попытках наказать виновного. Если вы выписываете кому-нибудь банковский чек, то нет никаких гарантий, что у вас действительно есть деньги на счету, но вас всегда позже можно найти, если банк этот чек отклонит. Очевидно, что если бы оффлайновая цифровая денежная система (offline electronic cash system) была бы повсеместно внедрена, в правовой системе бы пришлось признать двойные траты (double spending) преступлением.

Идея Chaum’а, Fiat’а и Naor’а по обнаружению двойных трат была замысловатым криптографическим пируэтом. На верхнем уровне реализовывалось следующее: в каждой электронной монете (a digital coin), выпущенной для вас, зашифровывались ваши персональные данные, но никто кроме вас (и даже банк) не могли расшифровать эти данные. Каждый раз, когда вы хотели расплатиться такими монетами, получатель просил вас расшифровать случайно выбранную часть из зашифрованной строки таким образом, чтобы по этой части было невозможно узнать ваши персональные данные. Но если вы когда-нибудь совершили двойную трату, то впоследствии случится следующее: получатели придут в банк для получения денег, и банк, владея несколькими расшифрованными частями, сможет с высокой долей вероятности определить ваши персональные данные.

Вам, наверное, стало интересно, а сможет ли кто-нибудь подставить вас в такой системе и совершить второй платеж от вашего имени? Предположим, вы отправили свою монету мне, и потом я решил ее потратить второй раз (намеренно пропустив шаг с погашением этой монеты в банке и получением новой на свое имя). Это не сработает и вот почему: новый получатель попросит меня расшифровать случайный участок зашифрованных данных и, скорее всего, этот участок не совпадет с тем, который вы расшифровали для меня, поэтому я не смогу выполнить необходимых для передачи требований.

На протяжении многих лет немало криптографов работали с этой системой и улучшали ее различными способами. В схеме Chaum-Fiat-Naor (the Chaum-Fiat-Noar scheme), если монета стоила 100$, а вы хотели купить что-то ценой 75$, не было возможности разделить монету на две с ценами 75$ и 25$. Все что вы могли сделать, это вернуться в банк и обменять свою монету на две с нужным номиналом. Но в 1991 году Tatsuaki Okamoto и Kazuo Ohta предложили использовать древа Мёркла (Merle trees) для создания системы, которая позволяет дробить монеты. Древа Мёркла будут использоваться также и в Биткоине, но мы забегаем в будущее. В схеме Chaum-Fiat-Naor было очень много пространства для улучшений, связанных с эффективностью. В частности, применение доказательства с нулевым разглашением (zero-knowledge proofs) (над чем работали в первую очередь Stefan Brands в 1990-х годах и Jan Camenisch, Susan Hohenberger и Anna Lysyanskaya в 2005 году) оказалось очень продуктивным.

Но вернемся к Chaum’у — он решил коммерциализовать свою идею и в 1989 году основал, возможно, первую компанию, которая пыталась решить проблему онлайн платежей (online payments), под названием DigiCash. Эта компания начала свою работу примерно на 5 лет раньше, чем компании вроде FirstVirtual или CyberCash, о которых мы говорили ранее. В системе DigiCash реальные деньги назывались “ecash” , а внутренняя валюта — “cyberbucks”. Некоторые банки даже использовали эту систему — несколько в США и, как минимум, один в Финляндии. Это было в 1990-х годах задолго до появления Биткоина, что может несколько удивить Биткоин энтузиастов, которые видят банки как ретроградных чудищ (tech-phobic anti-innovative behemoths).

Ecash основывался на протоколах Chaum’а. Клиенты были анонимными и банки не могли отслеживать их траты. Но мерчанты в этой системе не анонимны. Они должны были возвращать монеты сразу же, как их получали, и поэтому банки знали как много они зарабатывали денег и когда.

Для отправки денег вы переходили по ссылке получателя, которая переводила вас на сайт DigiCash. Затем открывалось двухстороннее веб соединение (a reverse web connection) с вашим компьютером. Это означало, что ваш компьютер должен был быть способным принимать входящие соединения (incomming connections) и работать как сервер. Вам нужен был выделенный IP адрес и ваш провайдер должен был поддерживать входящие соединения. Если соединение прошло успешно, на вашем компьютере запускалось программное обеспечение ecash, и вы могли совершить платеж.

Chaum получил несколько патентов на технологию DigiCash, в частности, на алгоритм слепой подписи (a blind-signature scheme), который в ней использовался. Его действия были спорными и мешали другим людям разрабатывать системы ecash на основании его протокола. Но группа криптографов, зависавшая на так называемом рассылочном листе киберпанков (“cypherpunk” mailing list), хотела альтернативы. Эта рассылка была предшественником того мейл листа (mailing list), где Satoshi мать его (прим. перев.) Nakamoto позже презентовал миру Битноин — и это не совпадение.

Киберпанки разработали свою версию ecash под названием MagicMoney. Это нарушило патенты, но использование предполагалось только в рамках экспериментов. По большей части это была забава с консольным интерфейсом. Вы могли отправлять платежи (transactions) по почте. Вам нужно было просто скопировать и вставить платеж в письмо и отправить его другому пользователю. Для защиты платежа при передаче через интернет вы могли использовать программное обеспечение для конечного шифрования писем (end-to-end email encription software) вроде PGP.

Потом Ben Laurie вместе с рядом других лиц попытались заменить слепые подписи в ecash на незапатентованную альтернативу, практически не меняя оставшуюся часть системы.

Еще одно предложение (a proposal) от Ian Goldberg пыталось решить проблему неделимости монет. Его идея заключалась в том, что мерчант может выслать вам сдачу, если у него есть монеты подходящего номинала. Но при таком подходе появляется проблема с анонимностью. Как мы заметили ранее, в ecash отправители анонимны, тогда как мерчанты нет. Когда мерчант высылает сдачу, технически он становится отправителем и вы меняетесь ролями. Чтобы получить свою сдачу вам нужно прийти в банк, обменять полученные монеты, и тут ваша анонимность пропадает. В итоге получается, что нельзя доработать такую систему без нарушения анонимности. Goldberg выдвинул предложение (a proposal), в котором использовались монеты различных типов, благодаря чему стали возможны покупки со сдачей без нарушения анонимности.

Почему DigiCash провалился? Главная проблема заключалась в том, что было сложно убедить банки и мерчантов внедрить эту систему. Пока нет большóго числа мерчантов, которые пользуются такой системой, пользователям она тоже не интересна. Но хуже того, такая система не подразумевала обмен деньгами между непосредственно пользователями (user-to-user transactions) или, как минимум, это было очень сложно. Система была сосредоточена на взаимодействии между пользователями и мерчантами (user-to-merchant transactions). Поэтому если мерчанты были не заинтересованы в системе, то не было других способов разжечь к ней интерес. В конце концов, DigiCash проиграл, а компании-эмитенты банковских карт (credit card companies) выиграли.

Заметьте, что Биткоин позволяет два типа платежей. По факту, в Биткоине нет разделения на такие понятия как мерчант и пользователь. Возможно, поддержка user-to-user платежей внесла свой вклад в успех Биткоина. Это позволило пользоваться Биткоином с самого его появления: вы могли обмениваться транзакциями с другими пользователями пока комьюнити продвигала Биткоин и добивалась его принятия у мерчантов.

В последние годы существования компания DigiCash также экспериментировала с защищенными от взлома устройствами (tamper-resistant hardware) для предотвращения двойных трат (double spending) вместо их обнаружения. Предполагалось, что у вас есть небольшое устройство (a small hardware device) под названием кошелек (a “wallet”) или нечто вроде карты (a card). Это устройство вело учет вашего баланса, списывало деньги при тратах и увеличивало баланс, если вы загружали карты с дополнительными деньгами. Главной задачей было обеспечение невозможности взлома такого счетчика ни программными, ни физическими методами. Предполагалось, что если баланс становился нулевым, карта переставала предоставлять возможность совершать платежи до ее следующего пополнения.

Много других компаний также использовали цифровые денежные системы (electronic cash systems), основанные на защищенных от взлома физических устройствах (tamper-resistant hardware). DigiCash позже работал с Café — компанией, расположенной в Европе. Другая компания, основанная на такой же идее, называлась Mondex. Эту компанию позже выкупила MasterCard. У Visa также был свой вариант под названием VisaCash.

В Mondex пользователь владел умной картой (a smart card) и экземпляром кошелька (a ‘wallet unit’), на которые он мог закинуть деньги. Для платежа между пользователями (a user-to-user payment) отдающий сначала помещал свою карту в кошелек и перебрасывал деньги с самой карты на кошелек. Потом получающий вставлял свою карту в этот кошелек и деньги с кошелька зачислялись на его карту. Таким образом можно было анонимно обмениваться цифровыми деньгами (digital cash).

Mondex тестировал свою технологию в ряде сообществ (communities). Так сложилось, что одно из таких сообществ оказалось в городе, где я вырос: Гуэлф, Онтарио (Guelph, Ontario). Вы, наверное, уже догадались, что популярность эта система не обрела. Главная проблема Mondex карт в том, что они похожи на наличные — если вы их потеряли или они были украдены, нет способа их вернуть. Что еще хуже, если карта становится неисправной — картридер не может прочесть карту — становится невозможным понять, есть ли на карте деньги или нет. В таких случаях обычно Mondex возмещала потери клиентам. Естественно, это обходилось очень дорого для компании.

Кроме того, кошелек был медленным и неудобным. Было намного быстрее заплатить с помощью банковской карты или наличными. Также розничные торговцы (retailes) не очень-то и любили устанавливать несколько платежных терминалов (payment terminals); они хотели пользоваться лишь одним для банковских карт. Из таких мелочей и сложился провал Mondex.

Однако, такие карты были умными картами (smart cards) — это значит, что карта содержит небольшой микроконтроллер — и эта технология добилась успеха. Во многих странах, включая Канаду, где я живу, сегодня каждая кредитная и дебетовая карты разработаны на основе технологии умных карт (smart card technology). Это нужно для нескольких вещей. Технология не используется для предотвращения двойных трат — такая проблема просто не возникает, поскольку технология не основана на деньгах (cash based) (в смысле — карта не содержит никаких промежуточных монет и не существует обособленно — прим. перев.). Сам банк, а не карта, ведет учет вашего баланса или доступный кредит. Но вместо этого чип используется для идентификации, в ходе которой вы подтверждаете, что знаете PIN код, связанный с вашим счетом (an account). Но Mondex использовала эту технологию задолго до того дня, когда она стала стандартом в банковской индустрии.

Чеканка монет из “разряженного воздуха”

В системе DigiCash, если у вас была внутренняя валюта на сумму 100$, что заставляло ее столько стоить? Ответ довольно прост: чтобы получить ecash на 100$, вы должны были перевести со своего счета в банке на счет компании, выпускающей ecash, те же 100$. Но было много различных предложений (proposals) как конкретно это сделать, и различные компании использовали различные методы для осуществления такого обмена. Один из гипотетических вариантов: что если в какой-нибудь стране правительство разрешит определенным организациям чеканить цифровые деньги (to mint digital cash), по сути, создавая новые деньги из “разряженного воздуха”? Именно такая идея и стояла в основе NetCash, однако, эта идея так и не ушла дальше предложения (a proposal). Другая система, именуемая e-Gold, была основана на выпуске монет, обеспеченных золотыми запасами компании. Еще одна компания под названием Digigold обеспечивала свою валюту золотом только лишь от части.

Все эти идеи в конечном итоге крутились вокруг идеи обеспечения цифровой валюты либо долларом, либо каким-то товаром (a commodity). Если курс доллара изменялся, то изменялась и цена такой цифровой валюты. Кардинально отличный вариант заключался в том, чтобы цифровые деньги (digital cash) были валютой сами по себе, выпуск и стоимость которой ни к чему не привязаны.

Для создания свободно плавающей цифровой наличности (a free-floating digital currency), которая бы вероятно приобрела реальную стоимость, вам бы потребовалось нечто, что изначально задумано дефицитным в рамках своей системы. В реальности, отчасти благодаря своей дефицитности, золото и бриллианты использовались для обеспечения денег. В цифровых реалиях один из вариантов достижения дефицитности это создание такой системы, в которой для чеканки денег (minting money) требуется решать вычислительную задачу (или “пазл”), на что уйдет некоторое время.

Основополагающая идея — что решения таких пазлов могут быть цифровыми объектами, которые имеют некоторую ценность — довольно старая. Впервые она была предложена криптографами Cynthia Dwork и Moni Naor как потенциальное решение проблемы почтового спама (email spam) в 1992 году. Что если каждый раз, когда вы захотите отправить письмо (an email), ваш компьютер должен будет решить один из таких пазлов, что потребует нескольких секунд? И если вы не прикрепите к письму решение такого пазла, то программное обеспечение получателя проигнорирует ваше письмо. Для среднестатистического пользователя это бы доставило минимум неудобств, так как вряд ли кто-то отсылает письма очень часто. Но для спамера, высылающего тысячи или даже миллионы писем за раз, решение пазлов в таком объеме было бы затруднительным. Похожая идея независимо пришла в голову Adam Back (это тот самый парень, который сейчас тусуется в биткоине на секундочку @adam3us — прим. перев.) в 1997 году в предложении (a proposal) под названием Hashcash.

Такие вычислительные пазлы (computional puzzles) должны обладать определенными свойствами, чтобы быть пригодными для защиты от спама. Во-первых, не должно быть такой ситуации, где спамер, решив один пазл, может прикладывать это решение ко всем новым письмам. Для решения этой проблемы пазл должен быть уникальным для каждого нового письма: должна быть зависимость от получателя и отправителя, от содержимого письма и от примерного времени отправки такого письма. Во-вторых, получатель должен иметь возможность быстро проверить решение пазла без необходимости решать его самому. В-третьих, каждый пазл должен быть абсолютно независим от остальных в том смысле, что решение одного пазла никак не влияет на время решения другого пазла. Наконец, с постоянным ростом вычислительных возможностей современной техники, решать такие пазлы становится все быстрее и дешевле, поэтому получатели писем должны иметь возможность регулировать сложность (to adjust the difficulty) таких пазлов. Все эти свойства можно получить, используя криптографические хеш функции.

Биткоин, по сути, использует те же вычислительные пазлы, как и Hashcash, но с небольшими улучшениями. Биткоин намного сложнее Hashcash, поэтому, впрочем, для объяснения Биткоина требуется написать целую книгу! Я это уточнил лишь потому, что создатель Hashcash Adam Back как-то сказал “Биткоин это дополненный Hashcash”. Я думаю, он немного схитрил. С тем же успехом можно было сказать “Тесла это всего лишь батарейка на колесах”.

Как случается и с любой хорошей идеей в криптографии, появилось много вариантов вычислительных пазлов, которые обладают несколько разными свойствами. Одно предложение (a proposal) выдвинули Ron Rivest и Adi Shamir — отсюда берет в названии свои “R” и “S” алгоритм RSA. В архитектуре Hashcash ваши затраты на решения пазлов складывались из суммы индивидуальных затрат. Но это отличается от того принципа, по которому считаются затраты государства на чеканку денег. Если вы задумаетесь, какая технология по обеспечению подлинности лежит в основе бумажных денег, то заметите, что на первом шаге появляются огромные затраты на приобретение всего оборудования, необходимого для обеспечения подлинности денег. Но как только оборудование приобретено, затраты снижаются и не сильно различимы при выпуске одной или сотен банкнот. Другими словами, чеканка бумажных денег имеет фиксированные огромные первоначальные затраты, но низкие дальнейшие предельные издержки. Rivest и Shamir хотели разработать вычислительные пазлы, которые копируют эту схему, где чеканка первой монеты требует огромных вычислительных мощностей, а затраты на все следующие монеты стоят значительно меньше. Их предложение также предполагало использование хеш функций, но в несколько ином ключе. Мы не будем углубляться в детали, но проблема, которую они пытались решить, интересна на высоком уровне (a high level) (на уровне концепта, в абстрактном понимании — прим. перев.).

Почему Hashcash так и не завоевал популярность, и не использовался по его прямому назначению — препятствию спаму? Для большинства людей спам это, конечно, неприятность, но не то, на борьбу с чем они хотят тратить свои вычислительные циклы (computing cycles). Сейчас у нас есть спам фильтры, которые работают достаточно эффективно. Также возможно, что Hashcash в действительности бы не остановил спамеров. В частности, многие спамеры для своих рассылок сейчас используют ботнеты (botnets) (большие группы компьютеров, контроль к которым спамеры получают за счет вирусов (malware)). Спамеры могли бы использовать такие ботнеты для решения пазлов Hashcash. Но идея об использовании вычислительных пазлов для ограничения доступа к ресурсам продолжает использоваться вокруг нас. Вы можете встретить ее в предложениях альтернативных протоколов сетей (network protocols), таких как MinimaLT.

Записываем все в блокчейн

Еще одна ключевая составляющая в Биткоине это блокчейн: книга, в которой все транзакции записаны безопасным образом. Идеи, стоящие за блокчейном, снова не новы и возвращают нас к наработкам Haber и Stornetta 1991-го года. Они предложили защищенный метод для создания временных отметок (timestamping) для цифровых документов, а не для цифровых денег. Такие отметки служат для приблизительного представления о времени создания документа. Но что более важно, такие отметки дают однозначное понимание о порядке создания таких документов: если один документ создан раньше другого, временные отметки это зафиксируют. Для безопасного использования такой системы, временные отметки должны быть неизменяемыми.

В архитектуре Haber и Stornetta подразумевался некий сервер, куда клиенты присылали свои документы. Когда документ был получен, он подписывался вместе с текущим временем и ссылкой или указателем (a pointer) на предыдущий документ, а также выпускался сертификат с этой информацией (рис. 1).

Рис. 1 — Процесс связывания временных отметок. Для создания сертификата документа сервер включает в него хеш указатель (a hash pointer) на предыдущий сертификат документа и текущее время, а потом подписывает все три элемента вместе (сертификат, хеш указатель и текущее время).

Указатель, упомянутый выше, это особый тип указателя, который указывает на некоторые данные, а не на их расположение. В таком случае, если данные меняются, такой указатель автоматически становится недействительным.

В рассматриваемом нами протоколе каждый сертификат документа обеспечивает целостность содержимого предыдущих документов. Вы можете посмотреть на это рекурсивно: каждый сертификат фиксирует всю историю документов и сертификатов вплоть до текущего момента. Если мы добьемся того, что каждый клиент в такой системе отслеживает по меньшей мере хотя бы несколько таких сертификатов — например, которые относятся к его документам, и парочку, которые стоят перед и после его сертификатов — коллективно участники смогут обеспечить неизменность истории в такой системе. В частности, сохранится относительная последовательность документов.

Позже было предложено улучшение: вместо связывания каждого отдельного документа мы можем собрать их в некоторые блоки и связать такие блоки в цепочку. В каждом блоке документы будут снова связаны между собой, но вместо линейной структуры будет использоваться древовидная. Такая структура позволяет быстрее проверять принадлежность конкретного документа ко всей запечатленной истории. Такой гибридный дизайн показан на рис. 2.

Рис.2 — Более эффективный способ связывания временных меток. На схеме стрелками изображены указатели, а пунктирные линии представляют собой временные интервалы.

Такая структура данных (data structure) образовала скелет блокчейна Биткоина. Биткоин улучшил эту систему небольшим, но очень важным штрихом: протокол в стиле Hashcash использовался для обозначения времени, в рамках которого новые блоки будут добавлены к цепи. Такое дополнение имело глубокие и благоприятные последствия для модели безопасности, используемой в Биткоине. С этого момента отпала нужда в доверительном сервере; вместо этого группа узлов, которым не нужно доверять (untrusted nodes), называемая майнерами (miners), стала записывать все происходящее в сети. Каждый майнер отслеживает все блоки самостоятельно, вместо того, чтобы полагаться на других пользователей (как это было в системе Haber и Stornetta, где каждый пользователь обеспечивал сохранность разных частей информации — прим. перев.). Каждый может стать майнером и создавать новые блоки в сети путем решения вычислительных пазлов. Биткоин также устраняет необходимость в подписях, основываясь только на хеш указателях (hash pointers) для обеспечения целостности (integrity) данных. Наконец, реальные временные отметки не так важны в Биткоине, т.к. идея заключается в записи относительной последовательности транзакций таким образом, чтобы ее нельзя было никоим образом изменить (a tamper-resistant way). Блоки Биткоина не создаются по четкому расписанию. Система предполагает, что каждый новый блок создается в среднем за 10 минут, но допускаются значительные различия во времени между последовательными блоками.

В сущности, Биткоин совмещает идею использования вычислительных пазлов для эмиссии новых монет с идеей безопасного способа создания временных отметок для ведения книги (a ledger) транзакций и предотвращения двойных трат. Вы удивитесь, но до Биткоина были менее замысловатые предложения, которые использовали эти две идеи. Первое — b-money, выдвинутое Wei Dai в 1998 году. В b-money любой мог создавать деньги, используя систему, похожую на Hashcash. Это была одноранговая сеть (a peer-to-peer network), похожая на ту, что используется в Биткоине. Каждый узел вел свою книгу, но эта книга не была общей, как в Биткоине. Каждый узел имел свою собственную книгу, в которой отражались предположения о том, какой баланс у каждого пользователя.

Второе похожее предложение, выдвинутое Nick Szabo (угадайте, где этот парень сейчас и чем он занимается? @NickSzabo4 — прим. перев.), называлось Bit… Bitgold. Szabo говорит, что идея для Bitgold у него родилась еще в 1998 году, но он не решался писать о ней вплоть до 2005 года. Причина, по которой я упоминаю об этом, заключается в небольшой теории заговора, популяризованной Nathaniel Popper — репортером New York Times — который написал очень хорошую книгу об истории Биткоина. Popper отметил, что после того, как Satoshi опубликовал белую бумагу (a white paper) Биткоина, временные метки в блоге были изменены таким образом, чтобы все выглядело как будто предложение Bitgold (the Bitgold proposal) было описано спустя примерно два месяца после появления Биткоина. Popper, как и многие другие, верит, что Szabo может быть Satoshi, хотя сам Szabo это и отрицает. Popper ссылается на изменение временных меток как на доказательство того, что Szabo/Satoshi пытается замести следы путем сокрытия того факта, что он придумал предшественника Биткоина (т.е. хочет, чтобы все выглядело так, будто Bitgold не предшествовал Биткоину).

Проблема с этим объяснением в том, что если вы действительно прочли содержимое постов в блоге, очень вероятно, что Szabo придумал эту идею в 1998 году, но он не пытался изменить даты. Более вероятно, что он просто бампнул (to bump — на сленге означает “написать что-нибудь, чтобы поднять пост вверх” — прим. перев.) свой пост после того, как Биткоин популяризовал схожие идеи, для того, чтобы люди увидели его предшествующее предложение.

У Биткоина есть несколько важных отличий от b-money и Bitgold. Первое — в этих двух предложениях вычислительные пазлы используются напрямую для чеканки новых монет. Любой может решить такой пазл, и это решение и есть деньги. В Биткоине же такие решения сами не создают деньги. Они используются для обеспечения безопасности в блокчейне и только косвенно приводят к чеканке денег. Второе — b-money и Bitgold полагаются на серверы, создающие временные отметки (timestamping servers), которые утверждают создание или перемещение денег. В Биткоине, как мы обсудили ранее, нет необходимости в доверительном сервере, создающем временные отметки, и все основывается на сохранении относительной последовательности блоков и транзакций.

Наконец, в b-money и Bitgold при возникновении разногласий насчет книги (a ledger) среди серверов и узлов нет ясного механизма для их устранения. Складывалось впечатление, что решение такой проблемы предоставлялось большинству. Но поскольку каждый мог запустить узел или сотни узлов от вымышленных лиц, такой механизм является небезопасным до того момента, пока не появляется регулятор, контролирующий членов сети. В Биткоине же атакующему (an attacker), чтобы изменить историю, нужно решать вычислительные пазлы с более высокой скоростью, чем это делают все оставшиеся вместе взятые участники сети.

B-money и Bitgold были неофициальными предложениями (informal proposals) —информацию о b-money разослали в мейл листе (a mailing list), а Bitgold увидел свой свет в виде серии постов в блоге. Оба проекта не достигли успеха и не были реализованы в первоначальном виде. В отличии от белой бумаги Биткоина, для этих двух проектов так и не была предоставлена полная спецификация или какой-либо код. Эти предложения умалчивали о проблемах, которые могли или не могли быть решаемыми. Во-первых, как мы успели отметить, каким образом должны решаться разногласия насчет книги. Следующая проблема заключалась в том, что не было механизма, определяющего сложность вычислительных пазлов для чеканки монет. Поскольку налицо тенденция резкого уменьшения стоимости конкретного количества вычислительных мощностей, Биткоин включает в себя механизм для автоматического периодического регулирования сложности вычислительных пазлов. У b-money и Bitgold не было такого механизма, что могло привести к проблеме, когда монеты могут потерять свою стоимость из-за того, что выпускать их становится чрезвычайно просто.

Намеки о личности Satoshi

Вы, наверное, знаете, что создатель Биткоина взял себе псевдоним Satoshi Nakamoto. Хотя его личность остается загадкой, его активность была очень большой в ранние дни становление Биткоина. Давайте покопаемся в его переписках, чтобы попробовать найти ответы на вопросы вроде: когда он начал работать над Биткоином, в какой степени на него повлияли те идеи, которые мы уже успели рассмотреть выше и что вообще его мотивировало?

Satoshi утверждает, что он начал работать над кодом Биткоина где-то в мае 2007 года. Давайте поверим ему на слово; тот факт, что он пожелал остаться анонимным еще не говорит о том, что он лжет в моментах вроде этого. Он зарегистрировал домен bitcoin.org в августе 2008 года. И в это время он начал рассылать частные письма (private emails) некоторым людям, которые, по его мнению, могли заинтересоваться в его предложении (a proposal). Чуть позже, в октябре 2008 года, он опубликовал белую бумагу, которая описывала сам протокол, и чуть позже он выложил первый код Биткоина. Потом он был рядом примерно 2 года и в течение этого времени написал много постов на форумах, переписывался по почте со многими людьми и отвечал на беспокойства людей вокруг. В плане кода он продолжал выпускать патчи. Он поддерживал исходный код (a source code) вместе с другими разработчиками и работал над устранением проблем, когда они возникали. К декабрю 2010 года другие разработчики плавно переняли на себя поддержку проекта и Satoshi перестал выходить с ними на связь.

Мы говорим о Satoshi Nakamoto как о мужчине, хотя нет конкретных причин предполагать, что он мужчина, а не женщина. Я использую мужской род только лишь потому, что Satoshi мужское имя. Также мы говорим о нем в единственном числе, хотя есть немало теорий, что за псевдонимом скрывается целая команда. Я не придерживаюсь этой теории, мне кажется, что Satoshi действительно мог работать в одиночку. Если мы оценим всю активность в интернете под псевдонимом Satoshi, в рамках которой он потратил примерно 2 года, отвечая на письма и исправляя код, очень сложно вообразить, что вся эта активность была результатом работы группы людей, которые совместно использовали аккаунты и пароли, отвечали в едином как стиле письма, так и идеологическом ключе, и были настолько хорошо скоординированы, что не противоречили друг другу. Куда более простым объяснением кажется, что хотя бы по меньшей мере эта часть активности Satoshi была реализована одним человеком.

Кроме того, из его сообщений и патчей для кода очевидно, что этот человек понимал всю кодовую базу Биткоина и все аспекты архитектуры. Поэтому разумно предположить, что этот же человек написал изначальную кодовую базу (an original code base) и белую бумагу. Наконец, вполне возможно, что Satoshi помогли с первоначальной архитектурой (an original design) Биткоина. Однако, после запуска Биткоина, Satoshi охотно делился именами всех тех, кто присоединялся к проекту и помогал ему с ним. Из этого можно сделать вывод, что он бы вряд ли вводил людей в заблуждение об авторстве проекта, если бы ему кто-нибудь помогал.

Так что же знал Satoshi об истории цифровых денег (ecash)? Для лучшего понимания давайте взглянем на то, к чему он ссылался в своей белой бумаге, и какие отсылки были на его сайте. В белой бумаге он ссылается на некоторые труды об основах криптографии (basic cryptography) и теории вероятностей (probability theory). Он также ссылается на труды о временных метках (a timestamping work), о которых мы говорили ранее, поэтому логично предположить, что он разрабатывал архитектуру блокчейна на основе этой работы, поскольку сходство очень очевидно. Он также ссылается на предложение Hashcash, вычислительные пазлы которого очень схожи с теми, что используются в Биткоине. И также он ссылается на b-money. Позже на веб-сайте он добавит отсылки к Bitgold и к идее (a scheme) Hal Finney о повтором использовании решений (solutions), полученных в ходе вычисления пазлов.

Но если мы взглянем на опубликованную переписку по почте между Satoshi и теми людьми, которым удалось с ним пообщаться в ранние дни Биткоина, мы заметим, что информация о предложении (a proposal) b-money была добавлена после предложения (a suggestion) Adam Back. Satoshi затем списался с создателем b-money Wei Dai и, по всей видимости, Dai рассказал ему о Bitgold. Так что, возможно, эти предложения (proposals) не были тем, что вдохновляло Satoshi при проектировании первоначальной архитектуры (a original design). Позже он много переписывался с Hal Finney, и это вполне логичное объяснение, почему Satoshi упоминал труды Finney хотя бы на своем сайте.

Основываясь на этой информации, кажется правдоподобным, что при создании Биткоина временные метки (timestamping) и Hashcash были единственными примерами из истории цифровых денег (ecash), о которых Satoshi знал или которые он считал подходящими. Однако, после того, как он узнал о b-money и Bitgold, похоже, что он оценил уместность этих идей. В середине 2010 года статья о Биткоине на википедии была помечена для удаления, поскольку редакторы википедии посчитали, что она не заслуживает внимания. Из-за этого между Satoshi и другими участниками завязалось обсуждение, каким образом сформулировать и переписать статью, чтобы википедии она показалось значимой. В итоге Satoshi предложил описание Биткоина как “Биткоин как реализация предложений Wei Dai о b-money, выдвинутого в мейл листе Киберпанков в 1998 году и Nick Szabo о Bitgold” (“Bitcoin is an implementation of Wei Dai’s b-money proposal on Cypherpunks in 1998 and Nick Szabo’s Bitgold proposal”). Выходит, что Satoshi к этому моменту думал, что позиционирование Биткоина как дополнения (an extension) этих двух идей или как реализацию этих двух предшествующих концепций (prior systems) будет отличным объяснением того, как Биткоин работает.

Но что насчет других предложений — концепций цифровых денег Chaum’a (Chaumian ecash schemes) и предложений банковских карт (credit card proposals), которые мы также рассмотрели? Знал ли о них Satoshi, когда разрабатывал архитектуру Биткоина? Сложно сказать. Нет никаких признаков, что он о них знал, но вполне возможно, что эти идеи просто не подходили под концепцию Биткоина и поэтому он о них не говорил. В Биткоине используется совершенно отличная, децентрализованная модель, поэтому не было веских причин подробно останавливаться на централизованных системах, которые провалились.

Satoshi сам делится таким мнением, упоминая вскользь цифровые деньги Chaum’а (Chaumian ecash) в одном из его постов на форуме. Размышляя над еще одним предложением под названием opencoin.org, он отмечает, что похоже они

говорят о старой централизованной идее Chaum’а о чеканке денег, но, возможно, только потому, что только этот концепт был им доступен. Возможно, они заинтересуются новым направлением. Многие люди сейчас сразу же отвергают идеи о цифровых деньгах (e-currency), поскольку считают их безнадежными после провалов всех компаний, которые занимались этим с 1990-х годов. Надеюсь, это очевидно, что все эти системы были централизованными, что и послужило их провалом. Думаю, что мы впервые столкнулись с децентрализованной системой без доверия (a decentralized, non-trust-based system).

Could be. They’re talking about the old Chaumian central mint stuff, but maybe only because that was the only thing available. Maybe they would be interested in going in a new direction.

A lot of people automatically dismiss e-currency as a lost cause because of all the companies that failed since the 1990’s. I hope it’s obvious it was only the centrally controlled nature of those systems that doomed them. I think this is the first time we’re trying a decentralized, non-trust-based system.

(Взято с —http://satoshi.nakamotoinstitute.org/posts/p2pfoundation/2/— прим. перев.)

Это отличный пример того, что Satoshi думал о предыдущих предложениях, и в чем он видел отличие Биткоина от этих концепций. Децентрализация в Биткоине совершенно точно определяющая черта, которая отличает его от почти всего того, что мы рассмотрели ранее.

Другое интересное высказывание Satoshi может намекнуть нам на то, что он мог и не быть ученым. Большинство академических исследователей сразу записывают все свои идеи, и уже потом переходят к разработке систем, основанных на этих идеях. Satoshi же сказал, что он пошел по противоположному пути:

На самом деле я реализовал Биткоин в обратном направлении. Мне пришлось написать весь код прежде, чем я смог убедить себя, что я смогу решить все проблемы, и уже потом я написал меморандум (a paper). Думаю, я смог бы выпустить код быстрее, чем написать детальную спецификацию.

I actually did this kind of backwards. I had to write all the code before I could convince myself that I could solve every problem, then I wrote the paper. I think I will be able to release the code sooner than I could write a detailed spec.

(Взято с —http://satoshi.nakamotoinstitute.org/emails/cryptography/6/#selection-209.30-215.42— прим. перев.)

Поскольку много таинственного окружает личность Satoshi, будет ценным отметить, что он допускал ошибки как и все остальные, и не был ясновидящим. Были и ошибки (bugs), и сомнительные решения в архитектуре (questionable design choices) в первоначальной базе Биткоина (an original Bitcoin code). Для примера, возможность пересылать биткоины по IP адресам так и не завоевала популярность и ретроспективно была не лучшей идеей. Когда он описал для чего будет полезен Биткоин, все его варианты были сосредоточены на идее использования Биткоина в Интернете. Конечно же, такой способ использования Биткоина является ключевым, но он не единственный. Satoshi не показывал замыслов (a vision — о, котором так любят говорить — прим. перев.), где можно пойти в кофешоп и иметь возможность оплатить свой кофе с помощью биткоинов, например.

(тут речь идет не том, что Биткоин не подразумевался как платежка или что биткоины не подразумевались как форма денег, а о том, что они такими были первоначально задуманы в цифровой среде, такой как Интернет. Кофешоп здесь противопоставляется как нечто оффлайновое, что выходит за рамки цифровой среды. Так что спокойно, любители истинного видения Сатоши, никто китов зарезать не пытается — прим. перев.)

Почему Satoshi оставался анонимным? Есть много возможных вариантов. Для начала, это могло быть неким развлечением. Много людей пишут романы анонимно, а еще некоторые райтеры вроде Bansky тоже предпочитают быть анонимными. Фактически, в те времена, когда Satoshi проявлял активность в комьюнити — комьюнити шифропанков и мейл лист криптографии (the cyptherpunk community and the cryptography mailing list) — анонимность была обыденностью.

Или юридические аспекты могли повлиять на выбор Satoshi. Две американские компании Liberty Reserve и e-Gold были вовлечены в судебные разбирательства из-за отмывания денег (money laudering). В 2006 году, один из учредителей Liberty Reserve покинул США, опасаясь, что он будет осужден по обвинению об отмывании денег. Учредитель же e-Gold наоборот остался в стране, был осужден, и в конечном итоге признал себя виновным. Об этом признании было объявлено прямо перед тем, как Satoshi запустил сайт и стал рассылать людям по почте свое предложение. Правда, многие люди разрабатывали свои системы цифровых денег (ecash systems), и никто из них не боялся юридических последствий или пытался оставаться анонимным. Поэтому не факт, что юридические проблемы могли стать причиной для анонимности Satoshi.

Также важно вспомнить, что некоторые аспекты систем цифровых денег (ecash) были запатентованы, и участники шифропанк движения были обеспокоены разработкой ecash систем из-за этих патентов. И на самом деле, однажды в мейл листе шифропанков (the cypherpunks mailing list) один из участников допустил, что если даже кто-то решит подать иск на анонимную группу разработчиков, которые работают над ecash системой, то их попросту не найдут. Поскольку сложно допустить, что Биткоин нарушил бы ecash патенты, ведь его архитектура в корне отличается, возможно, Satoshi был очень-очень осторожным. Или его просто вдохновила идея анонимности, которую пропагандировало комьюнити шифропанков.

Еще одной часто упоминаемой причиной могла быть собственная безопасность. Многие знают, что у Satoshi было много биткоинов, которые он успел намайнить в первые дни, и из-за успеха Биткоина эти монеты стали стоить целое состояние. Эта причина мне кажется правдоподобной. В конце концов, анонимность это не что-то, к чему вы прибегаете время от времени, это определенный взгляд на жизнь. Поэтому и эта причина, возможно, несколько притянута за уши. Satoshi начал использовать свой псевдоним еще когда он не выпустил белую бумагу и кодовую базу Биткоина, и сложно предположить, что он знал наверняка, что Биткоин станет НАСТОЛЬКО популярным. В реальности же, было немало моментов, в которых Satoshi хоть и оставался оптимистичным, но был очень озадачен перспективами Биткоина. Все было похоже на то, что он ясно понимал, что многие предыдущие попытки провалились, и Биткоин может ждать такая же судьба.

Напоследок

Успех Биткоина весьма примечателен, если учесть все провальные попытки, которые хотели достичь того же, что смог Биткоин. В Биткоине есть несколько революционных нововведений, таких как блокчейн и децентрализованная модель, которая поддерживает транзакции между пользователями (user-to-user transactions). В нем есть анонимность, хоть и не идеальная (так называемая псевдоанонимность — прим. перев.). В каком-то смысле эта анонимность не такая надежная, как в DigiCash, но в другом — она даже более надежна. DigiCash обеспечивал анонимность только для отправителя денег, но мерчанты всегда оставались под угрозой. В Биткоине же обе стороны (получатель и отправитель вне зависимости от того, совершается ли сделка между двумя пользователями или это взаимодействие между покупателем и продавцом) имеют одинаковый уровень конфиденциальности.

Давайте вынесем несколько уроков, которые преподал нам Биткоин, через призму предыдущих рассмотренных нами систем. Первый — никогда не сдаваться перед проблемами. Даже если у множества людей в течение 20 лет не получалось разработать цифровые деньги, это еще не значит, что такая система не может быть разработана. Второй — будьте готовы к компромиссу. Если вы хотите идеальную анонимность или идеальную децентрализацию, возможно, вам придется пожертвовать чем-то другим в вашей архитектуре. Ретроспективно кажется, что в Биткоине выбран оптимальный баланс. В нем снижена анонимность, и пользователи должны быть постоянно онлайн и подключенными к одноранговой сети, что оказалось вполне допустимым для них.

Наконец, успех пришел за счет своей массовости. Биткоин смог собрать вокруг себя очень преданное и страстное комьюнити и в то же время разработчиков, которые захотели принять участие в разработке технологии с открытым исходным кодом (an open-source technology). Такой подход значительно отличается от предыдущих попыток разработки цифровых денег, когда за дело брались крупные компании, и единственными сторонниками таких технологий были лишь сами сотрудники этих компаний. Нынешний успех Биткоина обусловлен в значительной степени рьяной поддержкой комьюнити, которое долгие годы помогало окружающим разобраться с технологией и убеждало бизнес по всему миру принимать к оплате биткоины.

Помните, что зазывая людей в щиткоины и скамя окружающих на разных памп-дамп схемах, вы ставите под удар не только все ваши и сбережения окружающих, но и труды большого количества светлых умов. Движение шифропанков не появилось с Биткоином или закладками под чьим-то окном на окраине. Это извечный мотив борьбы между правами Человека и Государством. Человечество смогло побороть рабство, неравноправие и многие другие предрассудки. Но по-прежнему остается проблема “денежного рычага”, который может оказать давление на любого. Это тот рычаг, который позволяет ставить целые страны на колени только чтобы чьему-то “бизнесу” было “выгоднее” или “дешевле”. Биткоин это неподконтрольные деньги, которые родились в Интернете. И неподконтрольны они только за счет децентрализации. Как только пропадает децентрализация, любая криптовалюта превращается в неповоротливую платежку, которая проигрывает во всем любой современной вроде Perfect money, OkPay, Payeer, ADVCash, WebMoney, Qiwi или Яндекс Деньги. Любой блокчейн, как только теряет свою децентрализацию, превращается в громоздкое, неконкурентное, медленное подобие распределенных баз данных, которые существуют на рынке миллион лет. И существует не только Биткоин, а блокчейн применяется не только для денег. В первую очередь децентрализованный блокчейн — это гарант неизменности данных. А такая неизменность нужна во многих аспектах современной жизни. Никогда еще в руках обычного человека не было настолько мощного и в то же время мирного инструмента для трансформации Мира. И сейчас мы только в самом начале удивительного путешествия, которое преобразует окружающую нас Действительность и сделает Мир чуточку светлее.

А еще в тяжелые времена члены комьюнити должны забывать на время свои разногласия и помогать друг другу. Подобные ситуации это пощечина лично каждому из нас. И если у вас нет идей, как можно помочь, или нет знаний в юридических аспектах, то вы всегда по меньшей мере можете поделиться происходящим с окружающими в попытках вызвать общественный резонанс.

Огромное человеческое спасибо Ops85 за тщательную редактуру. Благодаря этому человеку работа стала на несколько уровней профессиональнее и приятнее для чтения.

--

--