Blockchain & Web3 4 dk okuma

Blockchain Teknolojisi Nedir ve Yazılım Dünyasını Nasıl Dönüştürüyor?

4 dk okuma

Giriş

Blockchain teknolojisi, yalnızca kripto para transferlerini mümkün kılan bir altyapı değil; farklı tarafların ortak bir veri durumu üzerinde uzlaşmasını sağlayan dağıtık bir yazılım modeli. Geleneksel uygulamalarda veri tabanı ve iş kuralları çoğu zaman tek bir kurumun kontrolündeyken blockchain yaklaşımında doğrulama, kayıt ve durum değişiklikleri ağdaki kurallara göre yürütülüyor. Yazılım geliştirici açısından konuya ‘hangi coin yükselecek?’ sorusundan değil, verinin kim tarafından yazıldığı, nasıl doğrulandığı ve değiştirilemezlik varsayımının uygulama tasarımını nasıl etkilediği üzerinden bakmak daha sağlıklı.

Blockchain teknolojisi aslında neyi çözer?

Dağıtık sistemlerde temel problem güvenilmeyen veya birbirini tanımayan tarafların aynı işlem geçmişi üzerinde uzlaşmasıdır. Blockchain bu probleme, işlemleri sıralı bloklar halinde kaydeden ve ağın konsensüs kurallarıyla doğrulayan bir yapı sunar. Bu model her uygulama için gerekli değildir. Tek bir kurumun yönettiği klasik bir ERP veya e-ticaret uygulamasında SQL Server çoğu zaman daha doğru ve daha ucuz çözümdür. Ancak ortak sahiplik, denetlenebilir işlem geçmişi veya programlanabilir dijital varlık gereksinimi varsa blockchain anlamlı hale gelebilir.

Akıllı sözleşmeler neden farklıdır?

Akıllı sözleşme, ağ üzerinde çalışan ve çağrıldığında durum değiştirebilen programdır. Buradaki kritik fark, production ortamına alınan bir sözleşmenin klasik bir web servisi kadar kolay güncellenememesidir. Bu yüzden input doğrulama, erişim kontrolü, yeniden giriş saldırıları, yetki sınırları ve upgrade stratejisi daha kod yazılmadan düşünülmelidir. Solidity tarafındaki küçük bir hata yalnızca uygulama hatası değil, doğrudan varlık kaybı anlamına gelebilir.

ABI, event ve transaction mantığı

Bir .NET uygulamasından veya başka bir backend’den akıllı sözleşme ile konuşurken genellikle ABI üzerinden fonksiyonları ve event imzalarını tanımlarız. Read çağrıları zincirin mevcut durumunu okurken transaction çağrıları yeni bir işlem üretir ve gas tüketir. Event’ler ise zincir üzerindeki değişiklikleri uygulama tarafında izlemek için güçlü bir veri kaynağıdır. Sağlam bir entegrasyonda blok onay sayısı, tekrar işleme, reorg olasılığı ve idempotency mutlaka hesaba katılmalıdır.

JSON-RPC ve node katmanı

Blockchain istemcileri ağla çoğunlukla JSON-RPC üzerinden iletişim kurar. Bir uygulamada RPC adresini doğrudan iş mantığına gömmek yerine provider katmanı arkasında soyutlamak; timeout, retry, rate limit ve alternatif node senaryolarını yönetmeyi kolaylaştırır. Aynı yaklaşım klasik ERP veya pazaryeri entegrasyonlarında kullandığımız adapter mantığına oldukça benzer.

Upgradeability ve proxy yapıları

Akıllı sözleşmeler değiştirilemezlik ilkesiyle çalışsa da iş uygulamalarında güncelleme ihtiyacı vardır. Proxy desenleri bu ihtiyacı ayrı bir storage/proxy sözleşmesi ile implementation sözleşmesini ayırarak çözer. Fakat upgrade yetkisinin kimde olduğu, storage layout uyumluluğu ve yönetişim mekanizması ciddi tasarım konularıdır. Upgrade edilebilir olmak otomatik olarak daha güvenli olmak anlamına gelmez.

Blockchain ne zaman kullanılmamalı?

Bir probleme blockchain eklemek onu otomatik olarak daha modern yapmaz. Yüksek throughput, düşük gecikme, hassas verilerin gizliliği veya merkezi bir otoritenin zaten güvenilir olduğu senaryolarda klasik veritabanı ve API mimarisi daha doğru olabilir. İyi mimari teknoloji seçmekten önce problemi doğru sınıflandırır.

Sonuç

Blockchain teknolojisi yazılım dünyasına yeni veri ve güven modelleri kazandırıyor. Bir geliştirici için en değerli yaklaşım; zinciri yalnızca token üretme aracı olarak değil, farklı güven varsayımları olan dağıtık bir işlem sistemi olarak değerlendirmektir. Doğru yerde kullanıldığında güçlüdür; yanlış yerde kullanıldığında ise gereksiz maliyet ve karmaşıklık üretir.

 

 

Araştırma Kaynakları ve İleri Okuma

  • Ethereum Developer Documentation – https://ethereum.org/developers/docs/
  • Solidity Security Considerations – https://docs.soliditylang.org/en/latest/security-considerations.html
  • OpenZeppelin Upgrades – https://docs.openzeppelin.com/upgrades-plugins/proxies

Paylaş