Hash Nedir, Ne İşe Yarar?

Hash, herhangi bir veriyi bir algoritmadan geçirerek elde edilen sabit uzunluktaki dijital parmak izidir. Blockchain’de blokları birbirine bağlamak, işlemleri tanımlamak ve madencilikte iş ispatı üretmek için kullanılır.

Bu sayfada 6
  1. Hash nasıl çalışır?
  2. Blockchain’de hash ne işe yarar?
  3. Madencilikte hash ve hashrate
  4. Hash ile şifreleme arasındaki fark
  5. Sık sorulan sorular
  6. Kaynak

Hash, herhangi bir verinin bir hash fonksiyonundan geçirilmesiyle elde edilen, sabit uzunluktaki dijital parmak izidir. Girdi tek bir kelime de olabilir, gigabaytlarca büyüklükte bir dosya da; sonuç her zaman aynı uzunlukta bir harf-rakam dizisidir. Kripto paralarda blokları birbirine bağlayan, işlemleri tanımlayan ve madenciliği mümkün kılan temel yapı taşı hash’tir.

Hash nasıl çalışır?

Hash fonksiyonu, veriyi matematiksel adımlarla karıştırıp özet bir çıktı üretir. Bitcoin’in kullandığı SHA-256 her girdi için 256 bitlik, yani onaltılık sistemde 64 karakterlik bir sonuç verir. “koinbulteni” kelimesinin özeti de bir kitabın tamamının özeti de bu uzunluktadır.

Güvenli bir hash fonksiyonunun dört temel özelliği vardır:

  • Belirlenimcilik: Aynı girdi her zaman aynı çıktıyı verir.
  • Çığ etkisi: Girdide tek bir karakter değişirse çıktı tamamen farklı görünür.
  • Tek yönlülük: Çıktıdan yola çıkarak girdiyi geri hesaplamak pratikte mümkün değildir.
  • Çakışma direnci: Aynı özeti veren iki farklı girdiyi bilerek bulmak son derece zordur.

Blockchain’de hash ne işe yarar?

Her blok, kendisinden önceki bloğun hash’ini içerir. Eski bir bloktaki tek bir kayıt değiştirilirse o bloğun hash’i değişir ve sonraki bütün bağlantılar kopar. Blockchain yapısının geçmişe dönük değişikliklere karşı dayanıklı olmasının nedeni budur.

Bir bloktaki işlemler de Merkle ağacı adı verilen yapıda ikişer ikişer hash’lenir ve tek bir “Merkle kökü” elde edilir. Bu kök blok başlığına yazılır. Böylece bir işlemin blokta olup olmadığı, bütün bloğu indirmeden doğrulanabilir. Bir transferi takip ederken kullandığınız TXID de işlem verisinin hash’idir.

Adresler de hash’ten yararlanır. Bitcoin’de birçok adres türü açık anahtarın SHA-256 ve RIPEMD-160 ile hash’lenmesiyle türetilir. Ethereum ise Keccak-256 adlı farklı bir fonksiyon kullanır.

Madencilikte hash ve hashrate

Proof of Work kullanan ağlarda madenciler blok başlığını sürekli değiştirip yeniden hash’ler. Amaç, ağın belirlediği hedeften küçük bir sonuç bulmaktır. Bunun kestirme bir yolu olmadığı için milyarlarca deneme gerekir; bulunan sonucun doğru olup olmadığını kontrol etmek ise tek bir hesaplamayla yapılır.

Ağdaki bütün madencilerin saniyede yaptığı toplam deneme sayısına hashrate denir. Bitcoin’de bu değer bugün exahash, yani saniyede kentilyonlarca deneme düzeyinde ölçülür. Yüksek hashrate, ağın geçmişini değiştirmeye çalışan bir saldırganın göze alması gereken maliyetin de yüksek olduğu anlamına gelir. Konunun ayrıntıları madencilik rehberimizde yer alıyor.

Hash ile şifreleme arasındaki fark

Şifrelemede veri bir anahtarla kilitlenir ve doğru anahtarla geri açılır. Hash ise geri açılmak için tasarlanmamıştır; amaç veriyi gizlemek değil, özetlemek ve doğrulamaktır. Kısa ve tahmin edilebilir girdiler (örneğin basit bir parola) olası değerler tek tek denenerek bulunabilir. Bu yüzden parolalar saklanırken yalnızca hash değil, ek güvenlik önlemleri de kullanılır.

Sık sorulan sorular

Hash değeri geri çözülebilir mi?

Güvenli bir hash fonksiyonunda çıktıdan girdiyi hesaplamanın bilinen pratik bir yolu yoktur. Ancak girdi kısa veya tahmin edilebilirse deneme yanılmayla bulunabilir.

İki farklı veri aynı hash’i verebilir mi?

Çıktı uzunluğu sabit olduğu için teorik olarak mümkündür. SHA-256 gibi güvenli kabul edilen fonksiyonlarda böyle bir çakışmayı bilerek bulmak bugünkü hesaplama gücüyle pratik değildir.

Hashrate düşerse ne olur?

Bloklar geçici olarak daha yavaş bulunur. Bitcoin, bir sonraki zorluk ayarlamasında hedefi gevşeterek blok süresini yeniden yaklaşık on dakikaya çeker.

Kaynak

Bir sonraki okuma