Инженер-программист Кен Ширрифф (Ken Shirriff) задался вопросом: можно ли рассчитывать хэши Bitcoin вручную, то есть буквально с помощью карандаша и бумаги? Теоретически, алгоритм SHA-256 достаточно прост, так что подобное должно быть возможно.

Эксперимент оказался успешным. Кен смог майнить биткоины со скоростью 0,67 хэшей в сутки. Конечно, это намного меньше, чем на любом процессоре, даже доисторическом, не говоря уже о GPU и платах ASIC. Тем не менее, автор доказал, что такое возможно. К тому же, исполнение алгоритма вручную даёт хорошее понимание того, как он работает.

Для цепочки блоков Bitcoin подходящим хэшем считается тот, который начинается с нескольких нулей. Найти такой хэш непросто: нужно миллиарды вычислительных операций, пока случайным образом не попадётся хэш с таким количеством нулей. В частности, чтобы получить хэш с 17 нулями в начале, нужно перебрать, в среднем 1,4х1020 хэшей.

003

Алгоритм SHA-256 принимает на входе блоки по 512 бит (64 байта), обрабатывает их с помощью криптографической функции и выдаёт 256 бит (32 байта) зашифрованных данных. На иллюстрации внизу показан один раунд SHA-256.

004

Кен Ширрифф вручную рассчитывал результат выполнения SHA-256. Единственный раунд процедуры хэширования, как показано на видео, занял у него 16 минут и 45 секунд.

С такой скоростью обсчёт целого блока Bitcoin займёт примерно полтора дня, так что производительность «ручного метода» можно оценить в 0,67 хэша в сутки. Автор даже рассчитал, сколько килокалорий он тратит на 1 хэш: получается примерно в 6-7 раз дороже, чем процессор на электричестве.



14 комментария

  1. 29.09.2014 at 15:08

    И что это даёт кроме личного понимания работы SHA-256?

    • 29.09.2014 at 17:21

      А этого мало? Или ты ожидал, что он таким способом себе виртуальный миллиард сгенерирует?

  2. 29.09.2014 at 15:12

    Инженер-программист задался вопросом: а действительно ли компьютеры работают по законам логики, а не магии?

  3. 29.09.2014 at 16:42

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

  4. 29.09.2014 at 16:56

    Человек замечательно адаптируется к любому виду труда, потому если заняться ручным подсчётом хешей, то можно рассчитывать что через некоторое время производительность увеличится на порядок, а то и больше, многократно компенсировав шести-семикратный проигрыш процессору по КПД. Тогда получается что ферма азиатов, которые за миску риса в день считают биткоины в столбик будет прибыльнее чем ASIC-ферма.
    Для реализации этого способа ещё нужно решить ряд проблем, как то возможные ошибки в расчётах и тот факт что азиаты могут потреблять энергию только в виде дорогой органической пищи, а не дешёвого электричества, также габариты такой фермы будут несколько нереалистичными. Однако современная наука сделал уже много шагов в сторону минимализации затрат на еду и размеров азиатов, не за горами тот день когда тысячи вьетнамских подростков, вместо занятия проституцией, будут брать ручку и бумажку и делать этот мир лучше, подсчитывая хеши новых электронных валют, обеспечивать транзакции, просчитывать RSA, выдавая гигантские случайные числа, так как это может сделать только человек, или ГСЧ на распаде ядра.

    • 29.09.2014 at 17:20

      Ты забыл, что между ними нужно организовать ещё и обмен данными. Обычной почтой листочки где-то собирать?

  5. 29.09.2014 at 17:05

    чуваку респект

  6. 29.09.2014 at 20:33

    не, тут нужна русалочка, та что из оперы Аргонова

  7. 30.09.2014 at 04:02

    Китайцы и Северная корея по любому на вооружение возьмут, вместо уроков математики в школе 🙂

    Как-то это даже грустно.

    • 03.10.2014 at 19:55

      Двоичная математика в школе многим бы не помешала, а то школьники все интернеты завалили просьбами перевести какое-нибудь 20 в двоичную систему счисления. Но вот «вместо» не надо, надо просто сказать, что основание 10 — не единственное, что есть в науке. А то я помню, нам говорили, что нельзя из маленького числа вычесть большое, а на следующий год — бац, можно, да ещё и довольно просто. Из отрицательного числа нельзя извлечь корень, а в универе — раз, уже можно. И вот всё время так.

  8. 30.09.2014 at 14:34

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

Оставить мнение