

Sharding, bir blokzincirin işlem ve veri yükünü shard adı verilen daha küçük parçalara bölen ölçekleme yöntemidir. Her parçayı farklı node (düğüm) grupları paralel işler. Böylece ağın toplam kapasitesi artabilir. Aynı zamanda shard’lar arası iletişim ve güvenlik gibi zorluklar ortaya çıkabilir.
Kavramın kökeni blokzincirlerden daha eskidir. Normalde veritabanı yönetiminde büyük veri kümelerini parçalara ayırmak yaygın bir tekniktir. Blokzincirler ise aynı fikri ölçeklenebilirlik sorununa uyarlamıştır. Her node’un tüm işlemi doğrulaması güvenliği artırır ama ağ büyüdükçe kapasite sınırlanır.
Sharding hangi sorunu çözer?
Klasik blokzincirlerde her node ağdaki tüm işlemleri doğrular. Bu yaklaşım güvenliği artırır ama işlem kapasitesini sınırlar. Sharding yükü parçalara bölerek her node’un yalnızca kendi payına düşen işlemlerle ilgilenmesini sağlar. Böylece kapasite ağ büyüdükçe artabilir.
Yine de sharding performansı sınırsız artırmaz. Kazanç ağ tasarımına, doğrulayıcı sayısına ve shard’lar arası iletişim mekanizmasına bağlıdır.
Blokzincirde sharding nasıl çalışır?
Sharding’de ağ birden fazla shard’a ayrılır ve işlemler kurallara göre bu shard’lara yönlendirilir. Her shard kendi doğrulayıcı grubuyla çalışır. Doğrulayıcılar genellikle rastgele atanır. Bir koordinasyon katmanı da shard’ların sonuçlarının uyumlu kalmasını sağlar.
Doğrulayıcıların shard’lara rastgele atanması güvenlik için önemlidir. Saldırganlar belirli bir shard’ın çoğunluğunu ele geçirmeye çalışabilir. Bu saldırıya shard takeover denir.
Shard’lar arası iletişim nasıl işler?
Shard’lar birbirinden tamamen kopuk çalışırsa bir shard’daki kullanıcı başka bir shard’daki uygulamayla etkileşime giremez. Bu nedenle cross-shard iletişim, yani shard’lar arası iletişim gerekir. Bir shard, işlemi başlatır ve doğrulanabilir bir mesaj oluşturur. Hedef shard bu mesajı kontrol eder ve işlemi kendi tarafında tamamlar.
Sharding türleri
Akademik kaynaklar sharding’i genellikle üç ana türe ayırır. Bu türler ağ, işlem ve durum sharding’i olarak sıralanır.
- Ağ sharding’i: Node’lar gruplara ayrılır ve her grup belirli işlemlerin doğrulanmasında görev alır.
- İşlem sharding’i: İşlemler farklı shard’lara dağıtılır ve her shard kendisine atanan işlemleri işler.
- Durum sharding’i: Hesap bakiyeleri ve akıllı sözleşme verileri gibi ağın durumu shard’lar arasında bölünür. Böylece her node’un tüm durumu saklaması gerekmeyebilir.
Sharding’in avantajları ve riskleri
Sharding’in değeri yükü dağıtabilmesinden gelir. Tasarımı ise zordur. Paralel işlemler sayesinde farklı shard’lar işlemleri aynı anda yürütür. Böylece ağın toplam işlem kapasitesi de shard sayısıyla birlikte artabilir. Aynı zamanda node’ların tüm işlem yükünü üstlenmemesi daha hafif node’lar oluşturur.
Dezavantaj tarafında bir shard’ı koruyan doğrulayıcı sayısı azsa saldırganın o shard’ı ele geçirmesi teorik olarak kolaylaşır. Bunun yanında bir işlem birden fazla shard’ı etkiliyorsa işlemin iki kez uygulanması ya da yalnızca bir tarafın güncellenmesi önlenmelidir. Son olarak akıllı sözleşme geliştiricileri uygulamanın hangi shard’da çalışacağını ve diğer shard’larla nasıl iletişim kuracağını hesaba katmak zorunda olduğu için tasarımsal zorluklar yaşanabilir.
Sharding ile Katman-2 (Layer-2) çözümleri arasındaki fark nedir?
Sharding, ağın kendisini parçalara bölerek ölçeklenmeyi hedefler. Rollup gibi Katman-2 çözümleri ise işlemleri ana zincirin dışında yürütür ve sonuçları ana ağa aktarır. İki yöntemin birlikte kullanılması mümkündür.
Ana zincire Katman-1 (Layer-1) denir. Ethereum yol haritasına göre rollup’lar işlemleri kendi ayrı zincirlerinde yürütür ve doğrulama ile güvenlik için Ethereum’u kullanır. Sharding ise Katman-1’in kendi yükünü bölmeyi amaçlar.
Ethereum ağında sharding
Ethereum’un ilk planı, ana zinciri 64 shard zincirine bölmek olmuştur. Plana göre her shard zincirinin kendi doğrulayıcı grubu olacaktır. Ancak rollup’ların beklenenden hızlı gelişmesi bu planın gerekliliğini azaltmıştır. Ethereum yol haritası, shard zincirlerinin artık gerekli olmadığını ve yol haritasından çıkarıldığını belirtir.
Bugünkü yaklaşımın merkezinde rollup’lara ucuz veri alanı sağlayan blob’lar vardır. Proto-danksharding (EIP-4844), rollup verilerinin bloklara blob adı verilen paketler hâlinde eklenmesine olanak tanır.
Fusaka güncellemesi 3 Aralık 2025’te devreye girmiştir. EIP-7594 ile node’lar her blob’un tamamını indirmek yerine verinin küçük örneklerini kontrol ederek erişilebilirliği doğrulayabilir. Bu nedenle Ethereum’un yaklaşımı klasik sharding ile aynı değildir. Klasik modelde her shard işlemleri yürütür. Ethereum’da ise işlemler ağırlıklı olarak rollup’larda yürütülür ve Katman-1 veri kapasitesini büyütür.
