
Полная версия:
История криптовалют. Биткойн-детектив
Третьим принципом была простота. Система должна была быть простой и доступной для пользователей. Все, что требовалось для ее использования – наличие подключения к интернету и работающий компьютер. Прием платежей в e-gold на своем сайте тоже было организовать очень легко – достаточно было просто вставить на сайт форму ShopingCartInterface. Как ни странно, e-gold предложила и первое среди платежных систем API пользователям для интеграции сервиса e-gold в сайты клиентов.
Для управления операциями с виртуальной золотой валютой e-gold была создана компания Gold & Silver Reserve Inc. (G & SR), которая, в свою очередь, управлялась e-gold Ltd. В качестве золотого обеспечения системы первоначально использовались золотые монеты, хранившиеся в банковском хранилище банка в Мельбурне, штат Флорида50. С 1996 по 1999 годы система напрямую поддерживала услуги обмена драгоценного металла в рамках сервисов «InExchange»51 и «OutExchange»52. В 1999 году система, с помощью Palm Pilot, продемонстрировала возможность осуществления платежей с помощью мобильных телефонов53.
Нарастив свой функционал, система e-gold начала свое триумфальное шествие по планете. За первые шесть лет после запуска, к 2004 году, в e-gold было открыто более 1 миллиона клиентских счетов. Как отметила еще в 1999 году «Financial Times», e-gold стала единственной электронной валютой, которая достигла критической массы в интернете. Это была первая успешная электронная валюта, которая получила признание как со стороны покупателей, так и со стороны продавцов. Также e-gold Ltd. стала первой в мире компанией, предлагающей клиентам программный интерфейс API для создания торговых приложений и осуществления транзакций. Начиная с весны 2000 года можно говорить о появлении новой отрасли, предоставляющей услуги по обмену национальных фиатных валют на электронные частные деньги. К 2001 году уже несколько десятков компаний и частных лиц со всего мира предлагали третьим лицам услуги по обмену национальных валют на электронное золото и наоборот, расширяя, таким образом, международную базу пользователей e-gold. Число обработанных в 2005 году транзакций в системе составило более 10 миллионов, что продемонстрировало рост на 40% по сравнению с 2004 годом. Ежедневный оборот в системе в это время составлял более 500 тысяч долларов США. К 2007 году число зарегистрированных клиентов e-gold превысило 3 миллиона человек. В 2009 году количество клиентов составило 5 миллионов.
На своем пике в 2006 году система e-gold обрабатывала в год транзакций на сумму в 2 миллиарда долларов. Интересно отметить, что эти 2 миллиарда годового оборота осуществлялись на денежной основе всего лишь в 71 миллион американских долларов – именно на такую сумму в системе было выпущено расписок e-gold на реальное золото. Это соответствовало в то время примерно 3,5 метрическим тоннам золота. То есть оборачиваемость e-gold в год составляла 28 раз. Для примера можно сказать, что оборачиваемость доллара США, по данным американского Федерального резервного банка, составляла в то время всего 6 раз в год по М154 и 1,6 раза в год для М255.
Однако резкое увеличение популярности системы e-gold стало и причиной ее краха. Декларируемая системой политика полной свободы и предоставляемая ей полная анонимность явились причиной того, что услугами системы стали в массовом порядке пользоваться различного рода мошенники, продавцы детской порнографии, организаторы финансовых пирамид, торговцы наркотиками и террористы. E-gold делала вид, что не особо замечает, кто делает ей основной оборот и каково происхождение и назначение денежных средств, циркулирующих в системе. Переписка по этим вопросам с правительственными органами шла в вялотекущем режиме. Дуглас Джексон даже сообщил в 2007 году, что его организация помогла в проведении более 300 расследований и сообщила в Национальный центр по делам пропавших и эксплуатируемых детей о 3000 потенциальных покупателях детской порнографии56. Однако все чаще и чаще федеральные правоохранительные органы начали характеризовать e-gold в качестве платежной системы для преступников, террористов и продавцов детской порнографии57.
В связи с прошедшими в США 11 сентября 2001 года терактами, когда были разрушены башни-близнецы Международного торгового центра, началось планомерное и последовательное ужесточение законодательства, в том числе и в финансовой сфере. Создатели e-gold в полном объеме оценить грядущие для системы негативные последствия сразу, видимо, не смогли. Принятый в США почти сразу после терактов 11 сентября Закон о патриотизме58, внес бизнес по передаче и переводу денег без государственной лицензии в список федеральных преступлений. Изначально электронная валюта e-gold деньгами не считалась. Однако в период с 2006 по 2008 год Министерство финансов США совместно с Департаментом юстиции Соединенных Штатов ввели ряд уточнений в законодательство. В соответствии с ними любая система, осуществляющая перевод любых ценностей от одного лица к другому, требовала наличия лицензии. В расширенной трактовке под ценностями стали пониматься не только национальные валюты, но любые другие финансовые инструменты, представляющие материальную ценность. В том числе под эту формулировку прекрасно подходил уже и e-gold. Используя эту формулировку, власти США приступили к планомерному судебному преследованию оперирующих с e-gold компаний. Все попытки Gold & Silver Reserve Inc. получить государственную лицензию наталкивались на отказы со стороны государства. Государство поставило задачу исключить e-gold из числа действующих на рынке финансовых инструментов – и государство справилось с этой задачей. В ноябре 2013 года «Financial Times» выпустила статью, в которой отмечалось, что «в течение нескольких лет г-н Джексон надеялся возродить сам e-gold, но стало ясно, что он не сможет получить лицензии на денежные переводы, необходимые в большинстве штатов США»59.
1997 год. Адам Бэк создает алгоритм HashСash
До недавнего времени мало кто знал имя Адама Бэка. Еще меньше людей знало, какой же вклад он внес в развитие криптовалют. Современные майнеры 24 часа в сутки используют мощности своих компьютеров для добычи электронных монет. В случае большинства криптовалют новые монеты выпускаются в виде вознаграждения тому участнику процесса майнинга, который проверил определённое количество транзакций в сети на валидность, собрал эти транзакции в так называемый блок и добавил этот блок в блокчейн – распределённую базу данных. Механизм защиты от бесконтрольного создания блоков и выпуска монет, а также от других возможных злоупотреблений – необходимый элемент в процессе майнинга. Наиболее распространённым механизмом такой защиты является алгоритм Proof-of-Work (PoW), то есть «доказательство работы», требующий доказать, что майнером для создания блока были действительно проведены необходимые вычисления.
Впервые принцип Proof-of-Work был описан в 1993 году Синтией Дворк и Мони Наор60. Авторы предложили следующую концепцию:
«Чтобы получить доступ к общему ресурсу, пользователь должен вычислить некоторую функцию: достаточно сложную, но посильную; так можно защитить ресурс от злоупотребления».
Звучит немного сложно, но на самом деле смысл можно проиллюстрировать на достаточно простом примере. Допустим, вы владелец интернет-форума или электронного почтового сервера. Ваши пользователи имеют возможность писать на форум сообщения или отправлять другим пользователям электронные письма. Стоит задача – как вам защититься от спамеров и при этом не мешать пользоваться вашими сервисами добросовестным пользователям? Теоретически, современные домашние компьютеры позволяют генерировать миллионы сообщений на форумы или миллионы писем со спамом. Вот тут и приходит на помощь PoW. Вы перед каждой отправкой сообщения на форум или перед отправкой электронного письма на чей-то электронный адрес заставляете компьютер пользователя в фоновом режиме выполнить определенную операцию, которая в среднем будет занимать, к примеру, 1 секунду. При этом вы будете проверять, действительно ли пользователь выполнил необходимую операцию. Для добросовестного пользователя это не проблема. В случае же со спамером время выполнения рассылки 1 миллиона сообщений увеличится на 1 миллион секунд. Или на 11,5 суток, что уже будет для него вряд ли приемлемым.
Именно на этом принципе Адам Бэк начал в 1997 году начал создавать систему анти-спама, которую назвал HashCash. Профессор в области компьютерных технологий и распределённых систем Эксетерского университета Адам Бэк вначале сам не мог представить, к чему приведут его разработки. Он добросовестно решал лишь задачу борьбы со спамом в интернете. Ему необходимо было построить функцию, которая бы таким образом преобразовывала вводимые в нее данные, чтобы на выходе получался заранее известный результат. То есть вычисления должны были быть несимметричными – время подбора функцией ответа должно быть достаточно большим, а время проверки результата – минимальным.
Адам нашел способ предсказывать, сколько времени потребуется компьютеру с процессором, имеющим известную тактовую частоту, для производства определенных вычислений. Так был создан HashCash – алгоритм доказательства правильности работы, требующий выборочного объёма данных для вычислений. При этом само доказательство может быть эффективно подтверждено. У пользователей электронной почты к заголовку добавлялся текст отметки HashCash, подтверждающий, что перед отправкой письма компьютером пользователя было затрачено заданное время для вычисления отметки. Заголовок отметки выглядит следующим образом:
X-Hashcash: 1:20:1303030600:adam@cypherspace.org::McMybZIhxKXu57jd: FOvXX
Сам заголовок содержит:
ver: Версию hashcash, 1 (которая заменила версию 0).
bits: Число «предварительных» (нулевых) битов в хешированном коде.
date: Время, в которое сообщение было отправлено, в формате ГГММДД [ччмм [сс]].
resource: Данные об отправителе, например, IP адрес или адрес E-mail.
ext: Расширение (опционально; игнорируется в версии 1).
rand: Строка случайных чисел, закодированная в формате base-64.
counter: Двоичный счетчик, закодированный в формате base-64.
В заголовке имеются адрес получателя, дата сообщения, информация, подтверждающая, что все требуемые вычисления осуществлены. Присутствие адреса получателя требует пересчитывать заголовок для другого получателя. Дата позволяет получателю учитывать заголовки недавно полученных писем и убеждаться, что заголовок пришедшего сообщения уникален.
На стороне компьютера отправителя заголовок формируется и к нему добавляется случайное число. Затем вычисляется точный 160-битный SHA-1 хэш заголовка. Если первые 20 бит заголовка – нули, то этот заголовок считается приемлемым или валидным. В противном случае отправитель увеличивает значение счётчика и пробует произвести вычисления хэша ещё раз. Из 2160 возможных значений хеша 2140 удовлетворяют этому критерию. Таким образом, вероятность того, что случайно выбранный хеш будет начинаться с 20 нулей – 1 к 220. Следовательно, отправитель в среднем должен перебрать 220, или 1048567 случайных чисел, чтобы найти правильный заголовок. Учитывая разумные оценки времени, необходимого для вычисления хеша, это займет около 1 секунды. В то же время, нет эффективного метода поиска валидного заголовка, кроме перебора.
Получатель письма или сервер электронной почты могут ценой затраты небольших вычислительных мощностей подтвердить валидность отметки. На процессоре с тактовой частотой в 1 ГГц время проверки составит около двух микросекунд.
Изобретенный Бэком алгоритм стал фундаментом, на котором строится весь современный процесс майнинга. Когда широко распространенные сейчас китайские чипы ASIC обсчитывают огромное количество хэшей в единицу времени – они производят те же самые расчёты, что производились в Hashcash. На 99% современные реализации PoW используют модель, используемую в Hashcash. Изменения были внесены не самые принципиальные. В первую очередь это – переход от SHA-1 к SHA-256. Сам Адам Бэк, благодаря внесенному им вкладу в развитие распределенных систем и в криптографию, считается одним из лидирующих разработчиков в области криптовалют. Хотя, как это ни парадоксально, лично он не написал ни одной строчки кода собственно для криптовалют. Но к его мнению прислушивались и прислушиваются все, включая Сатоши Накамото. Еще об одном парадоксальном факте, касающимся одного из основоположников криптовалют, написал сам Адам Бэк:
«Если бы я, как Хал Финни, запустил майнер на своем компьютере, возможно в моём кошельке сейчас было бы много биткойнов ещё той эры, когда их можно было добывать тысячами. Ирония в том, что у меня нет ни единого биткойна, несмотря на то, что HashCash, на основе которого сейчас работает сеть биткойна – это моё изобретение».
1998 год. Вай Дэй предлагает идеологию и реализацию b-money
Чтобы понять, откуда появились все существующие в мире криптовалюты, нужно посмотреть на их истоки. И в первую очередь – на истоки первой в мире полноценной криптовалюты – биткойна. Истоками криптовалют является политико-технологическое движение криптопанков, о котором упоминалось выше. Движение зародилось в 1992 году со списка почтовой рассылки криптопанков. В 1993 году Эрик Хьюз опубликовал так называемый «Манифест криптопанка». В 1994 году Тимоти Мэй опубликовал «Вопросы и ответы о криптопанке». Стоит привести программную выдержку из этого документа:
«2.3. Какова наша общая доктрина?
Сильная криптография уже существует. Она доступна для всех. Она влечет за собой большие изменения во всем мире. Частные каналы связи можно устанавливать между людьми, которые никогда не встречались и не встретятся лично. Возможны полностью анонимные, «непотопляемые» и неотслеживаемые каналы связи и обмена данными.
Транзакции могут быть только добровольными, так как участники неизвестны, их невозможно отследить, и они могут в любой момент отступить под защиту анонимности. Это коренным образом повлияет на традиционную практику запугивания, применяемую правительствами и иными силовыми структурами. Угрозы применения силы станут практически бесполезными.
К чему все это приведет, пока не ясно, но я думаю, что возникнет нечто вроде анархо-капиталистической рыночной системы, которую я называю «криптоанархией». Только прямое и добровольное сотрудничество без посредников».
Для того, чтобы прогнозируемая криптопанками новая экономика добровольного сотрудничества реально появилась, была необходима и новая система контрактов и расчетов, свободная от правительственного и банковского диктата. В 1998 году выпускник Вашингтонского университета Вэй Дай предложил криптовалюту «b-money», описав практический способ принудительного исполнения условий соглашения между анонимными участниками. Он выразил суть движения в своем бессмертном высказывании:
«Меня приводит в восторг концепция криптоанархии Тима Мея. В отличие от сообществ, традиционно ассоциируемых с понятием „анархия“, криптоанархисты хотят не временно ликвидировать правительства, а полностью отменить их за полной ненадобностью. Это сообщество, в котором угроза насилия не имеет смысла, так как насилие невозможно, а насилие невозможно, потому что участников сообщества нельзя связать с их настоящими именами или физическим местонахождением».
Вполне возможно, что эти достаточно радикальные по отношению к государствам и правительствам программные высказывания, сделанные еще на самой заре появления криптовалют, и объясняют ту, мягко говоря, настороженность, которую современные правительства проявляют ко всем криптовалютам. И вполне понятно желание правительств, которые, в соответствии с программными заявлениями родоначальников криптовалют, должны быть ликвидированы за ненадобностью, ликвидировать или хотя бы зарегулировать до полной невозможности сами криптовалюты.
Вай Дэй был не программистом-разработчиком, а идеологом. Он хотел создать совершенно новую валютную систему, а не исправить уже существующие на тот момент. Дэй поставил задачу ликвидировать зависимость электронных денег от третьих сторон, чтобы государственные субъекты не контролировали электронные валюты в одностороннем порядке, и таким образом, устранить основную проблему, мешавшую массовому распространению электронных денег. Общество уже дозрело до создания криптовалют с технической точки зрения. Не хватало идеологического фундамента. Именно он и был заложен Вай Дэем. В 1998 году Дэй писал:
«Любой может создать денежные средства, предоставив решения для ранее неразрешённых вычислительных задач. При условии, когда легко определить, сколько вычислительной мощности необходимо для решения этой проблемы. В противном случае, решение не представляет ни практической, ни интеллектуальной ценности».
Вай Дэй был приверженцем крипто-анархии. Крипто-анархия, в том числе, предполагает, что в обществе не должно быть насилия. Исключение насилия предлагается достичь за счет того, что нельзя установить настоящие имена и физическое местонахождение участников криптовалютной сети. С другой стороны, любое социальное сотрудничество, в том числе и в рамках криптосети, предполагает наличие какого-то средства обмена – то есть некоторой формы денег. Традиционно услуги по предоставлению денег и по их перемещению предоставляют правительства и контролируемые или регулируемые правительствами банки. Заслуга Вай Дэя в том, что он предложил механизм предоставления услуг, включая услуги по перемещению средств обмена, на условиях полной анонимности и неопределенному кругу лиц. Для реализации этого им было предложено создание неотслеживаемой (untraceable) сети, где отправители и получатели определены только своими цифровыми псевдонимами (т.е. открытыми ключами), а сообщения подписываются отправителями и расшифровываются получателями. Это была идея «b-money»61.
Благодаря идее общедоступного глобального регистра, предложенный Вэй Даем подход к созданию криптовалюты b-money отличался от существовавших ранее подходов к созданию систем электронных денег. Собственные счета ведутся децентрализовано всеми участниками системы, а не одним или несколькими централизованными серверами. Конфиденциальность сохраняется благодаря использованию псевдонимов.
Чтобы попытаться решить проблему создания денег, Вэй также предложил схему, аналогичную алгоритму доказательства работы PoW. Что интересно, в электронном сообщении для криптопанков упоминавшийся выше криптограф Адам Бэк поддержал эту инициативу и предложил использовать своё раннее изобретение HashCash в качестве «основной функции для децентрализованной идеи чеканки монет Вэя». Хотя это и открыло путь для создания почти всех современных криптовалют, b-money сами так и не были реализованы как полноценная электронная валюта, так как имели и существенные недостатки. В первую очередь это их подверженность риску гиперинфляции.
Небезынтересно изучить и сами предложенные Дэем протоколы. Первый протокол был очень коротким:
«Каждый участник поддерживает свою базу данных: сколько денег принадлежит каждому псевдониму. В совокупности эти базы определяют право собственности на деньги. Протокол должен обеспечить обновление баз данных по результатам операций с деньгами.
Предметом протокола являются:
1. Создание денег. Каждый участник может создать деньги путем рассылки решения нерешенной ранее вычислительной задачи. Надо определить относительную вычислительная мощность, потребовавшуюся для решения, иначе решению нельзя присвоить какую-либо ценность. Количество созданных денежных единиц определяется стоимостью вычислительной мощности методом стандартной корзины потребителя. Например, если решение достигается за 100 часов машинного времени на наиболее эффективном компьютере, и необходимые 100 часов на открытом рынке набираются тремя 3 стандартными корзинами, то передача решения этой проблемы обязывает всех участников кредитовать счет передающего на 3 единицы.
2. Перевод денег. Если Алиса, владелец псевдонима K_A, хочет передать X единиц денег Бобу, владельцу псевдонима K_B, она передает сообщение: «Я даю Х единиц денег на счет K_B» с подписью K_A. Получив это сообщение, участники проверяют остаток на счете K_A. Если операция не создаст отрицательный баланс на счете K_A, участники списывают с него Х единиц и увеличивают на эту сумму счет K_B. Если на счете K_A нет Х единиц, это сообщение игнорируется.
3. Выполнение договоров (контрактов). В исполняемом (valid) контракте должны быть указаны (максимальные) суммы обеспечения для каждого из участников в случае неисполнения условий договора (default). Договор должен предусматривать участие третьей стороны, арбитраж. До начала действия договора все стороны, включая арбитра, должны его подписать. После публикации (broadcast) подписанного договора каждый участник системы списывает со счета каждой из сторон сумму его (максимального) обеспечения и зачисляет эту сумму на специальный счет «Контракт с SHA-1 хэш H», определенный именно для этого контракта (a secure hash of the contract). Договор вступает в силу, если со счета каждого участника можно списать указанную сумму, не получив в результате отрицательный баланс, в противном случае контракт игнорируется и счета откатываются.
Образец договора может выглядеть следующим образом:
K_A соглашается отправить K_B решение некоторой задачи до 01.01.2000.
K_B обязуется оплатить K_A 100 MU (денежные единицы) до 01.01.2000. K_C
принимает решение провести арбитраж в случае возникновения спора. K_A соглашается оплатить максимум 1000 MU в случае дефолта. K_B обязуется оплатить максимум 200
MU в случае дефолта. K_C обязуется оплатить максимум 500 MU в случае умолчанию.
4. Завершение (conclusion) договоров. Если договор успешно выполнен (завершился без спора), каждая из сторон передает подписанное сообщение «Контракт с SHA-1 хэш H завершился без возмещения ущерба». В ином случае: «Контракт с SHA-1 хэш H завершен со следующими неустойками: ***». При получении всех сигнатур (подписей), каждый участник системы возвращает обеспечение на счета каждой из сторон, удаляет учетную запись контракта и начисляет на счет (или списывает со счета) каждого участника контракта сумму в соответствии с договором.
5. Принудительное завершение (enforcement) контрактов. Если стороны договора не приходят к соглашению даже с помощью арбитра, каждая сторона передает свои предложения по штрафным санкциям (распределению обеспечения) и какие-либо аргументы или доказательства. Все участники (Each participant) выносят определение о том, как следует распорядиться обеспечением, и соответственно изменяют счета».
Второй протокол был еще короче:
«Счета участников не хранятся каждым из них самостоятельно, но на некоторых серверах, связанных широковещательным каналом. Формат операционных сообщений в этом случае остается тем же, что и в первом протоколе, но заинтересованным участникам каждой транзакции следует проверять случайно выбранное подмножество серверов, что сообщение ими было получено и успешно обработано.
Необходим какой-то механизм, обеспечивающий доверие к серверам, например, потребовать от каждого сервера внести определенную сумму на специальный счет, который будет использоваться для штрафов или вознаграждений. Кроме того, каждый сервер должен периодически фиксировать и публиковать текущее состояние баз данных по собственникам и эмитентам (создателям денег). Каждый участник должен иметь возможность проверить, что его собственные остатки на счетах верны, и что сумма остатков на счетах не превышает общую сумму созданных денег. Это предотвращает возможность для серверов, даже в сговоре, постоянно и без издержек увеличивать денежную массу. Опубликованные базы данных могут быть использованы для синхронизации новых и существующих серверов.
Протокол, предложенный в этой статье, предоставляет средства обмена и способ исполнения контрактов анонимным лицам, и тем самым позволяет сотрудничать друг с другом более эффективно. Протокол, вероятно, может быть сделан более эффективным и безопасным, но я надеюсь, что это является шагом в переводе идей крипто-анархии на практику».
Приложением к протоколам шло описание способа создания электронных денег b-money:
«Одной из наиболее сложных задач протокола является создание денег. Эта часть протокола требует, чтобы все участники принимали согласованные решения о стоимости конкретных вычислений. К сожалению, из-за быстрого развития технологий информация о ней не всегда общедоступна, может быть неточна или устаревшей, все это порождает серьезные проблемы.
Я предлагаю альтернативный подпротокол создания денег, в котором количество денег, создаваемых за период, и цена их создания определяются не согласованием между участниками (всеми – в первом протоколе, или только серверами – во втором), а на аукционе. Каждый период создания денег делится на четыре фазы, а именно:

