EIP-4844 Nedir?
Ethereum’un artan kullanıcı tabanına uyum sağlamak, işlem hızını artırmak ve maliyetleri düşürmek amacıyla çeşitli çözümler geliştiriliyor. Ethereum İyileştirme Önerileri (EIPler) tam da bu noktada Ethereum’a yapılacak geliştirmeleri ifade ediyor. EIP’ler Ethereum topluluk üyelerinin potansiyel geliştirmeleri önermesi ve tartışması için bir araç görevinde. Bu yazıda bir ethereum iyileştirme önerisi olan EIP-4844’ü inceleyeceğiz.
EIP-4844 (Proto-danksharding) Nedir?
Proto-danksharding önerisi olarak da adlandırılan EIP-4844, Vitalik Buterin, Dankrad Feist, Protolambda ve ethereum ekosistemindeki diğer topluluk üyeleri tarafından oluşturuldu. EIP-4844'ün temel amacı, merkeziyetsiz yönetimden ödün vermeden özellikle rolluplar için ağdaki gaz ücretlerini azaltmak ve sınırlı işlem hacmini genişletmek. Bu önerinin temelindeki motivasyon, tam Danksharding’e geçişte Ethereum L1’de artan işlem ücretlerine çözüm bulmak. Rolluplar, ücretleri önemli ölçüde düşüren bir ölçeklendirme çözümü olarak ortaya çıkmış olsa da birçok kullanıcı için işlem ücretleri hâlâ maliyetli durumda.
Rolluplar’ın Gas Ücretlerini Düşürmeyi Amaçlayan “Veri Blobları” Ne İşe Yarıyor?
Proto-Danksharding, rollup’ların bloklara veri eklemesini daha ekonomik hale getirir. Bu yöntem, calldata içinde işlem yayınlamanın pahalı olmasını ele alıyor ve bunun yerine veri bloblarını öneriyor. Temelde, bir blob işlemi; “blob” olarak adlandırılan tipik işlemlerden daha büyük miktarda veriyi (~125kB), standart işlemlere kıyasla önemli ölçüde düşük bir maliyetle tutar. Böylece, rollup’lar için veri iletim maliyetini düşürerek kullanıcılar için işlem maliyetini azaltır. Bu veriler ise KZG adlı kriptografik taahhüt şeması kullanılarak güvende tutulmakta. (yazının devamında detaylı açıklıyorum.)
Proto-danksharding’in çalışması için blob verilerinin yalnızca yeterli bir süre boyunca düğümlerde saklanması yeterlidir. Önemli bir nokta olarak, blob’lar yalnızca uzlaşma katmanında, özellikle Beacon düğümleri içinde saklanıyor. Böylece, yürütme katmanından (EVM) ayrı bir ücret pazarı oluşturarak işlemler için ödeme yapmak üzere kullanılan geleneksel gas pazarından bağımsız bir alan oluşturuyor. Gereksiz veri depolamasını önlemek için 1–3 ay içinde bloblar siliniyor. Ancak bu, işlem verilerinin kaybolduğu anlamına gelmiyor, yalnızca on-chain depolanmadığı anlamına geliyor. Rollup operatörleri, kullanıcılar veya üçüncü taraflar isterlerse verileri hala off-chain saklayabilir.
Nedir Bu Sharding?
Sharding, ağın “shard” adı verilen daha küçük bölümlere ayrıldığı blockchain ağları için bir ölçeklenebilirlik çözümüdür. Her bir parça kendi işlemlerini işler ve blok zincirin durumunun bir kısmını korur, paralel işlem işlemeye ve bireysel düğümlerdeki yükün azaltılmasına olanak tanır, böylece ağın kapasitesi ve işlem hızı artar. Bu, merkeziyetsizliği ve güvenliği korurken ölçeklenebilirliği artırmak amacıyla Ethereum 2.0 yükseltmesindeki önemli bir özelliktir.
Peki Bunları Anladıysak, Proto-Danksharding ile Amaçlanan Asıl Yükseltme “Tam Danksharding” Nedir?
Ethereum’un sharding yolculuğu, iki aşamalı bir sürece sahip. İlk aşama olan EIP-4844, ağı tam sharding’e hazırlamak amacıyla bir geçiş yükseltmesi olarak hizmet ediyor.
Danksharding, Ethereum’u genişletmeyi ve ölçeklenebilirliğini artırmayı amaçlayan saniyedeki işlem sayısını şuandakinin çok çok üstüne taşımayı amaçlayan bir sharding mimarisi. Temelde, yukarıda bahsettiğim “blob” adı verilen verileri kullanarak Rollup’lar gibi Layer 2 protokollerine ek veri alanı sağlayacak. Tam Danksharding’in blok başına maksimum blob sayısını (şuan Proto-Dankshardingte bu sayı 4) 64'e çıkarması bekleniyor. Şu anki Ethereum Layer 1 işlem hızı yaklaşık 15 TPS iken, Layer 2 Rollup’ın TPS’i 100 civarındadır. Danksharding’in tahmini olarak Ethereum’un TPS’sini 100.000'e çıkarması bekleniyor. Ayrıca Danksharding’in, Ethereum’un mevcut 70 KB/s olan veri erişilebilirlik hızını 1.3 MB/s’ye çıkarması beklenmekte.
Danksharding tarafından getirilen başlıca bir diğer yenilik ise birleşik ücret piyasası. Her biri belirli bloklara ve belirli blok önericilere sahip sabit sayıda shard olması yerine, Danksharding’de yalnızca bir önerici vardır ve bu önerici tüm işlemleri ve bu slota giren tüm verileri seçer.
Bu tasarımın doğrulayıcılara yüksek sistem gereksinimleri dayatmasını önlemek için Proposer-Builder ayrımı (PBS) tanıtılmıştır:
1. Proposer (Önerici):
- Proposer, bir bloğa hangi işlemlerin eklenmesi gerektiğine karar veren kişidir.
- İşlemleri seçme ve önerme sürecinden sorumludur.
- Genellikle bir tür doğrulayıcı veya madenci olarak düşünülebilir.
- Önerici, bloğa hangi işlemlerin dahil edileceğini belirlerken kendi çıkarlarını veya başkalarının çıkarlarını koruma eğiliminde olabilir, bu duruma “Madenci/Maximal Extraction Value (MEV)” denir.
2. Builder (Oluşturucu):
- Builder, blokları oluşturan kişidir.
- Proposer tarafından seçilen işlemleri alır ve bunları blok içinde düzenler.
- Oluşturulan bloğu ağa gönderir.
Bu ayrım, blok oluşturma sürecindeki güç dengesizliklerini ele almayı amaçlar. Geleneksel sharding veya blok zincir sistemlerinde, aynı kişi veya gruplar genellikle hem işlemleri seçen hem de blokları oluşturan rolleri üstlenir. Bu durumda, MEV gibi sorunlar ortaya çıkabilir, çünkü bir kişi veya grup, seçtikleri işlemleri avantajlı bir şekilde bloğa ekleyebilir.
Danksharding’de Proposer-Builder ayrımı, bu sorunları çözmeyi amaçlar. Proposer ve Builder rolleri arasındaki ayrım, Proposer’ın işlemleri seçerken Builder’ın içeriğini görmemesini sağlar. Bu, daha adil ve tarafsız bir blok oluşturma süreci sağlar ve MEV gibi sorunların önüne geçmeyi hedefler.
Tam Danksharding’i gerçekleştirmek için Ethereum’un iki teknik uygulama yapması gerekmektedir:
- Veri Erişilebilirliği Örneklemesi (DAS)
- Silme kodlaması
Veri Erişilebilirliği Örneklemesi (DAS)
Layer-2 rollup işlemlerini doğrulamak için DAS, sıralayıcının bir araya getirdiği veri parçalarının zincir üzerinde en az %50'sinin kullanılabilir olduğunu doğrulamayı amaçlar. Tam düğümler veri örneklemesi yaptıkça verinin tamamına sahip olmayı gerektirmeden veri kullanılabilirliğini sağlamak için güvenilir bir yöntem haline gelmiş olur.
DAS aracılığıyla Ethereum geliştiricileri, düğümlerdeki hesaplama yükünü artırmadan Ethereum’a gönderilen blob sayısını ve veri miktarını artırabileceklerini düşünüyor. Ayrıca, geliştiriciler gelecekteki güncellemelerde tarih sonlandırma gibi önerilerin uygulanması aracılığıyla düğümlerdeki hesaplama yükünü daha da azaltmayı planlamakta.
Silme Kodlaması (Erasure Encoding)
Silme kodlaması, veri örneklemenin yeteneklerini artırmak için kullanılan bir teknik. Bu teknik, kötü niyetli bir saldırganın veriyi manipüle etmesini zorlaştırmak için tasarlanmıştır.
Bir saldırgan verinin sadece bir kısmını örneğin %1 ila %49'unu saklasa bile silme kodlaması bu eksik veriyi doğru bir şekilde yerine koymak için kullanılır. Bu teknik, veriyi polinomlarla temsil ederek çalışır yani matematiksel ifadelerdeki terimlerin sayısı önemlidir. Reed-Solomon kodu gibi silme kodlaması yöntemleri, bilinen verilere dayanarak eksik veri parçalarını hatasız bir şekilde yeniden oluşturabilen özel matematiksel formüllerdir.
Özetle, silme kodlaması, kötü niyetli bir saldırganın veriyi saklamak için önemli bir kısmını kaybetmesi durumunda bile, eksik bilgileri doğru bir şekilde yerine koymak için kullanılan bir güvenlik önlemidir. Bu sayede, saldırganın veriyi etkili bir şekilde manipüle etmesi daha zor hale gelir.
DAS ile silme kodlamasının birleştirilmesi, tam Danksharding’in temelini oluşturur.
Cancun-Deneb Yükseltmesi
“Cancun-Deneb” yükseltmesi, Shanghai-Capella (Shapella) yükseltmesinden sonra Ethereum ağında beklenen önemli bir yükseltmedir. Dencun yükseltmesinin, ağın karşılaştığı en önemli sorunlardan olan ölçeklenebilirlik ve güvenlik gibi konulara çözüm getirmesi bekleniyor.
Dencun yükseltmesi, beş Ethereum İyileştirme Önerisi (EIP) tarafından önerilen değişiklikleri değerlendirerek ağı çeşitli yönlerden iyileştirmeyi hedefliyor.
Bu güncelleme, iki Ethereum katmanının her biri için büyük bir yükseltmeyi içeriyor: Yürütme katmanı için Cancun (Layer 1) ve konsensüs Katmanı (Layer 2) için Deneb.
Cancun-Deneb EIP’leri:
Bu hedefe ulaşmak için Dencun, ağı işlemlerin geçişini artırmak için proto-danksharding uygulayan EIP-4844 etrafında şekilleniyor.
Ayrıca güncelleme, on-chain veri depolama maliyetini düşürmeyi ve blok alanını optimize etmeyi amaçlayan EIP-1153'ü, çapraz zincir köprülerinin ve staking havuzlarının yapısını iyileştirecek EIP-4788’i, kullanıcı verilerini ve fonlarını korumayı artırmak amacıyla SELFDESTRUCT kodunu etkisiz hale getirecek EIP-6780'i ve EVM’e küçük kod değişiklikleri getirecek olan EIP-5656'yı da içerecek.
Bu yükseltmenin başlangıçta Ekim 2023'te uygulanması planlanmıştı. Ancak 2 Kasım’da yapılan All Core Developers Consensus Call #121 toplantısında, güncelleme 2024'ün ilk çeyreğine ertelendi.
KZG Seramonisi Nedir?
(Proto)-Danksharding, veri taahhütleri için küçük bir boyuta sahip olmasına rağmen kanıtlamanın ve doğrulamanın hızlı olması gereken bir taahhüt düzenini gerektirir. Bu düzenin karşılaması gereken kriterleri en iyi sağlayan polinom taahhüt düzeni, KZG taahhütleridir.
KZG kökü, Merkle köküne benzer, ancak KZG kökü, her pozisyonun bu polinom üzerinde bulunduğu bir noktaya bağlıdır. Proto-danksharding senaryosuna dayanarak KZG kökü, her bir veri noktasını bütün kümenin bir parçası olarak doğrulayabilen bir veri kümesine bağlıdır.
KZG düzeni, bir parola değerinde (diğer bir deyişle, eliptik bir eğri noktasında) değerlendirme yaparak polinoma yönelik taahhütte bulunur. Bu seremoninin amacı, belirli bir parola değerini oluştururken bu parolayı sadece bir kişinin bilebileceği bir şekilde korumak ve bunu yaparken bu parolanın yıllar sonra dahi kimse tarafından çözülemeyeceğine ikna etmektir.
KZG Seremonisi’nde, Ethereum topluluğundan birçok insan bir araya gelerek veri onaylama ve gizleme işlemi gerçekleştirir. Seramoni, katılımcıların birbirlerine rastgele diziler göndermesiyle başlar. Daha sonra bu diziler, bir önceki katılımcının dizisi ile birleştirilip rastgele veri eklemesi için kullanılır. (örnek: internet tarayıcısının mouse hareketi ölçümü) Oluşturulan bu veri bir sonraki katılımcıya iletilir ve yerel cihazlardan silinir.
Bir kişi bile bu işlemi dürüst bir şekilde yaparsa, sonuçta elde edilen veri, bir saldırgan tarafından tahmin edilemez hale gelir.
İşte Proto-dankshardingte kullanılan güvenlik mekanizması KZG Seramonisi de bu şekilde işliyor.