Hard Fork “Mecburi Çatallaşma” nedir?
Ahmet Usta
81

Öncelikle Twitter’da yazdıklarımı dikkate alıp düzenleme yaptığınız için teşekkürler. 
Blockchain’i bir excel tablosuna ve/veya bir veri tabanına benzetmek aslında tam olarak doğru değil. 
Veri kümeleri dediğiniz işlemlerin kayıt edildiği bloklar “bağlı liste” (hatta tek yönlü bağlı liste) veri yapısına benzer bir biçimde blok zincirine ekleniyor. (ing bağlı liste: https://en.wikipedia.org/wiki/Linked_list )

“Blockchain bilgisi tüm kullanıcıları veya kullanıcısı olmayan birbirinden bağımsız depolama noktalarında saklanır.”
Aslında tam olarak böyle değil. Blockchain bilgisi kripto para ağlarında tam düğüm özelliğine sahip istemci/sunucu’larda saklanır.
Bitcoin’den örnek verecek olursam; Eğer ben cüzdan olarak Bitcoin Çekirdeği kullanıyorsam her halükarda bir tam düğüm çalıştırıyorum demektir, yani blockchain’in bir kopyası bende var. 
Ama ben blockchain’i kullanmak için Bitcoin blockchain’inin 70 GB verisini bilgisayarımda saklamak zorunda değilim. SPV Client (simple payment verification client — basitleştirilmiş ödeme doğrulama istemcisi) kullanarak blockchain üzerinde işlem yapabilirim, Bitcoin örneği için Electrum/Multibit vs.

Not: Bu SPV özelllikli cüzdanlar işlem yapmak için yani bitcoin almak, göndermek, konfirmasyon kontrolü vb işlemler için 3. parti bir sunucudaki tam düğümle veri alış-verişi yapmak ve o düğümdeki bilginin doğru olduğunu kabul etmek zorundayız.
Özetle: blockchain üzerinde işlem yapmak için blockchain’in tamamını saklama zorunluluğumuz yok.

Hard Fork konusuna gelmeden önce fork’un ne olduğunu tanımlamamız gerekir. 
Bu bağlamda fork (fiil): çatallaşmadır, bunun anlamı blokları oluşturan ve blockchain’e ekleyen madencilerin istemli veya istemsiz yaptığı bir olaydır. Günümüz kripto para dünyasında bir çok blockchainde sıradan forklar yaşanmaktadır. 
Bu forklar eş uzunluklu blokların farklı madenciler tarafından eş zamanlı olarak bulunup ağda yayınlanması ile oluşur. Basitçe;
b1-> b2-> b3.1
b1-> b2-> b3.2 
şeklinde ikiye çatallanmış zincir var olur. Peki bu zincirlerden hangisi asıl blockchain olacaktır? Tam düğüm olan Blockchainlerin hangisinde daha çok block3.x varsa o seçilir, diğeri yani block3.y kabul edilmiş olsa bile o düğümlerden silinir ve yerine block3.x otomatik olarak konularak zincir düzeltilir. 
Ek bilgi: burada block3.y ‘ye “orphan(veya stale) block” adı verilir.
Forklarla ilgili daha detaylı bilgi (ing): https://bitcoin.org/en/developer-guide#block-height-and-forking

Sanırım yazınızdaki Soft Forkla ilgili kısmı kaldırmışsınız :(

Soft Fork ve Hard Fork Blockchain üzerinde köklü değişiklikler yapmak için kullanılan yöntemlerdir.

Soft Fork: Blok zincirinde yaşanan geçici çatallaşmadır. Bu genelde yeni kuralların çoğunluk tarafından kabul edildiği halde hala eski kurallara bağlı madenciler tarafından oluşan blokların üzerine blockchain inşa etmeye çalışma sırasında oluşur. Bunun bir örneği blok v2'den blok v3'e geçişten sonra geçen sene yaşandı: https://bitcoin.org/en/alert/2015-07-04-spv-mining
Soft fork sonucu oluşan yanlış zincire kısa süreleğine de olsa blok eklemeye devam eden bazı madencilik şirketleri on binlerce dolar zarar ettiler. (“By not doing so, several large miners have lost over $50,000 dollars worth of mining income so far.”)

Hard Fork: Blok zincirindeki kalıcı uyuşmazlık olarak tanımlanır.
Ethereum zincirinde yaşanan da aslında “kasıtlı zorla çatallaşma” idi.
Bir grup ethereum kullanıcısı ethereum classic adını verdikleri alternatif kripto parayı ortaya çıkardılar.
Belirli bir uzunluğa kadar blok zincirleri birebir aynı olsa da hard fork’un yapıldığı noktadan itibaren zincir ikiye ayrılmış durumda.

b1-> b2-> b3-> b4.1 -> b5-> b6
b1-> b2-> b3-> b4.2 -> b5-> b6
Burada b4.1'i ETC (yani klasik — eski kuralların geçerli olduğu zincir)
b.4.2'yi ise (ETH yani resmi — yeni kuralların geçerli olduğu zincir) olarak tanımlayabiliriz.
Burada dikkat edilmesi gereken şey şu: b1, b2 ve b3 blokları her iki zincirde bire bir aynı olmasına rağmen b5, b6 … blokları tamamen farklıdır.

Hard Fork ile Soft Fork arasındaki bir başka nüans;
Soft Fork’ta çok farklı kullanıcılar/geliştiriciler tarafından sistemin o anki kurallarına uygun olarak geliştirilip piyasaya sürülür, son kullanıcılar kabul ettikleri kuralları içeren tam düğüm ile madencilik yapar (%75 hash gücünün 4 hafta bu kuralı içeren blok bulması vb) veya tüm ağdaki tam düğümlerin %95'inin bu kuralı kabul eden istemci çalıştırması durumunda yeni kural kabul edilir, Çoğunluğun fikir birliğine (konsensus) varması ile yeni kural aktive edilir. Eski kuralda ısrarcı olanlar eski zincirde kalsa da bir süre sonra yeni kuralların olduğu ana zincire katılmak zorunda kalırlar, bu yüzden geçicidir.

Hard Fork’un başlatılması ile ilgili nüans ise şu; Core Developerlar (çekirdek geliştiriciler) tarafından çıkartılıp yeni sistem kurallarının son kullanıcıya dayatılmasıdır. Bu fikirde olan kişiler zaten kabul edip upgrade yaparlar, yetmez ama evetçiler (sistemin geleceğini ön göremeyen kitle) kabul ederler, büyük bölüm kabul ettiği için hard fork gerçekleşir sistem yeni kurallara geçiş yapar; Peki ya azınlık olan muhalefet? Onlar da zincirin eski halkasından devam eder. Bu durum çekirdek geliştiricilerinin elindeki bir koz gibi görünse de; tamamen son kullanıcının insiyatifinde bir yapı olması gereken kripto paraların despot bir yönetime maruz kalması ile güvenilirliğini yitirmesi anlamına gelebilir. ETC’nin doğuşunu da buna bağlayabiliriz.

Ek linkler:

Fikir birliği (konsensus) sağlanması: https://bitcoin.org/en/developer-guide#consensus-rule-changes
Soft Fork’un tanımı: https://bitcoin.org/en/glossary/soft-fork
Hard Fork’un tanımı: https://bitcoin.org/en/glossary/hard-fork