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

Контекст: проблема спама

К середине 1990-х годов с ростом популярности электронной почты резко возрос объём спама. Отправить миллион писем практически ничего не стоило — это был классический пример «трагедии общих ресурсов». Исследователи IBM Синтия Дворк и Мони Наор ещё в 1992 году предложили концепцию «ценообразования через вычисления»: заставьте каждого отправителя доказать, что он затратил вычислительный ресурс, и спам перестанет быть экономически выгодным.

Что такое Hashcash

В марте 1997 года Адам Бэк опубликовал в списке рассылки шифропанков описание Hashcash — конкретной реализации Proof of Work на основе хэш-функций.

Принцип работы

  1. Метаданные письма (адрес отправителя, адрес получателя, время) формализуются в стандартный формат.
  2. К ним добавляется нонс — произвольное число.
  3. Все данные хэшируются (SHA-1 в исходном Hashcash, SHA-256 в Биткоине).
  4. Хэш должен начинаться с определённого количества нулей (например, 20 нулей в двоичном представлении).
  5. Если хэш не удовлетворяет условию — нонс изменяется, хэширование повторяется.
  6. Найденный «правильный» нонс прикладывается к письму как марка.

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

Ключевые свойства

  • Асимметрия: создание хэша дорого, проверка — мгновенна.
  • Случайность: более быстрый компьютер выигрывает чаще, но не всегда — это лотерея, а не детерминированная головоломка. Именно это делает систему честной.
  • Независимость: каждое письмо требует нового Proof of Work (нонс специфичен для каждого конкретного письма).

От Hashcash к Биткоину

Сатоши Накамото прямо сослался на Hashcash в белой книге Биткоина. Ключевые заимствования:

HashcashБиткоин
Хэш заголовка письмаХэш заголовка блока
НонсНонс в заголовке блока
Фиксированное число нулейЦелевое значение (target)
Ручная настройка сложностиАвтоматическая корректировка сложности
Борьба со спамомКонсенсус и безопасность сети

См. также: корректировка сложности.

Ключевые улучшения Сатоши:

  • Корректировка сложности: целевое значение автоматически пересчитывается каждые 2016 блоков, поддерживая ~10-минутный интервал.
  • Накопленный PoW: валидна та цепочка, на которую затрачено больше всего совокупной работы.
  • Вознаграждение: майнеры получают биткоины — стимул для участия.

Основа: Генезис-файлы. Часть II: Hashcash.

Адам Бэк

Адам Бэк — британский криптограф, шифропанк, автор Hashcash. Получил докторскую степень по криптографии в 1996 году. Активный участник списка рассылки шифропанков в 1990-х. Сегодня возглавляет компанию Blockstream.

Источники

Дополнительные материалы