Генезис-архивы: Hashcash или как Адам Бэк создал двигатель биткоина




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

Так, пожалуй, самой известной попыткой, хоть и неудачной, была система DigiCash доктора Дэвида Чаума, который еще в начале 1980-х разработал ряд криптографических протоколов, включая протокол слепой подписи.

Единственной проблемой, которую Чаум так и не смог решить, была централизованная эмиссия. Электронная наличность выпускалась компанией DigiCash, банкротство которой в конце 1990-х привело к краху системы.

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

Однако доктор Адам Бэк, который известен нам как CEO Blockstream, еще в 1997 году создал алгоритм Proof-Of-Work для борьбы со спамом в электронной почте. Сам того не зная, еще в прошлом тысячелетии он заложил основу для создания первой в мире децентрализованной денежной системы.

ForkLog предлагает вашему вниманию перевод статьи Аарона ван Вирдума, опубликованной в Bitcoin Magazine и посвященной тому, как доктор Бэк совершил настоящий прорыв в области криптографии.

28 марта 1997 года приблизительно две тысячи подписчиков почтовой рассылки для шифропанков получили электронное письмо с описанием проекта Hashcash. Автором документа оказался 26-летний исследователь из Университета Экзетера, молодой криптограф и активный участник рассылки доктор Адам Бэк. В своем письме он изложил суть и подробности ранней имплементации «системы отправки электронных сообщений на базе частичной коллизии хеш-функции» — своего рода основанные на криптографической уловке штампы для электронных писем.

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

Предложение криптографа, который впоследствии возглавит компанию Blockstream, привлекло крайне мало внимания среди участников рассылки, а ответил лишь один человек, задав вопрос об алгоритме хеширования. Тем не менее, технология Proof-Of-Work, положенная в основу Hashcash, станет определяющей в исследовании цифровых денег в последующие десятилетия.

Борьба со спамом

Hashcash был не первым решением подобного рода.

В начале 1990-х годов перспективы и преимущества интернета в целом и электронной почты в частности стали очевидны для всех энтузиастов в области инновационных технологий. Тем не менее, первопроходцы поняли, что электронная почтовая система порождает и ряд вызовов.

«Легкость и дешевизна отправки электронных писем, в особенности — одного и того же письма многим пользователем — это прямое приглашение к злоупотреблению», — написали исследователи IBM доктор Синтия Уорк и доктор Мони Наор в whitepaper от 1992 года «Оценка способов борьбы с нежелательной почтой».

Чем популярнее становилась электронная почта, тем популярнее становился спам.

Ранние пользователи интернета понимали необходимость решения проблемы. Именно это предложили Уорк и Наор.

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

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

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

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

Уорк и Наор не присвоили своему решению конкретного названия, но впоследствии оно станет известно как Proof-Of-Work. Пользователи должны были показать, что их компьютер выполнил работу, дабы доказать, что они потратили настоящие ресурсы.

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

Адам Бэк и шифропанки

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

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

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

В то время Бэк по большей части был известен продажей футболок с изображением протокола шифрования, целью которых было продемонстрировать абсурдность решения правительства США о классификации программы-шифровальщика Pretty Good Privacy (PGP), созданной Филом Циммерманом как «военное снаряжение» в контексте условий экспорта из США. Технически, если вы покидали территорию США в этой футболке, то считались «экспортером военного снаряжения и боеприпасов».

Данные bitcoinmagazine.com

Как и многие в то время, Бэк ничего не знал о PoW-предложении Уорк и Наор, но в середине 1990-х уже задумывался о способах борьбы со спамом, поскольку это было частым явлением в рассылках шифропанков.

«Преимуществом PGP было создание дополнительных издержек для спамеров — они могут шифровать меньше сообщений в секунду, чем используя модем T3», — писал Бэк в контексте предоставления большей конфиденциальности реймейлерам; идея несколько похожа на концепцию Уорк и Наор.

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

В 1997 году, когда рассылка почти достигла пика своей популярности, Адам Бэк представил Hashcash.

Hashcash

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

Хеширование — это процесс преобразования любого массива данных в выходную битовую строку установленной длины.

К примеру, хеш SHA-256 преобразует предложения «This is a sentence» в следующее шестнадцатеричное число:

Это можно преобразовать в простое десятичное число:

Или же бинарное:

Если же добавить в изначальное предложение запятую — «This, is a sentence», то хеш SHA-256 произведет следующее шестнадцатеричное число:

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

Hashcash применил этот математический трюк довольно разумно.

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

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

Чтобы сгенерировать корректный хеш, отправитель должен использовать единственную доступную ему опцию: метод полного перебора. Он должен пробовать различные нонсы, пока не найдет правильную комбинацию; в противном случае электронное письмо будет отклонено оператором электронной почты получателя. Как и в случае Уорк и Наор, все это требует определенных компьютерных вычислений — это Proof-Of-Work.

«Если 20-битный хеш не был получен […] то специальная программа предупредит отправителя об ошибке при отправлении и сообщит о требованиях и необходимом ПО для успешного осуществления. Это мгновенно вытеснит спамеров из бизнеса, поскольку 1 000 000 x 20 = 100 MIP-лет [MIP-лет — миллион инструкций в секунду на протяжении каждой секунды года], это больше вычислений, чем они могут себе позволить», — пояснил Бэк в той же рассылке.

Примечательно, что Proof-Of-Work в реализации Бэка является более произвольным, чем в случае Уорк и Наор. Версия исследователей IBM предполагала, что быстрые компьютеры всегда будут выигрывать у более медленных в контексте решения головоломки. Hashcash, в свою очередь, позволял более слабому компьютеру находить корректное решение быстрее время от времени.

(Если первый бегун быстрее второго, то он всегда будет выигрывать спринт. Если первый купит больше лотерейных билетов, чем второй, у последнего все равно будет шанс победить).

Цифровой дефицит

Как и предложение Уорк и Наор, Hashcash, white paper которого Адам Бэк опубликовал в 2002 году, никогда не был реализован в крупных масштабах. Технология была задействована на платформе с открытым исходным кодом SpamAssassin от Apache, а Microsoft задействовал Proof-Of-Work в формате «штампа для электронных писем».

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

Тем не менее, тандем Уорк-Наор и Адам Бэк действительно создали нечто новое. Учитывая, что тогда основным преимуществом цифровых продуктов являлась легкость, с которой они копировались, Proof-Of-Work стал по сути первой концепцией, основанной на виртуальном дефиците [т.е. редкости] и отсутствии централизации: эта модель привязала цифровые данные к реальным, ограниченным вычислительным мощностям.

Такого рода дефицитность [или редкость] являлась хорошой предпосылкой для создания денег. Адам Бэк и сам поместил Hashcash в категорию денег в своей рассылке и white paper, проведя аналогии с единственной формой электронной наличности на то время — DigiCash Дэвида Чаума.

«Hashcash может выступить временным решением до того момента, как DigiCash не станут использовать повсеместно. Hashcash абсолютно бесплатный, ваш ПК должен только выполнить ряд инструкций. Это полностью соответствует концепции свободного дискурса, в рамках которого люди с ограниченными финансовыми возможностями могут соревноваться с миллионерами на равных условиях. Hashcash может стать запасным вариантом для контроля над спамом, если DigiCash будет признан незаконным или же потребует от пользователей предоставить личные данные», — написал Бэк в рассылке.

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

Proof-Of-Work стал основой для дальнейших исследований в области цифровых денег. Несколько предложений, последовавших за Hashcash, использовали эту технологию, обычно разрешая повторное использование доказательства работы (проект Хэла Финни RPOW).

Биткоин

В конечном итоге Proof-Of-Work стал краеугольным камнем сети биткоина, а Hashcash был упомянут в white paper Сатоши.

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

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

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

Таким образом Hashcash в протоколе биткоина одним выстрелом убивает двух зайцев. Он решает проблему повторного расходования посредством децентрализации, а новые монеты появляются без участия централизованного эмитента.

Hashcash в действительности не был первой системой электронных денег — это звание принадлежит Digicash. Proof-Of-Work же не может сам по себе выступать деньгами. Но децентрализованная система цифровых денег могла бы не появиться без этой технологии.

Подписывайтесь на новости ForkLog в Facebook!

Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

Leave A Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *