Hard Fork, Soft Fork, BIP Kavramları ve Bitcoin Protokolünde Kural Değişimleri

Hard Fork nedir? Soft Fork nedir? BIP nedir?

Bitcoin’de HardFork ve SoftFork kavramlarını özellikle 2017 yılı boyunca çok duyduk. Daha önce paylaştığım yazılarda sizlere genel anlamıyla Blockchain üzerindeki çatallanma olayını anlatmaya çalıştım. Bu kez meraklıları için daha detaylı bir yazı ile hem nasıl gerçekleştiklerini hem de teknik detaylarını açıklayacağım.

Yazıma başlamadan önce önemli bir uyarı yapmak istiyorum. Burada anlatacağım Fork olayı sistemin kod tabanı üzerinde yapılan değişikliklerden bahsetmemektedir. Bitcoin’de Fork terimini birden fazla durum için kullanırız. Örneğin Bitcoin core yazılımı üzerinde yapılan Bitcoin Knots Fork’u yazılım üzerinde yapılan değişiklik için (software fork) iyi bir örnektir. Bu durum mutabakat kuralları üzerinde bir değişiklik yaratmaz. Bu konuyu bir başka yazıda detaylı inceleriz. Şimdi mutabakat çatallanmalarına yakından bakalım.

Hard Fork ve Soft Fork, temel olarak Bitcoin protokolü üzerinde yenileme veya değişiklik yapmak için kullanılan yöntemlerin adıdır. Hem Hard Fork’lar hem de Soft Fork’lar, kurallar arasında güvenli geçişler sağlamak için bir koordinasyon ve senkronizasyon gerektirir.

Hard Fork, belli bir zaman süresinde kullanıcılar yazılımlarını güncellemezse zincir üzerinde bir bölünme yaratır. Hard Fork bir kural değişikliğidir ve yeni kurala uymayı reddedenler zincirden kopar. Soft Fork’lar bu konuda daha töleranslı bir sistem uygulamaktadır. Öyle ki tüm kullanıcılara güncelleme zorunluluğu getirmez ve bölünmeleri engellemek için bir takım önlemlere sahiptir.

SOFT FORK NEDİR?

Soft Fork, Bitcoin yazılım protokolü üzerinde, eski yazılıma da uyumlu olarak bir yenilik yapma işlemine deniyor. Yazılım üzerindeki değişiklikler bazı kullanıcılar tarafından kabul ediliyor fakat uymak istemeyenler eski kurallar ile işlem yapmaya devam edebiliyor. Bu işlem genelde “Consensus Rules” dediğimiz yazılım protokolüne, eskileri ile çakışmayacak şekilde yeni kurallar eklemek için kullanılıyor. Soft Fork’un en önemli özelliği Blockchain zinciri üzerinde bir bölünme oluşturmaması ve “Backward Compatible” denilen eski yazılım ile uyumlu bir sisteme sahip olmasıdır. Bunu daha iyi anlamak için bir örnek ile inceleyelim.

SOFT FORK İLE SEGWİT ENTEGRASYONU

Segwit dediğimiz yenilik, bir Soft Fork örneğidir. Segwit projesini destekleyen kullanıcılar bu yazılım ile işlem yapmaya başladılar ve blok boyutunu doğrudan arttırmadan, blok yapısında bazı düzenlemeler yaparak 1 MB’lık blokların içine eski yazılıma göre daha fazla işlem sığdırmayı başardılar. Bu öneriyi henüz desteklemeyenler ise eski sistem ile işlemlerine devam ettiler. Eski Miner’lar, Segwit destekleyen Miner’lara oranla daha az işlem onayladılar ama temel olarak aynı mutabakat kuralları ile işlemleri yapmaya devam ettiler. Bu arada, SegWit kullanıcılarının daha fazla işleme sahip blokları hala 1MB büyüklüğünü geçmediği için onları da desteklemeye devam ettiler.

BITCOIN IMPROVEMENT PROPOSAL (BIP)

Bildiğiniz üzere Bitcoin merkezi olmayan bir sistem. Bu nedenle Satoshi’nin en başta belirlediği kurallar üzerinde (Consensus Rules) bir değişiklik yapmak için görüşülecek kişi veya kurum yok. Bu sorunu çözmek için BIP (Bitcoin Improvement Proposal) denilen bir yöntem kullanılıyor. Eğer bir yenilik veya değişiklik yapılmak istenirse, bunun için BIP kullanılıyor. Herkes Bitcoin’in gelişimi içi BIP önerisinde bulunabilir. Burada önemli olan bu önerinin benimsenip benimsenmeyeceği. Şimdiye kadar yapılan önerilerin listesini ve detaylarını ilgili GitHub sayfasında inceleyebilirsiniz.

Bu yöntem Pieter Wuille tarafından geliştirilen “Version Bit” ile birlikte (BIP9) kullanılmaya başlandı. Daha önceleri sadece tek bir değişiklik üzerinde çalışabilen kullanıcılar, BIP9 ile birlikte aynı anda birden fazla SoftFork üzerinde ne düşündüklerini ağ üzerinde gösterebilmeye başladılar. Peki Miner’lar yazılım üzerindeki bir değişiklik teklifini destekleyip desteklemediklerini nasıl bildiriyorlar? Bunun için Version bit denilen 32-bit büyüklüğündeki veriyi “Coinbase Transaction” dediğimiz işlemin içine ekliyorlar.

“Coinbase Transaction” (CT), sadece Miner’lar tarafından yazılabilen özel bir transfer işleminin adıdır. CT, yalnızca yeni bloğu bulan madenci tarafından oluşturulabilir. Bu transfer işleminin özelliği herhangi bir “input” verisine sahip olmamasıdır ve her blokta yanlızca bir tane bulunmasıdır. Bunu, bloğu bulan Miner’ın ödülünü alabilmek için kendisine bir çek yazması gibi düşünebilirsiniz. “Bana hiç kimseden(input yok), ödül olara 12,5 Btc ekle” demesi gibidir.

Eğer Bitcoin protokolü için bir fikriniz veya sistemdeki sorunlar için bir çözüm planınız varsa bunun için sizde BIP hazırlayabiliyorsunuz. Burada bazı standartlar var. Bunlardan bazıları, ismini belirleme, daha önce kullanılmaya bir version bit seçme ve başlangıç tarihi (genelde yazılımınız yayınlandıkta birkaç hafta sonra). Bu tarihten itibaren önerinizin 1 yılı oluyor. Bu, tüm BIP’ler için standart bir prosedür.

Örneğin bir Soft Fork için Miner’lar öncelikle ne düşündüklerini ağ ile paylaşıyorlar. Değişiklik için verilen destek %75'e ulaştığında teklif aktif hale geliyor ve %95'e ulaştığında ağın tamamı tarafından benimseniyor. Buna bir anlamda kısa süreli bir bölünme de diyebiliriz. Süre bittiğinde, istenen çoğunluk sağlanırsa Soft Fork gerçekleşiyor, sağlanamazsa reddediliyor.

HARD FORK

HardFork, Bitcoin protokolündeki kurallar üzerinde köklü değişiklikler yapmak için kullanılan bir yöntem. Bir HardFork sonrası daha önce geçerli olmayan bloklar, artık kabul edilir hale gelir ve bu nedenle ağdaki kullanıcıların tamamının yeni yazılımı benimsemesi gerekir. Eğer bu adaptasyon tüm Miner’lar tarafından benimsenmezse yeni kullanıcılar ve eski kullanıcılar ağın bölünmesine sebep olur ve zincir iki farklı yoldan devam eder. 1 Ağustos 2017 tarihinde yaşadığımız ve ortaya Bitcoin Cash denilen kripto paranın çıkmasına neden olan durum bu durumun en güzel örneğidir.

BCH destekçileri, Bitcoin’in yüksek işlem ücretleri ve bekleme sürelerine çözüm olarak blok boyutlarını 1MB’dan 8MB’a yükseltme kararı aldı ve gerekli yazılımı hazırladı. Bunun için önceden bir tarih belirleyen ekip (genelde gelecekten bir blok sayısı seçilir), destekçilerine o blok sonrası için yeni yazılımı kullanmalarını söyledi. İşte bu noktadan sonra zincir bölündü ve birbirinin aynısı olan (sadece o blok numarasına kadar) iki yeni zincir oluştu.

Yazılarımı ve çalışmalarımı beğeniyorsanız lütfen desteklerinizi aşağıdaki adrese gönderin:

19dhAt7oWyuuWGwnzTJq4niJ1GZfGXqBWW

Bitcoin, blockchains, fintech, economics. http://ahmetseyhan.org/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store