Merkle tree yani Türkçe karşılığı ile “merkle ağacı”, bilgisayar bilimi uygulamalarında kullanılan bir veri yapısıdır. Bitcoin ve diğer kripto para birimlerinde merkle ağaçları, blok zinciri verilerini daha verimli ve güvenli bir şekilde kodlamaya hizmet etmektedir.
Merkle ağaçları adını, onları 1987'de "Geleneksel Şifreleme İşlevine Dayalı Dijital İmza" başlıklı bir makalede öneren Ralph Merkle'den almıştır. Merkle ayrıca kriptografik hashlemeyi de icat etmiştir.
Kripto Paralarda Merkle Tree
Kripto paralarda merkle ağacı, işlem verilerini daha az kaynak gerektirecek şekilde yapılandırmak için kullanılır. Kripto paraların işlem verilerinin organize edilmesi ve verimli bir şekilde işlev görebilmeleri açısından Merkle ağaç yapısı son derece önemli bir araçtır.
Bitcoin'in blok zincirinde, orijinal işlem setini elde etmek yerine belirli bir veri kümesinin orijinal işlem kümesiyle aynı olup olmadığını doğrulamak adına kullanılabilen bir sayı ve harf dizisi olan bir hash oluşturmak için bir algoritma aracılığıyla bir işlem bloğu çalıştırılır. Bununla birlikte, Bitcoin'in yazılımı, tek seferde hash işlevi aracılığıyla ortalama 10 dakikalık işlemleri temsil eden tüm işlem verisi bloğunu çalıştırmaz. Bunun yerine, her işlem hashlenir, sonrasında her işlem çifti birleştirilip hashlenir ve bu, tüm blok tek bir hash olana kadar devam eder. Tek sayıda işlem varsa, bir işlem ikiye katlanır ve hashi kendisiyle birleştirilir.
Bir merkle tree yapısında kripto para birimi işlemi yapıldığında, hash işlemine tabi tutulur. Daha sonra eşdeğer bir hash değeri verilir. Her işlemin hashlenmesinin ardından, oluşturulan hash değerleri bir başka hash değeriyle eşleştirilir ve ardından yeniden hashing yapılır. Bir örnekle açıklamak gerekirse, "AB" ve "AC" hash değerleri birleştirilerek "ABC" oluşturulabilir.
Nihai bir hash değeri üretilinceye dek, hash değerlerini eşleştirme işlemi tekrarlanır. Nihai değer olarak değerlendirilebilecek merkle kökü, içerdiği tüm işlemlerin özeti gibidir ve bu özet daha sonra blok başlığına eklenir.
Veri Güvenliği
Bloklardaki işlem kayıtları merkle ağaç yapısı sayesinde tutulur ve erişmek oldukça kolaydır. Merkle ağacındaki herhangi bir işlemde değişiklik yapılırsa, işlem sonunda farklı bir merkle köküne yönlendirilir. Bu nedenle bir bloktaki verilerin değiştirilip değiştirilmediğini kontrol etmek için bu yapıdan yararlanılabilir.
Kaynakların Verimli Kullanımı
Kripto para birimlerinde bu sistem kullanılmasaydı, her doğrulama talebi ağ üzerinden gönderilen büyük miktarda veri içerecekti. Oysaki işlem verilerini merkle ağacında yapılandırmak, kaynakların daha verimli kullanılmasını sağlar. Merkle tree yapısı sayesinde hash işlem verileri doğrulanırken nodelar arasında daha az bilgi alışverişi gerektiğinden, veri bütünlüğünü analiz etmek için daha az hesaplama gücü gerekir. Ayrıca defterin tam bir kopyasına da gerek yoktur. Yani, defterin tam bir kopyası olmadan da kullanıcılar, istediği bilgilere erişebilir.
Merkle ağaç yapısı sayesinde kullanıcılar, tek bir işlemin bir bloğa dahil edilip edilmediğini blok zincirinin tamamını indirmeden doğrulayabilir. Kaynaklara olan talebin artması merkle ağaç yapısı kullanılmadan artması, ağa daha az nodeun dahil olmasına neden olabilir. Yani, merkle tree kullanmayan sistemlerin verimliliği daha düşük olacağından bazı kullanıcılar bu tip kripto para birimlerini kullanmayı tercih etmeyebilir.