Контакти

Криптовалюти з алгоритмом sha 256. SHA256 – алгоритм хешування. Розшифровка хешу. Відео про криптографічні функції та алгоритми

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

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

При здійсненні транзакцій алгоритм SHA 256 порівнює ID з вихідними даними, які неможливо отримати, після чого надає доступ до операції. Зараз цей протокол використовується у видобутку криптовалют, таких як BTC та BCH.

Історія появи

Як вийшло, що Bitcoin почав використовувати SHA 256? Все почалося з того, що алгоритм став членом сімейства SHA-2, які мають розмір ланцюжка хешу 224-512 біт.

Вони, у свою чергу, були створені на основі прадіда – SHA-1, у якого хеш був завдовжки 160 біт. Технологія з'явилася 1995 року, і було призначено використання у цивільних цілях - тобто шифрування звичайної, не державно-важливої ​​інформації.

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

Технічні характеристики SHA 256

Алгоритм призначений для даних, поділених на рівні частини по 64 байти. SHA 256 забезпечує їх збір та об'єднання в єдиний 256-бітовий ланцюжок. Основною для методу є операція шифрування, яка виконується у циклі 64 рази.

Короткі характеристики алгоритмічних інструкцій SHA 256:

  • блоки 64-бітного розміру - найшвидше працює з 32-бітними;
  • пікова довжина зашифрованого ланцюжка інформації - 33 байти;
  • обсяг дайджесту повідомлення - 32 байти;
  • стандартизований розмір одного слова – 4 байти;
  • циклічність шифрування в одному раунді операції - 64 байти;
  • швидкість, де працює алгоритм - 140 Мбіт/с.

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

Набір інформації проводиться на діапазоні від 64 до 80 повторень. Кожен наступний цикл перетворює створені блоки на слова. Кінцевий результат, зокрема хеш, створюється шляхом підсумовування всіх початкових значень.

Криптовалюти з алгоритмом SHA 256

Як і говорилося раніше, таким набором інструкцій має не тільки Bitcoin, а й:

  • peercoin, особливість якого полягає в тому, що код створюється на основі битка, але PoS застосовується для захисту всієї мережі, а PoW відповідає за розподіл монет;
  • namecoin – цифрова валюта, яка виступає засобом захисту, конфіденційності, децентралізації; unobtanium - відрізняється вкрай низькою інфляцією, щоб видобути всі монети потрібно щонайменше 300 років;
  • deutsche eMark – німецька мікромережа, яка використовується для обміну активами та грошима. Сам процес відбувається без посередників; betaCoin - працює за таким же принципом, як і всесвітньо відомий BitCoin;
  • jouleCoin - також базується на дідусеві біткоїні, проте забезпечує більш швидке підтвердження транзакцій;
  • steemit – навіть не окрема крипта, а ціла платформа на блокчейні. Її головне завдання – нагородження за цікаві публікації.

Litecoin також використовує алгоритм SHA 256, проте не у всій системі, а в підпрограмі. Для видобутку лайткоїну застосовується захисний протокол Scrypt, що позначається на збільшенні складності майнінгу та знижує окупність асиків.

Майнінг криптовалюти на основі алгоритму SHA 256

Для видобутку електронних монет, що ґрунтуються на сімействі SHA-2, необов'язково використовувати спеціалізовані засоби – ASIC. У майнінгу відмінно себе показують і ферми на основі CPU та GPU. Останній за швидкістю явно перевершує перший.

І все ж таки асик - найкраще рішення для майнінгу криптовалют. Його переваги до певної міри нівелює значна ціна - близько 100 тисяч рублів, моделі потужніші і зовсім перевалюють за 500 000. Зі зростанням складності падає окупність. Тому обладнання не завжди виправдовує себе, хоча забезпечує набагато вищу швидкість майнінгу, ніж ферми на відеокартах і тим більше ЦП.

Видобуток на GPU вважається більш-менш прибутковим. Загалом, вся ферма коштуватиме приблизно $1000-2000 плюс додаткове обладнання - зокрема, системи охолодження для відеокарт. Також варто враховувати оренду приміщення, оплату електроенергії та зарплату обслуговуючому персоналу.

Серед відеокарт непогано показує себе GTX 1080 Ti від Nvidia. Вона видає швидкість 1400 вдалих операцій на секунду. AMD трохи відстає зі своїми картами лінійки Vega – 1200 MH/s. Є й дешевші варіанти на кшталт Radeon 7970, проте його швидкість не перевищує 800 MH/s.

Алгоритм SHA 256 хоч і старий, але, як і раніше, використовується в Bitcoin - криптовалюті №1 у світі. Протокол застосовується і в низці інших перспективних альткоїнів. На зміну SHA256 поступово приходить Scrypt, проте біткоїн не планує на нього переходити. Щодо майнінгу все просто - якщо є гроші, беріть асики з високою швидкістю хешування. Бажаєте більш економне рішення? Тоді будуйте ферму із відеокарт AMD або Nvidia.

  • Переклад

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

Один криптографічний раунд

Майнінг

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

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

У біткойне критерієм валідності хеша є достатньо нулів на його початку. Знайти такий хеш так само складно, як, наприклад, знайти номер машини або телефону, що закінчується на кілька нулів. Але, звісно, ​​для хеша це експоненційно складніше. На даний момент правильний хеш повинен містити приблизно 17 стартових нулів, чому задовольняє тільки 1 з 1.4x10 20 . Якщо провести аналогію, то знайти таке значення складніше, ніж виявити конкретну частинку серед усього піску Землі.

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

Функція більшості (Ma блок) побітово працює зі словами A, B і C. Для кожної бітової позиції вона повертає 0 якщо більшість вхідних бітів в цій позиції - нулі, інакше поверне 1.

Блок Σ0 циклічно зсуває A на 2 біти, потім вихідне слово A циклічно зрушується на 13 біт, і, аналогічно, на 22 біти. Три зрушені версії A побітово складаються по модулю 2 ( звичайний xor, (A ror 2) xor (A ror 13) xor (A ror 22)).

Ch реалізує функцію вибору. На кожній бітовій позиції перевіряється біт з E, якщо він дорівнює одиниці, то на вихід йде біт з F з цієї позиції, інакше біт з G. Таким чином, біти з F і G перемішуються, виходячи із значення E.

Σ1 за структурою аналогічний Σ0, але працює зі словом E, а відповідні зсувні константи - 6, 11 та 25.

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

На схемі зверху помітно, що тільки A та E змінюються за один криптографічний раунд. Інші слова не змінюються, але зсуваються на виході - старе A перетворюється на вихідне B, старе B - на нове C, тощо. Хоча окремий раунд алгоритму не сильно змінює дані, але після 64 раундів вхідна інформація буде повністю зашифрованою.

Майним вручну

На відео я показую як можна пройти всі описані кроки за допомогою ручки та паперу. Я виконав перший раунд хешування для майнінгу блоку. Зайняло це у мене 16 хвилин, 45 секунд.


Трохи поясню, що відбувається: я записав слова від A до H у шістнадцятковій формі, і під кожним зробив переклад у двійковий вигляд. Результат виконання блоку Ma знаходиться під словом C, а значення A після зсувів і сам вихід Σ0 розташовуються над рядком з A. Функція вибору з'являється під G, і, нарешті, відповідні зрушені версії E і значення після блоку Σ1 йдуть над рядком з E. нижньому правому кутку зробив додавання, результат якого бере участь у обчисленні і нового A, і нового E (перші три червоні блоки підсумовування). Праворуч зверху я розрахував нове значення A, а посередині розташовується вже розрахунок нового значення E. Всі ці кроки обговорювалися вище і можуть бути відстежені на схемі.

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


Останній раунд SHA-256, в результаті якого видно успішно змайнений біткойн-блок

Що все це означає для проектування залізних майнерів?

Кожен крок у SHA-256 дуже просто виглядає в цифровій логіці - прості бітові операції та 32-бітові підсумовування (якщо ви коли-небудь вивчали схемотехніку, то, швидше за все, вже уявили, як це може виглядати в залізі). Тому ASIC-мікросхеми реалізують SHA-256 дуже ефективно, розміщуючи паралельно сотні блоків виконання SHA-256 раундів. Фотографія нижче показує мікросхему для майнінгу, яка може обчислювати 2-3 мільярди хешів за секунду. На Zeptobars можна побачити більше фото.


Знімок кремнієвого кристала ASIC-мікросхеми Bitfury, яка може майнути біткойни зі швидкістю 2-3 гігахешів на секунду. Зображення з Zeptobars . (CC BY 3.0)

На противагу біткойну, Litecoin, Dogecoin та інші схожі альтернативні -coin системи використовують алгоритм хешування scrypt, в якому спочатку закладено складність реалізації в залізі. Цей алгоритм під час виконання зберігає у пам'яті 1024 різних значень хеша, а вже на виході комбінує їх для отримання кінцевого результату. Тому потрібно куди більше пам'яті та схематики для обчислення scrypt-хеш порівняно з SHA-256-хеш. Вплив зміни алгоритму хешування наочно видно при порівнянні відповідного апаратного забезпечення для майнінгу - версії під scrypt (Litecoin та інші) у тисячі разів повільніше, ніж версії під SHA-256 (біткойн).

Висновок

SHA-256 несподівано виявився настільки простим, що може бути обчислений навіть вручну (алгоритм на еліптичних кривих, який використовується для підпису біткойн-транзакції, був би набагато болючішим, оскільки містить купу перемножень 32-байтних чисел). Розрахунок одного раунду SHA-256 зайняв у мене 16 хвилин, 45 секунд. З такою продуктивністю хешування всього біткойн-блоку (128 раундів) займе 1,49 діб, тобто отримуємо швидкість хешування в 0,67 хешів на день (насправді, звичайно ж, з практикою процес прискорився б). Для порівняння, поточне покоління біткойн-майнерів виробляє кілька терахешів в секунду, що приблизно в квінтиліон разів швидше за мене. Думаю, очевидно, що ручний майнінг біткойнів не дуже практичний.

Читач з reddit"a запитав про мої витрати енергії. Так як я не докладаю якихось серйозних фізичних зусиль, то можна припустити, що швидкість метаболізму буде 1500 кілокалорій на день, тоді отримуємо, що ручне хешування вимагає майже 10 мегаджоулів за хеш. Типове споживання енергії для залізного майнера - 1000 магехешів за джоуль. коштує 15 центів за кіловат-годину, що дешевше за пончиків у 6.7 разів. удачу за хвіст ручним майнінгом біткойнів, і це ще не враховуючи вартість паперу та ручок!

Для чого створювався SHA - 256

SHA 256 – скорочення від Secure Hashing Algorithm – це популярний криптографічнийалгоритм хешування, розроблений National Security Agency - Агентством національної безпеки США. Завдання SHA-256 полягає в тому, щоб зробити з випадкового набору даних певні значення з фіксованою довжиною, яке послужить ідентифікаторомцих даних.

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

Цей алгоритм відноситься до групи шифрувальних алгоритмів SHA - 2 , які у свою чергу розроблені на базі алгоритму SHA - 1 , вперше створеного в 1995 для використання в цивільних цілях . Сам SHA-2 розроблений Агентством національної безпеки США навесні 2002 року. Протягом трьох років АНБ США випустили патент на використання технології SHA у цивільних проектах.

У 2012 році в Національному інституті стандартів та технологій створено оновлений варіант алгоритму: SHA - 3. Згодом новий алгоритм витіснятиме як поточний основний алгоритм SHA — 2, так і вже застарілий, але SHA — 1, що ще використовується.

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

Такий метод має дві значні переваги :

  • швидка швидкість шифрування та практично неможливе розшифрування без ключів;
  • мінімальний ризик появи колізій (однакових образів).

Де ще використовується

Щодня кожен користувач Мережі, знаючи чи ні, використовує SHA-256: сертифікат безпеки SSL, яким захищений кожен веб-сайт, включає алгоритм SHA-256. Це необхідно для встановлення та автентифікації захищеного з'єднання з сайтом.

Плюси SHA - 256

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

Мінуси SHA - 256

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

Після того як великі інвестори почали вкладати гроші в обчислювальні потужності для промислового майнінгу біткоїну, складність майнінгу багаторазово зросла і почала вимагати виняткових обчислювальних потужностей. Цей недолік виправлений в інших протоколах, сучасніших і «заточених» під використання в майнінгу криптовалют, таких як Scrypt. Незважаючи на те, що сьогодні SHA-256 займає більшу частину ринку криптовалют, він послаблюватиме свій вплив на користь більш захищених і просунутих протоколів.

Через деякий часалгоритми SHA-1 перестали давати необхідний рівень надійності через ймовірне виникнення колізій. SHA-256, як і SHA-512, більш захищені від цього недоліку, але ймовірність виникнення все одно присутня.

Використання в криптовалютах

Майнінг на SHA - 256

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

Майнути з використанням функції SHA - 256 можна трьома способами:

  • CPU (центральний процесор);
  • GPU (графічний процесор);
  • спеціалізованийпроцесор: ASIC.

У майнінгу хеш — сума використовується як ідентифікатор вже наявних блоків та створення нових на основі попередніх. Процес майнінгу відображається в інтерфейсі у вигляді "accepted f33ae3bc9 ...". Де f33ae3bc9 — це хеш — сума, частина даних, призначенадля дешифрування. Основний блок складається з величезної кількості подібних хеш - сум.

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

Зважаючи на те, що Bitcoin побудований на алгоритмі SHA - 256, для конкурентоспроможногомайнінгу на ньому необхідні вкрай великі обчислювальні потужності. Це з тим , що з майнинга биткоина досить давно налагоджено виробництво « асиков » — application specific integrated circuit , т . е. інтегральна схема спеціального призначення. Асики дозволяють майнути біткоїни та інші криптовалюти на алгоритмі SHA — 256 набагато швидше, ефективніше та дешевше.

Які криптовалюти використовують алгоритм SHA - 256

SHA - 256 це класичний алгоритм для криптовалют: на ньому побудована основна криптовалюта - Bitcoin. Відповідно, і у форках біткоїну використовується цей алгоритм: у Bitcoin Cash, Gold, Diamond.

Крім них, SHA - 256 використовується також в:

  • Steemit;
  • DigiByte;
  • PeerCoin;
  • NameCoin;
  • TeckCoin;
  • Ocoin;
  • Zetacoin;
  • EmerCoin.

Також алгоритм SHA-256 використовується як підпрограма в криптовалюті Litecoin, а основним алгоритмом для майнінгу є Scrypt.

Функція хешування SHA 256 лягла в основу найпершої криптовалюти у світі - біткоїну та багатьох альткоїнів. Чи знаєте ви, що вона була створена задовго до появи криптовалют і призначалася зовсім для інших цілей? Сьогодні ми розглянемо історію алгоритму, принцип його функціонування, поточні проблеми та які криптовалюти використовують SHA256.

Історія

Назва алгоритму SHA 256 є абревіатурою Secure Hashing Algorithm. Так його назвав розробник – Агентство національної безпеки США. Алгоритм є функцією хешування. Це означає, що її вхід надходить обсяг даних довільної довжини, але в виході виходить набір символів фіксованої довжини, званий хешем.

Одна з ключових особливостей функцій хешування - необоротність. Ми можемо отримати хеш, пропустивши вихідні дані через функцію, але знаючи хеш, отримати вихідні дані не вдасться. Завдяки цій властивості функція набула поширення в різних сервісах та додатках, де потрібний захист даних. Щодня ми використовуємо алгоритм SHA 256, відвідуючи сайти в Інтернеті. Його включає сертифікат безпеки SSL, необхідний для встановлення захищеного з'єднання з сайтом.


Алгоритм є частиною сімейства SHA-2, розроблених на базі SHA-1, що з'явився у 1995 році. З моменту появи sha256 детально перевірявся на стійкість за допомогою криптоаналізу. Криптоаналіз перевіряє стійкість хеш-функцій до двох основних видів атак:
  • Знаходження колізій – виявлення однакових хешей за різних параметрів на вході. Імовірність успіху цієї атаки ставить під загрозу безпеку цифрового підпису із застосуванням поточного алгоритму.
  • Знаходження прообразу - можливість розшифровувати вихідне повідомлення з його хешу. Ця атака ставить під загрозу безпеку зберігання хешів паролів аутентифікації.

Вперше аналіз було перевірено у 2003 році, але тоді вразливості не було знайдено. Час минав, обчислювальні потужності розвивалися. У 2008 році було знайдено колізії для ітерацій SHA-512 та SHA-256. У вересні того ж року було розроблено метод створення колізій для 31 ітерації SHA256 та 27 ітерацій SHA-512.

Очевидно, що настав час розробляти нову криптостійку функцію. У 2012 році АНБ було винайдено SHA-3. Поступово оновлений алгоритм витіснятиме своїх менш криптостійких попередників.

Майнінг на SHA 256

Законодавство США дозволяє використовувати SHA та схожі хеш-функції як частину інших протоколів та алгоритмів у деяких федеральних додатках для захисту інформації, що не мають грифу «Секретно». Допускається застосування SHA-2 приватними та комерційними організаціями.

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

  • CPU (центральний процесор);
  • GPU (відеокарти);
  • ASIC (спеціалізований пристрій).

Мережа біткоїну влаштована таким чином, що кожен новий блок повинен бути знайдений раз на 10 хвилин. Число учасників мережі постійно змінюється, а час має залишатися незмінним. Щоб забезпечити однаковий час перебування, система регулює складність обчислень залежно кількості майнерів. Останнім часом криптовалюти набули популярності, і кількість майнерів сильно зросла. Щоб блоки не знаходилися надто швидко, складність обчислень також зросла.


Біткоїн починали майнути на процесорах. Потім, коли їх потужності не вистачало, перейшли на відеокарти. Незабаром і відеокарти перестали справлятися. Тоді винайшли асики - спеціальні пристрої, заточені на обчислення за алгоритмом sha 256. Один асик набагато потужніший і енергоефективніший за кілька відеокарт.

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

Втім, це легко порахувати. Існують калькулятори для розрахунку прибутковості майнінгу на sha256. Наприклад, https://www.coinwarz.com/miningprofitability/sha-256. Введіть у форму хешрейт свого обладнання (обчислювальна потужність), споживану енергію та її вартість, сервіс розрахує прибуток.

Альткоїни SHA-256

Розглянемо список та список криптовалют, що працюють на sha 256.

Bitcoin Cash (BCH)

Відокремився від нього 1 серпня 2017 року. Розмір блоку в класичному біткоїні дорівнює 1 мб. Мережа розрослася настільки, що всі транзакції перестали поміщатися до блоку. Це призвело до утворення черг із транзакцій та збільшення комісії за проведення платежів. Спільнотою було ухвалено рішення запровадити новий протокол, згідно з яким блок збільшився до 2 мб, частина інформації почала зберігатися за межами блокчейну та зменшилися терміни перерахунку складності з двох тижнів до доби.

Namecoin (NMC)

Є системою зберігання та передачі комбінацій виду «ім'я-значення», засновану на технології біткоін. Найвідомішим її застосуванням стала система розподілу доменних імен, незалежна від ICANN, а отже, унеможливлює вилучення домену. Namecoin була запущена в 2011 році, вона працює на програмне забезпечення для майнінгу біткоїну, перенаправлене на сервер, де працює Namecoin.

DigiByte (DGB)

Криптовалюта, запущена в 2013 році з метою покращити характеристики біткоїну та лайткоїну. Відмінності DigiByte:

  • Низька волатильність досягається за рахунок величезної кількості монет (до 21 млрд), що дозволяє забезпечити їх низьку вартість і зручність для використання в розрахунках;
  • Швидкі транзакції за рахунок збільшення розміру блоку вдвічі кожні два роки;
  • Низькі комісії або їхня відсутність;
  • Процес майнінгу розподілено п'ять алгоритмів, дозволяють видобувати монети незалежно друг від друга. Можна використовувати асики для SHA-256 та Scrypt, відеокарти для Groestl та Skein, процесор для Qubit.

Алгоритм SHA 256 є найпоширенішим серед криптовалютів. Це було викликано популярністю та успіхом біткоїну, і бажанням розробників альткоїнів створити подібні монети. Збільшення складності обчислень спонукали майнерів шукати способи майнути ефективніше, результатом чого стала поява асиків.


Шифрування Біткоіна побудовано з урахуванням 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 лежить структура, створена Мерклом та Дамгардом. Особливість хеш-функції, що застосовується у криптографії, полягає у нестандартному підході при її формуванні. Вхідні дані діляться на ідентичні за величиною блоки, після чого створені елементи перетворюються на 16-річне число. Саме з ними згодом виробляються обчислення. До отриманого значення застосовується хеш-функція, а результатом обробки є хеш-сума, що з'являється на виході. Вона являє собою набір символів, представлених у буквеному та цифровому відображенні. По суті це і є хеш.

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

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

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

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

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

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

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

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

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


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

Творцями SHA-2 є АНБ Сполучених Штатів – спеціальне агентство, яке займається питаннями національної безпеки країни. Після розробки та перевірки алгоритму у 2002 році він був представлений суспільству. До складу нового SHA-2 увійшла і перша хеш-функція 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 у майнінгу


При здійсненні розрахунків у межах майнінгу коректність хеш-коду, що отримується, визначається за кількістю нулів на початку рядка. Наприклад, якщо цей параметр дорівнює 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-го і до сьогодні актуальні лише майнери. Застосування іншого устаткування невигідно.
Згадані апарати застосовуються для того, щоб підібрати хеш-функцію, що цікавить, і сформувати новий. Чим вище хешрейт (міч обчислення) апарату, тим швидше відбувається перебір даних і тим менше часу потрібно на пошук рішення.

Зі зростанням конкуренції та випуском більш продуктивних майнерів підвищується і параметр якої змінюється з періодичністю раз на 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 році, ведеться багато розмов про вдосконалення цього алгоритму та внесення правок у криптовалютну мережу, але поки що такі наміри не знаходять фізичної реалізації та залишаються лише у вигляді пропозицій.

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



Сподобалася стаття? Поділіться їй