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

Как и многие в то время, Бэк ничего не знал о 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 же не может сам по себе выступать деньгами. Но децентрализованная система цифровых денег могла бы не появиться без этой технологии.

Источник

[ ОБСУДИТЬ НА ФОРУМЕ ]