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

Натхнений публікацією марки_ablov "Особливості біткойнів з папером та пензлем", ми вирішили, що читачі гігніту будуть зацікавлені в тому, що інші божевільні ідеї автора оригінального посту – Кен Ширриф вдалося реалізувати.

Чи можливо видобути біткоїни за допомогою основних рам IBM від 60-х років минулого століття? Я вирішив перевірити це здавалося б божевільна ідея. Я впровадив алгоритм біткойнівного хешу в коді збирача для IBM 1401 і протестував його на працездатній моделі цього древнього головного кадру.




На головному кадрі IBM 1401 розраховується пункирна картка, з якою SHA-256. За пунковою карткою видно друк на принтері, що показує введення алгоритму та кінцевого хешу

Як виявилося, за допомогою цього комп'ютера ви можете міняти, але цей процес займе так довго, що навіть весь термін життя Всесвіту не може бути достатньо, щоб успішно шахта одного блоку.

У той час як сучасне обладнання може обчислювати мільярди хешів на секунду, 1401 комп'ютер займає 80 секунд, щоб комп'ютерно зрозуміли одну хеш. Прогрес комп'ютерної продуктивності в останні десятиліття очевидний, як Закон Гордона Мура чітко описує.

Пункти, які брали участь в експерименті, а також друку SHA-256 з принтером нижньої колонтитули, показано на вищезгаданих фото (перший пучок-карта тільки для краси - це непросто розбити цей візерунок). Зверніть увагу, що другий рядок закінчується групою нулів; це означає успішний хеш.

Принцип роботи системи Bitcoin Mining
Останнім часом електронні валюти Біткойн, які користувачі інтернету можуть перенести один до одного, дуже популярний. Щоб зрозуміти сутність цієї криптовалюти, система Біткойн може бути представлена у вигляді свого облікового журналу, який зберігає записи про власника цифрових монет (bitcoins) і кількість монет, які він має. Біткойн-учасники можуть перенести цифрові монети до одного.

Слід зазначити, що система Біткойн децентралізована: вона не має єдиного нормативного сервера, який контролює прогрес транзакцій. Замість записів надсилаються через розподілену мережу тисяч комп'ютерів в Інтернеті.

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

Процес видобутку, на основі надійної криптографії, є надзвичайно складним, так що ніхто не може контролювати, які операції замінюються. Зокрема, ключова ідея Біткойн-системи полягає в тому, що результат важко і важко отримати, але легко перевірити. Ми говоримо про так звану технологію «під ключ».

Процес видобутку блоку вимагає величезної кількості обчислювальних витрат. Тим не менш, один раз було підтверджено блок, користувачі одностороннього віку можуть легко перевірити його дійсність. Ускладнення видобутку запобігає шахрайському використанню Біткойн, а також простоті перевірки терміну дії блоку дозволяє користувачам бути впевненими в дійсності транзакцій.

Побічні ефекти видобутку - додаючи нові біткоїни до системи. В даний час кожен, хто підтвердив блок, отримує 25 створених біткоїнів (нині вартість цієї кількості віртуальних монет в традиційних грошових умовах становить близько 6 тис. дол. США). Це заохочує “мінерів” працювати важко і витрачати свої ресурси на видобуток. З огляду на можливість отримання $6,000 кожні 10 хвилин, видобуток, здається, є справжнім золотом, заохочуючи користувачів, щоб витрачати значні суми на гірничодобувний апарат.



У музеї Комп'ютерної історії IBM 1401 виводяться принтери та основні кадри IBM 1401. Цей комп'ютер працює за програмою. Консоль знаходиться на верхньому лівому верхньому куті. Темні прямокутні панелі на комп'ютері є "відкритими" стійками, які відступають, забезпечуючи доступ до технічного обслуговування.

Процес видобутку є надзвичайно складним, але результат дуже простий у перевірці. Біткойн-видобуток використовує криптографію з функцією хешу, що називається подвійним SHA-256. У цьому випадку 256 біт.

Криптографічний алгоритм хешування не дозволить вам отримати бажане значення хешу без переходу через масу даних при вході. Однак, як тільки ввод, який дає бажане значення, кожен може легко перевірити хеш. Таким чином, криптографічне хешування є непоганим способом реалізації «безпечних» біткоїнів.

Для того, щоб ввести блок, потрібно спочатку зібрати нові транзакції в блок. Після цього потрібно мати блок для отримання (додатково випадковим чином) значення хешу блоку. Якщо значення хешу починається з 16 нуль, блок вважається успішним і відправлений в мережу Bitcoin. Більшість часу, хеш не вдало, тому ви трохи зміните блок і знову спробуєте, зробивши більше одного мільярда операцій з обчисленням. Кожен 10 хвилин або так, хто успішно підтверджує блок і процес починається знову. Це нагадує лотерею, в якій беруть участь м'які м'язи, намагаючись, поки хтось стає «молодшим». Складність процесу хешування важко візуалізувати: простіше знайти зерно піску в усіх піском Землі, ніж знайти діє значення хешу. Для пошуку таких хешових значень, шахтарі використовують центри обробки даних, обладнані спеціальними апаратами для видобутку.

Я свідомо спрощую багато пояснень в цій статті. Якщо ви хочете дізнатися більше про Біткойн-систему та видобуток, я раджу вам вивчити мої статті Жорсткий досвід у сфері видобутку та видобування Біткойн.

SHA-256 алгоритм, який використовується Біткойн
Я тепер розглянемо функцію хешу, яка заснована на стандартній функції криптографічного хешу, називається SHA-256. Біткойн-система використовує подвійний SHA-256. Це означає, що функція SHA-256 виконується двічі. Алгоритм SHA-256 настільки простий, що він може бути виконаний буквально лише олівцем і папером, а алгоритм дозволяє перемішувати дані непередбачуваних способів. Алгоритм отримує блоки 64 байтів при вході, обробляє дані криптографічно та виходи 256 біт (32 байтів) зашифрованих даних. Алгоритм використовує один тур, який повторюється 64 раз. Ілюстрація нижче показує один раунд алгоритму, який займає вісім 4-байтних блоків. І через H, виконує кілька операцій і надає нові значення для A через H.



Круглий SHA-256, ілюстрований Вікіпедією kockmeyer, CC BY-SA 3.0

Темно-синій блоки перемішують біти в нелінійному вигляді, що важко для криптографічного аналізу. (Якщо ви можете знайти математично більш швидкий спосіб отримання успішних запитів, ви можете контролювати видобуток біткоїнів.) Клітка Ch "хойце" вибирає біти від F або G, на основі значення введення E. Cells Σ "sum" обертати біти A (або E) генеруючи три циклічні змінені версії, а потім підсумовує їх разом в модуля 2.

У кожній позиції А, Б і С, і обирає 0 або 1, залежно від того, яка величина знаходиться в більшості. Червоні клітини виконують 32-розрядне доповнення, генеруючи нові значення для A і E. Введення wt ґрунтується на злегка оброблених вхідних даних. (Це де вхідний блок вводиться в алгоритм.) Введення Кт є постійним визначеним для кожного туру.

Згідно з наведеною ілюстрацією, тільки зміною А і Е під час проведення туру. Решта значення вдається без зміни. Старе значення А стає новим значенням Б, Старе значення Б стає новим значенням С, і так далі. Хоча кожен раунд SHA-256 змінює дані трохи, після 64 раундів вхідні дані повністю змішані, що дає вихід непередбачуваного значення хешу.

ХІV 1401
Я вирішив запустити цей алгоритм на базі IBM 1401. Цей комп'ютер з'явився в 1959 році і в середині 60-х років став кращим комп'ютером - в цей час активно використовуються понад 10 тис машин. 1401 р. не був дуже потужним комп'ютером навіть у 1960 р. Тим не менш, це було доступним для середніх підприємств, які раніше не могли дозволити комп'ютеру, завдяки тому, що він може бути орендований за невелику кількість грошей – $2,500 на місяць.

IBM 1401 не використовує кремнієві чіпси. Крім того, на цьому комп’ютері немає чіпів. На напівпровідниках, кристалах германію, які були використані перед кремнієм. На дошках встановлена трансістори, разом з іншими компонентами, встановленими на дошках розмір ігрових карток, які називаються SMS-картами. Комп'ютер займався тисячами таких карток, які були встановлені у вигляді стелажів, які називаються «дверами». IBM 1401 має двадцять цих дверей, які були розширені для технічного обслуговування комп'ютерів. Ілюстрація показує єдиний відкритий двері, що надає доступ до чіпсів та кабелів.



Ілюстрація – відкрита стійка (так звана «дверна») IBM 1401 Mainframe. Фото показує SMS-карти, підключені до схеми. Ця стійка контролює стрічкові диски.

Принцип роботи такого комп’ютера значно відрізняється від сучасних ПК. Цей комп'ютер не використовує 8-бітні байти, але 6-бітні символи на основі бінарно-кодованого десяткового числа (BCD). Так як цей комп'ютер був обчислювальною машиною для вирішення економічних проблем, він використовував десятковий, а не бінарний арифметичний, і кожен символ пам'яті мав числове значення від 0 до 9. Магнітна серцева пам'ять комп'ютера провела 4000 символів. Модуль розширення пам'яті, розмір посудомийної машини збільшена місткість пам'яті від 12 000 символів. Введення даних в комп'ютер здійснюється за допомогою перфорованих карток. Дані та програми з карток зчитували зчитувачем карт. Вихідні дані були надруковані швидкісним принтером для каналізації або зламалися через карти.

Музей комп'ютерної історії в горі Перегляд має два IBM 1401 основні кадри. На одному з них я пограв хеш-код SHA-256. Для отримання додаткової інформації про IBM 1401 див. у статті Фракції на IBM 1401.
й
Запуск SHA-256 на IBM 1401
IBM 1401 комп'ютер, ймовірно, найгірший з усіх машин, які ви можете вибрати для запуску алгоритму SHA-256. Щоб ефективно працювати, цей алгоритм вимагає машин, які можуть виконувати бітові операції в 32-розрядних словах. На жаль, IBM 1401 не підтримує 32-bit слів або байтів. Цей комп'ютер працює з 6-бітними героями і не дає бітоперацій. Крім того, він використовував десятковий арифметичний замість бінарних. Таким чином, алгоритм на комп’ютері 1401 буде повільно працювати і непомітно для користувача.

Я закінчився за допомогою одного персонажа на біт. 32-бітне значення зберігалося як 32 символи, так і 0 або 1. Мій код мав виконати біт операції, багатозастосувань і доповнень, перевіряючи кожного персонажа і позбавляючи те, що робити з ним. Як ви можете очікувати, що код займе тривалий час для виконання.

Далі я даю збирача код I писав. В цілому в коментарях описано принцип коду. Наприкінці коду – таблиця констанцій, необхідних алгоритмом SHA-256 у шістнадцятковій формі. З 1401 комп'ютер не підтримує шістнадцятковий формат, я мав написати власні підряди для перетворення шістнадцяткових і бінарних форматів. У цій статті я не поясню, що код збірки IBM 1401, але підкреслить, що він дуже відрізняється від використання сучасних комп'ютерів. Цей код не викликає підролінів або результатів виробництва. У зв'язку з відсутністю реєстрів загального призначення, операції проводяться в пам'яті.

Дивитися код під псуванням:
Прихований текст* клас="дос"> робота Bitcoin * SHA-256 хеш * Кен Ширриф JavaScript licenses API Веб-сайт Go1.13.8 XXXxxxxxx / HD XXX / безкоштовно порно фільми / hdxxx.top
Виконувана програма була надана на 85 пучок-карт (ви побачили їх на початку цієї статті). Я також зробив поштову картку з алгоритмом хешу. Для того, щоб запустити програму, мені довелося навантажувати пункову карту в зчитувач карт і натиснути кнопку завантаження. Картковий зчитувач ручний 800 карток за хвилину. Таким чином, це займе лише кілька секунд для завантаження програми. Під час виконання програми комп'ютерна консоль (див. ілюстрацію нижче) спалахнула на 40 секунд. Нарешті, принтер видрукував фінальну хеш для мене (ви також побачили друк на початку статті), а результати були застосовані на нову пункову карту. Оскільки видобуток біткойн використовує SHA-256 подвійне хешування, процес видобування займає двічі довга (80 секунд).



Тверда робота консолі IBM 1401 під час розрахунку SHA-256 хеш

Порівняння продуктивності
Комп'ютер IBM 1401 може розрахувати подвійний хеш SHA-256 за 80 секунд. Для виконання цього завдання комп'ютер споживає близько 3000 Вт потужності, про те ж, як і електрична плита або пральна сушарка. За один раз базова вартість системи IBM 1401 $125,600. У реаліях 2015 року це близько мільйона доларів США. У той же час, тепер ви можете придбати USB флеш-накопичувач для видобутку за $ 50, який має спеціалізовану інтегровану схему (ASIC USB-мінер). Цей майнер USB виконує 3,6 мільярди шетів на секунду, при цьому споживаючи близько 4 Вт.
Такі значні показники продуктивності обумовлені кількома факторами: різке збільшення продуктивності комп'ютера за останні 50 років відповідно до закону Мура, втрата продуктивності, пов'язаних з використанням десяткового арифметичного в комп'ютерах для вирішення комерційних проблем, які було зайнято обчислення бінарного хеш-коду, а також отримання продуктивності від традиційного обладнання для видобутку біткоїнів.

Прийміть склад. Для шахти блок з актуальними вимогами до цього процесу, комп'ютер IBM 1401 займе близько 5x10^14 років (який 40 000 разів на поточний вік Всесвіту). Вартість споживаної електроенергії становитиме близько 1018 доларів США. В результаті ви отримаєте 25 біткоїнів, вартість яких в грошових умовах становитиме близько 6000 доларів США. Так, видобуток біткоїнів на IBM 1401 основна рама не є прибутковою окупацією. Фотографії нижче порівняти комп'ютерні чіпси 60-х років минулого століття і сучасні версії, чітко демонструючи технологічний прогрес.





Ліворуч: SMS-карти, що використовуються в IBM 1401. Кожна карта складається з багатьох компонентів з чіпом. Кількість таких карток в комп'ютері перевищила тисячі. Право: Bitfury ASIC чіп дозволяє видобути біткоїни за курсом 2-3 гагаш за секунду. Фото zeptobars (CC BY 3.0)

Мережеві передачі
Ви можете вирішити, що біткоїни несумісні з технологією 60-х років минулого століття через відсутність можливості передачі даних через мережу. Чи потрібно хто-небудь надсилати скановані картки з блокчейном на інші комп'ютери? Зв'язок між комп'ютерами через мережу з'явився давно. У 1941 році IBM підтримав те, що відомий як телеметрія (відновлення) обробки даних. У 60-х роках IBM 1401 може бути підключений до IBM 1009 (ІБМ 1009 Відділення передачі даних), режимом посудомийної машини, що дозволило комп'ютерам спілкуватися один з одним по телефону лінії до 300 символів на другий. Це, теоретично, будівництво мережі Біткойн на основі технологій 60-х років минулого століття цілком можливо. На жаль, я не в змозі отримати телескопічне обладнання для тестування цієї теорії.

р.

Пристрій передачі даних IBM 1009. У 1960 році в 1960 році з'явився режим розміру посудомийної машини. Передається до 300 символів на другий поверх телефону. Джерело: Вступ до системи обробки даних IBM.

Пошук
За допомогою SHA-256 у збірній мові древнього головного кадру було складним, але цікавим досвідом. Я очікував більш високу продуктивність (в порівнянні з моїм Мандельбротом, встановленим за 12 хвилин). десятковий арифметичний комп’ютер не найкращий варіант для бінарного алгоритму, як SHA-256. Проте алгоритм видобутку Біткойн може бути виконаний навіть на комп'ютері без вбудованих ланцюгів. Я можу побудувати мережу Bitcoin.

Музей комп'ютерної історії в горі Переглядайте відображення роботи IBM 1401 у середах та суботах. Якщо ви знаходитеся поруч, ви обов'язково повинні подивитися на нього, перевіривши графік роботи. І якщо ви сказали, що музейний персонал, який демонструє роботу IBM 1401 про мене, вони можуть навіть запустити мій Pi програму.

Хочу висловити подяку Музею Комп'ютерної історії та членам 1401 команди з відновлення комп'ютера: Роберт Гарнер, Ед Тален, Ван Снайдер, особливо Стан Падок. Сайт цієї команди ibm-1401. інформація має багато цікавої інформації про комп'ютер 1401 і її реставраційні роботи.

Розгортання
Варто відзначити, що я не вив'язував реальний блок на IBM 1401 - музей комп'ютерної історії не сподобається. Як я сказав, що робота IBM 1401, видобуток не буде працювати. Тим не менш, я зміг реалізувати та виконати алгоритм SHA-256 на IBM 1401, що дає можливість теоретично реалізувати та виконувати алгоритм SHA-256 на базі IBM 1401. І нехай я розкрив секрет пошуку дійсного хешу - Я просто скористався вже замінним блоком.

Ми сподіваємося на те, що наші переклади
Р



Джерело: geektimes.ru/company/hashflare/blog/252092/