Răspuns scurt
Keccak-256 este funcția hash criptografică folosită de
Ethereum și de multe alte rețele
blockchain. Transformă orice date de intrare într-un șir fix de 256 de biți (64 de caractere hexazecimale). Este ireversibilă, deterministă și orice modificare minimă în date produce un
hash complet diferit.
Ce este Keccak-256?
Keccak-256 este o funcție hash criptografică din familia Keccak, dezvoltată de Guido Bertoni, Joan Daemen, Michaël Peeters și Gilles Van Assche. A câștigat competiția SHA-3 organizată de NIST (Institutul Național de Standarde al SUA) în 2012, deși versiunea standardizată oficial ca SHA-3 diferă ușor de varianta adoptată de Ethereum.
Când Vitalik Buterin și echipa Ethereum au implementat rețeaua în 2015, au ales varianta originală Keccak-256 — nu SHA-3 oficial — ceea ce explică de ce termenii nu sunt complet interschimbabili în contextul blockchain.
Analogie simplă: Keccak-256 e ca o mașinărie care transformă orice — o carte întreagă, o propoziție sau un singur caracter — într-un cod de exact 64 de caractere. Dacă schimbi chiar și o literă din cartea respectivă, codul se schimbă complet și imprevizibil. Și nu poți reconstitui cartea din cod, indiferent cât ai încerca.
Cum funcționează Keccak-256?
Keccak-256 folosește o structură internă numită sponge construction (construcție burete). Spre deosebire de funcțiile hash anterioare (SHA-1, SHA-2) care operează pe blocuri succesive de date, Keccak „absoarbe” datele de intrare și le „stoarce” pentru a produce output-ul.
1. Faza de absorbție (absorb)
Datele de intrare sunt împărțite în blocuri de dimensiune fixă și amestecate cu starea internă a funcției printr-o serie de permutări matematice. Starea internă are 1600 de biți — mult mai mare decât output-ul de 256 de biți.
2. Permutările Keccak-f
Funcția aplică 24 de runde de permutări matematice complexe — operații de tip XOR, rotații și substituții — care „amestecă” datele până când nu mai există nicio relație liniară detectabilă între intrare și starea internă.
3. Faza de stoarcere (squeeze)
Din starea internă finală sunt extrase primii 256 de biți — aceștia reprezintă hash-ul final. Rezultatul e întotdeauna de exact 64 de caractere hexazecimale, indiferent de dimensiunea input-ului.
📝 Exemplu concret
Input: „Abarai”
Keccak-256: a7f3d2…9c4e1b (64 caractere hex)Input: „abarai” (doar prima literă mică)
Keccak-256: 2b9f1a…7d3c8e (complet diferit)Chiar și o modificare de un singur caracter produce un hash total diferit — proprietatea numită avalanșă.
Proprietățile critice ale Keccak-256
🔁
Determinism
Aceleași date de intrare produc întotdeauna același hash. Esențial pentru verificarea tranzacțiilor — oricine poate recalcula hash-ul și confirma integritatea datelor.
🚫
Ireversibilitate
Nu există nicio metodă matematică de a reconstitui datele originale din hash. Funcțiile hash sunt „one-way” prin design — calculul invers e imposibil computațional.
🌊
Efectul de avalanșă
O modificare minimă în input (chiar și un singur bit) produce un hash complet diferit. Imposibil de prezis cum se va schimba output-ul — esențial pentru securitate.
💥
Rezistență la coliziuni
Practic imposibil să găsești două seturi de date diferite care produc același hash. Coliziunile există teoretic (spațiul e finit), dar sunt computațional inaccesibile.
📏
Output fix
Indiferent dacă input-ul e 1 caracter sau 1 gigabyte, output-ul e întotdeauna exact 256 de biți (64 caractere hexazecimale). Esențial pentru eficiența blockchain-ului.
⚡
Viteză de calcul
Calculul hash-ului e rapid pe hardware modern. Rețeaua Ethereum calculează milioane de hash-uri pe secundă pentru validarea tranzacțiilor și executarea
contractelor inteligente.
Unde e folosit Keccak-256 în Ethereum
Keccak-256 nu e folosit doar într-un singur loc — e omniprezent în arhitectura Ethereum:
🏠 Generarea adreselor Ethereum
Adresele Ethereum (cele care încep cu „0x”) sunt derivate din
cheia publică prin Keccak-256. Se aplică hash-ul pe cheia publică de 64 de octeți și se iau ultimii 20 de octeți (40 de caractere hex). Asta e adresa ta Ethereum.
📦 Hash-uirea blocurilor și tranzacțiilor
Fiecare
bloc din blockchain-ul Ethereum are un hash calculat cu Keccak-256. Acesta include hash-ul blocului anterior — creând lanțul criptografic imutabil. La fel și fiecare
tranzacție.
⚙️ Smart contracts — selectori de funcții
Când interacționezi cu un contract inteligent, Ethereum identifică funcția apelată prin primii 4 octeți din hash-ul Keccak-256 al semnăturii funcției. Ex: hash-ul lui
transfer(address,uint256) → primii 4 octeți = selectorul funcției
ERC-20 transfer.
🌳 Arbori Merkle Patricia
Ethereum folosește Merkle Patricia Tries pentru a stoca starea rețelei (solduri, cod de contracte, stocare). Fiecare nod din aceste structuri e hash-uit cu Keccak-256 — permițând verificarea eficientă a oricărei date fără a descărca întregul blockchain.
✍️ Semnăturile digitale ECDSA
Înainte de a fi semnată cu cheia privată, o tranzacție este hash-uită cu Keccak-256. Semnătura digitală se aplică pe hash, nu pe datele brute — mai eficient și mai sigur.
Nodurile verifică semnătura recalculând hash-ul și comparând.
Keccak-256 vs SHA-256 vs SHA-3 — care e diferența?
Confuzia dintre acești termeni e frecventă. Iată distincțiile clare:
| SHA-256 | Keccak-256 | SHA-3 |
|---|
| Familie | SHA-2 | Keccak | Keccak (standardizat) |
| Structură | Merkle-Damgård | Sponge construction | Sponge construction |
| Standardizat de NIST | Da (2001) | Nu (varianta originală) | Da (2015) |
| Identic cu SHA-3? | Nu | Nu — padding diferit | — |
| Folosit de | Bitcoin | Ethereum, TRON | Aplicații moderne post-2015 |
| Output 256 biți | Da | Da | Da (SHA3-256) |
De ce Ethereum nu folosește SHA-3 oficial? Ethereum a fost implementat în 2015, când standardizarea SHA-3 era în proces. Echipa a ales varianta originală Keccak-256, care diferă de SHA-3 final printr-o singură constantă de padding. Această decizie a rămas permanentă — schimbarea acum ar invalida toată
criptografia existentă a rețelei.
Rețele care folosesc Keccak-256
Datorită popularității Ethereum, Keccak-256 a devenit standard implicit pentru multe rețele compatibile EVM (Ethereum Virtual Machine):
Toate rețelele compatibile EVM — adică cele care pot rula contracte inteligente Ethereum fără modificări majore — folosesc Keccak-256 pentru generarea adreselor și hash-uirea tranzacțiilor. Acesta e motivul pentru care o adresă Ethereum funcționează identic pe BNB Chain sau Polygon.
Întrebări frecvente despre Keccak-256
Ce este Keccak-256?
Keccak-256 este funcția hash criptografică folosită de Ethereum și de rețelele compatibile EVM. Transformă orice date de intrare într-un hash fix de 256 de biți (64 caractere hexazecimale), ireversibil și unic pentru fiecare set de date.
Keccak-256 e același lucru cu SHA-3?
Nu, deși sunt înrudite. SHA-3 este versiunea standardizată oficial de NIST în 2015, care diferă de Keccak-256 original printr-o constantă de padding. Ethereum folosește Keccak-256 original — implementat înainte ca standardizarea SHA-3 să fie finalizată — și nu SHA-3 oficial.
De ce folosește Ethereum Keccak-256 și nu SHA-256 ca Bitcoin?
SHA-256 și Keccak-256 sunt ambele funcții hash sigure, dar cu arhitecturi diferite. Ethereum a ales Keccak-256 pentru că oferă proprietăți de securitate superioare în contextul contractelor inteligente și este rezistent la anumite clase de atacuri la care SHA-2 e mai vulnerabil teoretic.
Cum e legat Keccak-256 de adresa mea Ethereum?
Adresa ta Ethereum e derivată direct din Keccak-256. Procesul:
cheia privată → algoritm ECDSA → cheie publică (64 octeți) → Keccak-256 → ultimi 20 octeți = adresa ta (precedată de „0x”). Imposibil de inversat — din adresă nu poți reconstrui cheia privată.
Poate fi spart Keccak-256?
Cu tehnologia actuală, nu. Nicio coliziune documentată nu a fost găsită. Atacul prin forță brută ar necesita resurse computaționale astronomice. La fel ca SHA-256, Keccak-256 reprezintă o amenințare teoretică din partea calculatoarelor cuantice pe termen lung — dar industria lucrează deja la alternative post-cuantice.
Ce este „sponge construction” în Keccak?
Sponge construction (construcție burete) este arhitectura internă a Keccak. Spre deosebire de funcțiile hash clasice, Keccak „absoarbe” datele de intrare în etape și le „stoarce” pentru a produce output-ul. Această arhitectură permite generarea de output-uri de orice lungime — nu doar 256 de biți — ceea ce o face flexibilă pentru diverse aplicații criptografice.
keccak-256
functie hash
ethereum
criptografie
sha-3
blockchain
dictionar crypto