Veri kullanılabilirliği
"Güvenme, doğrula", Ethereum'da yaygın bir özdeyiştir. Buradaki ana fikir, düğümünüzün eşlerden aldığı bloklardaki tüm işlemleri yürüterek, teklif edilen değişikliklerin düğüm tarafından bağımsız olarak hesaplananlarla tam olarak eşleştiğinden emin olması ve böylece aldığı bilgilerin doğru olduğunu bağımsız olarak doğrulayabilmesidir. Bu, düğümlerin blok göndericilerinin dürüst olduğuna güvenmek zorunda olmadığı anlamına gelir. Veriler eksikse bu mümkün değildir.
Veri kullanılabilirliği, bir kullanıcının bir bloğu doğrulamak için gereken verilerin tüm ağ katılımcıları için gerçekten kullanılabilir olduğuna dair duyabileceği güveni ifade eder. Ethereum katman 1 (L1) üzerindeki tam düğümler için bu nispeten basittir; tam düğüm her bloktaki tüm verilerin bir kopyasını indirir - indirmenin mümkün olması için verilerin kullanılabilir olması gerekir. Eksik veriye sahip bir blok, blokzincire eklenmek yerine reddedilir. Bu "zincir içi veri kullanılabilirliği"dir ve monolitik blokzincirlerin bir özelliğidir. Tam düğümler, her işlemi kendileri için indirip yürüttüklerinden geçersiz işlemleri kabul etmeleri için kandırılamazlar. Ancak modüler blokzincirler, katman 2 (L2) toplamalar ve hafif istemciler için veri kullanılabilirliği ortamı daha karmaşıktır ve daha gelişmiş doğrulama prosedürleri gerektirir.
Ön koşullar
Blokzincir temelleri, özellikle de mutabakat mekanizmaları hakkında iyi bir anlayışa sahip olmalısınız. Bu sayfa ayrıca okuyucunun bloklar, işlemler, düğümler, ölçeklendirme çözümleri ve diğer ilgili konulara aşina olduğunu varsayar.
Veri kullanılabilirliği sorunu
Veri kullanılabilirliği sorunu, blokzincire eklenen bazı işlem verilerinin özetlenmiş biçiminin gerçekten bir dizi geçerli işlemi temsil ettiğini tüm ağa kanıtlama ihtiyacıdır, ancak bunu tüm düğümlerin tüm verileri indirmesini gerektirmeden yapmaktır. Tam işlem verileri, blokları bağımsız olarak doğrulamak için gereklidir, ancak tüm düğümlerin tüm işlem verilerini indirmesini gerektirmek ölçeklendirme önünde bir engeldir. Veri kullanılabilirliği sorununa yönelik çözümler, verileri kendileri için indirmeyen ve depolamayan ağ katılımcılarına, tam işlem verilerinin doğrulama için kullanılabilir hale getirildiğine dair yeterli güvence sağlamayı amaçlar.
Hafif düğümler ve Katman 2 (L2) toplamalar, güçlü veri kullanılabilirliği güvenceleri gerektiren ancak işlem verilerini kendileri için indirip işleyemeyen ağ katılımcılarının önemli örnekleridir. İşlem verilerini indirmekten kaçınmak, hafif düğümleri hafif yapan ve toplamaların etkili ölçeklendirme çözümleri olmasını sağlayan şeydir.
Veri kullanılabilirliği, blokları doğrulamak için durum verilerini indirmesi ve depolaması gerekmeyen gelecekteki "durumsuz" Ethereum istemcileri için de kritik bir endişedir. Durumsuz istemcilerin yine de verilerin bir yerlerde mevcut olduğundan ve doğru bir şekilde işlendiğinden emin olmaları gerekir.
Veri kullanılabilirliği çözümleri
Veri kullanılabilirliği örneklemesi (DAS)
Veri Kullanılabilirliği Örneklemesi (DAS), ağın herhangi bir bireysel düğüme çok fazla yük bindirmeden verilerin kullanılabilir olduğunu kontrol etmesinin bir yoludur. Her düğüm (staking yapmayan düğümler dahil), toplam verinin rastgele seçilmiş küçük bir alt kümesini indirir. Örneklerin başarıyla indirilmesi, tüm verilerin mevcut olduğunu yüksek bir güvenle doğrular. Bu, belirli bir veri kümesini yedekli bilgilerle genişleten veri silme kodlamasına dayanır (bunun yapılma şekli, veriler üzerine polinom olarak bilinen bir fonksiyonu uydurmak ve bu polinomu ek noktalarda değerlendirmektir). Bu, gerektiğinde orijinal verilerin yedekli verilerden kurtarılmasını sağlar. Bu veri oluşturmanın bir sonucu, orijinal verilerin herhangi biri kullanılamıyorsa, genişletilmiş verilerin yarısının eksik olacağıdır! Her düğüm tarafından indirilen veri örneklerinin miktarı, verilerin yarısından daha azı gerçekten mevcut ise, her istemci tarafından örneklenen veri parçalarından en az birinin eksik olma ihtimali son derece yüksek olacak şekilde ayarlanabilir.
DAS, Tam Danksharding uygulandıktan sonra Rollup operatörlerinin işlem verilerini kullanılabilir hale getirmelerini sağlamak için kullanılacaktır. Ethereum düğümleri, tüm verilerin var olduğundan emin olmak için yukarıda açıklanan yedeklilik şemasını kullanarak blob'larda sağlanan işlem verilerini rastgele örnekleyecektir. Aynı teknik, blok üreticilerinin hafif istemcileri güvence altına almak için tüm verilerini kullanılabilir hale getirmelerini sağlamak için de kullanılabilir. Benzer şekilde, teklifçi-oluşturucu ayrımı (PBS) altında, yalnızca blok oluşturucunun tüm bir bloğu işlemesi gerekecektir - diğer doğrulayıcılar veri kullanılabilirliği örneklemesi kullanarak doğrulama yapacaktır.
Veri kullanılabilirliği komiteleri
Veri Kullanılabilirliği Komiteleri (DAC'ler), veri kullanılabilirliğini sağlayan veya onaylayan güvenilir taraflardır. DAC'ler, DAS yerine veya onunla birlikte (opens in a new tab) kullanılabilir. Komitelerle birlikte gelen güvenlik garantileri, belirli kuruluma bağlıdır. Örneğin Ethereum, hafif düğümler için veri kullanılabilirliğini onaylamak amacıyla rastgele örneklenmiş doğrulayıcı alt kümelerini kullanır.
DAC'ler bazı validium'lar tarafından da kullanılır. DAC, verilerin kopyalarını çevrimdışı olarak depolayan güvenilir bir düğüm kümesidir. Bir anlaşmazlık durumunda DAC'nin verileri kullanılabilir hale getirmesi gerekir. DAC üyeleri ayrıca söz konusu verilerin gerçekten mevcut olduğunu kanıtlamak için zincir içi onaylar yayınlarlar. Bazı validium'lar DAC'leri bir hisse kanıtı (PoS) doğrulayıcı sistemiyle değiştirir. Burada herkes doğrulayıcı olabilir ve verileri zincir dışı depolayabilir. Ancak, bir akıllı sözleşmeye yatırılan bir "teminat" sağlamaları gerekir. Doğrulayıcının verileri saklaması gibi kötü niyetli davranışlar durumunda, teminattan ceza kesintisi yapılabilir. Hisse kanıtı veri kullanılabilirliği komiteleri, dürüst davranışı doğrudan teşvik ettikleri için normal DAC'lerden önemli ölçüde daha güvenlidir.
Veri kullanılabilirliği ve hafif düğümler
Hafif düğümler, aldıkları blok başlıklarının doğruluğunu blok verilerini indirmeden doğrulamalıdır. Bu hafifliğin bedeli, tam düğümlerin yaptığı gibi işlemleri yerel olarak yeniden yürüterek blok başlıklarını bağımsız olarak doğrulayamamaktır.
Ethereum hafif düğümleri, bir senkronizasyon komitesine atanmış 512 doğrulayıcıdan oluşan rastgele kümelere güvenir. Senkronizasyon komitesi, kriptografik bir imza kullanarak hafif istemcilere başlıktaki verilerin doğru olduğunu bildiren bir DAC görevi görür. Senkronizasyon komitesi her gün yenilenir. Her blok başlığı, hafif düğümleri bir sonraki bloğu hangi doğrulayıcıların imzalamasını bekleyecekleri konusunda uyarır, böylece gerçek senkronizasyon komitesi gibi davranan kötü niyetli bir gruba güvenmeleri için kandırılamazlar.
Ancak, bir saldırgan bir şekilde kötü niyetli bir blok başlığını hafif istemcilere iletmeyi başarır ve onları bunun dürüst bir senkronizasyon komitesi tarafından imzalandığına ikna ederse ne olur? Bu durumda, saldırgan geçersiz işlemleri dahil edebilir ve hafif istemci, blok başlığında özetlenen tüm durum değişikliklerini bağımsız olarak kontrol etmediği için bunları körü körüne kabul eder. Buna karşı korunmak için hafif istemci sahtekarlık kanıtları kullanabilir.
Bu sahtekarlık kanıtlarının çalışma şekli şöyledir: Ağ etrafında dedikodusu yapılan geçersiz bir durum geçişini gören tam bir düğüm, önerilen bir durum geçişinin belirli bir işlem kümesinden kaynaklanamayacağını gösteren küçük bir veri parçasını hızla oluşturabilir ve bu verileri eşlere yayınlayabilir. Hafif düğümler bu sahtekarlık kanıtlarını alabilir ve bunları kötü blok başlıklarını reddetmek için kullanarak tam düğümlerle aynı dürüst zincirde kalmalarını sağlayabilir.
Bu, tam düğümlerin tam işlem verilerine erişimi olmasına dayanır. Kötü bir blok başlığı yayınlayan ve aynı zamanda işlem verilerini kullanılabilir hale getirmeyen bir saldırgan, tam düğümlerin sahtekarlık kanıtları oluşturmasını engelleyebilir. Tam düğümler kötü bir blok hakkında bir uyarı sinyali verebilir, ancak uyarılarını kanıtla destekleyemezler, çünkü kanıtı oluşturmak için veriler kullanılabilir hale getirilmemiştir!
Bu veri kullanılabilirliği sorununun çözümü DAS'tır. Hafif düğümler, tam durum verilerinin çok küçük rastgele parçalarını indirir ve tam veri kümesinin mevcut olduğunu doğrulamak için örnekleri kullanır. N rastgele parça indirdikten sonra tam veri kullanılabilirliğini yanlış varsaymanın gerçek olasılığı hesaplanabilir (100 parça için şans 10^-30'dur (opens in a new tab), yani inanılmaz derecede düşüktür).
Bu senaryoda bile, sadece birkaç baytı saklayan saldırılar, rastgele veri istekleri yapan istemciler tarafından fark edilmeyebilir. Silme kodlaması, önerilen durum değişikliklerini kontrol etmek için kullanılabilecek küçük eksik veri parçalarını yeniden oluşturarak bunu düzeltir. Daha sonra yeniden oluşturulan veriler kullanılarak bir sahtekarlık kanıtı oluşturulabilir ve hafif düğümlerin kötü başlıkları kabul etmesi engellenebilir.
Not: DAS ve sahtekarlık kanıtları, hisse kanıtı (PoS) Ethereum hafif istemcileri için henüz uygulanmamıştır, ancak yol haritasındadırlar ve büyük olasılıkla ZK-SNARK tabanlı kanıtlar şeklini alacaklardır. Günümüzün hafif istemcileri bir tür DAC'ye güvenir: senkronizasyon komitesinin kimliklerini doğrularlar ve ardından aldıkları imzalı blok başlıklarına güvenirler.
Veri kullanılabilirliği ve katman 2 toplamalar
gibi Katman 2 (L2) ölçeklendirme çözümleri, işlemleri zincir dışı işleyerek işlem maliyetlerini düşürür ve Ethereum'un işlem kapasitesini artırır. Rollup işlemleri sıkıştırılır ve Ethereum'da gruplar halinde yayınlanır. Gruplar, Ethereum'daki tek bir işlemde binlerce bireysel zincir dışı işlemi temsil eder. Bu, temel katmandaki tıkanıklığı azaltır ve kullanıcılar için ücretleri düşürür.
Ancak, Ethereum'da yayınlanan 'özet' işlemlere güvenmek, yalnızca önerilen durum değişikliğinin bağımsız olarak doğrulanabilmesi ve tüm bireysel zincir dışı işlemlerin uygulanmasının bir sonucu olduğunun onaylanabilmesi durumunda mümkündür. Rollup operatörleri işlem verilerini bu doğrulama için kullanılabilir hale getirmezlerse, Ethereum'a yanlış veriler gönderebilirler.
İyimser toplamalar, sıkıştırılmış işlem verilerini Ethereum'da yayınlar ve bağımsız doğrulayıcıların verileri kontrol etmesine izin vermek için bir süre (genellikle 7 gün) bekler. Herhangi biri bir sorun tespit ederse, bir sahtekarlık kanıtı oluşturabilir ve bunu Rollup'a meydan okumak için kullanabilir. Bu, zincirin geri alınmasına ve geçersiz bloğun atlanmasına neden olur. Bu sadece veriler mevcutsa mümkündür. Şu anda, iyimser toplamaların işlem verilerini L1'e göndermesinin iki yolu vardır. Bazı toplamalar, verileri kalıcı olarak zincir içi yaşayan CALLDATA olarak kalıcı olarak kullanılabilir hale getirir. EIP-4844'ün uygulanmasıyla, bazı toplamalar işlem verilerini bunun yerine daha ucuz blob depolamasına gönderir. Bu kalıcı bir depolama değildir. Bağımsız doğrulayıcılar, veriler Ethereum katman 1'den (L1) silinmeden önce yaklaşık 18 gün içinde blob'ları sorgulamalı ve itirazlarını dile getirmelidir. Veri kullanılabilirliği, Ethereum protokolü tarafından yalnızca bu kısa sabit pencere için garanti edilir. Bundan sonra, Ethereum ekosistemindeki diğer varlıkların sorumluluğu haline gelir. Herhangi bir düğüm, DAS kullanarak, yani blob verilerinin küçük, rastgele örneklerini indirerek veri kullanılabilirliğini doğrulayabilir.
Sıfır bilgi (ZK) toplamaları, durum geçişlerinin doğruluğunu garanti ettiği için işlem verilerini yayınlamaya ihtiyaç duymaz. Ancak, durum verilerine erişim olmadan ZK-Rollup'ın işlevselliğini garanti edemeyeceğimiz (veya onunla etkileşime giremeyeceğimiz) için veri kullanılabilirliği hala bir sorundur. Örneğin, bir operatör Rollup'ın durumu hakkındaki ayrıntıları saklarsa kullanıcılar bakiyelerini bilemezler. Ayrıca, yeni eklenen bir blokta yer alan bilgileri kullanarak durum güncellemeleri gerçekleştiremezler.
Veri kullanılabilirliği ve veri kurtarılabilirliği
Veri kullanılabilirliği, veri kurtarılabilirliğinden farklıdır. Veri kullanılabilirliği, tam düğümlerin belirli bir blokla ilişkili tüm işlem kümesine erişebildiğinin ve doğrulayabildiğinin güvencesidir. Bu, verilerin sonsuza kadar erişilebilir olduğu anlamına gelmez.
Veri kurtarılabilirliği, düğümlerin blokzincirden geçmiş bilgileri alabilme yeteneğidir. Bu geçmiş veriler yeni blokları doğrulamak için gerekli değildir, yalnızca tam düğümleri başlangıç bloğundan eşzamanlamak veya belirli geçmiş isteklere hizmet etmek için gereklidir.
Çekirdek Ethereum protokolü öncelikle veri kurtarılabilirliği ile değil, veri kullanılabilirliği ile ilgilenir. Veri kurtarılabilirliği, üçüncü taraflarca çalıştırılan küçük bir arşiv düğümü popülasyonu tarafından sağlanabilir veya Portal Ağı (opens in a new tab) gibi merkeziyetsiz dosya depolama kullanılarak ağa dağıtılabilir.
Daha fazla bilgi
- Veri Kullanılabilirliği Nedir? (opens in a new tab)
- Veri Kullanılabilirliği Nedir? (opens in a new tab)
- Veri kullanılabilirliği kontrollerine giriş (opens in a new tab)
- Parçalama (sharding) + DAS teklifinin açıklaması (opens in a new tab)
- Veri kullanılabilirliği ve silme kodlaması üzerine bir not (opens in a new tab)
- Veri kullanılabilirliği komiteleri. (opens in a new tab)
- Hisse kanıtı veri kullanılabilirliği komiteleri. (opens in a new tab)
- Veri kurtarılabilirliği sorununa çözümler (opens in a new tab)
- Veri Kullanılabilirliği Veya: Toplamalar Endişelenmeyi Bırakıp Ethereum'u Sevmeyi Nasıl Öğrendi (opens in a new tab)
- EIP-7623: Çağrı Verisi Maliyetini Artırma (opens in a new tab)