MSTR Cat

Блокчейн/Уровень I · Деньги/1.2 Путь шифропанков/Урок 4

Hashcash: доказательство работы до биткоина

Стоимость вычислений как печать: от борьбы со спамом до цифрового дефицита

МатериалыОнлайн-генератор хешей SHA-256Таблица для записи значений счётчика и результатов в шестнадцатеричном форматеWhitepaper биткоина, раздел 4

Любопытство

  1. Почему марку дорого создать, но почти ничего не стоит проверить?
  2. Почему хеш-головоломка, которую можно проверить за микросекунды, требует часов на решение?
  3. Как инструмент для борьбы со спамом стал двигателем валюты?

Исследование

  1. В 1992 году Синтия Дворк и Мони Наор предложили схему «Pricing via Processing» («ценообразование через обработку») для борьбы со спамом. Их идея состояла в том, что вычисления могут работать как пункт взимания платы: если заставить отправителей решать криптографическую задачу, массовая рассылка становится экономически невыгодной, а обычных пользователей это почти не затрагивает. Пять лет эта идея оставалась в основном на бумаге.
  2. Адам Бэк предложил Hashcash в марте 1997 года, не зная о статье Дворк и Наора. Механизм требовал от отправителя найти нонс (nonce) — переменную строку, — при котором SHA-1-хеш заголовка письма вместе с этим нонсом начинался бы с заданного числа нулевых битов. Это поиск частичной коллизии: найти решение экспоненциально труднее, чем проверить. Каждое найденное решение служило «маркой», доказывающей, что отправитель затратил реальные вычислительные усилия.
  3. Сила Hashcash — в асимметрии. Чтобы получить действительную марку, могут понадобиться тысячи или миллионы попыток хеширования, на которые уходят время и электроэнергия; для проверки же достаточно одного вычисления хеша, занимающего микросекунды. Эта односторонняя функция создаёт дефицит в среде, где копирование обычно ничего не стоит. Спамер, рассылающий миллион писем, должен выполнить в миллион раз больше работы, тогда как получатель проверяет каждое письмо с ничтожными затратами.
  4. Hashcash не был деньгами: каждая марка была привязана к конкретному получателю и времени создания, поэтому её нельзя было передать и использовать повторно. Кроме того, её ценность падала по мере совершенствования оборудования, поскольку более дешёвые вычисления снижали стоимость создания новых марок. Hashcash помогал против спама, но не обладал свойствами надёжного средства сбережения. Сам термин «доказательство работы» появился позже, в 1999 году, благодаря Маркусу Якобссону и Ари Джуэлсу, которые формализовали это вычислительное обязательство.
  5. Сатоши Накамото прямо сослался на Hashcash Бэка в разделе 4 whitepaper биткоина (октябрь 2008 года), приспособив его для распределённой фиксации времени. Если Hashcash использовал SHA-1 с фиксированной сложностью, то биткоин использует двойной SHA-256 с регулируемой целью (target), которая пересчитывается каждые 2016 блоков (~две недели). Это поддерживает стабильный интервал между блоками около 10 минут независимо от роста хешрейта сети, стабилизируя график эмиссии и защищая реестр накопленными вычислительными затратами.
  6. Чтобы ощутить эту асимметрию на практике, откройте любой онлайн-инструмент SHA-256. Вычислите хеш строки 'hello'. Затем добавляйте к ней счётчик (0, 1, 2...), пока шестнадцатеричный результат не начнётся с '0', а затем с '00'. Обратите внимание, как экспоненциально растёт число попыток. Такой перебор (brute force) повторяет майнинг. Корректировка сложности в биткоине гарантирует, что по мере прихода новых майнеров и совершенствования оборудования цель ужесточается и скорость производства блоков остаётся постоянной, сохраняя экономический ритм протокола.

Ключевые факты

  • В 1992 году Дворк и Наор предложили схему «Pricing via Processing», чтобы сделать отправку электронной почты затратной.
  • Адам Бэк представил Hashcash в марте 1997 года; схема использовала частичные коллизии SHA-1.
  • Проверка в Hashcash требует одного вычисления хеша; для генерации нужно около 2^k попыток при k нулевых битах.
  • Термин «доказательство работы» был введен Якобссоном и Юэлсом в 1999 году.
  • Биткоин использует двойной SHA-256 и цель сложности, которая пересчитывается каждые 2016 блоков.
  • Марки Hashcash, в отличие от единиц биткоина, нельзя передать: они привязаны к конкретным получателям.

Упражнение девять, шесть, три, один

9СобратьПеречислите 9 вычислительных головоломок или основанных на хешах обязательств (commitments) из криптографии. Укажите их изначальное назначение (спам, подписи, майнинг) и стоимость проверки.
6СгруппироватьРазделите эти 9 на 6 групп по тому, создавались ли они для безопасности, для дефицита или для того и другого, а также по тому, передаваемы они или одноразовы.
3Выделить главноеСведите 6 групп к 3 свойствам, которые отличают токен с доказательством работы от обычной цифровой подписи.
1КристаллизоватьНапишите одно предложение о том, почему вычислительные затраты создают дефицит там, где копирование в остальном ничего не стоит.

Проверка фактов

Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.

Открыть в интерактивной академии →

EN PT ES ZH JA KO DE FR MS