Bir hash, verinin parmak izidir. Herhangi bir girdiyi bir hash fonksiyonuna verdiğinizde, sabit uzunlukta bir karakter dizisi elde edersiniz. Aynı girdi her zaman aynı hash'i üretir. Girdideki bir karakteri değiştirdiğinizde hash tamamen değişir. Bu özellik, hash'leri doğrulama için kullanışlı hale getirir. Bir dosyanın değiştirilmediğini, hash'ini bilinen geçerli bir değerle karşılaştırarak kontrol edebilirsiniz. Bitcoin SHA-256 kullanır. Ethereum Keccak-256 kullanır. Her blok, zinciri birbirine bağlayan önceki bloğun hash'ini içerir.
Hash'ler tek yönlüdür. Bir hash'ten orijinal girdiye geriye doğru çalışamazsınız. Bu nedenle parolalar ve ispatlar için kullanılırlar. Madenciler, belirli bir hedefin altında bir hash bulmak için yarışırlar. Bir nonce'u değiştirirler, blok başlığını hash'lerler ve sonucu kontrol ederler. Bu süreç, büyük ölçekte tahmin ve kontrol yöntemidir. Geçerli bir hash bulmak, işin yapıldığını kanıtlar. Doğrulama neredeyse hiç çaba gerektirmez. Bu asimetri, iş ispatının temelidir. Hash fonksiyonları ayrıca cüzdan adresleri oluşturmak ve işlem bütünlüğünü doğrulamak için de kullanılır.
Karma fonksiyon özellikleri
- Deterministik — aynı girdi her zaman aynı çıktıyı verir
- Hesaplaması hızlı — doğrulaması ucuz
- Ön görüntüye karşı dirençli — karma değeri tersine çevrilemez
- Çığ etkisi — küçük bir girdi değişikliği, tamamen farklı bir çıktı.
Karma değer (hash) şifreleme değildir. Tek yönlü bir özettir. Anahtarı yoktur ve şifreyi çözmenin bir yolu da yoktur.
Comments
No comments yet. Be the first to share a thought.
Leave a comment