Dlaczego stworzono SHA-256?
SHA 256 – skrót od Secure Hashing Algorithm – to popularny kryptograficzny algorytm mieszający opracowany przez amerykańską Agencję Bezpieczeństwa Narodowego. Zadaniem SHA-256 jest przekształcenie losowego zestawu danych w wartość o stałej długości, która będzie służyć jako identyfikator tych danych.
Uzyskana wartość jest porównywana z duplikatami danych wyjściowych, które są niemożliwe do wydobycia. Główna dziedzina zastosowania algorytmu - wykorzystanie w różnych aplikacjach lub usługach związanych z ochroną informacji, gdzie funkcja ta zdobyła szerokie uznanie. Jest również używana jako technologia do wydobycia kryptowalut.
Ten algorytm należy do grupy algorytmów szyfrujących SHA-2, które z kolei zostały opracowane na podstawie algorytmu SHA-1, po raz pierwszy stworzonego w 1995 roku do użytku cywilnego. Sam SHA-2 został opracowany przez Agencję Bezpieczeństwa Narodowego USA wiosną 2002 roku. Przez trzy lata NSA USA wydało patent na wykorzystanie technologii SHA w projektach cywilnych.
W 2012 roku w Narodowym Instytucie Standardów i Technologii stworzono zaktualizowaną wersję algorytmu: SHA-3. Z czasem nowy algorytm zastąpi zarówno obecny główny algorytm SHA-2, jak i już przestarzały, ale wciąż używany SHA-1.

Skrót nie jest technologią szyfrowania danych w klasycznym rozumieniu, co powoduje niemożność deszyfrowania danych wstecz. Jest to szyfrowanie jednokierunkowe dla dowolnej ilości danych. Wszystkie algorytmy SHA opierają się na metodzie Merkle-Damgarda: dane dzieli się na równe grupy, z których każda przechodzi przez jednokierunkową funkcję kompresji. W wyniku tego długość danych się zmniejsza.
Taka metoda ma dwie znaczące zalety:
wysoka szybkość szyfrowania i praktycznie niemożliwa deszyfrowanie bez kluczy
minimalne ryzyko wystąpienia kolizji (identycznych obrazów)
Gdzie jeszcze jest używane
Codziennie każdy użytkownik Sieci, wiedząc o tym czy nie, korzysta z SHA-256: certyfikat bezpieczeństwa SSL, którym chroniony jest każdy serwis internetowy, zawiera algorytm SHA-256. Jest to niezbędne do ustanowienia i uwierzytelnienia zabezpieczonego połączenia z witryną.
Zalety SHA-256
SHA-256 - najczęściej stosowany algorytm wydobycia wśród wszystkich innych. Udowodnił swoją odporność na ataki (z rzadkimi wyjątkami) oraz efektywność zarówno w zadaniach wydobycia, jak i innych celach.
Minusy SHA-256
Główną wadą SHA-256 jest jego kontrolowalność przez górników: właściciele największych mocy obliczeniowych otrzymują większą część kryptowaluty, co wyklucza jeden z podstawowych zasad kryptowalut - decentralizację.
Po tym, jak wielcy inwestorzy zaczęli inwestować pieniądze w moce obliczeniowe do przemysłowego wydobycia bitcoina, trudność wydobycia znacznie wzrosła i zaczęła wymagać wyjątkowych mocy obliczeniowych. Ta wada została naprawiona w innych protokołach, bardziej nowoczesnych i 'dostosowanych' do użycia w wydobyciu kryptowalut, takich jak Scrypt. Mimo że dzisiaj SHA-256 zajmuje większą część rynku kryptowalut, będzie osłabiać swój wpływ na rzecz bardziej zabezpieczonych i zaawansowanych protokołów.
Po pewnym czasie algorytmy SHA-1 przestały zapewniać wymaganą poziom niezawodności z powodu prawdopodobieństwa wystąpienia kolizji. SHA-256, jak i SHA-512 są bardziej odporne na tę wadę, ale prawdopodobieństwo jej wystąpienia wciąż istnieje.

Wydobycie na SHA-256
Wydobycie na SHA-256, tak jak na każdym innym algorytmie - to proces rozwiązywania jakiegokolwiek złożonego zadania kryptograficznego, które generuje program do wydobycia na podstawie danych z poprzednich bloków.
Wydobycie z wykorzystaniem funkcji SHA-256 można przeprowadzić na trzy sposoby:
CPU (procesor centralny)
GPU (procesor graficzny)
specjalizowany procesor: ASIC
W wydobyciu skrót jest używany jako identyfikator już istniejących bloków oraz tworzenie nowych na podstawie poprzednich. Proces wydobycia jest wyświetlany w interfejsie w postaci 'accepted f33ae3bc9...'. Gdzie f33ae3bc9 to skrót, część danych przeznaczona do odszyfrowania. Główny blok składa się z ogromnej liczby podobnych skrótów.
To znaczy, wydobycie z algorytmem SHA-256 polega na nieustannym dopasowywaniu właściwej wartości skrótu, przeszukiwaniu liczb w celu stworzenia nowego bloku. Im większe są Twoje moce obliczeniowe, tym większe szanse na uzyskanie właściwego bloku: szybkość przeszukiwania różnych skrótów zależy od mocy.
Biorąc pod uwagę, że Bitcoin oparty jest na algorytmie SHA-256, do konkurencyjnego wydobycia wymagane są niezwykle duże moce obliczeniowe. Wynika to z faktu, że produkcja 'ASIC' - specjalizowanych układów scalonych, czyli układu scalonego do zastosowań specjalnych, została już dawno uruchomiona dla wydobycia bitcoina. ASIC, do których podejście jest różne, pozwalają na wydobycie bitcoinów i innych kryptowalut opartych na algorytmie SHA-256 znacznie szybciej, efektywniej i taniej.
Jakie kryptowaluty używają algorytmu SHA-256
SHA-256 to klasyczny algorytm dla tokenów: na jego podstawie zbudowano główną kryptowalutę - Bitcoin. Oczywiście, również w forkach bitcoina używa się tego algorytmu: w Bitcoin Cash, Bitcoin Gold, Diamond.
Oprócz nich, SHA-256 jest również używany w:
Steemit
DigiByte
PeerCoin
NameCoin
TeckCoin
Ocoin
Zetacoin
EmerCoin
Algorytm SHA-256 jest także używany jako podprogram w kryptowalucie Litecoin, a głównym algorytmem dla wydobycia jest tam Scrypt.
