search delete menu

Teknik Detaylarıyla Blockchain : Çatallaşma (Fork) Nasıl Oluşur

İçindekiler

Teknik Detaylarıyla Blockchain” başlıklı makalemizin devamı niteliğinde bu makalede Blockchain yapısının yine detaylarından devam edeceğiz. Özellikle Fork (Çatallaşma) dediğimiz olayın oluşumu üzerinde duracağız.
En Uzun Blockchain Kaydı Dağıtık, merkezi olmayan büyük ölçekli bir mimariye bağlı her bir makinedeki blok yapısının her zaman tutarlı olması beklenemez. Sistem içerisinde yakın zamanlı paralel blok üretimi, blokların ağ üzerindeki makinelere farklı zamanlarda iletilmesi gibi nedenlerden dolayı ağa bağlı makineler üzerinde Blockchain ağında farklı blok sıralamasına sahip düğümlerin (node) bulunması karşılaşılan bir durumdur. Bu durumu çözebilmek için makineler her zaman “en uzun Blockchain kaydı geçerlidir” mantığı ile hareket edip, bu Blockchain kaydını genişletmek amacı ile işlem yaparlar. “En uzun” yaklaşımı farklı mutabakat yapılarında farklı anlamlara gelebilmektedir, örneğin “Proof Of Work” yapılarında en fazla Proof Of Work’ün gerçekleştiği (bu bilgi ilgili Blockchain ağını oluşturan blokların problem zorluk derecelerinin bir araya getirilmesi ile hesaplanır) Blockchain yapısı “En Uzun Blockchain Kaydı” olarak tanımlanmaktadır. Bir makineye yeni bir blok aday olarak iletildiğinde öncelikle içeriği incelenerek geçerlilik kontrolü yapılır, sonrasında ise bağlı olduğu üst blok bulunarak Blockchain ağına eklenmeye çalışılır. Bu durumda üç farklı davranış şekli söz konusudur:

  • Gelen blok, en uzun blok yapısının sonuna eklenir (bloğun ilişkili olduğu üst blok, geçerli en uzun Blockchain kaydının son bloğudur). Bununla alakalı şemayı aşağıda görebilirsiniz.
  • Gelen blok yapısının bağlı olduğu üst blok, en uzun Blockchain kaydı yapısında sonuncu blok olmadığı durumlarda ana Blockchain yapısı üzerinde çatallaşmaya (fork) yol açar; bu dallara “ikincil zincir” (secondary chain) adı verilir. Bir ikincil zincir, o an olmasa da zamanla “en uzun zincir” özelliğine sahip olabilir, bu durumda kendisi ana Blockchain’e dönüşürken o esnada geçerli olan ana Blockchain artık bir ikincil zincir olarak değerlendirilmeye başlanır.
  • Gelen blok yapısının içerisinde belirtilen üst blok tanımı bilinen bir zincir yapısı kapsamında bulunamaz; bu bloklar “yetim” (orphan) olarak adlandırılır. Bu tarz bloklar genelde birbirini takip eden hızlı blok üretimi durumlarında blokların ilgili makineye ağ yapısındaki gecikmeler vb. nedenlerden dolayı ters sıralama ile varmasından dolayı olayı oluşur. Bu tarz bloklar genel olarak ilgili üst blokları ilgili makineye gelinceye kadar makine üzerinde ayrı bir havuz yapısında tutulurlar.

Blockchain yapılarında çatallaşma sık karşılaşılan bir durumdur, örneğin Bitcoin Blockchain yapısında genel olarak haftada bir tek blokluk çatallaşma görülmektedir, bunun ötesindeki çatallaşmalar çok nadir görülür. Genel olarak blok üretim zamanları düşük olan sistemlerde çatal oluşma olasılığı artmaktadır (ortalama olarak 2,5 dakikada bir blok üretimi yapılan Litecoin’de Bitcoin’e kıyasla çok daha fazla çatallaşma oluşmaktadır). Yukarıda ağa bağlı makinelerin her zaman “en uzun Blockchain kaydı” mantığı ile hareket edip, bu Blockchain ağını genişletmek amacı ile işlem yaptıklarından bahsetmiştik. Makineler için bu şekilde işlem yapmalarının ana motivasyonu kazanç sağlayabilmektir.
Ağa bağlı ve blok üretimi yapan bir makinenin kazanç sağlayabilmesinin yolu Blockchain üzerinde geçerli bir blok üretebilmesinden geçmektedir bu yaklaşıma teşvik (incentive Bknz. Bitcoin Terimler Sözlüğü) mekanizması denmektedir. Burada iki türlü gelir kazanılabilir.
Bazı Blockchain yapıları, blok üretimi yapan makineleri belirli bir kripto para karşılığı ile ödüllendirmektedir. Örneğin Bitcoin, her başarılı blok üretimi için 12,5 BTC ödüllendirme yapmaktadır. Bir bloğa ait giriş ve çıkış değerleri arasında fark olması durumunda (burada sadece pozitif fark olabilir, toplam çıkış değeri toplam giriş değerinden büyük olamaz) aradaki fark ilgili bloğu üreten makinenin hesabına yansıtılır. Bu gelir akışları üretilen blok içerisinde birer işlem (transaction) olarak belirtildiklerinden geçerli olmasının (ve sonraki işlemlerde kullanılabilmesinin) tek yolu üretilen bloğun ana Blockchain ağı yapısına dahil olmasıdır. Bundan dolayı ağa bağlı makineler her zaman geçerli yani en uzun Blockchain’i genişletmek amacı ile hareket ederler.

Çatallaşma (Fork)

Teknik Detalarıyla Blockchain” başlıklı makalemizde bu konuyu ele aldık. Ancak yinede şöyler bir üzerinden geçelim.
Soft Fork (Tercihi Çatallaşma): Bu durum genel olarak blok kabul kurallarında yapılan sıkılaştırmalar sonucunda gözlemlenir. Yeni kurallar eski kuralların bir alt kümesi olduğundan dolayı yeni mutabakat kurallarını kullanan makineler tarafından üretilen bloklar, güncelleme yapmamış makineler tarafından doğrulanabilirler. Güncellenmiş makinelerin ağ üzerinde yüzde 51 (Bknz. Bitcoin’de Çifte Harcama) ve daha fazla güce kavuşması ile birlikte Blockchain yapısı yeni kural tanımlarına göre oluşan bir yapıya dönüşmeye başlar.
Hard Fork (Mecburi Çatallaşma): Bu durum yeni kurallar ile eski kurallar arasında uzaklaşma olduğu durumda gözlemlenir. Eski kural kümesinde olmayan kurallar artık yeni kural kümesi içerisinde bulunmaktadır. Yeni mutabakat kurallarını kullanan makineler tarafından üretilen bloklar, güncelleneme yapmamış makineler tarafından, bu şekilde kalmaya devam ederlerse, doğrulanamazlar. Blockchain ağı ikiye bölünerek, Mecburi Çatallaşma ortaya çıkar.
Burada yer alan içerikler izinsiz kopyalanamaz, yayınlandığı mecrada kullanılırken mutlaka teknochain.com adresi kaynak gösterilmelidir!

Teknochain - 30 Ağu 2017, 10:03
Soruların mı var?
Soruların mı var?
Sosyal medya hesaplarımızdan bize ulaş cevapları birlikte bulalım!
Etiketler
Sosyal Medyada Paylaş

Comments are closed.