Для чого створювався 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, Bitcoin Gold, Diamond.

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

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

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

Фото: flickr.com
Обробка: Vinci