Avail Nedir?
Avail: Data Availability’e1 odaklanan bir temel katman.
Avail, yeni nesil, trust-minimized2 uygulamaların ve sovereign rollup'ların ihtiyaçlarını karşılamak üzere tasarlanmış, data availability’e odaklanan bir temel katmandır. Avail'in gücü, light client’ların peer-to-peer3 ağ üzerinden sampling4 yoluyla veri kullanılabilirliğini kolayca doğrulamasını sağlayan yenilikçi güvenlik yaklaşımında yatmaktadır. Avail'in modüler yaklaşımı, geliştiricilerin validator setleri veya token ekonomisiyle ilgili endişelenmelerine gerek kalmaması nedeniyle blokzinciri entegrasyonunu basitleştirir. Avail'in benzersiz veri kullanılabilirliği arayüzü ve güçlü güvenlik özellikleri sayesinde, geliştiriciler zero-knowledge5 veya fraud-proof6 temelli blokzinciri uygulamalarını daha fazla verimlilik ve kolaylıkla oluşturabilirler.
Avail, temelde işlem sıralamasına ve yayımlanmasına öncelik verirken, kullanıcıların tüm blokları indirmeleri gerekmeden blok verilerinin kullanılabilirliğini doğrulamalarını sağlar. Avail'in veri agnostik yapısı, onu tanımlayan özelliklerden biridir. EVM, WASM ve yeni bir custom runtimes’da dahil olmak üzere çeşitli execution7 ortamlarını destekler, bu da çeşitli blokzinciri uygulamaları için çok yönlü bir temel oluşturur.
1data availability: verinin erişilebilir/kullanılabilir olup olmaması ile ilgili durum.
2trust-minimized: üçüncü taraf güveni gerektirmeyen çözüm.
3peer to peer (P2P): eşler arası, her yazılım çalıştıran bilgisayarın, yazılım çalıştıran diğer bilgisayar ile eşit düzeyde ağa katılıp aynı kaynağı kullanması.
4data availability sampling: bütün halindeki verinin, küçük bir parçasına bakılarak yapılan kontrol.
5zero knowledge: sıfır bilgi kanıtı.
6fraud-proof: hile kanıtı.
7execution: yürütme.
L2 ölçeklenebilirliğine genel bakış:
Geleneksel blokzinciri ağlarında, full node’lar* tüm işlemleri gerçekleştirerek bütünlüğü ve güvenliği sağlar. Ancak, güvenli olsa da bu model, kapsamlı işlem gereksinimleri nedeniyle verimi ve ölçeklenebilirliği sınırlar. Katman 2 (L2) çözümleri, bu kısıtlamaları ele almak için ortaya çıkmış ve işlem yürütmenin büyük kısmını ana zincirden (Katman 1) uzaklaştırarak gelişmiş performans sunmuştur.
Avantajlarına rağmen L2 çözümleri, özellikle hem verimli hem de uygun maliyetli bir şekilde veri kullanılabilirliğini ve işlem bütünlüğünü korumada zorluklarla karşılaşmaktadır. Rollup'lar, işlemleri zincir dışında gerçekleştirerek ve ardından toplu sonuçları ana zincire geri göndererek bu zorlukları azaltmayı amaçlar. Bu yaklaşım, Katman 1 üzerindeki yükü önemli ölçüde azaltarak daha düşük operasyonel maliyetlere ve daha düşük işlem ücretlerine yol açar ve blokzinciri ağları için daha ölçeklenebilir bir çözüm sunar.
Rollup'lar iki ana biçimden meydana gelir:
Optimistic Rollups:
Optimistic Rollup’lar, aksi kanıtlanmadıkça işlemlerin geçerli olduğunun varsayıldığı “presumed validity” ilkesine göre çalışır. Yaşam döngüleri şunları içerir:
- İşlemleri Toplama: İşlemler sıralayıcılar(sequencer) tarafından toplanır ve bir rollup bloğu haline getirilir.
- Blok Gönderimi: Bu blok, güvenlik önlemi olarak bir teminat ile Ethereum tabanlı bir akıllı sözleşmeye sunulur.
- Geçerlilik Varsayımı: İşlemler sunulduktan sonra geçerli kabul edilir.
- İtiraz Süresi: Hile kanıtlarının sunulması için bloğun geçerliliğine itiraz edilmesine izin veren bir süre.
- Sonuç:
- İtiraz Başarılı: Teminat kaybedilir ve blok tersine çevrilir.
- İtiraz Yok: İtiraz edilmediği takdirde blok kesinleşir.
ZK Rollups:
ZK Rollup'ları, güvenlik ve veri bütünlüğüne odaklanarak işlem geçerliliğine ilişkin açık kriptografik kanıtlarını gerektirir. Yaşam döngüleri şunları içerir:
- Geçerlilik Gereksinimi: Blok gönderiminden önce bir geçerlilik kanıtı sağlanmalıdır.
- Blok Gönderimi: Bloklar gerekli geçerlilik kanıtı ile birlikte gönderilir.
- Geçerlilik Varsayımı: Optimistic Rollup’ların aksine, geçerlilik kanıtı önceden talep edilir.
- Veri Kullanılabilirliği: Geçerlilik kanıtları veri kullanılabilirliğinden bağımsız olsa da, zincirin güvenliği büyük ölçüde buna bağlıdır.
- Veri Kullanılamazlığının Sonuçları:
- State1 Yeniden Oluşturma: Kullanıcılar ana zincir verilerini kullanarak durumu yeniden oluşturabilir.
- Sequencer2 Müdahalesi: Diğer sıralayıcılar durumu geri yüklemek ve işlemlere devam etmek için devreye girebilir.
Yine de, veri kullanılabilirliği ile ilgili kısıtlamalar vardır.
1State: durum
2Sequencer: sıralayıcı