Çok Zincirli Hesap Soyutlama: Şifreleme Altyapısının Geleceğini Keşfetmek
8-11 Temmuz 2024 tarihleri arasında, Ethereum topluluk konferansı (EthCC) Belçika'nın Brüksel şehrinde gerçekleştirilecektir. Avrupa'nın en büyük Ethereum yıllık etkinliği olarak, bu konferans teknik ve topluluk gelişimine odaklanmaktadır.
Bu yılki Ethereum topluluk konferansında (EthCC 7), 350'den fazla blok zinciri endüstrisinin öncü düşünce lideri konuşma yaptı. Bunlar arasında, bir blok zinciri geliştiricisi davet edilerek "Geleceği Açığa Çıkarmak: Çok Zincirli Hesap Soyutlama Analizi" konulu bir konuşma yaptı.
Konuşma Noktalarının Özeti
Hesap soyutlama (AA) çekirdek olarak imza soyutlaması ve ödeme soyutlamasını içerir. İlki, kullanıcının herhangi bir doğrulama mekanizmasını seçmesine izin verirken, ikincisi çeşitli işlem ödeme seçenekleri sunar. Bu esneklik, güvenliği ve kullanıcı deneyimini büyük ölçüde artırır.
ERC-4337 ve yerel AA'nın doğrulama aşamasındaki giriş noktası fonksiyonları sabittir, ancak yürütme aşamasında yalnızca yerel AA sabit bir giriş noktasını korur. Farklı uygulama yöntemleri, işlem doğrulama kısıtlamaları ve işlem yürütme adımları konusunda kendine özgü özellikler taşır.
EVM uyumlu zincir üzerinde ERC-4337 uygularken, başlıca iki büyük zorlukla karşı karşıya kalınmaktadır: Rollup tasarımındaki protokol farklılıkları ve adres hesaplama yöntemlerindeki farklılıklar. Bu farklılıklar, L1 ve L2 arasında ERC-4337 uygularken bazı fark edilmesi zor geliştirme detaylarının ortaya çıkmasına neden olmaktadır.
Hesap Soyutlama Tanımı
hesap soyutlamanın tanımı
Hesap soyutlama (AA) esasen iki ana kavramı içerir:
İmza soyutlama: Kullanıcılar, belirli bir dijital imza algoritması (örneğin ECDSA) ile sınırlı olmaksızın, istedikleri herhangi bir doğrulama mekanizmasını özgürce seçebilirler.
Ödeme soyutlama: Kullanıcılar işlem ücretlerini ödemek için çeşitli yollar kullanabilir, örneğin yerel token yerine ERC-20 token kullanarak veya üçüncü tarafların işlemi finanse etmesiyle.
Bu esneklik sadece güvenliği artırmakla kalmaz, aynı zamanda kullanıcı deneyimini de optimize eder. Hesap soyutlamanın amacı, bu iki temel kavramı çeşitli yollarla gerçekleştirmektir.
ERC-4337 analizi
Şu anda, Ethereum protokolündeki dış sahipli hesapların (EOA) bazı kısıtlamaları bulunmaktadır, sabit imza yöntemleri ve ödeme tasarımı gibi. ERC-4337, daha esnek hesap yönetimi ve işlem işleme yöntemleri getirerek bu sorunları çözmektedir.
userOp yapısı: ERC-4337'de, kullanıcı userOp yapısını Bundler'a gönderir. Bundler, birden fazla userOp'u toplar ve handleOps fonksiyonunu çağırarak bunları EntryPoint sözleşmesine gönderir.
EntryPoint sözleşmesi: Bu sözleşme, bir işletim sistemi gibi işlemleri yönetir, ana işlevleri şunlardır:
Hesap sözleşmesindeki execute fonksiyonunu çağırarak userOp'un hedef işlemini gerçekleştir.
Yerel AA Tanıtımı
Ethereum'da, hesaplar EOA ve sözleşme hesapları olarak ikiye ayrılır. Ancak, yerel AA'da, her hesap bir sözleşmedir ve işlem işleme mekanizması doğrudan blok zinciri protokolüne entegre edilmiştir.
ERC-4337'ye göre yerel hesap soyutlama: StarkNet ve zkSync dönemi
Gizlilik tasarımı olan yerel hesap soyutlama: Aztec
ERC-4337 ve Yerel AA Arasındaki Farklar
işletim sistemi rolü
AA işletim sistemi aşağıdaki sorunları çözmelidir:
Gaz fiyatlarının belirleyicisi
İşlem sırasını belirleyen ve bellek havuzundaki konum
Giriş noktası fonksiyonunun tetikleyicisi
İşlem işleme sürecinin belirleyici faktörleri
ERC-4337'de bu roller Bundler ve EntryPoint Sözleşmesi tarafından birlikte yerine getirilir.
Yerel AA'da, kullanıcı userOps'unu resmi sunucunun operatörüne/sıralayıcısına gönderir, Bundler ve EntryPoint Sözleşmesi yerine.
StarkNet'te, Sequencer bu tüm görevleri yerine getirmekten sorumludur.
zkSync Era'nın ana özelliği, Operator'ün bootloader (sistem akıllı sözleşmesi) ile birlikte çalışması gerektiğidir. Bootloader, yeni blokları açmaktan, blok parametrelerini ve Gas parametrelerini tanımlamaktan sorumludur ve Operator'den gelen işlemleri doğrulamak için alır.
sözleşme arayüzü
Üç adımın bulunmasından dolayı, hesap sözleşmesi arayüzü farklı uygulamalarda benzerlik gösterir, bu giriş noktası fonksiyonları yalnızca AA OS tarafından çağrılabilir:
ERC-4337: Kullanıcı işlemlerini doğrulama
zkSync: işlemleri doğrulama, işlem ödemesi, işlemleri yürütme
ERC-4337 ve yerel AA'de, "doğrulama" aşamasının giriş noktası fonksiyonu sabittir, ancak "uygulama" aşamasında yalnızca yerel AA'deki giriş noktası sabittir.
doğrulama adımlarının kısıtlaması
Doğrulama işlemlerinin maliyet sınırlaması olmadığı için, saldırganlar bellek havuzuna DoS saldırısı düzenleyebilir ve bu da paketleyiciyi (EIP-4337) veya operatörleri/sıralayıcıları (yerel AA) etkileyebilir.
EIP-4337, yasaklı işlem kodlarını ve depolama erişim kısıtlamalarını tanımlar. zkSync Era, bazı OpCode kullanımını gevşetmiştir:
Sözleşme mantığı yalnızca kendi depolama alanına erişebilir.
Sözleşme mantığı küresel değişkenlere, örneğin blok numarasına erişemez.
StarkNet dış sözleşmelerin çağrılmasına izin vermez.
yürütme adımlarının sınırlamaları
zkSync'te, sistem çağrısını yürütmek için sistem bayrağının varlığını onaylamak gerekir. Örneğin, nonce artırmak için NonceHolder ile etkileşimde bulunmak, sözleşme dağıtmak için ise ContractDeployer ile etkileşimde bulunmak gerekir.
ERC-4337 ve StarkNet, yürütme aşamasında özel bir kısıtlama yoktur.
rastgele sayı işleme
ERC-4337: Giriş noktası rastgele sayı tasarımı 192 bit anahtar değeri ile 64 bit rastgele değerini ayırıyor.
zkSync: NonceHolder sistem sözleşmesi nonce'u yönetir, sıkı bir artış sağlar.
StarkNet: nonce de kesinlikle artan bir şekilde ilerler, ancak belirli bir sözleşme yönetimi yoktur.
İlk işlem dağıtımı
ERC-4337: userOp yapısında initcode alanı, ilk userOp'da göndericiyi (hesap sözleşmesi) dağıtmak için kullanılır.
StarkNet ve zkSync: Kullanıcıların hesap sözleşmesini dağıtmak için ilk işlemlerini operatöre/sıralayıcıya göndermeleri gerekmektedir.
zkSync özel tasarım
zkSync'te, ETH'yi Ethereum EOA'dan doğrudan transfer ederseniz, özel bir hesap sözleşmesi dağıtmaya gerek kalmadan, kullanıcı aynı adrese sahip varsayılan bir hesap alır. Bu hesap, Ethereum EOA'sı gibi çalışabilir ve ilgili Ethereum EOA özel anahtarı tarafından kontrol edilir.
Bu hesap türü version None'dır, version1 değil. Kullanıcı, DefaultAccount'ın fonksiyonlarını çağırmaz çünkü çekirdek alanında herhangi bir kod dağıtılmamıştır.
L1 ve L2'nin 4337 Farklılıkları
EVM uyumlu zincirler üzerinde ERC-4337'yi uygulamanın başlıca iki kritik farkı vardır: protokol farkı ve adres farkı.
protokol farkı
Rollup tasarımında, L2 verileri güvenlik ve hesaplaşma sağlamak için L1'e yüklemelidir. ERC-4337'de, bu yükleme süreciyle ilgili maliyetler (örneğin, L1 güvenlik ücreti ve blob ücreti) ön doğrulama Gazı'na dahil edilmelidir. Ön doğrulama Gazı'ndaki uygun yükleme maliyetlerini belirlemek önemli bir zorluktur.
adres farkı
zkSync ERA'nın create fonksiyonundaki adres kodlama yöntemi Ethereum ve OP toplamasından farklıdır. Ayrıca, StarkNet adres hesaplaması için benzersiz bir hash fonksiyonu kullanmaktadır.
EVM uyumlu zincirlerdeki ERC-4337 bağlamında, genellikle adres hesaplamasının her zincirde tutarlı olduğunu varsayıyoruz. Ancak, gözden kaçabilecek bir detay, Ethereum ve L2'deki ERC-4337 uygulamaları arasında hesap sözleşmesi adreslerinin farklı olmasına neden olabilir.
Ana sorun, sert çatalda yeni opcode'ların eklenmesidir. Örneğin, L2 zinciri Şanghay sert çatalını desteklemiyorsa ve derleme sırasında EVM versiyonu belirtilmemişse, push0'ın eklenmesi byte kodunda bir değişikliğe yol açacaktır, Solidity kodu aynı olsa bile.
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 Likes
Reward
8
5
Share
Comment
0/400
StableGenius
· 15h ago
*esneyerek* başka bir aa konuşması... bu filmi daha önce gördüm, ampirik olarak sadece eter maxilerinin başa çıkma şekli.
EthCC konferansı çok zincirli hesap soyutlamasını tartışıyor: ERC-4337 ve yerel AA'nın teknik karşılaştırması
Çok Zincirli Hesap Soyutlama: Şifreleme Altyapısının Geleceğini Keşfetmek
8-11 Temmuz 2024 tarihleri arasında, Ethereum topluluk konferansı (EthCC) Belçika'nın Brüksel şehrinde gerçekleştirilecektir. Avrupa'nın en büyük Ethereum yıllık etkinliği olarak, bu konferans teknik ve topluluk gelişimine odaklanmaktadır.
Bu yılki Ethereum topluluk konferansında (EthCC 7), 350'den fazla blok zinciri endüstrisinin öncü düşünce lideri konuşma yaptı. Bunlar arasında, bir blok zinciri geliştiricisi davet edilerek "Geleceği Açığa Çıkarmak: Çok Zincirli Hesap Soyutlama Analizi" konulu bir konuşma yaptı.
Konuşma Noktalarının Özeti
Hesap soyutlama (AA) çekirdek olarak imza soyutlaması ve ödeme soyutlamasını içerir. İlki, kullanıcının herhangi bir doğrulama mekanizmasını seçmesine izin verirken, ikincisi çeşitli işlem ödeme seçenekleri sunar. Bu esneklik, güvenliği ve kullanıcı deneyimini büyük ölçüde artırır.
ERC-4337 ve yerel AA'nın doğrulama aşamasındaki giriş noktası fonksiyonları sabittir, ancak yürütme aşamasında yalnızca yerel AA sabit bir giriş noktasını korur. Farklı uygulama yöntemleri, işlem doğrulama kısıtlamaları ve işlem yürütme adımları konusunda kendine özgü özellikler taşır.
EVM uyumlu zincir üzerinde ERC-4337 uygularken, başlıca iki büyük zorlukla karşı karşıya kalınmaktadır: Rollup tasarımındaki protokol farklılıkları ve adres hesaplama yöntemlerindeki farklılıklar. Bu farklılıklar, L1 ve L2 arasında ERC-4337 uygularken bazı fark edilmesi zor geliştirme detaylarının ortaya çıkmasına neden olmaktadır.
Hesap Soyutlama Tanımı
hesap soyutlamanın tanımı
Hesap soyutlama (AA) esasen iki ana kavramı içerir:
İmza soyutlama: Kullanıcılar, belirli bir dijital imza algoritması (örneğin ECDSA) ile sınırlı olmaksızın, istedikleri herhangi bir doğrulama mekanizmasını özgürce seçebilirler.
Ödeme soyutlama: Kullanıcılar işlem ücretlerini ödemek için çeşitli yollar kullanabilir, örneğin yerel token yerine ERC-20 token kullanarak veya üçüncü tarafların işlemi finanse etmesiyle.
Bu esneklik sadece güvenliği artırmakla kalmaz, aynı zamanda kullanıcı deneyimini de optimize eder. Hesap soyutlamanın amacı, bu iki temel kavramı çeşitli yollarla gerçekleştirmektir.
ERC-4337 analizi
Şu anda, Ethereum protokolündeki dış sahipli hesapların (EOA) bazı kısıtlamaları bulunmaktadır, sabit imza yöntemleri ve ödeme tasarımı gibi. ERC-4337, daha esnek hesap yönetimi ve işlem işleme yöntemleri getirerek bu sorunları çözmektedir.
userOp yapısı: ERC-4337'de, kullanıcı userOp yapısını Bundler'a gönderir. Bundler, birden fazla userOp'u toplar ve handleOps fonksiyonunu çağırarak bunları EntryPoint sözleşmesine gönderir.
EntryPoint sözleşmesi: Bu sözleşme, bir işletim sistemi gibi işlemleri yönetir, ana işlevleri şunlardır:
Yerel AA Tanıtımı
Ethereum'da, hesaplar EOA ve sözleşme hesapları olarak ikiye ayrılır. Ancak, yerel AA'da, her hesap bir sözleşmedir ve işlem işleme mekanizması doğrudan blok zinciri protokolüne entegre edilmiştir.
Her blok zinciri ağındaki AA tasarımı:
ERC-4337 ve Yerel AA Arasındaki Farklar
işletim sistemi rolü
AA işletim sistemi aşağıdaki sorunları çözmelidir:
ERC-4337'de bu roller Bundler ve EntryPoint Sözleşmesi tarafından birlikte yerine getirilir.
Yerel AA'da, kullanıcı userOps'unu resmi sunucunun operatörüne/sıralayıcısına gönderir, Bundler ve EntryPoint Sözleşmesi yerine.
StarkNet'te, Sequencer bu tüm görevleri yerine getirmekten sorumludur.
zkSync Era'nın ana özelliği, Operator'ün bootloader (sistem akıllı sözleşmesi) ile birlikte çalışması gerektiğidir. Bootloader, yeni blokları açmaktan, blok parametrelerini ve Gas parametrelerini tanımlamaktan sorumludur ve Operator'den gelen işlemleri doğrulamak için alır.
sözleşme arayüzü
Üç adımın bulunmasından dolayı, hesap sözleşmesi arayüzü farklı uygulamalarda benzerlik gösterir, bu giriş noktası fonksiyonları yalnızca AA OS tarafından çağrılabilir:
ERC-4337 ve yerel AA'de, "doğrulama" aşamasının giriş noktası fonksiyonu sabittir, ancak "uygulama" aşamasında yalnızca yerel AA'deki giriş noktası sabittir.
doğrulama adımlarının kısıtlaması
Doğrulama işlemlerinin maliyet sınırlaması olmadığı için, saldırganlar bellek havuzuna DoS saldırısı düzenleyebilir ve bu da paketleyiciyi (EIP-4337) veya operatörleri/sıralayıcıları (yerel AA) etkileyebilir.
EIP-4337, yasaklı işlem kodlarını ve depolama erişim kısıtlamalarını tanımlar. zkSync Era, bazı OpCode kullanımını gevşetmiştir:
yürütme adımlarının sınırlamaları
zkSync'te, sistem çağrısını yürütmek için sistem bayrağının varlığını onaylamak gerekir. Örneğin, nonce artırmak için NonceHolder ile etkileşimde bulunmak, sözleşme dağıtmak için ise ContractDeployer ile etkileşimde bulunmak gerekir.
ERC-4337 ve StarkNet, yürütme aşamasında özel bir kısıtlama yoktur.
rastgele sayı işleme
İlk işlem dağıtımı
zkSync özel tasarım
zkSync'te, ETH'yi Ethereum EOA'dan doğrudan transfer ederseniz, özel bir hesap sözleşmesi dağıtmaya gerek kalmadan, kullanıcı aynı adrese sahip varsayılan bir hesap alır. Bu hesap, Ethereum EOA'sı gibi çalışabilir ve ilgili Ethereum EOA özel anahtarı tarafından kontrol edilir.
Bu hesap türü version None'dır, version1 değil. Kullanıcı, DefaultAccount'ın fonksiyonlarını çağırmaz çünkü çekirdek alanında herhangi bir kod dağıtılmamıştır.
L1 ve L2'nin 4337 Farklılıkları
EVM uyumlu zincirler üzerinde ERC-4337'yi uygulamanın başlıca iki kritik farkı vardır: protokol farkı ve adres farkı.
protokol farkı
Rollup tasarımında, L2 verileri güvenlik ve hesaplaşma sağlamak için L1'e yüklemelidir. ERC-4337'de, bu yükleme süreciyle ilgili maliyetler (örneğin, L1 güvenlik ücreti ve blob ücreti) ön doğrulama Gazı'na dahil edilmelidir. Ön doğrulama Gazı'ndaki uygun yükleme maliyetlerini belirlemek önemli bir zorluktur.
adres farkı
zkSync ERA'nın create fonksiyonundaki adres kodlama yöntemi Ethereum ve OP toplamasından farklıdır. Ayrıca, StarkNet adres hesaplaması için benzersiz bir hash fonksiyonu kullanmaktadır.
EVM uyumlu zincirlerdeki ERC-4337 bağlamında, genellikle adres hesaplamasının her zincirde tutarlı olduğunu varsayıyoruz. Ancak, gözden kaçabilecek bir detay, Ethereum ve L2'deki ERC-4337 uygulamaları arasında hesap sözleşmesi adreslerinin farklı olmasına neden olabilir.
Ana sorun, sert çatalda yeni opcode'ların eklenmesidir. Örneğin, L2 zinciri Şanghay sert çatalını desteklemiyorsa ve derleme sırasında EVM versiyonu belirtilmemişse, push0'ın eklenmesi byte kodunda bir değişikliğe yol açacaktır, Solidity kodu aynı olsa bile.