Майним bitcoin на старом железе

Рынки криптовалют на очередном подъеме, а значит время майнить биткоины на всем, что попадается под руку. Пример для NES был реализован почти 10 лет назад, настало время Game Boy:

Mining Bitcoin on the Game Boy

Тут все достаточно честно, вычисления действительно происходят на игровой консоли, а Raspberry Pi Pico используется только как адаптер для USB-кабеля. Автор открыто публикует на GitHub как сам образ картриджа, так и исходный код программы. Вот тут то Чернышевский и разбудил декабристов!

Maciej Witkowiak (Мацей Витковяк, бывший участник польской группы Elysium) осуществляет форк оригинального проекта ntgbtminer и переписывает его для работы на Commodore 64. Теперь криптовалюта майнится прямо на стареньком восьмибитном CPU 6510 с тактовой частотой 1Mhz и примерно 40 килобайтами оперативной памяти! Даже для связи с внешним миром Bitcoin-блокчейна используется не новомодные TCP/IP адаптеры а классический serial port (1200 бод, 8N1).

Скачать и попробовать C64 Bitcoin Miner в деле можно на CSDb или официальной странице проекта на GitHub. Скорость работы (хешрейт) составляет около 0.2 H/s для PAL-версии C64. Сейчас код проекта написан на C используя кросс-платформенную среду разработки cc65. Не исключено, что при реализации на чистом ассемблере результат будет чуть лучше. Технически процесс выгляди следующим образом:

  • принимается 76 bytes блока данных для хеширования;
  • в конец блока добавляется 32-bit nonce;
  • полученное значение дважды хешируется с использованием алгоритма sha256;
  • результат сравнивают с текущим значением blockchain difficulty;
  • если он больше по размеру, увеличивается nonce и процесс повторяется.

По оценкам разработчика одному C64 потребуется 337 лет и 10 месяцев непрерывных вычислений, чтобы добыть один блок криптовалюты. Время покажет…