История криптовалют. Биткойн-детектив - страница 28
X-Hashcash: 1:20:1303030600:adam@cypherspace.org::McMybZIhxKXu57jd: FOvXX
Сам заголовок содержит:
ver: Версию hashcash, 1 (которая заменила версию 0).
bits: Число «предварительных» (нулевых) битов в хешированном коде.
date: Время, в которое сообщение было отправлено, в формате ГГММДД [ччмм [сс]].
resource: Данные об отправителе, например, IP адрес или адрес E-mail.
ext: Расширение (опционально; игнорируется в версии 1).
rand: Строка случайных чисел, закодированная в формате base-64.
counter: Двоичный счетчик, закодированный в формате base-64.
В заголовке имеются адрес получателя, дата сообщения, информация, подтверждающая, что все требуемые вычисления осуществлены. Присутствие адреса получателя требует пересчитывать заголовок для другого получателя. Дата позволяет получателю учитывать заголовки недавно полученных писем и убеждаться, что заголовок пришедшего сообщения уникален.
На стороне компьютера отправителя заголовок формируется и к нему добавляется случайное число. Затем вычисляется точный 160-битный SHA-1 хэш заголовка. Если первые 20 бит заголовка – нули, то этот заголовок считается приемлемым или валидным. В противном случае отправитель увеличивает значение счётчика и пробует произвести вычисления хэша ещё раз. Из 2>160 возможных значений хеша 2>140 удовлетворяют этому критерию. Таким образом, вероятность того, что случайно выбранный хеш будет начинаться с 20 нулей – 1 к 2>20. Следовательно, отправитель в среднем должен перебрать 2>20, или 1048567 случайных чисел, чтобы найти правильный заголовок. Учитывая разумные оценки времени, необходимого для вычисления хеша, это займет около 1 секунды. В то же время, нет эффективного метода поиска валидного заголовка, кроме перебора.
Получатель письма или сервер электронной почты могут ценой затраты небольших вычислительных мощностей подтвердить валидность отметки. На процессоре с тактовой частотой в 1 ГГц время проверки составит около двух микросекунд.
Изобретенный Бэком алгоритм стал фундаментом, на котором строится весь современный процесс майнинга. Когда широко распространенные сейчас китайские чипы ASIC обсчитывают огромное количество хэшей в единицу времени – они производят те же самые расчёты, что производились в Hashcash. На 99% современные реализации PoW используют модель, используемую в Hashcash. Изменения были внесены не самые принципиальные. В первую очередь это – переход от SHA-1 к SHA-256. Сам Адам Бэк, благодаря внесенному им вкладу в развитие распределенных систем и в криптографию, считается одним из лидирующих разработчиков в области криптовалют. Хотя, как это ни парадоксально, лично он не написал ни одной строчки кода собственно для криптовалют. Но к его мнению прислушивались и прислушиваются все, включая Сатоши Накамото. Еще об одном парадоксальном факте, касающимся одного из основоположников криптовалют, написал сам Адам Бэк:
«Если бы я, как Хал Финни, запустил майнер на своем компьютере, возможно в моём кошельке сейчас было бы много биткойнов ещё той эры, когда их можно было добывать тысячами. Ирония в том, что у меня нет ни единого биткойна, несмотря на то, что HashCash, на основе которого сейчас работает сеть биткойна – это моё изобретение».
1998 год. Вай Дэй предлагает идеологию и реализацию b-money
Чтобы понять, откуда появились все существующие в мире криптовалюты, нужно посмотреть на их истоки. И в первую очередь – на истоки первой в мире полноценной криптовалюты – биткойна. Истоками криптовалют является политико-технологическое движение криптопанков, о котором упоминалось выше. Движение зародилось в 1992 году со списка почтовой рассылки криптопанков. В 1993 году Эрик Хьюз опубликовал так называемый «Манифест криптопанка». В 1994 году Тимоти Мэй опубликовал «Вопросы и ответы о криптопанке». Стоит привести программную выдержку из этого документа: