

Share Dialog
Share Dialog

Subscribe to 0xBasar

Subscribe to 0xBasar
<100 subscribers
<100 subscribers
Scroll, Ethereum'u ölçeklendirmek için yaratılan EVM dengi bir zkRollup'tır. Teknik olarak konuşmak gerekirse, Scroll iki ana parça üzerine inşa edilmiştir. Çekirdek parça, Layer 2'de EVM yürütmesinin(execution) doğruluğunu kanıtlamak için kullanılan zkEVM'dir. Bunu Ethereum Vakfı'ndaki Gizlilik ve Ölçeklendirme Araştırmaları grubuyla birlikte bir yılı aşkın süredir açık olarak inşa ediyoruz. Ancak zkEVM'yi Ethereum üzerinde tam bir zkRollup'a dönüştürebilmek için, bunun etrafında eksiksiz bir L2 mimarisi de inşa etmemiz gerekiyor.
Bu yazıda, Scroll'un genel mimarisine genel bir bakış sunuyoruz. Daha spesifik olarak, Scroll'un merkezi bir sıralama node'u(sequencing node) ve merkeziyetsiz kanıtlama ağından(proving network) oluşan ilk versiyonunu ele alacağız. Gelecekte sıralama node'ları kümesini merkezsizleştirmeye kararlıyız ve buna yönelik tasarımımızı gelecek makalelerde paylaşacağız.
Mevcut mimari üç altyapı bileşeninden oluşmaktadır (bkz. Şekil 1):
Scroll Node'u: Kullanıcı işlemlerinden L2 blokları oluşturur, bunları Ethereum temel katmanına iletir ayrıca mesajları L1 ve L2 arasında iletir.
Roller Network: İşlemlerin doğru şekilde yürütüldüğünü kanıtlamak için zkEVM geçerlilik kanıtlarını(validity proofs) oluşturur.
Rollup ve Köprü Sözleşmeleri: Scroll işlemleri için veri kullanılabilirliği(data availability) sağlar, zkEVM geçerlilik kanıtlarını(validity proofs) doğrular ve kullanıcıların Ethereum ve Scroll arasında varlıkların taşınmasına olanak tanır.
Aşağıda, bu bileşenlerin her birinin rollerini detaylandırıyoruz.

Scroll node'u, uygulamaların ve kullanıcıların Scroll ile etkileşime girmesinin ana yoludur. Sequencer, Coordinator ve Relayer olmak üzere üç modülden oluşur.
Sequencer bir JSON-RPC arayüzü sağlayarak L2 işlemlerini kabul eder. Birkaç saniyede bir, L2 mempool'dan bir grup işlem alır ve yeni bir L2 bloğu ve yeni bir state root(durum kökü) oluşturmak için bunları yürütür(execute). Sequencer uygulamamız, en popüler Ethereum node uygulamalarından biri olan Go-Ethereum'a (Geth) dayanmaktadır. Geth'i forklayarak en iyi uyumluluğu elde edebilir ve kendini kanıtlamış güvenliği devralabiliriz.
Yeni bir blok oluşturulduğunda, Coordinator bilgilendirilir ve Sequencerdan bu bloğun yürütme izini alır. Daha sonra yürütme izini kanıt üretimi için roller havuzundan rastgele seçilen bir Roller'a gönderir.
Relayer, hem Ethereum hem de Scroll üzerinde konuşlandırılan köprü ve rollup sözleşmelerini izler. İki ana sorumluluğu vardır. İlk olarak, veri kullanılabilirliği(data availability) ve geçerlilik kanıtı(validity proof) dahil olmak üzere L2 bloklarının durumunu takip etmek için rollup sözleşmesini izler. İkinci olarak, hem Ethereum hem de Scroll üzerinde konuşlandırılan köprü sözleşmelerinden para yatırma ve çekme olaylarını izler ve mesajları bir taraftan diğerine aktarır.
Roller'lar, zkRollup için geçerlilik kanıtları üretmekten sorumlu, ağdaki kanıtlayıcılar olarak hizmet vermektedir. Roller'ların kanıtlama süresini ve kanıtlama maliyetini azaltmak için GPU'lar, FPGA'lar ve ASIC'ler gibi hızlandırıcıları kullanması beklenmektedir. Şekil 2, bir Roller'ın her blok için geçerlilik kanıtını nasıl oluşturduğunu göstermektedir. Süreç aşağıdaki adımlardan oluşur:
Bir Roller ilk olarak Coordinatordan alınan yürütme izini devre tanıklarına(circuit witnesses) dönüştürür.
Her bir zkEVM circuit'ı için kanıtlar üretir.
Son olarak, birden fazla zkEVM circuit'ından gelen kanıtları tek bir blok kanıtta birleştirmek için kanıt toplamayı(proof aggregation) kullanır.

Scroll, Rollup ve Köprü akıllı kontratları aracılığıyla Ethereum'un temel katmanına bağlanır. Bunlar birlikte, L2 işlemleri için veri kullanılabilirliğini sağlar ve kullanıcıların L1 ve L2 arasında varlık ve mesaj aktarmasına olanak tanırlar.
Rollup kontratı, Sequencer'dan L2 durum köklerini(state roots) ve bloklarını alır. Durum köklerini(state roots) Ethereum state'i, L2 blok verilerini de Ethereum calldata olarak saklar. Bu, Scroll blokları için veri kullanılabilirliği(data availability) sağlar ve Scroll Relayer dahil dizinleyicilerin(indexers) L2 bloklarını yeniden oluşturabilmesini sağlamak için Ethereum'un güvenliğinden yararlanır. Bir L2 bloğunun geçerliliğini ortaya koyan bir blok kanıtı Rollup kontratı tarafından doğrulandıktan sonra, ilgili blok Scroll üzerinde kesinleşmiş kabul edilir.
Ethereum ve Scroll üzerinde konuşlandırılan Köprü kontratları, kullanıcıların L1 ve L2 arasında rastgele mesajlar iletmesine olanak tanır. Bu mesaj geçirme protokolünün yanı sıra, kullanıcıların ERC-20 varlıklarını her iki yönde de köprülemesine olanak tanıyan trustless bir köprüleme protokolü de oluşturduk. Ethereum'dan Scroll'a bir mesaj veya fon göndermek için kullanıcılar Köprü kontratında bir sendMessage işlemi çağırır. Relayer bu işlemi L1 üzerinde indeksleyecek ve bir L2 bloğuna dahil edilmesi için Sequencer'a gönderecektir. Scroll'dan Ethereum'a geri mesaj göndermek için L2 Köprü kontratında benzer bir işlem kullanılır.
Bu üç mimari parçayı bir araya getirdiğimizde, Scroll'un zkRollup'ının, aşağıdaki Şekil 3'te özetlenen iş akışını açıklayabiliriz.

Scroll'daki L2 blokları oluşturulur, temel katman Ethereum'a işlenir ve aşağıdaki adımlar şeklinde sonuçlandırılır:
Sequencer bir dizi blok oluşturur. Sequencer, i'nci blok için bir yürütme izi T oluşturur ve bunu Coordinator gönderir. Bu sırada, işlem datası D'yi veri kullanılabilirliği(data availability) için Ethereum'daki Rollup kontratına calldata olarak ve ortaya çıkan durum köklerini(state roots) ve işlem datasına yönelik taahhütleri de durum(state) olarak Rollup kontratına gönderir.
Coordinator, her blok izi için bir geçerlilik kanıtı oluşturmak üzere rastgele bir Roller seçer. Kanıt oluşturma sürecini hızlandırmak için, kanıtlar, farklı bloklar için farklı Rollerlar üzerinde paralel olarak oluşturulabilir.
Roller, i'nci blok için P blok kanıtını oluşturduktan sonra bunu Coordinatore geri gönderir. Her k blokta bir, Coordinator k blok kanıtını tek bir A toplam kanıtında(aggregate proof) toplamak için başka bir Roller'a bir toplama görevi gönderir.
Son olarak, Coordinator i+1'den i+k'ya kadar olan L2 bloklarını sonuçlandırmak için toplam kanıtı(aggregate proof) daha önce Rollup kontratına sunulan durum kökleri(state roots) ve işlem datası taahhütlerine karşı doğrulayarak toplam kanıt A'yı Rollup kontratına sunar.
Şekil 3, Scroll bloklarının L1'de çok aşamalı bir süreç ile sonlandırılacağını göstermektedir. Her bir L2 bloğu sonlandırılana kadar aşağıdaki üç aşamadan geçecektir.
Precommitted, bir bloğun bir Sequencer tarafından önerildiğini ve Roller'lara gönderildiğini gösterir. Precommitted bloklar Ethereum temel katmanında yayınlanmadıkları için henüz Scroll L2 zincirinin meşru bir parçası olmasalar da, Sequencer'a güvenen kullanıcılar beklenti içinde bu bloklar üzerinde işlem yapmayı seçebilirler.
Committed, bu bloğun işlem datalarının Ethereum'daki rollup kontratına gönderildiğini gösterir. Bu, blok datalarının mevcut olmasını sağlar, ancak geçerli bir şekilde yürütüldüğünü kanıtlamaz.
Finalized, bu bloktaki işlemlerin doğru şekilde yürütüldüğünün Ethereum'da zincir üzerinde bir geçerlilik kanıtı doğrulanarak kanıtlandığını gösterir. Sonuçlandırılmış bloklar, Scroll L2 zincirinin meşru parçaları olarak kabul edilir.
Toparlamak gerekirse Scroll, temel katman Ethereum'dan güçlü güvenlik garantileri devralırken L2 üzerinde yerel EVM bytecode'unu çalıştırabilir. Bu serideki bir sonraki yazıda, geliştiricilerin Scroll'da dapp'leri dağıtmaları(deploy) için iş akışını ve kullanıcıların bunlarla nasıl etkileşime girebileceğini açıklayacağız.
Scroll'un mimarisini vizyonumuz, değerlerimiz ve teknik ilkelerimizle uyumlu olacak şekilde tasarladık. Gelecek makalelerde, Scroll'un Ethereum üzerinde daha ölçeklenebilir bir kullanıcı ve geliştirici deneyimi sağlamak için bu mimariyi nasıl kullanacağını açıklayacağız. Daha fazlasını öğrenmek için bizi takip etmeye devam edin ve signup.scroll.io adresinden pre-alpha test ağımızı denemek için kaydolun!
Ethereum'u açık ve topluluk odaklı bir şekilde ölçeklendirme vizyonumuz ilginizi çekiyorsa, Scroll'un Ethereum için en geliştirici ve kullanıcı dostu ölçeklendirme çözümü haline gelmesine yardımcı olacak değerlerle uyumlu bireyler arıyoruz.
Eğer bir ZK araştırmacısı, ZKP, Go veya Solidity geliştiricisi veya GPU mühendisiyseniz, mümkün olanın sınırında birçok ilginç teknik zorluk üzerinde çalışıyoruz. Gelin, bizimle bu çözülmemiş problemler için son teknoloji çözümler üretin!
Ekosistemleri veya toplulukları geliştirip büyütmeyi seviyorsanız, toplulukla uyumlu ve kullanıcı dostu bir şekilde inşa ettiğimizden emin olmak için geliştirici elçileri ve topluluk organizatörleri arıyoruz.
Bu görevler ve Scroll hakkında daha fazla bilgi edinmek için web sitemize, Twitter'a, Discord'a veya iş ilanları sayfamıza göz atın. Doğrudan koda ulaşmak ve bizimle birlikte geliştirme yapmak istiyorsanız, repolarımızı github.com/scroll-tech ve github.com/privacy-scaling-explorations/zkevm-circuits adreslerinde bulabilirsiniz.
NOT: Anlatırken daha iyi öğreniyoruz. Ben de önce kendim sonra da ilgilenenler için çevirdim. Bu yazı resmi bir çeviri olmamakla beraber aslıyla birebir aynıdır.
Orjinal yazının linki:
https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k
Scroll, Ethereum'u ölçeklendirmek için yaratılan EVM dengi bir zkRollup'tır. Teknik olarak konuşmak gerekirse, Scroll iki ana parça üzerine inşa edilmiştir. Çekirdek parça, Layer 2'de EVM yürütmesinin(execution) doğruluğunu kanıtlamak için kullanılan zkEVM'dir. Bunu Ethereum Vakfı'ndaki Gizlilik ve Ölçeklendirme Araştırmaları grubuyla birlikte bir yılı aşkın süredir açık olarak inşa ediyoruz. Ancak zkEVM'yi Ethereum üzerinde tam bir zkRollup'a dönüştürebilmek için, bunun etrafında eksiksiz bir L2 mimarisi de inşa etmemiz gerekiyor.
Bu yazıda, Scroll'un genel mimarisine genel bir bakış sunuyoruz. Daha spesifik olarak, Scroll'un merkezi bir sıralama node'u(sequencing node) ve merkeziyetsiz kanıtlama ağından(proving network) oluşan ilk versiyonunu ele alacağız. Gelecekte sıralama node'ları kümesini merkezsizleştirmeye kararlıyız ve buna yönelik tasarımımızı gelecek makalelerde paylaşacağız.
Mevcut mimari üç altyapı bileşeninden oluşmaktadır (bkz. Şekil 1):
Scroll Node'u: Kullanıcı işlemlerinden L2 blokları oluşturur, bunları Ethereum temel katmanına iletir ayrıca mesajları L1 ve L2 arasında iletir.
Roller Network: İşlemlerin doğru şekilde yürütüldüğünü kanıtlamak için zkEVM geçerlilik kanıtlarını(validity proofs) oluşturur.
Rollup ve Köprü Sözleşmeleri: Scroll işlemleri için veri kullanılabilirliği(data availability) sağlar, zkEVM geçerlilik kanıtlarını(validity proofs) doğrular ve kullanıcıların Ethereum ve Scroll arasında varlıkların taşınmasına olanak tanır.
Aşağıda, bu bileşenlerin her birinin rollerini detaylandırıyoruz.

Scroll node'u, uygulamaların ve kullanıcıların Scroll ile etkileşime girmesinin ana yoludur. Sequencer, Coordinator ve Relayer olmak üzere üç modülden oluşur.
Sequencer bir JSON-RPC arayüzü sağlayarak L2 işlemlerini kabul eder. Birkaç saniyede bir, L2 mempool'dan bir grup işlem alır ve yeni bir L2 bloğu ve yeni bir state root(durum kökü) oluşturmak için bunları yürütür(execute). Sequencer uygulamamız, en popüler Ethereum node uygulamalarından biri olan Go-Ethereum'a (Geth) dayanmaktadır. Geth'i forklayarak en iyi uyumluluğu elde edebilir ve kendini kanıtlamış güvenliği devralabiliriz.
Yeni bir blok oluşturulduğunda, Coordinator bilgilendirilir ve Sequencerdan bu bloğun yürütme izini alır. Daha sonra yürütme izini kanıt üretimi için roller havuzundan rastgele seçilen bir Roller'a gönderir.
Relayer, hem Ethereum hem de Scroll üzerinde konuşlandırılan köprü ve rollup sözleşmelerini izler. İki ana sorumluluğu vardır. İlk olarak, veri kullanılabilirliği(data availability) ve geçerlilik kanıtı(validity proof) dahil olmak üzere L2 bloklarının durumunu takip etmek için rollup sözleşmesini izler. İkinci olarak, hem Ethereum hem de Scroll üzerinde konuşlandırılan köprü sözleşmelerinden para yatırma ve çekme olaylarını izler ve mesajları bir taraftan diğerine aktarır.
Roller'lar, zkRollup için geçerlilik kanıtları üretmekten sorumlu, ağdaki kanıtlayıcılar olarak hizmet vermektedir. Roller'ların kanıtlama süresini ve kanıtlama maliyetini azaltmak için GPU'lar, FPGA'lar ve ASIC'ler gibi hızlandırıcıları kullanması beklenmektedir. Şekil 2, bir Roller'ın her blok için geçerlilik kanıtını nasıl oluşturduğunu göstermektedir. Süreç aşağıdaki adımlardan oluşur:
Bir Roller ilk olarak Coordinatordan alınan yürütme izini devre tanıklarına(circuit witnesses) dönüştürür.
Her bir zkEVM circuit'ı için kanıtlar üretir.
Son olarak, birden fazla zkEVM circuit'ından gelen kanıtları tek bir blok kanıtta birleştirmek için kanıt toplamayı(proof aggregation) kullanır.

Scroll, Rollup ve Köprü akıllı kontratları aracılığıyla Ethereum'un temel katmanına bağlanır. Bunlar birlikte, L2 işlemleri için veri kullanılabilirliğini sağlar ve kullanıcıların L1 ve L2 arasında varlık ve mesaj aktarmasına olanak tanırlar.
Rollup kontratı, Sequencer'dan L2 durum köklerini(state roots) ve bloklarını alır. Durum köklerini(state roots) Ethereum state'i, L2 blok verilerini de Ethereum calldata olarak saklar. Bu, Scroll blokları için veri kullanılabilirliği(data availability) sağlar ve Scroll Relayer dahil dizinleyicilerin(indexers) L2 bloklarını yeniden oluşturabilmesini sağlamak için Ethereum'un güvenliğinden yararlanır. Bir L2 bloğunun geçerliliğini ortaya koyan bir blok kanıtı Rollup kontratı tarafından doğrulandıktan sonra, ilgili blok Scroll üzerinde kesinleşmiş kabul edilir.
Ethereum ve Scroll üzerinde konuşlandırılan Köprü kontratları, kullanıcıların L1 ve L2 arasında rastgele mesajlar iletmesine olanak tanır. Bu mesaj geçirme protokolünün yanı sıra, kullanıcıların ERC-20 varlıklarını her iki yönde de köprülemesine olanak tanıyan trustless bir köprüleme protokolü de oluşturduk. Ethereum'dan Scroll'a bir mesaj veya fon göndermek için kullanıcılar Köprü kontratında bir sendMessage işlemi çağırır. Relayer bu işlemi L1 üzerinde indeksleyecek ve bir L2 bloğuna dahil edilmesi için Sequencer'a gönderecektir. Scroll'dan Ethereum'a geri mesaj göndermek için L2 Köprü kontratında benzer bir işlem kullanılır.
Bu üç mimari parçayı bir araya getirdiğimizde, Scroll'un zkRollup'ının, aşağıdaki Şekil 3'te özetlenen iş akışını açıklayabiliriz.

Scroll'daki L2 blokları oluşturulur, temel katman Ethereum'a işlenir ve aşağıdaki adımlar şeklinde sonuçlandırılır:
Sequencer bir dizi blok oluşturur. Sequencer, i'nci blok için bir yürütme izi T oluşturur ve bunu Coordinator gönderir. Bu sırada, işlem datası D'yi veri kullanılabilirliği(data availability) için Ethereum'daki Rollup kontratına calldata olarak ve ortaya çıkan durum köklerini(state roots) ve işlem datasına yönelik taahhütleri de durum(state) olarak Rollup kontratına gönderir.
Coordinator, her blok izi için bir geçerlilik kanıtı oluşturmak üzere rastgele bir Roller seçer. Kanıt oluşturma sürecini hızlandırmak için, kanıtlar, farklı bloklar için farklı Rollerlar üzerinde paralel olarak oluşturulabilir.
Roller, i'nci blok için P blok kanıtını oluşturduktan sonra bunu Coordinatore geri gönderir. Her k blokta bir, Coordinator k blok kanıtını tek bir A toplam kanıtında(aggregate proof) toplamak için başka bir Roller'a bir toplama görevi gönderir.
Son olarak, Coordinator i+1'den i+k'ya kadar olan L2 bloklarını sonuçlandırmak için toplam kanıtı(aggregate proof) daha önce Rollup kontratına sunulan durum kökleri(state roots) ve işlem datası taahhütlerine karşı doğrulayarak toplam kanıt A'yı Rollup kontratına sunar.
Şekil 3, Scroll bloklarının L1'de çok aşamalı bir süreç ile sonlandırılacağını göstermektedir. Her bir L2 bloğu sonlandırılana kadar aşağıdaki üç aşamadan geçecektir.
Precommitted, bir bloğun bir Sequencer tarafından önerildiğini ve Roller'lara gönderildiğini gösterir. Precommitted bloklar Ethereum temel katmanında yayınlanmadıkları için henüz Scroll L2 zincirinin meşru bir parçası olmasalar da, Sequencer'a güvenen kullanıcılar beklenti içinde bu bloklar üzerinde işlem yapmayı seçebilirler.
Committed, bu bloğun işlem datalarının Ethereum'daki rollup kontratına gönderildiğini gösterir. Bu, blok datalarının mevcut olmasını sağlar, ancak geçerli bir şekilde yürütüldüğünü kanıtlamaz.
Finalized, bu bloktaki işlemlerin doğru şekilde yürütüldüğünün Ethereum'da zincir üzerinde bir geçerlilik kanıtı doğrulanarak kanıtlandığını gösterir. Sonuçlandırılmış bloklar, Scroll L2 zincirinin meşru parçaları olarak kabul edilir.
Toparlamak gerekirse Scroll, temel katman Ethereum'dan güçlü güvenlik garantileri devralırken L2 üzerinde yerel EVM bytecode'unu çalıştırabilir. Bu serideki bir sonraki yazıda, geliştiricilerin Scroll'da dapp'leri dağıtmaları(deploy) için iş akışını ve kullanıcıların bunlarla nasıl etkileşime girebileceğini açıklayacağız.
Scroll'un mimarisini vizyonumuz, değerlerimiz ve teknik ilkelerimizle uyumlu olacak şekilde tasarladık. Gelecek makalelerde, Scroll'un Ethereum üzerinde daha ölçeklenebilir bir kullanıcı ve geliştirici deneyimi sağlamak için bu mimariyi nasıl kullanacağını açıklayacağız. Daha fazlasını öğrenmek için bizi takip etmeye devam edin ve signup.scroll.io adresinden pre-alpha test ağımızı denemek için kaydolun!
Ethereum'u açık ve topluluk odaklı bir şekilde ölçeklendirme vizyonumuz ilginizi çekiyorsa, Scroll'un Ethereum için en geliştirici ve kullanıcı dostu ölçeklendirme çözümü haline gelmesine yardımcı olacak değerlerle uyumlu bireyler arıyoruz.
Eğer bir ZK araştırmacısı, ZKP, Go veya Solidity geliştiricisi veya GPU mühendisiyseniz, mümkün olanın sınırında birçok ilginç teknik zorluk üzerinde çalışıyoruz. Gelin, bizimle bu çözülmemiş problemler için son teknoloji çözümler üretin!
Ekosistemleri veya toplulukları geliştirip büyütmeyi seviyorsanız, toplulukla uyumlu ve kullanıcı dostu bir şekilde inşa ettiğimizden emin olmak için geliştirici elçileri ve topluluk organizatörleri arıyoruz.
Bu görevler ve Scroll hakkında daha fazla bilgi edinmek için web sitemize, Twitter'a, Discord'a veya iş ilanları sayfamıza göz atın. Doğrudan koda ulaşmak ve bizimle birlikte geliştirme yapmak istiyorsanız, repolarımızı github.com/scroll-tech ve github.com/privacy-scaling-explorations/zkevm-circuits adreslerinde bulabilirsiniz.
NOT: Anlatırken daha iyi öğreniyoruz. Ben de önce kendim sonra da ilgilenenler için çevirdim. Bu yazı resmi bir çeviri olmamakla beraber aslıyla birebir aynıdır.
Orjinal yazının linki:
https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k
No activity yet