Bitcoin Forum
May 27, 2024, 05:17:22 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Майнинг биткоинов на 55-летнем ветеране IBM 1401  (Read 856 times)
negeroy (OP)
Legendary
*
Offline Offline

Activity: 1148
Merit: 1051


View Profile
June 17, 2015, 06:42:38 AM
Last edit: June 17, 2015, 06:19:58 PM by negeroy
 #1

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

Вдохновившись публикацией хабрапользователя mark_ablov «Майним Bitcoin с помощью бумаги и ручки», мы решили, что читателям гиктайм будет интересно, какие еще безумные идеи удалось реализовать автору оригинального поста — Кену Ширриффу.

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

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

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

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

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

Принцип майнинга системы Bitcoin

В последнее время электронная валюта Bitcoin (биткоин), которую интернет-пользователи могут передавать друг другу, пользуется большой популярностью. Для понимания сути работы данной криптовалюты, систему Bitcoin можно представить в виде некоего журнала учета, в котором хранятся записи о владельце цифровых монет (биткоинов) и количестве монет, которыми он/она располагает. Участники системы Bitcoin могут передавать цифровые монеты друг другу.

Следует отметить, что система Bitcoin децентрализована: у нее нет единого регулирующего сервера, который следил бы за ходом транзакций. Вместо этого осуществляется рассылка записей по распределенной сети из тысяч компьютеров в сети Интернет.

Сложность заключается в том, что подобная распределенная система должна каким-то образом обеспечивать согласие всех пользователей по поводу записей. То есть добросовестные пользователи должны подтвердить валидность транзакции, одобрить ее, несмотря на возможное присутствие мошенников и медленно работающие сети. Решением данной проблемы стал так называемый «майнинг». Примерно каждые 10 минут в процессе майнинга подтверждается блок выходящих транзакций, в результате он считается официально подтвержденным.

Процесс майнинга, основанный на надежной криптографии, крайне сложен, благодаря чему никто не может контролировать какие именно транзакции проходят майнинг. В частности, ключевой идеей системы Bitcoin является то, что результат работы получить сложно и трудно, но зато легко проверить. Речь идет о так называемой технологии «proof-of-work» («доказательство работы»).

Процесс майнинга блока требует огромного количества вычислительных затрат. Однако, после того как блок был подтвержден, пользователи одноранговой сети могут с легкостью проверить его валидность. Сложность майнинга предотвращает мошенническое использование Bitcoin, а легкость проверки достоверности блока позволяет пользователям быть уверенным в валидности транзакций.

Побочным эффектом майнинга является добавление новых биткоинов в систему. В настоящее время каждый, кто подтвердил блок, получает за это 25 сгенерированных биткоинов (сейчас стоимость этого количества виртуальных монеток в традиционном денежном выражении составляет около 6 тыс. долларов США). Такое поощрение стимулирует «майнеров» работать усердно и тратить свои ресурсы на майнинг. Учитывая имеющуюся возможность получать по 6 тыс. долларов США каждые 10 минут, майнинг представляется настоящей «золотой жилой», побуждая пользователей тратить значительные суммы на аппаратное обеспечение для майнинга.

Строчный принтер и Мэйнфрейм IBM 1401, представленные в экспозиции Музея компьютерной истории (Computer History Museum). Этот компьютер выполнял мою программу. Консоль расположена сверху слева. Темные прямоугольные панели на ЭВМ это «дверки» стоек, которые откидываются, предоставляя доступ для техобслуживания.

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

Криптографический алгоритм хеширования не позволит получить нужное хэш-значение, не перебрав массу данных на входе. Однако после того как будет найден вход, который дает нужное значение, каждый может с легкостью проверить хэш. Следовательно, криптографическое хэширование является хорошим способом осуществления «proof-of-work» биткоинов.

Говоря более подробно, для того чтобы смайнить блок, вначале нужно собрать в блок новые транзакции. Затем нужно произвести хэширование блока для получения (по существу случайным образом) хэш-значение блока. Если хэш-значение начинается 16-ю нулями, блок считается успешно подтвержденным и посылается в сеть Bitcoin. Большинство времени хэш является не успешным, поэтому Вы слегка меняете блок и пытаетесь снова и снова, проведя не один миллиард вычислительных операций. Примерно каждые 10 минут кому-то удается успешно подтвердить блок и процесс начинается заново. Это напоминает лотерею, в которой участвуют майнеры, предпринимая попытку за попыткой, до тех пор, пока кто-нибудь не станет «победителем». Сложность процесса хеширования с трудом поддается визуальному представлению: легче найти песчинку во всем песке Земли, чем найти валидное хэш-значение. Для поиска таких хэш-значений майнеры используют дата-центры, оснащенные специальным аппаратным обеспечением для майнинга.

Многие пояснения в данной статье я намеренно упрощаю. Если Вы хотите подробнее ознакомиться с системой Bitcoin и майнингом, советую изучить мои статьи Нелегкий опыт добычи биткоинов и Суровые уроки майнинга биткоинов.
negeroy (OP)
Legendary
*
Offline Offline

Activity: 1148
Merit: 1051


View Profile
June 17, 2015, 06:46:25 AM
Last edit: June 17, 2015, 06:19:02 PM by negeroy
 #2

Хэш-алгоритм SHA-256, используемый Bitcoin

Теперь я рассмотрю функцию хэширования, используемую Bitcoin, которая основана на стандартной криптографической хэш-функции под названием SHA-256. В системе Bitcoin используется «двойной SHA-256». Это означает, что функция SHA-256 выполняется дважды. Алгоритм SHA-256 настолько прост, что выполнить его можно в буквальном смысле, имея в распоряжении лишь карандаш и бумагу, и при этом алгоритм позволяет смешивать данные непредсказуемым образом. Алгоритм принимает на входе блоки по 64 байта, обрабатывает данные криптографически и выдает 256 бит (32 байта) зашифрованных данных. В алгоритме используется один раунд, который повторяется 64 раза. На иллюстрации внизу показан один раунд алгоритма, который принимает по восемь 4-байтных блока, А через Н, выполняет несколько операций и выдает новые значения для А через Н.


Раунд SHA-256, на примере иллюстрации из Wikipedia, автор kockmeyer, CC BY-SA 3.0

Темно-синие блоки перемешивают биты нелинейным образом, что представляет сложность для криптографического анализа. (Если Вам удастся найти математически более быстрый способ получения успешных хэшей, Вы сможете контролировать майнинг биткоинов). Ячейка Ch «выбор» выбирает биты от F или G, на основании значения входа E. Ячейки Σ «сумма» вращают биты A (или E) генерируя три циклических сдвинутых версии, и далее суммирует их вместе по модулю 2.

Ячейка Ma «большинство» проверяет биты в каждой позиции A, B, и C, и выбирает 0 или 1, в зависимости от того, какое значение находится в большинстве. Красные ячейки выполняют 32-битное добавление, генерируя новые значения для A и E. Вход Wt основан на слегка обработанных входных данных. (Именно здесь входной блок вводится в алгоритм.) Вход Kt это константа, определяемая для каждого раунда.

Согласно вышеприведенной иллюстрации, за раунд изменяются только A и E. Остальные значения пропускаются без изменений. Старое значение A становится новым значением B, старое значение B становится новым значением C, и так далее. Хотя каждый раунд SHA-256 изменяет данные незначительно, после 64 раундов входные данные полностью перемешиваются, давая на выходе непредсказуемое хэш-значение.

IBM 1401

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

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


На иллюстрации показана открытая стойка (так называемая «дверка») Мэйнфрейм IBM 1401. На фотографии видны SMS карты, подключенные к цепи. Эта стойка управляет ленточными накопителями

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

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

 продолжение http://geektimes.ru/company/hashflare/blog/252092/
diks
Legendary
*
Offline Offline

Activity: 2632
Merit: 1450



View Profile
June 17, 2015, 07:47:55 AM
 #3

скорее не пойдут дальше запрета на обменные и расчетные операции с\на рубли, счета, карты
т.к. не могут контролировать и налог собирать

diks
Legendary
*
Offline Offline

Activity: 2632
Merit: 1450



View Profile
June 17, 2015, 07:49:46 AM
 #4

хотя догонять полюбасу придется
стоит международным системам начать внедрение принципов крипты

negeroy (OP)
Legendary
*
Offline Offline

Activity: 1148
Merit: 1051


View Profile
June 17, 2015, 06:21:57 PM
 #5

скорее не пойдут дальше запрета на обменные и расчетные операции с\на рубли, счета, карты
т.к. не могут контролировать и налог собирать


всё возможно  Wink
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!