Hvad er forskellen mellem SHA-256 og Keccak-256? Hvilken skal der bruges på Ethereum til bitcoin som minedrift?


Svar 1:

SHA-256 er implementeringen af ​​SHA-2-standarden med en 256 bits-nøgle. Keccak-256 er et supersæt af SHA-3 (den næste iteration af Secure Hash-algoritmer) med en 256-bits-nøgle.

Selvom det andet spørgsmål ikke giver meget mening (da ETH og Bitcoin er forskellige), synes jeg ikke, at Hash-funktionen er vigtig, da den er nødt til at være beregningsdygtig at vende, og i dag er både Keccak og SHA-2 er.


Svar 2:

Bitcoin bruger dobbelt itereret SHA-256 eller SHA-256 (SHA-256 ()), også kendt som sha256d i de fleste algoritmelister. Oftest kaldes det simpelthen sha256d-minedrift, da det er baseret på generisk Hashcash-stil.

Ethereum bruger Keccak-256 i en konsensusmotor kaldet Ethash. Keccak er en familie med hashfunktioner, der til sidst blev standardiseret til SHA-3 (SHA256 er en del af en familie med hashfunktioner kaldet SHA-2). Ethereum kaldte det Keccak i stedet for SHA-3, da det har lidt andre parametre end det nuværende SHA-3. I almindelighed kaldes Ethereum-minedrift aldrig Keccak-minedrift, fordi Ethash bruger mixhash i en DAG, der adskiller sig fra Hashcash-proof-of-work. Nogle blockchains bruger Keccak på samme måde som Bitcoin bruger SHA-256, men disse er ikke så almindelige.