Майнинг биткоинов на 55-летнем ветеране IBM 1401

Тема в разделе "Майнинг (общий раздел)", создана пользователем Romero, 6 июл 2016.

  1. Romero

    Romero Новичок Проверенный

    Автор оригинального поста — Кен Ширрифф.

    Можно ли с помощью мэйнфрейма IBM родом из 60-х годов прошлого века майнить биткоины? Я решил проверить эту, на первый взгляд, сумасшедшую идею. Я внедрил хэш-алгоритм Bitcoin в ассемблерный код для IBM 1401 и проверил на практике, запустив его на работоспособной модели этого древнего мэйнфрейма.
    Майнинг биткоинов на IBM 1401
    "Перфокарта, с помощью которой рассчитывались хэши SHA-256 на мэйнфрейме IBM 1401.За перфокартой видна распечатка на принтере, показывающая ввод алгоритма и итоговый хэш"

    Как оказалось, с помощью этого компьютера можно майнить, но данный процесс займет так много времени, что даже всего срока жизни Вселенной может оказаться не достаточно для успешного майнинга одного блока.

    В то время как современное аппаратное обеспечение позволяет вычислять миллиарды хэшей в секунду, ЭВМ 1401 тратит по 80 секунд на вычисление единственного хэша. Прогресс производительности компьютеров за последние десятилетия налицо, что явственно описано законом Гордона Мура.

    Перфокарты, участвовавшие в эксперименте, а также распечатка SHA-256 строчным принтером показаны на приведенной фотографии (первая перфокарта служит лишь для красоты – нелегко было пробить этот узор). Обратите внимание, что вторая строка заканчивается группой нулей; это означает успешный хэш.
    IBM 1401

    Я решил выполнить данный алгоритм на мэйнфрейме IBM 1401. Этот компьютер появился в 1959 году и к середине 60-х годов стал самой продаваемой ЭВМ – в то время активно эксплуатировалось более 10 тысяч машин. ЭВМ 1401 была не слишком мощным компьютером даже для 1960 года. Однако она была по карману компаниям среднего бизнеса, которые ранее не могли позволить себе иметь компьютер, благодаря тому, что ее можно было взять в аренду за небольшие деньги – 2500 долларов США в месяц.

    В IBM 1401 не использовались кремниевые микросхемы. Более того, в этой ЭВМ вообще не было микросхем. Ее транзисторы были построены на полупроводниках, кристаллах германия, которые использовались до кремния. Транзисторы, наряду с остальными компонентами, устанавливались на платы размером с игральные карты под названием SMS карты. В компьютере были задействованы тысячи таких карт, которые были установлены в виде стоек под названием «дверки». У IBM 1401 двадцать таких «дверок», которые выдвигались для техобслуживания компьютера. На приведенной иллюстрации видна одна открытая дверка, предоставляющая доступ к микросхемам и кабелям.
     IBM 1401 майнинг биткоина
    На иллюстрации показана открытая стойка (так называемая «дверка») Мэйнфрейм IBM 1401. На фотографии видны SMS карты, подключенные к цепи. Эта стойка управляет ленточными накопителями

    Рабочий принцип такого компьютера значительно отличался от современных ПК. В этой ЭВМ использовались не 8-битные байты, а 6-битные символы на базе двоично-кодированного десятичного числа (BCD). Так как эта ЭВМ была счетной машиной для решения экономических задач, в ней использовалась десятичная, а не двоичная арифметика, и каждый символ в памяти имел цифровое значение от 0 до 9. Память компьютера на магнитных сердечниках вмещала 4000 символов. Модуль расширения памяти размером с посудомоечную машину, увеличивал емкость памяти на 12000 символов. Ввод данных в компьютер осуществлялся с помощью перфорированных карт. Данные и программы с карт считывал кардридер. Выходящие данные распечатывались скоростным сточным принтером или же пробивались на картах.

    Музей компьютерной истории Computer History Museum в Маунтин-Вью располагает двумя работоспособными мэйнфреймами IBM 1401. На одном из них я запускал хэш-код SHA-256. Более подробно о IBM 1401 я рассказываю в своей статье Фракталы на IBM 1401

    Выполнение SHA-256 на IBM 1401

    Наверняка ЭВМ IBM 1401 является самой худшей из всех машин, которые можно было бы выбрать для выполнения хэш-алгоритма SHA-256. Для эффективной работы этому алгоритму необходимы машины, которые могут выполнять битовые операции в 32-битных словах. К сожалению, IBM 1401 не поддерживает ни 32-битные слова, ни байты. Эта ЭВМ работает с 6-битными символами и не позволяет выполнять битовые операции. Более того, в ней, вместо двоичной, использовалась десятичная арифметика. Следовательно, алгоритм на ЭВМ 1401 будет выполняться медленно и неудобным для пользователя образом.

    Я закончил, используя один символ на бит. 32-битное значение сохранялось как 32 символ, либо «0» либо «1». Мой код должен был посимвольно выполнить битовые операции, умножения и сложения, проверяя каждый символ и решая, что с ним делать. Как и можно было ожидать, выполнение кода заняло много времени.

    Исполняемая программа была нанесена на 85 перфокарт (их вы уже видели в начале статьи). Я также сделал перфокарту с вводом хэш-алгоритма. Для того чтобы запустить программу, мне пришлось загрузить перфокарту в кардридер и нажать кнопку «Загрузка» («Load»). Кардридер обрабатывал по 800 карт в минуту. Таким образом, на загрузку программы ушло всего несколько секунд. Во время выполнения программы консоль компьютера (см. приведенную ниже иллюстрацию) лихорадочно мигала в течение 40 секунд. Наконец, принтер распечатал для меня итоговый хэш (распечатку вы также видели в начале статьи), и результаты были нанесены на новую перфокарту. Так как майнинг Bitcoin использует двойное хэширование SHA-256, процесс хэширования майнинга занял в два раза больше времени (80 секунд).
    2034f435fe9e484c904b2e80287aebbe.gif
    Усердная работа консоли IBM 1401 во время расчета хэша SHA-256

    Сравнение производительности

    ЭВМ IBM 1401 может вычислить двойной хэш SHA-256 за 80 секунд. На выполнение данной задачи компьютер потребляет около 3000 Вт мощности, примерно столько же сколько электроплита или сушилка для белья. В свое время базовая система IBM 1401 стоила 125600 долларов США. В реалиях 2015 года это составляет около миллиона долларов США. В то же время, сейчас вы можете купить USB флешку для майнинга за 50 долларов США, в которой имеется специализированная интегральная схема (ASIC USB майнер). Этот USB майнер выполняет 3,6 млрд. хэшей в секунду, потребляя при этом около 4 Вт.
    Столь значительные показатели производительности обусловлены несколькими факторами: резким увеличением производительности компьютеров за последние 50 лет согласно закону Мура, потерей производительности, связанной с использованием десятичной арифметики в ЭВМ для решения коммерческих задач, которая была занята вычислением бинарного хэш-кода, а также выигрышем в быстродействии со стороны традиционного аппаратного обеспечения для майнинга биткоинов.

    Подведем итоги. Для майнинга блока с учетом текущих требований к данному процессу, ЭВМ IBM 1401 понадобится около 5x10^14 лет (что в 40 000 раз превышает текущий возраст Вселенной). Стоимость израсходованной электроэнергии составит около 10^18 долларов США. В итоге Вы получите 25 биткоинов, чья стоимость в денежном выражении составит около 6000 долларов США. Итак, майнинг биткоинов на мэйнфрейме IBM 1401 прибыльным занятием не назовешь. На приведенных ниже фотографиях сравниваются компьютерные микросхемы 60-х годов прошлого века и современные варианты, наглядно демонстрируя технологический прогресс.

    Передача данных по сети

    Вы можете решить, что биткоины несовместимы с технологиями 60-х годов прошлого века из-за отсутствия возможности передачи данных по сети. Понадобится ли кому-то пересылать перфокарты с блочной цепью на другие компьютеры? Общение между компьютерами посредством сети появилось достаточно давно. Еще в 1941 году IBM поддерживала так называемый процесс телеметрической (дистанционной) обработки данных. В 60-е годы IBM 1401 можно было подключить к устройству передачи данных IBM 1009 (IBM 1009 Data Transmission Unit) — модему размером с посудомоечную машину, который позволял компьютерам обмениваться друг с другом данными по телефонной линии со скоростью до 300 символов в секунду. То есть, теоретически построение сети Bitcoin на базе технологий 60-х годов прошлого века вполне возможно. К сожалению, мне не удалось заполучить оборудование для телеобработки данных и проверить эту теорию.

    Выводы

    Использование SHA-256 в ассемблерном языке древнего мэйнфрейма стало непростым, но интересным опытом. Я ожидал более высокой производительности (даже по сравнению с моим множеством Мандельброта за 12 минут). Десятичная арифметика коммерческого компьютера это не лучший вариант для бинарного алгоритма наподобие SHA-256. Однако алгоритм майнинга биткоинов может быть выполнен даже на компьютере без интегральных микросхем. Поэтому, если вдруг некий временной коллапс перенесет меня в 1960 год, я смогу построить сеть Bitcoin.

    Музей компьютерной истории в Маунтин-Вью по средам и субботам демонстрирует работающий IBM 1401. Если Вы случайно окажетесь неподалеку, Вам определенно стоит на это взглянуть, сверившись с расписанием работы. А если Вы расскажете сотрудникам музея, которые демонстрируют работающий IBM 1401 обо мне, возможно, они даже запустят мою программу Pi program.

    Я хочу выразить благодарность Музею компьютерной истории (Computer History Museum) и членам команды по восстановлению ЭВМ 1401: Роберту Гарнеру, Эду Тэлену, Ван Снайдеру и, в особенности, Стэну Пэддоку. На веб-сайте этой команды ibm-1401.info много интересной информации об ЭВМ 1401 и работе по ее восстановлению.

    Разъяснение

    Стоит отметить, что я не смайнил реальный блок на IBM 1401 — Музею компьютерной истории это бы не понравилось. Как я уже говорил, имея рабочий IBM 1401, на майнинге заработать не удастся. Однако мне удалось внедрить и выполнить алгоритм SHA-256 на машине IBM 1401, доказав таким образом, что майнинг теоретически возможен. И открою секрет нахождения валидного хэша – я просто использовал уже смайненный блок.

    geektimes
     
  2. Nimogsm

    Nimogsm 123 Проверенный

    круто!!!)прочитал все на одном дыхании)