Zero to Hero - Modular Yapılara Muhtaç Mıyız?
Başlamadan,
Yazıda birkaç noktada Türkçeleştirme yapmaktan kaçınılmıştır. Bunun nedeni ise, devamında araştırma yapmak isteyen olursa kaynakların birçoğunun İngilizce olmasıdır ve aynı zamanda Türkçeleştirmeye çalışırken anlam farklılıkları olacağından dolayı bu durumun önüne geçmektir. Ben gene de yazının sonuna sözlük ekleyeceğim. Keyifli okumalar! 🥳
Önce Monolithic!
Modular yapıları anlamamız için öncelikle Monolithic zincir kavramını kafamızda yerine oturtmamız ve neden Modular yapılara ihtiyaç duyduğumuz sorusuna cevap vermemiz gerekir. 2008 yılında Bitcoin Monolithic bir zincir olarak ilk duyurulduğu zaman hem transaction execution’ların hem de consensus’un validatörler tarafından ağ üzerinde yapılacağı söylendi. Bu tarihin üzerinden 10 yıldan fazla süre geçmesine rağmen çıkan projeler bu sistematiği değiştirmeden benzer yapılarda devam ettiler. 2013 senelerinde ilk Ethereum fikri ortaya atıldığında bile Bitcoin ile çok benzer bir yol izledi fakat execution environment yerine belli bir amaca hizmet eden smart contract environment geldi başka bir isimle Ethereum Virtual Machine (EVM). Fakat genel yapıya baktığımız zaman yapının çokta farklı olmadığını ve monolithic bir yapıda full node’ların benzer bir hizmet sunduğunu görmekteyiz.
Peki Problem Neydi? 🧐
Problem aslında çok basit ve tek kelime olarak özetlenebilir, ölçeklenebilirlik (scalability). Biraz daha açmak gerekirse, zincirdeki her bir blok için validatör ve full node’lar şu iki soruya cevap vermek zorundadırlar:
Bu blokta consensus var mı?
Bu bloktaki bütün transaction’lar geçerli mi?
Bu iki sorudan da anlaşılabileceği gibi Monolithic zincirlerde bu durum ağdaki transaction sayısı arttıkça kısıtlayıcı bir duruma dönüşmekte ve ölçeklenebilirlik sorunlarına yol açmaktadır. Çünkü full node’lar transaction geçerli mi yoksa geçerli değil mi diye bütün ağ geçmişindeki durumları kontrol etmek zorundadır. Peki validatör ve full node’lar bu sorulara nasıl cevap veriyor arkasında nasıl bir sistem işliyor diye merak ediyorsanız, öncelikle Merkle Tree Nedir? başlıklı yazımıza bakabilirsiniz 🥳
The Blockchain Scalability Trilemma 🚩
İlk olarak Monolithic zincirlere kısaca baktık ve Monolithic zincirlerin ana problemini öğrendik, ölçeklenebilirlik. Şimdi ise Modular yapı fikrinin ortaya çıkma nedeni olan Blokchain Trilemma’sına bakacağız! Neden Blockchain Trilemma’sı deniyor diye soracak olursanız, bir blockchain modelinde aşağıda bahsedeceğimiz 3 ana başlıktan sadece 2 sinin karşılanabileceği varsayılmaktadır ve bu nedenle bir çıkmaz söz konusudur.
Güvenlik (Security)
Blockchain güvenliği ağa yapılan saldırılara olan dayanıklılığı ile ölçülebilmektedir ve hiç bir blockchain güvenlik konusunda açık vermek istemez. Blockchain güvenliğinin çok büyük bir kısmı validatörler ve madenciler ile ilişkilidir. Özellikle Proof of Stake (PoS) consensus’una sahip zincirlerde, validatörler blockchain üzerindeki işlemleri zincire işlemekle yükümlüdürler. Herhangi bir blockchain üzerinde validatör olmak için yapılması gereken şey o zincirin belirlenen miktardaki token’ını zincir üzerinde stake’lemektir. Kötü niyetli olabilecek validatörlerin önüne geçmek için ise slashing denilen bir yöntemle, kötü niyetli validatörlerin kendilerine düşen paylar yakılmaktadır. Güvenlik bu üç etmenden genelde en vazgeçilmez isim olarak düşünülebilir.
Merkeziyetsizlik (Decentralization)
Blockchain ve geleneksel sistemler arasındaki en önemli ayrımlardan biri, açık ve herhangi bir kişi tarafından doğrulanabilir olmalarıdır. Herhangi bir kullanıcı bir node çalıştırıp, yapının doğru çalışıp çalışmadığını onaylayabilir. Blockchain tarafından tamamen onaylanan node’lar (full nodes) güvenlik konusunda önemli bir rol üstlenmektedirler.
Ölçeklenebilirlik (Scalability)
Bir blockchain mekanizmasındaki kullanıcı sayısı arttıkça üzerinde yapılan işlem sayısı da onunla orantılı olarak artar. Bu durumun sonucu olarak, blockchain üzerindeki işlem sayısı arttıkça, zinciri onaylayabilmek için gereken iş yükü de artar. Eğer zinciri onaylamak olduğundan daha zor bir hale gelirse, zincirdeki çalışan node sayısı azalır ve merkeziyetsizlik kaybolur.
Transactions Per Second (TPS): Saniyede başına yapılan işlem sayısı. Cost to Validate All Transactions: Bütün yapılan bu işlemlerin onaylanma ücreti.
Denklemden de anlaşılacağı üzere, bir blockchain ölçeklenebilir olması için üzerinde yapılan işlem sayısı artarken, bu işlem sayısına denk gelen maliyetin azalması gerekir.
Modular Blockchain’lere Hızlı Bir Geçiş 🚀
Blockchain ile uğraşan, araştıran, geliştiren birçok insan optimal bir sistem kurmakta her zaman zorlanmıştır. Yazının başında da bahsettiğim gibi, şuana kadar denenen birçok yapı tek bir ağ altında tek bir zincir üzerine kurulmuş durumda olması ve ölçeklenebilirliğe bir çözüm bulamamasıdır. Dolaylı çözüm olarak ise akıllara şuana kadar 2 farklı fikir gelmiştir, sharding ve L2 sistemleri. Bu sistemlerin amacı L1 sistemlere ölçeklenebilmeleri için dışarıdan ek kaynak olmaktır. Bu dışarıdan yapılan müdahale, tek bir blockchain yapısının her şeyi kendi başına yapması gerekmediği fikrini ortaya çıkarmıştır.
Modular zincirlerin arkasındaki yapı, köken olarak bir ana sistemin küçük parçalara ayrılması (katman) olarak tanımlanabilecek Modular Dizayn modelidir. Bu modelde katmanlar, kendi içinde bağımsızdırlar ve başka sistemlerle alışveriş yapabilecek durumdadırlar.
Bir Modular zincir bütün blockchain fonksiyonlarını taşımak yerine, aynı Monolithic zincirlerde olduğu gibi belli başlı özel olarak seçilmiş birkaç fonksiyonu üzerinde taşımaktadır. Modular yapılarda asıl fark bu fonksiyonların farklı farklı katmanlarda olmasıdır (Bir üst paragrafta bahsedilen ana sistemin küçük parçaları örneği gibi.).
Modular Yapı Katmanları
Modular ve Monolithic zincirler arasındaki farkları ve neden Modular zincirlere ihtiyaç duyduğumuzu yavaş yavaş anlamaya başladık ve Monolithic yapılarda tek bir ana katmandan söz edilirken, modular yapılarda bu ana katmanın kendi içinde küçük ana parçalara ayrıldığını gördük. Birazda bu yapının katmanlarında neler oluyor, bu katmanların görevleri neler onlara bakalım 👀
Consensus Layer
Consensus Layer, birden fazla ve düzensiz bir sıralamadaki arbitrary data veya arbitrary mesajları alır ve bu data veya mesajları düzene sokar. Basitçe anlatmak gerekirse, ağdaki herhangi bir developer o ağa birçok farklı mesaj yollayabilir, consensus layer ise bu ağa yollanan mesajların hangi sırada olması gerektiğini blockchain’e söyler.
Data Availability Layer
Consensus Layer dataların/mesajların hangi sıralamada olması gerektiğine karar verdikten sonra bu data veya mesajların ne hakkında olduğunu ağa bildirmeleri gerekir. Eğer daha önceden kararlaştırılmış bu data bildirilmezse, ağdaki kullanıcılar ve uygulamalar bu datanın ne olduğundan haberdar olamazlar ve aynı zamanda transaction’larının durumunu bilemezler. Data Availability Layer, bu düzenlenmiş dataların/mesajların doğrulanmasını sağlar.
Execution Layer
Execution Layer, blockchain ağında kaydedilen bütün transaction’ların yürütüldüğü katmandır. Örnek olarak, Rollup’lar Modular Blockchain’lerin Execution Layer üzerinde özelleşmiş birer türüdür.
Son Sözler ⌛
Dünya üzerindeki bütün teknolojilerde olduğu gibi blockchain teknolojisi de gün geçtikçe farklılaşmakta ve kendine yeni kapılar ve yollar aramaktadır. Bu arayışın ise temel sebebi ise iş gücündeki verimi olabildiğince üst seviyeye çıkarmaktır. Modular zincirler ise blockchain teknolojisinin yakın gelecekteki en gözdelerinden biri olacaktır. Modular yapılar Monolithic yapılardaki ölçeklenebilirlik sorununa tek bir ağda tek bir katmanda kalmak yerine kendi içinde özerk farklı farklı katmanlardan bir bütün olarak yeni bir çözüm önerisi sunmaktadır.
Sözlük 📔
Modular: Modüler, tasarımsal, yapısal
Monolithic: Monolitik, tek, bir
Transaction Execution: Blok zincir üzerindeki bir işlemin yürürlüğe girmesi, yürütülmesi.
Consensus: Konsensus, uzlaşma
Execution Environment: Blok zincir üzerinde bir işlemin yürütüldüğü yer.
Smart Contract Environment: Akıllı Kontratların yürütüldüğü yer.
Ethereum Virtual Machine: Ethereum Sanal Makinesi
Kaynaklar ℹ️
Yazara ulaşmak için: https://twitter.com/Roq411
SCDEVSTR'yi takip etmek için: https://twitter.com/scdevstr
Abone olmak için: