SHA-256
Kryptograficzna funkcja skrótu będąca sercem wydobycia Bitcoina i tworzenia bloków. SHA-256 konwertuje dowolne wejście na unikalny 256-bitowy odcisk palca i jest obliczeniowo nieodwracalna, stanowiąc fundament proof of work Bitcoina.
SHA-256, skrót od Secure Hash Algorithm 256-bit, to kryptograficzna funkcja skrótu, która przyjmuje dowolne wejście i produkuje wyjście o stałej długości 256 bitów, zazwyczaj reprezentowane jako 64-znakowy ciąg szesnastkowy. Funkcja jest jednokierunkowa: mając dane wejściowe, obliczenie ich skrótu jest szybkie i deterministyczne, ale odwrócenie procesu — znalezienie oryginalnych danych z samego skrótu — jest obliczeniowo niewykonalne przy obecnej technologii. Nawet zmiana jednego znaku w danych wejściowych daje zupełnie inne wyjście, właściwość znana jako efekt lawinowy.
Bitcoin używa SHA-256 na dwa kluczowe sposoby. Podczas wydobycia węzły konkurują o znalezienie wartości wejściowej (nonce), która w połączeniu z danymi bloku daje skrót poniżej docelowego progu — proces wymagający ogromnego wysiłku obliczeniowego, ale możliwy do natychmiastowej weryfikacji przez każdego. To jest główny mechanizm proof of work. SHA-256 jest również używany do łączenia bloków w łańcuch: każdy blok zawiera skrót poprzedniego bloku, dzięki czemu każda retroaktywna zmiana historii jest natychmiast wykrywalna.
SHA-256 został opracowany przez National Security Agency Stanów Zjednoczonych i opublikowany w 2001 roku. Do tej pory nie są znane żadne praktyczne ataki na SHA-256. Teoretyczne obawy związane z komputerami kwantowymi, konkretnie algorytm Grovera, nie dotyczą SHA-256 w ten sam sposób, w jaki dotyczą kryptografii asymetrycznej. Społeczność Bitcoina aktywnie monitoruje badania kryptograficzne, aby ocenić, czy założenia bezpieczeństwa funkcji pozostają aktualne z upływem czasu.