Blockchain Zorlukları: Ölçeklenebilirlik

Orijinal başlık “Blockchain Challenges: Scalability” olarak düşünülebilir.

Bu yazımızda çoğu makale ve blog sayfasında karşımıza çıkan “Blockchain Trilemma” üçlemesinden biri olan “Scalability-Ölçeklenebilirlik” kısaca ele alınacaktır. Ardından da ölçeklenebilirlik sorununa çözüm olarak sunulan protokollerden bahsedilecektir.

Blockchainin en belirgin özelliklerinden birisi, blockchain ağı üzerinde gerçekleştirilen işlem geçmişinin tüm ağ nodelarında aynı şekilde kopyalarının saklanmasıdır. Bu durum bir ölçeklenebilirlik sorunudur çünkü gün geçtikçe gerçekleşen ve zincire eklenen işlem sayısı kümülatif olarak artmaktadır.

Diğer ölçeklenebilirlik sorunları ise blok boyutu, bir bloğun yazılması için gereken sürenin çokluğu ve saniyede gerçekleştirilen işlem sayısının azlığıdır. Örnek vermek gerekirse; Bitcoin’ in temel versiyonunun blok boyutu 1MB, bir bitcoin bloğu oluşturmak için geçen süre yaklaşık 10 dakika ve saniye başına gerçekleştirilen işlem sayısı 7 olarak bilinmektedir.

Peki ne yapılsın ki kümülatif işlem hacminin artma hızı azalsın ve saniye başına gerçekleştirilen işlem sayıları artsın? Ben bu yazımda Birinci Katman (1st Layer – On-chain) ve İkinci Katman (2nd Layer-Off-chain) çözümlerinden bahsedeceğim. Gelin şimdi bu başlıklar altında sunulan çözümleri teknik detaylara girmeden öğrenelim.

Birinci Katman (On-Chain) Çözümler

  1. SegWit
    Segragated Witness’ ın (Seperated Signatures – İmzaları Ayır) kısaltmasıdır. Segwit, Bitcoin için verilerin depolanma şeklini ve yapısını değiştiren bir protokol yükseltmesidir. Transaction verisinin yaklaşık 65%’si signature verisi olarak bilinmektedir. Bu signature verisini transaction dışında tutarak bloklara yazılacak transaction sayısını büyük ölçüde artırmak amaçlanmıştır. Segwit protokolü bir soft fork olarak ele alınmalıdır. Çünkü SegWit ile gerçekleştirilen tüm işlemler aynı teknik özellikleri korumakta yani kendisinden önceki mevcut blockchain ağındaki kurallara riayet ederek gerçekleştirilmektedir.
  2. Hard Fork
    Blok boyutlarının yükseltilmesi, saniye başına gerçekleştirilen işlem kapasitesinin artırılması gibi teknik değişiklikleri ile ana blockchainden bir çatallaşma ile ayrılarak daha yüksek verimle hizmet sunmak amaçlanmıştır. Örnek vermek gerekirse; Bitcoin Classic, Bitcoin Cash ve Bitcoin Satoshi Vision birer hard fork örneğidir. Çatallaşmanın gerçekleştiği blockchain ağındaki kurallar çatallaşma sonucu oluşan blockchainde geçerli olmamaktadır. Bir hard forku bir soft forktan ayıran temel özellik budur.
  3. Sharding
    Blockchain’e sharding uygulamak, o blockchain ağını her bir parçası kendi akıllı sözleşmelerine ve bakiyesine sahip bireysel parçalara ayırmak demektir. Her node sadece atandığı shard ın içindeki işlemlerin doğrulanmasından sorumludur. Asıl amaç temel bilgisayar bilimleri yöntemine benzer: divide and conquer! İlk olarak Ethereum’da kullanılmıştır.

İkinci Katman (Off-Chain) Çözümler

  • Ethereum Plasma
    Ethereum main blockchainin altında Plasma chain – child (çocuk) chainler var.
    Her plasma chain aslında düzenlenebilir bir akıllı sözleşmedir.
    Chainler birlikte veya bağımsız çalışabilirler.
    Blockchain kullanıcıları sadece işleri oldukları child chain ile ilgileneceklerdir.
    Çünkü her child/plasma chain belirli/özel bir amaç için oluşturulmaktadır.
    Bu sayede daha işlemler daha hızlı gerçekleştirilecektir.
  • Bitcoin Lightning Network
    Bakiyeler multisig bitcoin channel adreslerinde tutulur.
    Bu channel bitcoin public blockchainine bir kayıt olarak geçer.
    Kanaldaki bakiyeden harcama yapılabilmesi için multisig imzanın taraflarının yeni bakiye bilgisinde hemfikir olmaları gerekmektedir.
    Kanal açıkken uygun koşullar altında istenilen sayıda işlem gerçekleştirilir.
    Son bakiye bilgisinin ana blockchaine yazılması için bir çıkış transactionu çalıştırılır ve sadece bu zincire eklenir.
    Kazanç: aradaki transactionlar zincire kaydedilmedi.
  • Ethereum Raiden Network
    Global bir consensus sağlanması beklenmeksizin katılımcılar arasında güvenli bir şekilde token transferi yapılmasını sağlar.
    Nodelar arasında payment channel denilen ödeneme kanalları açılır.
    Toplam token bakiyesi sınırlarını aşmadan sınırsız sayıda transfer gerçekleştirilebilir.
  • NEO Trinity Network
    Önceki benzerleri gibi işlemektedir.
    Bakiyeler ortak bir contract hesapta toplanır.
    Contract kontrolünde işlemler golabal consensusla uğraşmadan gerçekleştirilir.
    Son durum (state) zincire yazılır.

Kaynaklar

https://cointelegraph.com/explained/segwit-explained

https://github.com/ethereum/wiki/wiki/Sharding-FAQ

https://lightning.network/lightning-network-paper.pdf

https://www.plasma.io/plasma.pdf

https://raiden.network/101.html

https://trinity.tech/#/writepaper

  • Kerem Ataşen
  • • PhD Student at ITU Computer Engineering Department
    • Research Assisstant at Kirklareli University Software Engineering Department

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir