Hash Nedir?
Hash, veriden bir algoritmayla üretilen sabit uzunluktaki özet değerdir.
Hash, verinin dijital özeti
Hash, bir verinin belirli bir hesaplama yönteminden geçirilmesiyle elde edilen dijital özettir. Girdi bir kelime, dosya veya blockchain bloğu olabilir. Kullanılan yönteme göre sonuç sabit uzunlukta olur. Örneğin SHA-256, kısa bir metin için de büyük bir dosya için de 256 bit uzunluğunda çıktı üretir.
Aynı veri aynı yöntemle işlendiğinde aynı hash çıkar. Veride tek bir karakter değişirse sonuç genellikle tamamen farklı görünür. Bu özellik, iki verinin aynı olup olmadığını hızlıca karşılaştırmayı sağlar. Bir dosyanın yanında yayımlanan doğrulama özetini, indirdiğiniz dosyanın özetiyle karşılaştırabilirsiniz. Eşleşme, dosyanın o özetin üretildiği veriyle aynı olduğuna dair güçlü kanıttır; dosyanın güvenli olduğunu tek başına göstermez.
Blockchain’de neden kullanılır?
Bloklar önceki bloğun hash’ine referans verebilir. Eski bir bloktaki kayıt değiştirildiğinde o bloğun özeti de değişir ve sonraki bağlantılar tutarsız hâle gelir. Böylece geçmişi değiştirme girişimi fark edilebilir. Bunun hangi zincirin geçerli sayılacağına dönüşmesi ise ağın konsensüs kurallarına bağlıdır.
Bitcoin madencileri blok başlığını tekrar tekrar hash’leyerek belirlenen hedefin altında bir sonuç arar. Uygun sonucu bulmak deneme gerektirirken bulunan sonucu kontrol etmek çok daha kolaydır. Madencilikteki hesaplama yarışının temelinde bu fark bulunur.
Hash şifreleme değildir
Şifrelemede doğru anahtar kullanılarak asıl veriye geri dönülebilir. Hash ise veriyi geri açmak için tasarlanmaz. Bununla birlikte kısa ve tahmin edilebilir girdiler denenerek aynı özet bulunabilir. Bu nedenle “hash’lenmiş bilgi her koşulda gizlidir” demek doğru değildir. Ayrıca farklı girdilerin aynı sonucu üretmesi matematiksel olarak mümkündür; güvenli yöntemlerde böyle bir eşleşmeyi kasıtlı bulmanın çok zor olması beklenir.