Алгоритм шифрування біткоіни (Bitcoin) — SHA-256

  • Коли з’явився алгоритм шифрування Bitcoin — коротка історія
  • Характеристики алгоритму шифрування біткоіни
  • Алгоритм шифрування Bitcoin в Майнінг
  • Слабкі та сильні сторони алгоритму хешування біткоіни
  • Шифрування біткоіни побудовано на базі SHA-256 — спеціальному алгоритмі, який входить до складу програмного коду. Його завдання в тому, щоб перетворити вхідні дані в конкретний набір символів (в буквеному і цифровому відображенні) і захистити інформацію. Такі дії носять назву хешування. У чому тонкощі зазначеного алгоритму? Для чого він потрібен, і як працює? Які переваги та недоліки? Ці та ряд інших моментів розглянемо докладно.

    Який алгоритм шифрування у біткоіни, і де він застосовується?

    Графічне зображення емблеми біткоіни і ноутбуків

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

    1. Формування адрес BTC (застосовуються для проходження транзакцій).
    2. Майнінг (доказ роботи).
    3. Досягнення необхідного ступеня безпеки і анонімності.
    4. Для цифрового підпису та її розпізнавання.

    Алгоритм SHA-256 актуальний не тільки для біткоіни, але і для інших коинов, а саме біткоіни Кеш, Мазакоін, Піркоін, Неймкоін і інших криптовалюта. Крім того, SHA-2 (основа SHA-256) використовується при створенні багатьох протоколів, призначених для захисту даних в Мережі, а саме SSL, TSL та інших.

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

    Алгоритм шифрування біткоіни — принцип роботи простими словами

    Схематичне зображення алгоритму SHA-2

    В основі SHA-2 лежить структура, створена Меркле і Дамгардом. Особливість хеш-функції, яка застосовується в криптографії, полягає в нестандартному підході при її формуванні. Вхідні дані діляться на ідентичні за величиною блоки, після чого створені елементи перетворюються в 16-ковий число. Саме з ними згодом виробляються обчислення. До отриманого значення застосовується хеш-функція, а результатом обробки є хеш-сума, що з’являється на виході. Вона являє собою набір символів, представлених в буквеному і цифровому відображенні. По суті, це і є хеш.

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

    Так, для створення цифрового підпису застосовується хеш-функція. Якщо виникає розглянута вище ситуація, висока ймовірність підробки підпису. Для обчислення таких збоїв (колізій) використовується спеціальна методика, що передбачає перебір даних, що збільшує стійкість хеш-функції.

    Коректність шифрування Bitcoin контролюється чотирма вимогами:

    1. При внесенні правок у вхідні дані хеш-сума залишається незмінною.
    2. Під час хешування виходить індивідуальна хеш-сума (набір символів повинен бути унікальним).
    3. Створення ключа із застосуванням хешування максимально ускладнено.
    4. Хеши мають незворотний характер. Це означає, що дозволена робота з вхідними даними без можливості здійснення зворотної дії.

    Як це застосовується в біткоіни?

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

    Як тільки розглянута робота виконана, створюється черговий елемент біткоіни-ланцюга (блок) з певним розміром (для розглянутої криптовалюта — 1 мегабайт). Отримані вузли складаються з версії, часу формування, двох хеш (минулого блоку і входять угод), а також додаткових параметрів, що забезпечують унікальність (bits і nonce). У комплексі створений блок безліч разів хешіруется, в результаті чого формується титульний хеш, який для «старого» елемента ланцюга грає роль виходу, а для нового — входу.

    Припустимо, що в наборі хеша присутній конкретне число «0» (наприклад, nonce дорівнює 17). Підібрати таке значення, застосовуючи тільки перебір значень, вкрай важко. Саме цей аспект забезпечує надійність відомостей в blockchain-мережі і її захист від злому. Щоб створити хеш, необхідні величезні потужності, без яких знайти необхідний набір символів неможливо. Як тільки ця робота завершена, а параметр знайдений, він прямує до елементів кріптосеті з новоствореним блоком і знайденим хешем з 17-ю «0». Далі всі учасники біткоіни-мережі перевіряють хеш, об’єднуючи набір з символів з відомостями з блоку. При відсутності колізії в ланцюжку блокчейн з’являється новий елемент.

    Коли з’явився алгоритм шифрування Bitcoin — коротка історія

    Процес створення алгоритму шифрування біткоіни

    Термін «SHA» є абревіатурою трьох слів: «Secure Hashing Algorithm». У біткоіни використовується SHA-256, а «основою» згаданої хеш-функції є SHA-2, до складу якого входять багато криптоалгоритми (в тому числі 256).

    Творцями SHA-2 є АНБ Сполучених Штатів — спеціальне агентство, яке займається питаннями нацбезпеки країни. Після розробки і перевірки алгоритм в 2002 році він був представлений суспільству. До складу нового SHA-2 увійшла і 1-ша хеш-функція SHA-1 (створена на 7 років раніше — в 1995-м). Після появи SHA-2 було випущено безліч варіантів алгоритму, один з яких застосований Сатоши Накамото при створенні біткоіни в 2009 році.

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

    У 2012 році система була вдосконалена і з’явилася оновлена ​​версія хеш-функції — SHA-3. Вважається, що з часом нова розробка витіснить колишні алгоритми, що поліпшить і без того високу ступінь безпеки.

    Характеристики алгоритму шифрування біткоіни

    Монета біткоіни розпадається на дрібні складові

    Суть SHA-256 проста. Первісне повідомлення після внесення доповнення ділиться на блоки, а кожен з них на 16 слів. Отримані елементи проходять через спеціальні цикли, які передбачають 64 або 80 етапів. На кожному з них відбувається перетворення двох слів, а опцію перетворення формують залишилися слова. Підсумкові параметри підсумовуються, що і утворює хеш.

    У процесі роботи алгоритму застосовується 6 команд:

    • «Xor» — видаляє «АБО».
    • «Shr» — зміщує показник на необхідну кількість біт вправо з конкретною періодичністю.
    • «Rots» — зміщує показник на необхідну кількість біт вправо (без застосування конкретного циклу).
    • «II» — з’єднання елементів, що мають лінійний характер.
    • «And» — «І».
    • «+» — стеження.

    Характеристики протоколу:

    1. Верхня межа тривалості повідомлення — 33 Б.
    2. Максимальний параметр швидкості — 139 MiB / s.
    3. Розмір слова — 4 Б.
    4. Кількість повторів в циклі — 64.
    5. Розмір блочного елемента — 64 Б.
    6. Величина загального хеш-коду — 32 Б.

    Алгоритм шифрування Bitcoin в Майнінг

    Шахтарська кирка і монета Bitcoin на тлі комп'ютерного коду

    При здійсненні розрахунків в межах Майнінг коректність одержуваного хеш-коду визначається за кількістю нулів на початку рядка. Наприклад, якщо цей параметр дорівнює 17, шанси знайти такого числа вкрай низька і становить десь 1: 1,4 * 10 в 20-го ступеня. Тож не дивно, що для Майнінг Bitcoin потрібне застосування потужного устаткування і великі витрати електроенергії. При цьому оптимізація пошуку потрібного хеша неможлива, адже після прийому блоку інформації на виході з’являється випадкове число.

    Складність видобутку віртуальної монети в тому, щоб знайти необхідний хеш і сформувати черговий блок. Для реалізації такої мети застосовується стандартний перебір значень, для чого необхідно високопродуктивне обладнання. Як згадувалося, ведеться пошук не простої хеша, а значення, перед яким знаходиться велика кількість «0-їй».

    Видобуток криптовалюта на SHA-256 являє собою комплекс заходів, спрямованих на вирішення певної кріптозадачі. У випадку з біткоіни для Майнінг використовується наступне обладнання:

    1. З моменту появи BTC в 2009-му, а також до середини 2010 року було актуально застосування центрального процесора (CPU).
    2. До середини 2011 року Майнер задіяли комп’ютери з відеокартами (GPU).
    3. До початку 2013 року, були популярні FGPA, а також ферми на графічних процесорах.
    4. У 2014-му з’явилися Асіка. За продуктивністю вони затьмарили існуюче обладнання. Незважаючи на це, до початку 2017 року Майнер використовували ферми на GPU і працювали в пулах, але до кінця 2017 го і до сьогоднішніх днів актуальні тільки ASIC-Майнер. Застосування іншого обладнання нерентабельно.

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

    Зі зростанням конкуренції і випуском більш продуктивних Майнер підвищується і складність видобутку BTC, параметр якої змінюється з періодичністю раз в 2 тижні.

    Слабкі та сильні сторони алгоритму хешування біткоіни

    Об'ємний значок біткоіни крупним планом

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

    Незважаючи на ряд позитивних якостей, алгоритм хешування Bitcoin має ряд слабких місць:

    1. Контроль з боку учасників видобутку BTC. Тут працює ідентичний принцип, як і в акціонерних товариствах (АТ), коли учасники компанії мають певне число акцій. Чим більші потужності зосереджені в руках Майнер кріптосеті, тим сильніше їх вплив на загальну систему. Крім того, через зростання складності видобутку в 2018 році помітна тенденція переходу Майнінг з рук приватних Майнер під контроль великих організацій, що займаються створенням обладнання для видобутку віртуальних монет. Для отримання біткоіни приватний майнер повинен витрачати великі суми на покупку Асіка, підключатися до одного з пулів і платити за електроенергію. Якщо економити на обладнанні, видобуток втрачає рентабельність.
    2. Наслідком розглянутої вище ситуації є той факт, що «левова» частка біткоіни концентрується в руках власників великих майнінгових компаній. Якщо взяти до уваги, що не всі отримані Bitcoin потрапляють в продаж, такі організації перетворюються в інвесторів і зберігачів монет. В результаті число коинов в обороті знижується. Крім того, накопичення криптовалюта дозволяє впливати на децентралізацію, а також курсову вартість BTC в процесі торгів.
    3. Алгоритм SHA-256 через наявних недоліків поступово відходить в минуле, а на його місце приходять більш досконалі проекти. Наприклад, популярність набирають Scrypt, Ethash, Blake-256, Equihash і інші. Нові алгоритми мають кращий захист і рівень безпеки, що змусило творців багатьох криптовалюта відмовлятися від застарілого SHA-256 на користь більш досконалих технологій.
    4. Незважаючи на виправлення головних помилок, які були виявлені розробниками, деякі уразливості прибрати не вдалося (в 2008 році було знайдено колізії для 22 ітерацій). Ось чому розробка SHA продовжилася, а на зміну другої версії прийшов SHA-3.

    У 2009 році Сатоши Накамото був змушений використовувати SHA-256, адже на період створення криптовалюта уряд штатів прийняло даної протокол. У той період він активно використовувався для захисту даних в деяких державних програмах, також задіяли в комерційному секторі. Вийшло, що протокол створювали для вирішення одних завдань, але в реальності він затребуваний абсолютно в іншому руслі.

    Для наочності зведемо в таблицю позитивні і негативні риси алгоритму шифрування біткоіни.

    переваги недоліки
    Широке поширення (в тому числі в кріптовалютном секторі). Протокол SHA активно застосовується в повсякденному сфері для захисту інформації. Втрата децентралізації. Потужності концентруються в руках майнінгових компаній.
    Надійний захист від злому. Ітерація в SHA має просту структуру, що з часом призвело до зростання складності видобутку. На серпень 2018 го для Майнінг біткоіни можна використовувати тільки Асіка з високою продуктивністю.
    Зручність у питаннях видобутку коинов, універсальність в питанні вибору техніки для Майнінг. З’являються нові алгоритми, які мають більш досконалу структуру.
    У другому варіанті (SHA-2) творцям вдалося усунути ряд недоробок, негативно впливають на надійність системи. Незважаючи на активну роботу над помилками, видалити багато недоліків так і не вдалося. Тож не дивно, що розробники створили нову версію SHA-3.
    Протокол прийнятий на законодавчому рівні в США.

    На сьогоднішній день алгоритм шифрування біткоіни майже не застосовується при розробці нових криптовалюта. Найбільш яскравим прикладом монети, де ще використовується SHA-256, є Bitcoin Cash — форк Bitcoin, що з’явився в серпні 2017 го. Але в ситуації з цією монетою застосування SHA більше необхідність, ніж вибір творців. Що стосується самого Bitcoin, використання протоколу цієї серії обумовлено отсутствуем альтернатив у Сатоши Накамото.

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

    Відео про криптографічних функціях і алгоритмах:


    Ссылка на основную публикацию