Bitcoin'in Yazılım Altyapısı: Bitcoin Core
Bitcoin ağının çalışmasını sağlayan Bitcoin Core nedir? Ağın güvenliği, işlem doğrulama süreçleri ve merkeziyetsiz yapının korunmasındaki rolünü blog yazımızda ele aldık.
Bitcoin denilince tecrübesiz yatırımcılar genellikle fiyatı konuşur. Kripto dünyasında tecrübesi olan yatırımcılar ise halving'i, dominansı, ayı-boğa döngülerini konuşur. Ama çoğu zaman konu bir türlü işin yazılımsal altyapısına gelmez. Hisse senedi alırken şirketin bilançosuna, fabrikasının genel durumuna hatta yönetim kurulu kadrosunu bile araştıran tecrübeli yatırımcılar, konu kripto para olduğunda çoğu zaman yeterince detaylı araştırma yapmaz. Oysa ki tüm kripto paralar bir fin-tech yani finansal teknoloji projesidir. Bluex Araştırma Birimi olarak bu makalemizde fin’den çıkıp tech’e giriyor ve 2009’dan bu yana tek bir gün bile durmadan çalışan bitcoinin yazılımını inceliyoruz.
Kripto yolculuğunuza güvenli ve hızlı bir şekilde başlayın. BlueX ile alım satım yapın.
Hemen BaşlaSATOSHİ NAKAMOTO’NUN DİL SEÇİMİ
Satoshi Nakamoto, Bitcoin'in ilk kodunu 2007-2008 yıllarında yazmaya başladı. Satoshi Nakamoto’nun her ne kadar kim ya da kimler olduğu bilinmese de iyi bir yazılımcı olduğu tartışılmayan bir gerçek ve dil seçimi de bir tesadüf değildi: C++.
C++, bilgisayarın belleğini ve işlemcisini doğrudan kontrol etmenize izin veren, düşük seviyeli ama son derece güçlü bir programlama dilidir. 1985 yılında Bjarne Stroustrup tarafından geliştirilen bu dil, onlarca yıldır yüksek performans gerektiren sistemlerde tercih ediliyor. İşletim sistemleri, oyun motorları, finansal altyapılar ve veritabanı yazılımları C++ ile yazılmış en bilinen örnekler arasında.
Bitcoin için bu tercih neden mantıklıydı? Çünkü Bitcoin'in saniyede binlerce işlemi doğrulaması, bunları ağdaki tüm düğümlere iletmesi, blok üretim yarışını yönetmesi ve tüm bunları aynı anda yapması gerekiyordu. Bu işler için hız ve bellek verimliliği hayati önem taşır. C++ bu kriterlerin tamamını karşılar.
Kaba bir kıyaslamayla anlatmak gerekirse C++ bir F1 aracı gibidir. Sürmesi zordur, ince ayar ister, tecrübe gerektirir. Ama rakipsiz hız sunar. Python ise konforlu bir aile otomobili gibidir. Kullanması kolay, öğrenmesi hızlı ama aynı performansı sunamaz. Bitcoin gibi küresel ve kesintisiz çalışması gereken bir sistem için F1 aracı tercih edildi.
Öte yandan, C++ dilini icat eden Bjarne Stroustrup, Bitcoin'in kendi diliyle yazıldığını öğrenince pek de memnun olmadı. Bitcoin'in yüksek enerji tüketimini ve potansiyel yasadışı kullanımlarını sorunlu bulduğunu kamuoyuyla açıkça paylaştı. Yarattığı araç dünyanın en büyük merkeziyetsiz finans sistemini inşa etmek için kullanılmıştı, ama bu onun tercihi değildi.
İÇERİDE NE VAR?
Bitcoin Core aslında tek parça bir program değil. Birkaç farklı modülün bir araya gelmesiyle oluşuyor. Bu modüllerin başında şunlar geliyor:
İşlem doğrulama, yani gelen her Bitcoin işleminin kurallara uygun olup olmadığını kontrol eden katman. Mempool yönetimi, yani onaylanmayı bekleyen işlemlerin tutulduğu havuzun yönetimi. Düğümler arası iletişim, yani ağdaki binlerce düğümün birbirleriyle nasıl haberleşeceğini düzenleyen katman. Cüzdan yönetimi ve madencilik kodu da yazılımın içinde yer alıyor.
Kodun büyük çoğunluğu C++ ile yazılmış. Python ise ağırlıklı olarak test ve entegrasyon süreçlerinde kullanılıyor. Kullanıcı arayüzü tarafında ise Qt framework'ü devreye giriyor. Yani Bitcoin Core'u masaüstünüzde çalıştırdığınızda gördüğünüz grafik arayüz Qt sayesinde geliyor. Qt framework aynı zamanda Bitcoin Core’un Windows, Mac ve Linux’te aynı görünümde çalışmasını da sağlıyor.
Kod paylaşım sitesi GitHub'daki Bitcoin deposuna bakıldığında yaklaşık 21.000 commit (yazılımcıların değişiklik kayıtları) birikmiş. Her commit, yazılıma yapılmış bir değişikliği temsil ediyor. 2009'dan bu yana bu kadar değişiklik yapılmış ve her biri titizlikle incelenmiş.
KİM GELİŞTİRİYOR, KİM KARAR VERİYOR?
Bitcoin Core açık kaynaklı bir yazılım. Google veya Apple gibi tek bir şirketin sahibi olduğu bir ürün değil. Dünya genelinde yüzlerce gönüllü geliştirici katkı sağlıyor. Bu geliştiriciler kod yazıyor, hata buluyor, yeni özellikler öneriyor ve birbirlerinin kodlarını inceliyor.
Brink gibi kâr amacı gütmeyen kuruluşlar bu geliştiricilere burs ve finansman sağlıyor. Human Rights Foundation, OpenSats veya Chaincode Labs ve benzeri organizasyonlar da yazılım güvenliğine katkıda bulunuyor. Kısacası Bitcoin Core'un arkasında ücretli bir şirket yok ama karanlıkta da çalışmıyor. Arkasında şeffaf ve organize bir topluluk var.
Peki bir değişiklik nasıl kabul ediliyor? BIP (Bitcoin Improvement Proposal) süreci devreye giriyor. Bir geliştirici değişiklik önerisini yazıyor, topluluk tartışıyor, diğer geliştiriciler kod inceliyor, testler yapılıyor ve sonunda geniş bir mutabakat sağlanıyorsa değişiklik uygulanıyor. Bu süreç bazen yıllarca sürebiliyor. SegWit güncellemesi 2015'te önerildi, 2017'de aktive olabildi. Taproot ise 2020'de önerilip 2021'de hayata geçti.
Bu yavaşlık bir kusur değil, kasıtlı bir tasarım tercihidir. Bitcoin'de milyarlarca dolarlık varlık tutuluyor. Yazılım hatası ya da aceleci bir değişiklik bu varlıkları tehlikeye atabilir. Yavaş ilerlemek bu nedenle güvenliğin bir parçası.
GÜVENİLİRLİK NASIL SAĞLANIYOR?
Bitcoin Core, güvenilirliğini birkaç farklı mekanizmayla koruyor. Reproducible builds (Tekrarlanabilir derleme sistemi) sayesinde resmi dağıtılan yazılımın gerçekten yayımlanan kaynak koddan üretildiği bağımsız olarak doğrulanabiliyor. Bu mekanizma sayesinde yazılımı indirdiğinizde "bu gerçekten resmi kod mu?" sorusunu kriptografik olarak yanıtlayabiliyorsunuz.
Bunun yanı sıra fuzzing adı verilen bir stres testi yöntemi uygulanıyor. Bu yöntemde yazılıma büyük miktarda rastgele ve bozuk veri gönderiliyor, yazılımın nasıl tepki verdiği gözlemleniyor. Böylece normal testlerde gözden kaçabilecek güvenlik açıkları erkenden yakalanıyor.
SÖZÜN ÖZÜ
Bitcoin'in arkasında on beş yıldır kesintisiz çalışan, C++ ile yazılmış ve dünyanın dört bir yanındaki gönüllü geliştiriciler tarafından titizlikle geliştirilen sağlam bir yazılım var. Fiyat yükselir düşer, piyasalar dalgalanır ama bu yazılım sakin ve kararlı biçimde çalışmaya devam eder. Bitcoin'e güvenmek için iyi bir neden arıyorsanız perde arkasındaki bu mühendislik disiplini sizi ikna edebilir.
Yasal Uyarı
Bu içerikte yer alan bilgi, yorum ve değerlendirmeler yatırım danışmanlığı kapsamında değildir. Yönlendirici nitelikte olmayan bu metin genel bilgilendirme amaçlıdır. Yatırım tavsiyesi değildir; bu bilgilere dayanılarak yapılan işlemlerden doğabilecek zararlardan BlueX sorumlu tutulamaz.