Keccak-256 Hash
Tasarımdan gizli — tamamen tarayıcınızda çalışır
Herhangi bir UTF-8 dizesini giriş kutusuna bırakın, 32 baytlık Keccak-256 digest’i okuyun. Bu, Ethereum’un her yerde kullandığı algoritmadır: EIP-55 checksum adresleri, function selector, storage slot türetimi, CREATE2 sözleşme adresleri.
Keccak-256 ve SHA3-256
Keccak-256, SHA3 olmadan önce Keccak’in NIST’e sunduğu algoritmadır. Son SHA3 standardı padding kuralını değiştirdi (multi-rate padding iki bit daha aldı), bu nedenle aynı girişin SHA3-256 ve Keccak-256 sonuçları farklıdır. Ethereum, on-chain hash’lerin Keccak-256 kullanan cüzdan, indeksleyici ve explorer’larla uyumlu kalması için orijinal Keccak’i korur.
Ethereum’da kullanım yerleri
Function selector’lar keccak256("transfer(address,uint256)") gibi kanonik imzaların ilk 4 byte’ıdır. Mapping storage slot’ları keccak256(abi.encode(key, slot)) ile türetilir. EIP-55, küçük harfli adresin keccak256’sine bakarak büyük/küçük harfleri karıştırır. CREATE2 sözleşme adresleri deployer, salt ve bytecode üzerinde keccak256’dır.
Uygulama nasıl çalışır
Sayfa, JavaScript ile küçük bir Keccak-f[1600] permütasyonu taşır. Web Crypto bunu sunmaz. Boş string için bilinen digest c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 ile karşılaştırarak doğrulayabilirsiniz. Giriş ve çıkış sekmeden çıkmaz.
Sıkça Sorulan Sorular
- Keccak-256, SHA3-256 ile aynı mı?
- Hayır. Keccak-256, Keccak’in NIST’e sunduğu sürümdür; SHA3-256 sonlandırmadan önce iki bit padding ekledi. Aynı giriş için farklı çıktı verir. Ethereum ve EVM orijinal Keccak-256’yı kullanır.
- Ethereum’da nerede görünür?
- Function selector’lar, storage slot türetimi, EIP-55 checksum’ları, CREATE2 deterministik adresleri ve 256-bit digest gerektiren çoğu imza şeması.
- Uygulamayı nasıl doğrularım?
- Boş dizgiyi hash’leyip c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 ile karşılaştırın. Herhangi bir fark padding veya algoritmanın yanlış olduğunu gösterir.
- Aynı giriş için çıktı hep aynı mı?
- Evet. Keccak-256 saf bir fonksiyondur. Aynı UTF-8 byte dizisi her zaman aynı 32 baytlık digest’i üretir.
- Toova girdiyi kaydeder mi?
- Hayır. Hash bu sekmede yerel olarak hesaplanır; dize ve digest sunucuya gitmez.
- ABI encoding için kullanılabilir mi?
- Function kanonik imzasının (transfer(address,uint256) gibi) Keccak-256’sini hesaplayın ve ilk 4 byte’ı alın — selector’lar tam olarak bu prefix’i bekler.