Опыты · Ни у кого нет денег · Глава 3

SHA-256 в браузере: добыть марку Hashcash

Тема
ОпытМарка Hashcash
Задачка Адама Бэка в браузере. Хеш письма считает сам браузер, SHA-256. Добыча перебирает счётчик, пока хеш не начнётся с нужного числа нулей. Чтобы проверить марку, хватает одного хеша.

Всё считается в вашем браузере, никуда ничего не отправляется.

Про этот опыт

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

Через одиннадцать лет эту задачку взял Сатоши Накамото. В его девяти страницах доказательство работы пришло из Hashcash, и Сатоши на него сослался, только для биткоина задача намного тяжелее: вся сеть находит решение в среднем раз в десять минут.

Здесь это можно сделать руками. Браузер считает SHA-256 письма со счётчиком, пока вы печатаете, на вашем компьютере, и никуда текст не отправляет. Добыча перебирает счётчики, пока хеш не начнётся с нужного числа нулевых бит. Каждый лишний бит удваивает работу, а проверка так и остаётся одним хешем. Поменяйте в письме одну букву, и марка перестанет подходить.

Из книги

Ни у кого нет денег · Глава 3

Праздный бог

Рядом с этим опытом в главе
В девяти страницах не было почти ничего нового. Доказательство работы пришло из Hashcash Адама Бэка, идея денег, которые ведёт вся сеть, — из b-money Вэя Дая, на обоих Сатоши честно сослался. Цифровые подписи, хеш-функции, одноранговые сети к тому времени изучали по учебникам. Новым был способ сложить эти детали так, чтобы незнакомые люди, которые друг другу не доверяют, сами договорились, какая из версий общей записи правильная.

Первые главы бесплатно →