Blockchain’le Alakali Bazi Notlar
Soru ve Cevaplar
Bu yazıda Blockchain ve Bitcoin ile alakalı bazı temel sorular ve cevapları yer alacak.
Bankacılık işlemlerinde de hayati önem arz eden transactionların sırasının korunması blockchain’de nasıl yapılmaktadır?
Blockchain’deki her blok, kendisinden bir önceki bloğa bağlı bir şekilde oluşturulur. Bu sayede her bloğun sırası belirlidir.
Eğer aynı anda 2 blok kazınırsa blockchain’e hangisi eklenir?
Örnek üzerinden gidelim.
A ve B bloklarının aynı (veya çok yakın) anda kazındığını varsayalım. Her 2 bloğu kazıyan madenci de networke kendi bloğunu broadcast edecektir. Sonuç olarak networkteki nodeların bir kısmı A bloğunu onaylayıp blockchaine eklerken bir kısmı da B’yi onaylayacaktır.
Bir sonraki blok, eğer A bloğunu onaylamış nodelardan birisi tarafından bulunursa; A bloğunu içeren yeni zincir networke yayılacak ve B bloğunu onaylamış nodelar A bloğunu içeren zincire döneceklerdir. Bu örnekteki B bloğunun durumundaki bloklara “Orphan Block” denir.
Eğer A ve B bloklarından sonra yine aynı anda 2 blok kazınırsa, zincirlerden bir tanesi anlatıldığı gibi kazanana dek bu durum devam eder. Bu sebeple, üzerine 100 yeni blok eklenmeden bir bloktaki meblağ kullanılamaz.
Blockchain’e günde yaklaşık kaç blok eklenir?
Yaklaşık 144. Şu anda (24 Ocak 2021) block başına 6.25 BTC ödül verilmektedir. Yani şu aralar günde yaklaşık 144 x 6.25 = 900 BTC kazılmaktadır.
51% Atağı Nedir?
Blockchain’de en uzun zincirin valid olarak kabul edildiğini “aynı anda 2 blok kazınırsa ne olur?” sorusunda zımnen vurgulamıştık. Bir node’a, kendisindekinden daha uzun farklı bir zincir broadcast edilirse; o node’un eski zinciri bırakıp yeni zincire geçeceğini, eski zincirdeki blok(lar)a da “orphan block” ismi verildiğini söylemiştik.
51% atağı bu protokolü suistimal etmek üzerine kurulu. Kaynaklarda linkini verdiğim makalede ayrıntılı ve vazıh bir şekilde anlatılıyor fakat nasıl yapıldığından kısaca bahsetmek gerekirse:
Kötü niyetli madenci, orjinal zincir üzerinde diyelim ki 100 BTC harcama yapıyor. Sonrasında bu harcama bilgisini içeren bloğun olmadığı, izole edilmiş bir zincire geçip bu korsan zincire bloklar eklemeye başlıyor fakat orjinal zincirden daha uzun hale getirene dek ağa broadcast etmiyor.Oluşturduğu korsan zincir, ağın kalanındaki orjinal zincirden daha uzun olduğunda ağa broadcast ediyor ve diğer nodelar uzunluğundan dolayı orjinal zinciri korsan zincirle değiştiriyorlar. Neticede, daha önce harcadığı halde 100 BTC’si hala kendi hesabında görünüyor.
Tabii ki orjinalden daha uzun bir korsan zincir oluşturabilmek öyle kolay değil. Bunu yapabilmek için ağdaki hashing gücünün minimum yüzde 51’ine sahip olmak gerekiyor. Ağdaki madencilerin devasa hesaplama gücü düşünüldüğünde, bu atağın maliyetinin (sunucular,elektrik vs.) kârını aştığı sonucuna varılıyor.
Bitcoin algoritması nasıl ve kim tarafından güncellenmektedir?
Bitcoin kaynak kodu açık kaynak olarak Github’da bulunmaktadır. Geliştirmeler bu repository üzerinden yapılmaktadır.
Kodda yapılacak değişiklikler için BIP (Bitcoin Implementation Proposals) isminde bir protokol belirlenmiştir. Geriye uyumluluk (backward compatibility) tahmin edilebileceği üzere hayati önem taşır.
Bitcoin merkezi olmayan bir ağa sahip olduğundan, yapılan bir güncellemenin sağlıklı olarak hayata geçirilebilmesi için ağdaki büyük çoğunluğun güncellemeyi yapması gerekir. Yani “Blockchain” dediğimiz şeyin ne olduğu konusunda ağ üzerinde bir konsensus oluşmalıdır. Ağdaki nodeların yüzde 50’inin eski kodu, yüzde 50’nin de yeni kodu çalıştırdığını varsayalım. Ve yeni kodun blok oluşturma kriterleri eski koddan farklı olsun. Bu durumda yeni kodu çalıştıran yüzde 50’nin oluşturacağı bloklar, eski kodu çalıştıran nodelar tarafından kabul edilmeyecek ve neticede 2 ayrı zincir oluşmuş olacaktır. Buna “fork” (çatallaşma) denir.
Böyle bir durumun yaşanmaması için, bitcoin ağındaki hesaplama gücünün (hash power) çoğunluğuna sahip firmaların yapılacak değişiklikler üzerinde anlaşmaları önemlidir.
Bitcoin Fork nedir?
Bir üstteki başlıkta değinildiği üzere birden fazla blok zincirinin ortaya çıkması durumudur.
İki tip fork vardır:
-
Soft Forks: Bitcoin protokolünde yapılan bir değişim sonucunda oluşur. Yeni protokol ağdaki nodelar tarafından kabul edilir ve yola devam edilir. Yeni bir ürün ortaya çıkmaz.
-
Hard Forks: Bitcoin zincirinin kopyalanarak farklı kurallara sahip yeni bir bitcoin versiyonu oluşturulması durumudur. Yani ortaya yeni bir ürün (coin) çıkar. Bitcoin Cash ve Bitcoin Gold bunlara misaldir. Örneğin Bitcoin Cash, blok kapasitesinin 1 mb’dan 8 mb’a artırıldığı farklı bir versiyondur. Çatallanana kadarki Bitcoin defterinin üzerine inşa edildiği için, çatallanmadan önce kaç Bitcoin’e sahipseniz o kadar yeni coine sahip olacaksınız demektir.
Cevaplanacak Diğer Sorular
Şu anlık bu kadarı cevaplanmış olsa da aşağıdaki soruların cevaplarını da vakit buldukça eklemek istiyorum. İyi günler dilerim.
Minerlar nasıl ödül kazanır? Bir bloku blockchain’e ekleyebilmek için çözülmesi gereken problem (proof of work) nedir, nasıl bir şeydir? Bitcoin Wallet Nedir? Ne işe yarar?
Kaynaklar
https://www.buybitcoinworldwide.com/how-many-bitcoins-are-there/
https://bitcoin.stackexchange.com/questions/8172/what-happens-if-two-miners-mine-the-next-block-at-the-same-time
https://bitcoin.stackexchange.com/questions/1991/what-is-the-block-maturation-time
https://blog.goodaudience.com/what-is-a-51-attack-or-double-spend-attack-aa108db63474
https://www.thebalance.com/what-is-a-bitcoin-fork-4684459
https://www.quora.com/How-is-bitcoin-updated
https://www.investopedia.com/terms/o/orphan-block-cryptocurrency.asp
Leave a comment