Care este diferența dintre SHA-256 și Keccak-256? Care ar trebui să fie utilizat pe Ethereum pentru bitcoin, cum ar fi minerit?


Răspunsul 1:

SHA-256 este implementarea standardului SHA-2 cu o cheie de 256 biți.Keccak-256 este o supersetare a SHA-3 (următoarea iterare a algoritmilor Secure Hash) cu o cheie de 256 biți.

Chiar dacă a doua întrebare nu are prea mult sens (întrucât ETH și Bitcoin sunt diferite), nu cred că natura funcției Hash contează, întrucât trebuie să fie costisitor din punct de vedere calculal, iar până în prezent, atât Keccak cât și SHA-2 sunt.


Răspunsul 2:

Bitcoin folosește SHA-256 dublu iterat sau SHA-256 (SHA-256 ()), cunoscut și sub numele de sha256d în majoritatea listărilor de algoritmi. Cel mai adesea, este cunoscută pur și simplu sub numele de sha256d, deoarece se bazează pe lucrările generice în stilul Hashcash.

Ethereum folosește Keccak-256 într-un motor de consens numit Ethash. Keccak este o familie de funcții hash care în cele din urmă s-au standardizat la SHA-3 (SHA256 face parte dintr-o familie de funcții hash numite SHA-2). Ethereum l-a numit Keccak în locul SHA-3, deoarece are parametri ușor diferiți decât SHA-3 actual. În mod clasic, mineritul Ethereum nu este niciodată numit miner Keccak, deoarece Ethash utilizează amestecuri într-un DAG, care este diferit de dovada de lucru Hashcash. Unele blocuri utilizează Keccak în același mod în care Bitcoin folosește SHA-256, dar acestea nu sunt la fel de comune.