Bitcoin Ajandası

Merkle Ağacı Nedir? Merkle Kökleri Neden Bitcoin’de Kullanılır?
  1. Anasayfa
  2. »
  3. Kripto Para
  4. »
  5. Merkle Ağacı Nedir? Merkle Kökleri Neden Bitcoin’de Kullanılır?

Merkle Ağacı Nedir? Merkle Kökleri Neden Bitcoin’de Kullanılır?

Esra Yılmaz Esra Yılmaz -
6 0

Merkle ağacı ilk olarak açık anahtar kriptografisinin mucidi olarak bilinen bilgisayar dâhisi Raply Merkle tarafından 80’leirn başında ortaya atılmış ve 1987 yılında yayınlanan Geleneksel Şifreleme Fonksiyonuna Dayalı Dijital İmza isimli makalede önerilmişti.

Merkle Ağacı Nedir?

Merkle Ağacı Nedir?
Merkle Ağacı Nedir?

Kripto alanında önemli bir terim olarak nitelendirilen Merkle ağacı, blok zinciri verilerinin doğru, güvenli ve verimli bir şekilde kodlanmasına imkân tanıyan bir yapı olarak ifade edilmektedir. Merkle ağacı yapısı, herhangi bir set içinde yer alan verilerin bütünlüğünü korumak ve doğrulamak amacıyla kullanılmaktadır. Bu ağaçların kullanımı, özellikle de topluluk üyelerinin bilgi paylaşımını ve bağımsız olarak doğrulanması gereken eşler arası bağlam açısından son derece ilgi çekici olmasıyla bilinmektedir.

Hash fonksiyonları Merkle ağacı yapısının temelinde yer almaktadır. Bu sebeple Merkle ağacı hakkında detaylı bilgiye erişmeden önce Hash fonksiyonları hakkında yeterli bilgi edinilmesi önerilmektedir.

Merkle Ağaçlarının Ekosistemi

Merkle ağaçlarının nasıl çalıştığı, bu terimle alakalı olarak en çok merak edilen konulardan biridir. Merkle ağaçlarının ekosistemini bir örnek üzerinden açıklayacak olursak; büyük boyutlara sahip bir dosyanın indirilmesi gerektiğini varsayalım. Çoğunlukla açık kaynaklı bir yazılımda, indirilen dosyanın hash’inin geliştiriciler tarafından herkese açık bir şekilde paylaşılan hash ile uyuşup uyuşmadığı kontrol edilmelidir. Her iki hash’in uyuşması halinde indirilen dosyanın geliştiricilere ait olan dosyayla aynı olduğu anlaşılabilir.

Hash’lerin uyuşmaması durumundaysa bir sorun olduğu kanısına varılabilir. Örneğin; yazılımın altında gizlenmiş zararlı bir dosyanın indirilmiş olması ya da dosyanın doğru bir şekilde inmediğinden çalışmayacak olması söz konusu olabilir. İkinci durumun söz konusu olmasıyla süreç yeniden başlayacağı ve zaman boşa harcanmış olacağı için keyif kaçırıcı bir durum olacaktır. Bu durumda yeniden indirme işlemine başlamak ve bu sefer doğru inip inmediğini düşünmek gerekecektir.

Bu işlemi daha kolay bir şekilde gerçekleştirebilmek isteyenler için Merkle ağaçları devreye girmektedir. Bu ağaçlardan biriyle indirilmek istenen dosyanın parçalara ayrılması mümkündür. Örneğin; dosyanın 50 GB büyüklüğünde olması halinde, Merkle ağacı bu dosyayı 0,5 GB büyüklüğünde yüzlerde parçaya ayırabilmektedir. Böylelikle dosyanın parçalar halinde indirilebilmesi mümkün olurken, Torrent dosyalarıyla gerçekleştirilen indirme işlemi tam olarak budur.

Bu tür işlemlerde çoğu zaman kaynak tarafından Merkle kökü olarak ifade edilen bir hash sunulmaktadır. Söz konusu olan bu hash, dosyanın tamamını oluşturan her bir parça için temsilci niteliği taşımaktadır. Ayrıca Merkle kökünün verinin doğrulanması bakımından son derece basit bir yöntem olduğu da bilinmektedir.

Merkle kökü ve ağacının ekosistemini daha basit bir şekilde izah etmek gerekirse; 8 eşit parçaya bölünmüş 8 GB büyüklüğündeki bir dosyayı örnek gösterebiliriz. Bu örnekte her bir parça için A-H arası isimlendirmelerde bulunalım. Her bir parçayı hash fonksiyonundan geçirdikten sonra 8 farklı hash elde edebiliriz.

Bu yöntem sayesinde çok daha anlamlı ve verimli bir veri elde edebiliriz. Bütün parçaların hash’lerini elimizde mevcut olurken, herhangi birindeki hatayı anlamak çok daha kolay olacaktır. Fakat bu yöntem her ne kadar kolay olsa da verimsiz olacaktır. Dosyanın binlerce parçadan oluştuğunu varsayarsak her birini teker teker incelemek büyük bir zaman kaybı olacaktır.

Tek tek incelemek yerine hash’leri ikili gruplar halinde ele almak ve her grubu bir hash haline getirmek daha mantıklı olacaktır. Örneğin; hA+hB, hC+hD, hE+hF ve hG+hH olacak şekilde 4 farklı hash elde edilebilmektedir. Bu işlemi tek bir hash elde edene kadar tekrar etmek, ana hash olarak nitelendirilen Merkle kökünü, başka bir deyişle kök hash’i elde etmeyi sağlayacaktır. 

Bu işlemlerle beraber Merkle köküne erişim sağlanmış olacaktır. Bu kökü, kaynak tarafından sunulan hash’le karşılaştırığ hataları tespit edebilmek çok daha kolay olacaktır. Hashlerin eşleşmesi sorunsuz olduğunda iyi bir sonuç elde edilebilir. Fakat bunun aksi bir durum söz konusu olduğundaysa veri üzerinden değişiklikler yapıldığı ortaya çıkacaktır. Hash’lerin herhangi birinde oluşabilecek en küçük değişiklik, farklı bir Merkle kökü oluşmasına neden olacaktır.

Merkle ağacının ekosistemini özetlemek gerekirse; bir Merkle ağacını oluşturabilmek için verinin pek çok farklı parçaya bölünmesi ve sonrasında Merkle kökünün oluşturulabilmesi için parçaların tekrar tekrar hash edilmesi gerekmektedir. Bu sayede veri parçalarında herhangi bir hata olup olmadığı kolayca tespit edilebilmektedir.

Merkle Köklerinin Bitcoin’de Kullanım Amacı Nedir?

Merkle ağaçlarının pek çok farklı kullanım alanı bulunurken, bunlardan en önemlisi blok zincirleridir. Piyasa değeri en büyük kripto para birimi olan Bitcoin başta olmak üzere pek çok dijital varlık açısından hayati bir önem taşıyan Merkle ağacı, bu alanda önemli kolaylıklar sağlayabilmektedir. Hemen her blokta ayrılmaz bir parça olarak karşımıza çıkmakta ve blok başlığında bulunmaktadır. Merkle ağacının yapraklarını elde edebilmek adına bloğa dahil edilen her işlemin işlem hash’ini kullanmak gerekir.

Merkle kökü çeşitli amaçlara hizmet veren bir yapıdır. Kripto para madenciliği ve işlem doğrulama gibi alanlar, bu kökün kullanıldığı en önemli alanlar arasında yer almaktadır. Bu alanlardan ve kullanım amaçlarından kısaca bahsedebiliriz.

Madencilik

Merkle köklerinin Bitcoin’de kullanım amaçlarından biri madenciliktir. Bir Bitcoin bloğu iki farklı parçadan oluşmaktadır. Bunlardan biri blok başlığı olurken; bu parça bloğun meta verisini içeren sabit bir büyüklüğe sahiptir. Diğeri parçaysa büyüklüğü değişen fakat çoğunlukla başlıktan daha büyük olan işlemler listesidir.

Madencilerin güçlü bir blok hazırlayabilmek adına birtakım koşulları karşılayan çıktı oluşturması, bunun için de tekrar tekrar hash yapması gerekmektedir. Bu süreci kolaylaştırabilmek konusunda oldukça etkili olan Merkle kökü ile madenciliğin başlangıcında dahil edilmek istenen bütün işlemler listelenerek bir Merkle ağacı oluşturulmaktadır. Oluşan kök hash’i blok başlığına koymak ve madencilik işlemlerinde tüm blokların değil, yalnızca blok başlığını hash etmek yeterli olacaktır. 

Doğrulama

Merkle köklerinin Bitcoin’de sağladığı faydalardan bir diğeri de doğrulama olarak bilinmektedir. Doğrulama özelliği çoğunlukla blok zincirinin tam kopyasını tutmayan node’larla ilişkili bir durumdur. Sınırlı kaynağa sahip olan bir cihaz üzerinde node çalıştırılması durumunda bir bloğun bütün işlemlerini indirmek ve hash etmek istenecek en son şeydir. Bunun yerine bir Merkle ispatı talep etmek çok daha faydalı olacaktır. Bu işleme çoğunlukla Basitleştirilmiş Ödeme Doğrulaması (SPV) adı verilmektedir. Bu kavramı ilk olarak Bitcoin Whitepaper’da Satoshi Nakamoto açıklamıştır.

Daha önce de bahsettiğimiz gibi blok zincirleri açısından hayati bir önem taşıyan Merkle ağacı, dağıtılmış sistemler sayesinde ağa gereksiz veriler kazandırılmadan bilgilerin kolayca doğrulanması sağlanmaktadır. Merkle ağaçları ve Merkle kökleri olmadan Bitcoin ve diğer pek çok kripto para biriminin günümüzdeki kadar sıkı ve yoğun olması mümkün değildir. Ayrıca hafif node’lar güvenlik ve gizlilik açısından zayıf görünse de Merkle ispatlarıyla kullanıcılar tarafından işlemin bir bloğa dahil ediliğ edilmesi son derece basit bir şekilde kontrol edilebilmektedir.

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir