bitstore
Loading data, please wait...

Hashcash Адама Бэка: От борьбы со спамом до цифровой наличности

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

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

Это письмо криптографа, который потом станет генеральным директором Blockstream, не сразу привлекло к себе большое внимание; только один читатель на него ответил, спросив о выбранном алгоритме хеширования. Тем не менее доказательство работы (технология, лежащая в основе Hashcash) стало одной из основ биткоина.

Стоимость отправки, или Борьба с нежелательной почтой

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

В начале 1990-х годов перспективы интернета и преимущества электронной почты стали очевидными для тех, кто обратил на них пристальное внимание. Пионеры интернета также понимали, что электронная почта имела и свои уникальные проблемы. В 1992 году исследователи из IBM доктор Синтия Дворк и доктор Мони Наор в своей работе Pricing via Processing or Combatting Junk Mail увидели проблему в простоте и низкой стоимости отправки электронной почты и возможности отправки одного и того же сообщения многим пользователям. И действительно, в будущем объёмы спама росли вместе с популярностью электронной почты.

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

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

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

В то время они не использовали термин «доказательство работы» (Proof-of-Work), который потом станет общепринятым, но именно об этом шла речь. Пользователи должны были в буквальном смысле показать, что их компьютер выполнил работу, на которую потратил реальные ресурсы.

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

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

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

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

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

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

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

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

Примерно в это же время, в 1997 году, Бэк представил своё детище — Hashcash.

Hashcash

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

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

Например, алгоритм SHA-256 превращает слово Coinspot в такой хеш:

ec3124a4e172394f5e9c4cb506ddc6001c2b04f04aa4446968ad8d9d05618e20

А CoinSpot будет выглядеть так:

797d9f655060311b13dca6e5c1ff35e6fbef374b24902527bfc1cdf8e87750d8

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

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

Следовательно, для генерации допустимого хеша у отправителя есть только один метод: проб и ошибок (полный перебор). Он должен продолжать перебирать разные нонсы, пока не найдёт правильную комбинацию; в противном случае адрес электронной почты будет отклонён почтовым клиентом предполагаемого получателя. Подобно решению Дворк и Наор, для этого требуются вычислительные ресурсы, то есть доказательство работы.

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

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

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

Как и предложение Дворк и Наори, Hashcash по-крупному не «взлетела». Она была реализована на платформе SpamAssassin с открытым исходным кодом Apache, и Microsoft спроектировала и реализовала Email Postmark – спецификацию (ныне устаревшую), аналогичную Hashcash, но несовместимую с ней. Бэк и другие учёные придумали различные альтернативные решения, но большинство из них не обрели большой популярности: отсутствие какого-либо сетевого эффекта стало непреодолимой силой.

Тем не менее Дворк и Наор, а также Бэк (самостоятельно) действительно представили что-то новое. Одна из самых мощных функций цифровых продуктов — лёгкость, с которой они могут быть скопированы, и доказательство работы стало по сути первой концепцией, схожей с цифровым дефицитом, которая не опиралась на центральное управление. Эта концепция привязывала цифровые данные к реальному миру с ограниченными ресурсами вычислительной мощности.

А дефицит, конечно же, стал предпосылкой для создания денег. Сам Бэк в рассылке шифропанков относил Hashcash к категории «деньги» наряду с единственными «официальными» цифровыми деньгами, которые существовали на тот момент, — Digicash Дэвида Чома. В рассылке Бэк писал:

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

Несмотря на название, Hashcash не смогла функционировать как полноценные деньги, потому как любое «полученное» доказательство работы было бесполезным для получателя. В отличие от денег, его нельзя было использовать в другом месте. Кроме того, поскольку мощность компьютеров очень быстро росла, они могли доказывать всё больше и больше работы по более низкой цене: Hashcash подверглась гиперинфляции.

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

Биткоин

В итоге доказательство работы стало базой для биткоина, а на Hashcash неоднократно ссылался Сатоши Накамото в white paper своей криптовалюты.

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

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

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

По материалам Bitcoin Magazine

Похожие статьи