Blok Zincirinde Sharding Nedir? Nasıl Çalışır?
Temel içgörüler
Sharding, blok zincirini daha küçük parçalara yani shard’lara bölerek ağda işlemlerin paralel şekilde gerçekleştirilmesini ve ağın işlem kapasitesinin artmasını sağlayan bir veritabanı ölçeklendirme tekniğidir. Bu yaklaşım, ölçeklenebilirlik ve verimliliği önemli ölçüde artırsa da, shard’lar arası iletişimin karmaşıklığı ve güvenlik riskleri gibi yeni zorluklar da getirir; çünkü her bir shard, saldırılara karşı daha savunmasızdır. Zilliqa, NEAR ve Ethereum gibi ağlar sharding’i araştırmakta olup, eğer dezavantajları giderilebilirse, blok zinciri üçlemesini çözerek ölçeklenebilirliği merkeziyetsizlik ve güvenlikten ödün vermeden mümkün kılabilir.
Veritabanı geliştiricilerinin karşılaştığı en önemli zorluklardan biri ölçeklenebilirliktir. Veri hacmi ve işlem sayısı arttıkça, sistem performansının da geliştirilmesi gerekir.
Sharding, veritabanlarını ayrı segmentlere bölmeye dayalı bir ölçeklendirme teknolojisidir ve her bir segment farklı bir sunucuda barındırılabilir.
Bu teknolojiyi blok zincirine uyguladığımızda, sharding ağı ayrı sektörlere bölmek anlamına gelir. Her sektör ya da shard, kendine özgü akıllı sözleşmeler ve hesap bakiyeleri içerir ve belirli ağ düğümleri her bir shard’a atanır.
These nodes are responsible for verifying transactions only in their assigned shard rather than for all transactions on the blockchain.
Sharding hangi sorunları çözer?
Bir proje ne kadar popüler olursa, o kadar fazla kullanıcı çeker. Bu kullanıcılar daha fazla işlem yapar, daha çok DApp başlatır ve ağda daha fazla işlem gerçekleştirir. Sonuç olarak, işlem hızları düşer ve komisyonlar artar; bu da projenin gelecekteki büyümesini ve gelişimini engeller. Ağı shard’lara bölmek, blok zincirinin işlem kapasitesini artırarak bu sorunu çözmenizi sağlar.
Bir grup düğüm, defterin belirli bir bölümünden sorumlu olduğunda, ağdaki tüm düğümler her işlemin tamamlanabilmesi için tüm blok zincirini tutma zorunluluğundan kurtulur. İşlemler doğrusal yerine paralel olarak doğrulanır; böylece ağın işlem hacmi artar ve ölçeklenebilirlik sorunu ortadan kalkar.
Ayrıca, sharding kullanan blok zinciri düğümleri, azalan yük sayesinde daha fazla işlem gücüne ihtiyaç duymadan daha verimli çalışır.
Sharding nasıl çalışır?
Blok zincirlerinin çalışabilmesi için binlerce bilgisayarın işlem gücüne ihtiyaç vardır ve bu güç, dağıtık defterlerin işlem yapmasını, akıllı sözleşmeler yürütmesini, DApp’leri devreye almasını sağlar. Ağ sırayla çalışıyorsa, her düğüm her işlemi işlemek zorundadır. Bu nedenle işlemlerin doğrulanması çok zaman alır. Örneğin, Ethereum saniyede en fazla 10 işlem gerçekleştirebilir.
Blok zincirine yeni düğümler eklense bile, ağın performansı artmaz; sadece doğrulama zinciri uzar.
Sharding’in temelinde, doğrusal yürütme modelinden vazgeçilip paralel bir modele geçilmesi yatar. Bu modelde shard’lar yalnızca belirli hesaplamaları yapar ve birçok işlemi aynı anda işler. Adeta “blok zinciri içinde blok zinciri” gibi çalışırlar ve tüm bilgilerini ana zincire, sıkıştırılmış biçimde aktarırlar.
Sharding’in dezavantajları
Sharding’in iki temel sorunu vardır: shard’lar arası iletişim ve güvenlik.
- Communication. Eğer ağı izole sektörlere bölerseniz, her biri fiilen ayrı bir blok zinciri olur. Bir shard’daki kullanıcılar ve merkeziyetsiz uygulamalar, diğer shard’daki kullanıcı ve uygulamalarla yalnızca özel bir iletişim protokolü ile etkileşime girebilir.
- Security. Shard’lı bir ağda, tek bir shard’ın kontrolünü ele geçirmek, tüm ağın kontrolünü ele geçirmekten çok daha kolaydır; çünkü gereken hash oranı çok daha düşüktür. Örneğin, Bitcoin ağında %51 saldırısı yapmak için milyarlarca dolarlık donanım ve günde yüz milyonlarca dolarlık elektrik gerekir. Bu saldırı pahalı, kârsız ve pratik değildir. Ancak tek bir shard’ı ele geçirmek çok daha ucuz ve kolaydır.
Sharding kesin bir çözüm değildir; karmaşıklıklar ve güvenlik riskleri getirir. Bir saldırgan, segmentlere ayrılmış blok zincirinde tek bir shard’ı ele geçirerek, daha az işlem gücüyle kötü niyetli işlemler gerçekleştirebilir ve tüm ağı riske atabilir.
Ayrıca, farklı düğüm grupları farklı blok zinciri segmentlerini yönettiği için her shard aslında ayrı bir ağ gibi çalışır. Bu segmentler arasında sorunsuz iletişim için özel mekanizmalara ihtiyaç vardır.
Yanlış uygulama, çift harcama gibi sorunlara yol açabilir ve bu da ağ güvenliğini ciddi şekilde etkiler. Sharding mevcut blok zinciri ağlarında uygulaması da zordur; çünkü ağın bölünmesini ve verilerin yeniden atanmasını gerektirir.
Ethereum, bu soruna rastgele örnekleme kullanan bir çözüm sunar. Shard protokolleri, blok doğrulamasını onaylamak için rastgele farklı segmentlere atanır. Bu, ağın proof-of-stake konsensüs yöntemine geçişiyle mümkün olmuştur.
Sharding’i uygulayan ağlar
Sharding’i ilk tanıtan ağ Zilliqa’dır. Kendini, sharding ile ölçeklenebilirlik sorunlarını çözmeyi amaçlayan bir blok zinciri platformu olarak tanımlar. Testnet aşamasında saniyede 2.828 işlem gerçekleştirmiştir.
NEAR blok zinciri ekosistemi, kendini sharded PoS blok zinciri olarak tanımlar ve sharding teknolojisinin, düşük donanımlı cihazlarda bile çalışabilecek kadar küçük düğümleri desteklediğini iddia eder.
Ethereum da sharding teknolojisini uygulamayı planlamaktadır. Cardano, QuarkChain ve Plian gibi diğer ağlar da sharding’i kullanmaktadır.
Sonuç
Teorik olarak, sharding teknolojisi dezavantajları giderilirse blok zinciri üçlemesini nihayet çözebilir. Eğer bu sağlanırsa, blok zincirleri merkeziyetsizlikten veya güvenlikten ödün vermeden ölçeklenebilir hale gelebilir.