İçeriğe geç
32:52

Bitcoin Hangi Problemi Nasıl Çözüyor? Bölüm 1

32:52 YouTube'da aç

Bitcoin'in arkasındaki teknoloji şu problemi çözer: merkezi bir otorite olmadan, birbirine güvenmeyen katılımcılar aynı defter üzerinde nasıl uzlaşabilir? İki General ve Bizans Generalleri problemleri, FLP imkânsızlığı ve Sybil saldırısı, dağıtık sistemlerde kesinliğin değil ancak yüksek olasılığın mümkün olduğunu gösterir. Bitcoin bu saldırıya proof of work ile direnir.

Problemin tanımı: merkezsiz bir defter

Bitcoin genellikle parasal niteliği ve borsadaki fiyat hareketleri üzerinden tartışılır; oysa asıl devrim teknik tarafta yatar. Amacımız, blockchain'in hangi sorunu nasıl çözdüğünü aşırı teknik ayrıntıya girmeden, herkesin anlayabileceği bir dille ortaya koymak. Temel soru şu: Ortada hiçbir merkezi yapı yokken milyonlarca insan birbirine para gönderecek, birbirinin defterini tutacak; bu güvenilirlik nasıl sağlanacak? Bu soru iktisadi görünse de aslında bilgisayar bilimleri ve matematiğin konusudur ve çözümler de oradan çıkmıştır.

Bir köy bakkalını düşünelim. Köydeki herkes borç-alacak kayıtlarını bakkalın defterinde tutar; tıpkı bir ülkede Merkez Bankası'nın ya da bankaların, maaş ve para transferlerimizin kaydını kendi merkezlerindeki defterde tutması gibi. Bu merkezi yapı güveni genel olarak sağlar ama tek bir merkeze bağlı olduğu için hataya açıktır: merkezdeki bir hata bütün kayıtların yanlış olmasına, silinmesine ya da yok olmasına yol açabilir.

Dağıtık sistem ve konsensüsün şartları

Merkezi kaldırmak istersek herkesin kendi defterini tutması gerekir; dağıtık sistem budur. Fakat bu kez yeni sorular doğar: Herkesin defteri nasıl senkron kalacak? Biri defterine sahte kayıtlar yazarsa bunu kim doğrulayacak? Karışıklık kötü niyetten de, basit bir hatadan da kaynaklanabilir. Bu sorunu çözmek için konsensüs (mutabakat) algoritmaları geliştirilir. Bir konsensüs mekanizmasının üç şartı vardır:

  1. Uzlaşma: Herkesin defterinde aynı kayıtların bulunması için ortak bir fikir birliğine varılmalı.
  2. Geçerlilik: Deftere yalnızca belirli formatta (alıcı, gönderen, miktar, tarih, açıklama) geçerli ticari kayıtlar yazılabilmeli.
  3. Sonluluk: Bir noktada "defterin son hali budur" denebilmeli; karar yıllarca askıda kalmamalı.

Bu şartları bir WhatsApp analojisiyle somutlaştıralım. On kişilik bir arkadaş grubu akşam hangi restorana gideceğine karar verecekse ortak bir grup merkezi bir yer işlevi görür; herkes birbirinin oyunu görür. Grup yoksa ve herkes birbiriyle ayrı ayrı, farklı zamanlarda yazışıyorsa sistem dağıtık hale gelir. Kararın akşam altıya kadar verilmesi gerekir (sonluluk), konuşmaların restoran seçimiyle ilgili olması gerekir (geçerlilik) ve sonunda çoğunluğa göre uzlaşılmalıdır. Bir de interneti yavaş, bodrum katında çalışan, mesajları geç giden arkadaşlar eklendiğinde durum tamamen kaotikleşir. Blockchain'in ve Bitcoin'in çözdüğü problem tam olarak budur.

İki General Problemi

İlk adım İki General Problemi. Birbirini göremeyen ve yalnızca ulak aracılığıyla haberleşebilen iki general, şehre aynı anda saldırmak zorundadır. Biri "şafakta saldıralım" mesajı gönderse de ulağın yolda öldürülüp öldürülmediğinden ya da mesajın değiştirilip değiştirilmediğinden emin olamaz. Karşı taraf "mesajını aldım" diye onay gönderse bu kez o onayın ulaşıp ulaşmadığı belirsizdir; onayın onayı da aynı sorunu doğurur ve bu zincir sonsuza kadar uzar.

Mesaj sayısı arttıkça güven artar; örneğin tek mesajda yüzde 50 olan olasılık bir onayla yüzde 70'e, birkaç turdan sonra yüzde 98'e çıkabilir. Ama yüzde 98 hiçbir zaman yüzde 100 değildir. SMS ile "akşam altıda buluşuyoruz" yazıp cevap alamamak da aynı mantığı taşır. Sonuç: Doğrudan iletişimi olmayan, bir mesaj kanalına bağımlı iki taraf hiçbir zaman yüzde yüz kesinlikle bilgi gönderemez; her zaman bir olasılığa razı olmak zorundayız.

Bizans Generalleri Problemi ve 1/3 kuralı

İkinci problem, bir şehri kuşatmış beş Bizans generalinin saldırma ya da geri çekilme kararını birlikte vermesi gerektiği senaryodur. Bir kısmı saldırıp bir kısmı çekilirse ordu bertaraf olur; bu, verilebilecek en kötü karardır. Herkes diğer dört generalden gelen mesajları kendi kararıyla birleştirip oy çokluğuna göre hareket ettiğinde sorun çıkmaz. Ancak aralarına hainler girerse durum değişir: Hain, grubun bir kısmına "saldır", bir kısmına "geri çekil" diyerek kuvveti böler. İki hainli bir örnekte bazı generaller saldırır, bazıları çekilir ve ordu dağılır.

Komutan ve teğmenler analojisinde de aynı belirsizlik ortaya çıkar: Komutandan "saldır" emri alan bir teğmen, diğer teğmenden "komutan bana geri çekil dedi" haberini alınca ulağın mı hata yaptığını yoksa bir hain mi olduğunu bilemez. Bir hain varken çoğunluğa güvenerek karar verilebilir; hain sayısı arttığında tereddüt aşılamaz hale gelir. Problem şu formülle ifade edilir: n ≥ 3h + 1 (h hain sayısı). Örneğin bir hain için 3×1+1 = 4 sonucuna ulaşılır. Kısacası hainler sistemin üçte birinden fazlaysa güven tesis edilemez. Blockchain dokümanlarındaki "1/3" ibaresi buradan gelir.

FLP imkânsızlığı: kesinlik değil olasılık

1985'te ortaya konan FLP imkânsızlığı, asenkron bir ağda tek bir düğümün bile çökmesinin deterministik karar almayı imkânsız kıldığını matematiksel olarak ispatlar. Asenkron ağ, katılımcıların farklı uzaklıklarda olduğu, mesajların farklı zamanlarda gönderilip ulaştığı ağdır; düğüm ise bir general, bir kişi ya da dağıtık mimarideki bir sunucudur. Deterministik karar "evet ya da hayır", kesin ve bir takvime bağlı karar demektir.

Bir telefon görüşmesinde karşı taraftan ses gelmediğinde hattın mı koptuğunu, mikrofonun mu bozulduğunu bilemeyiz; ne kadar beklesek cevap geleceğini de hiçbir zaman kesin olarak bilemeyiz. Mesaj bir saniyede de, bir günde de ulaşabilir. Dünyanın farklı yerlerinde, farklı internet hızlarıyla çalışan bir dağıtık sistemde bir düğümün elektriği gitse ya da çevrim dışı olsa bile sistem deterministik olamaz:

Her şey olasılık hesabına döner.

Açık internet ve Sybil saldırısı

1999'da geliştirilen PBFT (Practical Byzantine Fault Tolerance) algoritması, hainler üçte bir veya daha azken üç turlu bir oylamayla yüksek olasılıkla mutabakat sağlanabileceğini gösterdi. Ancak buraya kadarki bütün problemler kapalı devre sistemlerdir; katılımcı sayısı bellidir. Açık internette ise her an yeni bir cüzdan açılabilir, yeni bir düğüm girip çıkabilir; beş kişi yerine beş yüz bin kişi, bir milyon madenci olabilir. Bu dinamizm içinde 1/3 sınırını hesaba katmak mümkün değildir.

Burada Sybil saldırısı devreye giriyor. Adını, çoklu kişilik bozukluğu yaşayan Sybil adlı bir hastadan alır; Glass filmi ve 46 Yok Olan dizisi de benzer temaları işler. Sisteme giriş maliyeti düşük olduğunda bir saldırgan çok sayıda sahte düğümle girip hain oranını üçte birin üzerine çıkarabilir ve mutabakatı engelleyebilir. "Yılın en iyi öğretmeni" gibi açık çevrimiçi anketler ve Tesla'nın Supercharger istasyonu için düzenlediği anket buna iyi bir örnektir: Geçici e-posta adresleriyle bir kişi yüzlerce, binlerce oy kullanabilir.

Proof of work'e giriş ve sonraki bölüm

Ön bilgi olarak: Bitcoin bu saldırıyı proof of work ile çözer. Madenciliğin çok enerji tüketmesinin nedeni, sisteme giriş maliyetini yükseltmektir: Üçte bir hain oranına ulaşmak için pahalı madencilik makineleri almak ve tüm sistemin harcadığı elektriğin üçte birinden fazlasını harcamak gerekir. Bu milyarlarca dolar tuttuğu ve karşılığında elde edilecek şey bununla orantılı olmadığı için saldırı uygulanabilir olmaktan çıkar. Serinin sonraki bölümlerinde hash algoritmalarını, kriptografiyi ve proof of work'ün ayrıntılarını; blockchain'in Sybil saldırısını nasıl engellediğini ve hızlı, güvenilir bir mutabakata nasıl ulaştığını ele alacağız.