Merkle Ağacı Nedir?
İngilizce: Merkle Tree
Yayın: · Son güncelleme:
Merkle Ağacı Nedir? Kısaca
Merkle ağacı (Merkle tree), çok sayıda verinin hash değerlerini ikişer ikişer birleştirerek tek bir kök hash değerine indiren ve herhangi bir verinin bu kümeye ait olduğunu az veriyle doğrulamayı sağlayan veri yapısıdır.

Merkle ağacı, adını bilgisayar bilimci Ralph Merkle'den alan bir veri yapısıdır. Blokzincirlerde bir bloktaki tüm işlemleri tek bir değerle özetlemek için kullanılır. Bu değere Merkle kökü (Merkle root) denir ve blok başlığında saklanır.
Nasıl oluşturulur?
- Bloktaki her işlemin hash değeri hesaplanır. Bunlar ağacın yapraklarıdır.
- Yan yana iki hash birleştirilip yeniden hash'lenir.
- Bu işlem, tek bir hash kalana kadar yukarı doğru tekrarlanır.
- En üstte kalan değer Merkle köküdür.
Herhangi bir işlemde tek bir karakter bile değişirse, o işlemin hash'i ve dolayısıyla kök hash tamamen değişir. Bu sayede veriler üzerinde yapılan değişiklik hemen fark edilir.
Neden kullanılır?
- Verimli doğrulama: Bir işlemin bloğa dahil olduğunu kanıtlamak için tüm blok yerine yalnızca birkaç ara hash değeri yeterlidir. Buna Merkle kanıtı denir.
- Hafif cüzdanlar: Tüm blokzinciri indirmeyen cüzdanlar, işlemlerinin bloğa girdiğini Merkle kanıtlarıyla doğrulayabilir.
- Bütünlük: Kök değer, bloktaki tüm işlemlerin parmak izi gibidir.
Başka hangi alanlarda kullanılır?
Merkle ağaçları yalnızca blokzincirde değil, dosya senkronizasyonu ve dağıtık veri tabanları gibi alanlarda da kullanılır. Kripto dünyasında bazı borsalar, müşteri bakiyelerini karşılayacak varlığa sahip olduklarını göstermeye çalıştıkları "rezerv kanıtı" (proof of reserves) çalışmalarında da Merkle ağaçlarından yararlanır. Bu kanıtlar varlıkları gösterebilir, ancak borsanın tüm borçlarını her zaman göstermez; bu yüzden tek başına tam güvence değildir.
Sıkça Sorulan Sorular
Merkle kökü nedir?
Bir bloktaki tüm işlemlerin hash değerlerinin ağaç yapısında birleştirilmesiyle elde edilen tek bir özet değerdir. Blok başlığında saklanır.
Merkle ağacı neden hız kazandırır?
Bir işlemin bloğa ait olduğunu kanıtlamak için tüm işlemleri değil, yalnızca o işlemden köke giden yoldaki birkaç hash değerini kontrol etmek yeterlidir.