Hangi Tür Layer-3'ler Daha Mantıklı?

Coinoxs Blockchain Technologies
10 min readSep 23, 2022

--

Ethereum kurucusu Vitalik, blockchain sektörünün önde gelen beyinlerinin başını çeken isimlerden bir tanesi. İçerik üretmek konusunda da yazılım üretmekte olduğu kadar çalışkan ve özverili olan Vitalik Buterin, paylaştıklarıyla blockchain developer’ları için yeryüzündeki en güncel, en besleyici kaynakları oluşturuyor. Bu yüzden Coinoxs Medium sayfamızda Vitalik’in içeriklerini çevirisini yapıp, hazine niteliğindeki bu içerikleri Türkçeye kazandırıyoruz. “Vitalikten Makaleler” adlı serimizin ikinci yazısı “Hangi Tür Layer-3'ler Daha Mantıklı” karşısınızda. İyi okumalar dileriz.

Hangi Tür Layer-3'ler Daha Mantıklı?

Geri bildirimleri ve incelemeleri için Georgios Konstantopoulos, Karl Floersch ve Starkware ekibine özel teşekkürler.

Layer-2 ölçeklendirme tartışmalarında sıklıkla yeniden ortaya çıkan bir konu, “layer-3'ler” kavramıdır. Güvenlik için layer-1'e bağlanan ve üstüne ölçeklenebilirlik ekleyen bir layer-2 protokolü oluşturabilirsek, o zaman güvenlik için layer-2'ye bağlanan ve bunun üzerine daha da fazla ölçeklenebilirlik ekleyen bir layer-3 protokolü oluşturarak kesinlikle daha da fazla ölçeklendirebiliriz.

Bu fikrin basit bir versiyonu şöyledir: Size ikinci dereceden ölçekleme verebilecek bir şemanız varsa, şemayı kendi üzerine toplayıp üstel ölçekleme elde edebilir misiniz? Bunun gibi fikirler arasında 2015 ölçeklenebilirlik makalem, Plazma makalesindeki çok layer’lı ölçeklendirme fikirleri ve daha fazlası yer alıyor. Ne yazık ki, layer-3'lerin bu kadar basit kavramları nadiren bu kadar kolay sonuç verir. Tasarımda her zaman istiflenemeyen ve yalnızca bir kez ölçeklenebilirlik artışı sağlayabilen bir şey vardır — veri kullanılabilirliği, acil durum çekimleri için L1 bant genişliğine güvenme veya diğer birçok sorun.

Starkware tarafından önerilen çerçeve gibi layer 3’lerle ilgili daha yeni fikirler daha karmaşıktır: sadece aynı şeyi kendi üzerine yığmazlar, ikinci layer’a ve üçüncü layer’a farklı amaçlar atarlar. Eğer doğru şekilde yapılırsa bu yaklaşımın bir biçimi iyi bir fikir olabilir. Bu yazı, üç layer’lı bir mimaride nelerin mantıklı olup olmayacağına dair bazı ayrıntılara girecek.

Rollup’ları Rollup’ların üzerine istifleyerek neden ölçeklendirmeye devam edemezsiniz?

Rollup’lar (buradaki daha uzun makaleme bakın), bir blok zinciri çalıştırmanın iki ana ölçekleme darboğazını ele almak için farklı teknikleri birleştiren bir ölçeklendirme teknolojisidir: hesaplama ve veri. Hesaplama, her bir bloğu işlemek ve doğrulamak için çok az sayıda aktöre dayanan ve kanıtlama işleminin doğru yapıldığını kontrol etmek için diğer herkesin yalnızca küçük bir miktar hesaplama yapmasını gerektiren dolandırıcılık kanıtları veya SNARK’lar tarafından ele alınır. Bu şemalar, özellikle SNARK’lar, neredeyse sınırsız ölçeklenebilir; gerçekten daha fazla hesaplamayı tek bir kanıta kadar ölçeklendirmek için “birçok SNARK’tan oluşan bir SNARK” yapmaya devam edebilirsiniz.

Veriler farklıdır. Rollup’lar, bir işlemin zincir üzerinde depolaması gereken veri miktarını azaltmak için bir sıkıştırma hileleri koleksiyonu kullanır: basit bir para birimi aktarımı ~100'den ~16 bayta düşer, EVM uyumlu bir zincirde bir ERC20 aktarımı ~180'den ~23 bayt ‘a düşer ve gizliliği koruyan bir ZK-SNARK işlemi ~600 ila ~80 bayt arasında sıkıştırılabilir. Her durumda yaklaşık 8x sıkıştırma. Ancak, rollup’ların yine de kullanıcıların rollup’larının durumunu bağımsız olarak hesaplayabilmeleri ve mevcut kanıtlayıcılar çevrimdışı olduğunda doğrulayıcı olarak katılabilmeleri için, kullanıcıların erişip doğrulayabilmelerinin garanti edildiği bir ortamda zincir üstü verileri kullanılabilir hale getirmesi gerekir. Veriler bir kez sıkıştırılabilir, ancak tekrar sıkıştırılamaz — eğer yapabiliyorsa, genellikle ikinci sıkıştırıcının mantığını birinci sıkıştırıcıya yerleştirmenin ve bir kez sıkıştırarak aynı avantajı elde etmenin bir yolu vardır. Bu nedenle, “rollup’ların üstündeki rollup’lar” aslında ölçeklenebilirlikte büyük kazançlar sağlayabilecek bir şey değildir — ancak aşağıda göreceğimiz gibi, böyle bir model başka amaçlara hizmet edebilir.

Peki Layer3'lerin “Makul” Versiyonu Nedir?

Peki, Starkware’in layer 3'teki yazılarında neyi savunduğuna bakalım. Starkware, gerçekten aklı başında olan çok akıllı kriptograflardan oluşur ve bu nedenle, 3. Layerları savunuyorlarsa, sürümleri “rollup’lar verileri 8x sıkıştırıyorsa, o zaman rollup’ların üzerindeki rollup’lar, verileri 64x sıkıştıracaktır” dan çok daha karmaşık olacaktır.

İşte Starkware’in gönderisinden bir diyagram:

Birkaç Alıntı

Böyle bir ekosistemin bir örneği Diyagram 1'de gösterilmiştir. L3'leri şunları içerir:

* Validium veri kullanılabilirliğine sahip bir StarkNet, fiyatlandırmaya aşırı duyarlı uygulamalar tarafından genel kullanılabilir.

*Daha iyi bir uygulama performansı için özelleştirilmiş StarkNet sistemleri, örneğin belirlenmiş depolama yapıları veya veri kullanılabilirliği sıkıştırması kullanılabilir.

* Validium veya Rollup veri kullanılabilirliğine sahip StarkEx sistemleri (dYdX, Sorare, Immutable ve DeversiFi’nin hizmet aldıkları gibi), test edilmiş ölçeklenebilirlik avantajlarını hemen StarkNet’e getirir.

*Gizlilik StarkNet örnekleri (bu örnekte ayrıca L4 olarak), genel StarkNet’lere dahil etmeden gizliliği koruyan işlemlere izin verir.

Makaleyi “L3'lerin” ne için olduğuna dair üç vizyona sıkıştırabiliriz:

Makaleyi “L3'lerin” ne için olduğuna dair üç vizyona sıkıştırabiliriz:

1- L2 ölçeklendirme içindir, L3, örneğin gizlilik gibi özelleştirilmiş işlevsellik içindir. Bu vizyonda “ölçeklenebilirlik karesi” sağlama girişimi yoktur; bunun yerine, uygulamaların ölçeklenmesine yardımcı olan bir yığın layer’ı vardır ve ardından farklı kullanım durumlarının özelleştirilmiş işlevsellik ihtiyaçları için layer’ları ayırır.

2- L2 genel amaçlı ölçekleme içindir, L3 özelleştirilmiş ölçekleme içindir. Özelleştirilmiş ölçekleme farklı biçimlerde olabilir: hesaplamalarını yapmak için EVM’den başka bir şey kullanan özel uygulamalar, veri sıkıştırması belirli uygulamalar için veri biçimleri etrafında optimize edilmiş rollup’lar (“veri”yi “kanıtlardan” ayırma ve kanıtları tek bir tamamen blok başına SNARK), vb.

3- L2, güvenilir olmayan ölçeklendirme (rolluplar) içindir, L3, zayıf güvenilir ölçekleme (validium’lar) içindir. Validium’lar, hesaplamayı doğrulamak için SNARK’ları kullanan, ancak veri kullanılabilirliğini güvenilir bir üçüncü taraf veya komiteye bırakan sistemlerdir. Validium’lar benim görüşüme göre oldukça düşük: özellikle, birçok “kurumsal blok zinciri” uygulamasına en iyi şekilde, bir validium ispatlayıcısı çalıştıran ve düzenli olarak zincirleme karmaları işleyen merkezi bir sunucu tarafından hizmet edilebilir. Validium’lar, rollup’lardan daha düşük bir güvenlik derecesine sahiptir, ancak çok daha ucuz olabilir.

Bu vizyonların üçü de benim görüşüme göre temelde makul. Özelleştirilmiş veri sıkıştırmanın kendi platformunu gerektirdiği fikri, muhtemelen iddiaların en zayıfıdır — kullanıcıların uygulamaya özel alt kompresörlerle otomatik olarak genişletebileceği genel amaçlı bir temel layer sıkıştırma şemasına sahip bir layer2 tasarlamak oldukça kolaydır — ancak aksi takdirde kullanım durumları sağlamdır. Ancak bu hala büyük bir soruyu açık bırakıyor: Bu hedeflere ulaşmak için üç layerlı bir yapı doğru yol mu? Geçerliliklerin, gizlilik sistemlerinin ve özelleştirilmiş ortamların, yalnızca layer 1'e demirlemek yerine layer 2'ye demirlemenin anlamı nedir? Bu sorunun cevabı oldukça karmaşık görünüyor.

Sizce hangisi daha iyi?

Layer 2'nin alt ağacında para yatırma ve çekme daha ucuz ve daha kolay hale geliyor mu?

İki layer’lı model yerine üç layer’lı model için olası bir argüman şudur: üç layer’lı bir model, tüm bir alt ekosistemin tek bir rollup içinde var olmasına izin verir, bu da ekosistem içindeki etki alanları arası işlemlerin çok ucuza gerçekleşmesine izin verir. Pahalı layer’dan geçmesi gerekiyor.

Ancak ortaya çıktığı gibi, aynı layer 1'i taahhüt eden iki layer 2 (hatta layer 3'ler) arasında bile para yatırma ve çekme işlemlerini ucuza yapabilirsiniz! Anahtar gerçekleştirme, belirteçlerin ve diğer varlıkların kök zincirde verilmesi gerekmemesidir. Yani, Arbitrum’da bir ERC20 jetonunuz olabilir, Optimism’de bunun bir paketleyicisini oluşturabilir ve herhangi bir L1 işlemi olmadan ikisi arasında gidip gelebilirsiniz!

Böyle bir sistemin nasıl çalıştığını inceleyelim. İki akıllı sözleşme vardır: Arbitrum’daki temel sözleşme ve Optimism üzerindeki wrapped token sözleşmesi. Arbitrum’dan Optimism’e geçmek için, tokenlerinizi bir makbuz oluşturacak olan temel sözleşmeye gönderirsiniz. Arbitrum sona erdiğinde, bu makbuzun L1 durumunda köklenmiş bir Merkle kanıtını alabilir ve onu doğrulayan ve size bir wrapped token veren Optimism üzerindeki wrapped token sözleşmesine gönderebilirsiniz. Tokenleri geri taşımak için aynı şeyi tersten yaparsınız.

Arbitrum’daki mevduatın kanıtlanması için gereken Merkle yolu L1 durumundan geçse de, Optimism’in mevduatı işlemek için yalnızca L1 durum kökünü okuması gerekir — L1 işlemi gerekmez. Rollup’larla ilgili veriler en kıt kaynak olduğundan, böyle bir planın pratik bir uygulamasının, yerden tasarruf etmek için doğrudan bir Merkle kanıtı yerine bir SNARK veya bir KZG kanıtı kullanacağını unutmayın.

Böyle bir planın, en azından iyimser rollup’larda L1'de kök salmış tokenlere kıyasla önemli bir zayıflığı vardır: para yatırmak aynı zamanda dolandırıcılık kanıtı penceresini beklemeyi gerektirir. Bir token L1'de köklenmişse, Arbitrum veya Optimism’den L1'e geri çekilmek bir hafta gecikme alır, ancak para yatırma işlemi anında gerçekleşir. Ancak bu şemada hem para yatırma hem de çekme bir hafta gecikmeli olarak gerçekleşir. Bununla birlikte, iyimser rollup’larda üç layer’lı bir mimarinin daha iyi olup olmadığı açık değildir: Kendi başına bir dolandırıcılığa karşı korumalı oyun üzerinde çalışan bir sistem içinde gerçekleşen bir dolandırıcılık kanıtı oyununun güvenli olmasını sağlamada çok fazla teknik karmaşıklık vardır.

Neyse ki, bu sorunlardan hiçbiri ZK rollup’larında bir sorun olmayacak. ZK rollup’ları, güvenlik nedenleriyle bir haftalık bir bekleme aralığı gerektirmez, ancak diğer iki nedenden dolayı yine de daha kısa bir pencereye (birinci nesil teknolojiyle belki 12 saat) ihtiyaç duyarlar. İlk olarak, özellikle daha karmaşık genel amaçlı ZK-EVM rollup’ları, bir bloğun kanıtlanmasının paralelleştirilemeyen işlem süresini kapsamak için daha uzun bir süreye ihtiyaç duyar. İkincisi, kanıt işlemleriyle ilgili sabit maliyetleri en aza indirmek için kanıtları nadiren sunma ihtiyacının ekonomik değerlendirmesi vardır. Özel donanım dahil yeni nesil ZK-EVM teknolojisi ilk sorunu çözecek ve daha iyi tasarlanmış toplu doğrulama ikinci sorunu çözebilir. Ve tam olarak bir sonraki ele alacağımız konu, kanıt gönderimini optimize etme ve gruplama sorunudur.

Rollup’lar ve validium, sabit maliyet takasına karşı bir onay süresine sahiptir. Layer 3'ler bunu düzeltmeye yardımcı olabilir. Ama başka ne olabilir?

İşlem başına rollup maliyeti ucuzdur: uygulamaya bağlı olarak yalnızca 16–60 bayt veridir. Ancak özetler aynı zamanda zincire bir grup işlem gönderdiklerinde yüksek bir sabit maliyet ödemek zorundadır: iyimser özetler için grup başına 21000 L1 gaz ve ZK özetleri için 400.000'den fazla gaz ödersiniz (yalnızca STARK’ları kullanılacaksa, kuantum ölçekte güvenli bir şey istiyorsanız milyonlarca gaz ödersiniz)

Tabii ki, rollup’lar bir toplu iş göndermek için 10 milyon gaz değerinde L2 işlemi olana kadar beklemeyi seçebilirler, ancak bu onlara çok uzun toplu aralıklar verecek ve kullanıcıları yüksek güvenlikli bir onay alana kadar çok daha uzun süre beklemeye zorlayacaktır. Bu nedenle, bir ödünleri vardır: uzun parti aralıkları ve optimum maliyetler veya daha kısa parti aralıkları ve büyük ölçüde artan maliyetler.

Bize bazı somut rakamlar vermek için, parti başına 600.000 gaz maliyeti olan ve işlem başına 368 gaza mal olan tamamen optimize edilmiş ERC20 transferlerini (23 bayt) işleyen bir ZK rollup’ını ele alalım. Bu rollup’ın, benimsemenin erken ve orta aşamalarında olduğunu ve ortalama 5 TPS olduğunu varsayalım. İşlem başına gazı parti aralıklarına karşı hesaplayabiliriz:

Çok sayıda özelleştirilmiş validium ve uygulamaya özel ortamların olduğu bir dünyaya giriyorsak, birçoğu 5 TPS’den çok daha azını yapacaktır. Bu nedenle, onay süresi ve maliyet arasındaki seçim yapmak çok önemli hale gelmeye başlar. Ve gerçekten de, “layer 3” paradigması bunu çözüyor! Saf bir şekilde uygulanmış olsa bile, bir ZK rollup içindeki bir ZK rollup’ı, yalnızca ~8,000 layer-1 gaz (kanıt için 500 bayt) sabit maliyetlerine sahip olacaktır. Bu, yukarıdaki tabloyu şu şekilde değiştirir:

Sorun temelde çözüldü. Yani layer 3'ler iyi mi? Belki. Ancak, bu sorunu çözmek için ERC 4337 toplu doğrulamasından ilham alan farklı bir yaklaşım olduğunu belirtmekte fayda var.

Strateji aşağıdaki gibidir. Bugün, her ZK rollup veya validium, S’’new”=STF(S”old”D) olduğunu kanıtlayan bir kanıt alırsa bir durum kökünü kabul eder: yeni durum kökü, işlem verilerinin veya durum deltalarının doğru şekilde işlenmesinin sonucu olmalıdır. Eski durum kökünün üstüne. Bu yeni şemada, ZK rollup’ları, bir toplu doğrulayıcı sözleşmesinden gelen ve bu ifadelerin her birinin S’’new”=STF(S”old”D) şu şekilde olduğu bir toplu ifadenin kanıtını doğruladığını söyleyen bir mesajı kabul eder. Toplu kanıt, özyinelemeli bir SNARK şeması veya Halo rollup yoluyla oluşturulabilir.

Bu açık bir protokol olacaktır: herhangi bir ZK rollup’ı katılabilir ve herhangi bir toplu kanıtlayıcı, herhangi bir uyumlu ZK rollup’larından kanıtları toplayabilir ve toplayıcı tarafından bir işlem ücreti ile telafi edilir. Toplu işleyici sözleşmesi, kanıtı bir kez doğrular ve ardından, o rollup için S”new”,S”old”,D üçlüsünü içeren her rollup’a bir mesaj gönderir; üçlünün toplu işleyici sözleşmesinden gelmesi, geçişin geçerli olduğunun kanıtı olacaktır.

İyi optimize edilmişse, bu şemadaki rollup başına maliyet 8000'e yakın olabilir: yeni güncellemeyi ekleyen bir durum yazması için 5000, eski ve yeni kök için 1280 ve çeşitli veri hokkabazlığı için fazladan 1720. Dolayısıyla, bize aynı tasarrufu sağlayacaktır. Starkware’de (henüz) izinsiz bir açık protokol olmasa da SHARP adı verilen zaten buna benzer bir şey var.

Bu yaklaşım tarzına bir yanıt şöyle olabilir: ama bu aslında sadece başka bir 3. layer şeması değil mi? Temel layer <- rollup <- validium yerine, temel layer <- toplu mekanizma <- rollup veya validium var. Bazı felsefi mimari bakış açısından, bu doğru olabilir. Ancak önemli bir fark var: orta layer karmaşık bir tam EVM sistemi değil, basitleştirilmiş ve son derece derinleşmiş bir nesnedir ve bu nedenle güvenli olması ve hiçbir şey olmadan inşa edilmesi daha olasıdır. Başka bir özel tokene daha ihtiyaç duyması, yönetişimin en aza indirilmesi ve zaman içinde değişmemesi de daha olasıdır.

Sonuç: “Layer” nedir ki?

Aynı ölçekleme şemasını kendi üzerine yığmaktan oluşan üç layer’lı bir ölçekleme mimarisi genellikle iyi çalışmaz. İki rollup layer’ının aynı teknolojiyi kullandığı rollup’ların üstündeki rollup’lar kesinlikle kullanmaz. Ancak ikinci layer’ın ve üçüncü layer’ın farklı amaçlara sahip olduğu üç layer’lı bir mimari çalışabilir. Bir şeyleri yapmanın uzun vadeli en iyi yolu olduklarından emin olmasalar bile, rollup’ların üzerindeki geçerlilikler mantıklıdır.

Bununla birlikte, ne tür bir mimarinin mantıklı olduğunun ayrıntılarına girmeye başladığımızda, felsefi soruya geçiyoruz: “layer” nedir, ne değildir? Temel layer <- toplu mekanizma <- rollup veya geçerlilik modeli, temel layer <- rollup <- rollup veya geçerlilik modeliyle aynı işi yapar. Ancak nasıl çalıştığı açısından, bir kanıt rollup layer’ı, bir rollup’tan çok ERC-4337'ye benzer. Tipik olarak, ERC-4337'den “layer 2” olarak bahsetmeyiz. Benzer şekilde, Tornado Cash’ten “2. layer” olarak söz etmiyoruz — ve bu nedenle eğer tutarlı olsaydık, 2. layerın üzerinde yaşayan gizlilik odaklı bir alt sistemden 3. layer olarak bahsetmezdik. Yani ilk etapta “layer” unvanını neyin hak ettiğine dair çözülmemiş bir anlambilim tartışması var.

Bu konuda birçok olası düşünce okulu var. Benim kişisel tercihim, “layer 2” terimini aşağıdaki özelliklere sahip olanlarla sınırlı tutmak olacaktır:

*Amaçları ölçeklenebilirliği artırmaktır.

*”Bir blok zinciri içinde blok zinciri” modelini takip ederler: İşlemleri işlemek için kendi mekanizmalarına ve kendi iç durumlarına sahiptirler.

*Ethereum zincirinin tam güvenliğini devralırlar.

Dolayısıyla iyimser rollup’lar ve ZK rollup’ları layer 2'dir, ancak validiumlar, kanıt rollup şemaları, ERC 4337, zincir üstü gizlilik sistemleri ve Solidity başka bir şeydir. Bazılarına layer 3 demek mantıklı olabilir ama muhtemelen hepsi değil; her halükârda, çoklu rollup ekosisteminin mimarisi kesinlikten uzakken ve tartışmanın çoğu sadece teoride gerçekleşirken, tanımları yerleştirmek için erken görünüyor.

Bununla birlikte, dil tartışması, hangi yapıların gerçekten en anlamlı olduğu teknik sorusundan daha az önemlidir. Gizlilik gibi ölçeklenmeyen ihtiyaçlara hizmet eden bir tür “layer’lar” tarafından oynanacak önemli bir rol olduğu açıktır ve bir şekilde ve tercihen açık bir protokolle doldurulması gereken kanıt rollup’ın önemli bir işlevi olduğu açıktır. Ancak aynı zamanda, kullanıcıya yönelik ortamları layer 1'e bağlayan ara layer’ları mümkün olduğunca basit hale getirmek için iyi teknik nedenler vardır; Bir EVM rollup’ı olan “glue layer” birçok durumda muhtemelen doğru yaklaşım değildir. Bu yazıda açıklananlar gibi daha karmaşık (ve daha basit) yapıların, layer 2 ölçekleme ekosistemi olgunlaştıkça daha büyük bir rol oynamaya başlayacağından düşünüyorum.

Makalenin orjinal: https://vitalik.ca/general/2022/09/17/layer_3.html

TEŞEKKÜRLER VİTALİK …

Çevirmen: Mehmet Şakar

Editör: Serhan İnan Arabacıgil

--

--

Coinoxs Blockchain Technologies

CoinOxs Blockchain Technologies works with its team and community to ensure global adoption and availability of blockchain. linktr.ee/coinoxs