ERC-4337 ile EIP-3074 karşılaştırması: Yanlış ikilik

İleri SeviyeJan 16, 2024
Bu makale, alternatif bir hesap soyutlama yolu olarak EIP-3074 hakkındaki yanlış anlamaları açıklığa kavuşturmakta ve tam hesap soyutlaması ERC-4337 ile saf yürütme soyutlaması Epos arasındaki farkları analiz etmektedir.
ERC-4337 ile EIP-3074 karşılaştırması: Yanlış ikilik

Hesap Soyutlaması Nedir?

Her Ethereum hesabı beş işlevi uygular:

  • Kimlik doğrulama
  • yetki
  • Tekrar koruması
  • Gaz ödemesi
  • Uygulamak

Bir EOA bunları sabit kodlanmış bir şekilde uygular:

  • Kimlik doğrulama ve yetkilendirme bir aradadır: değişmez bir ECDSA anahtarı kimliği kanıtlar ve tam yetki verir.
  • Tekrar koruması basit bir tekrarlamadır; monoton olarak artan bir sayaçtır.
  • Gaz ödemesi doğrudan EOA'nın ETH bakiyesinden yapılır.
  • Yürütme – tek bir hedefe yapılan tek bir çağrı.

Hesap soyutlama, şu beş işlevselliğe programlı mantık eklemek anlamına gelir:

  • Kimlik doğrulama – kişinin kimliğini kanıtlamanın herhangi bir şekli.
  • Yetkilendirme - herhangi bir erişim politikası.
  • Tekrar koruması - işlem sırası tekrar korumasından ayrıldı.
  • Gaz ödemesi - gaz ödemesi hesabın kendisinden ayrılmıştır.
  • Yürütme - herhangi bir yürütme mantığı.

Hesap soyutlama kullanım senaryolarına örnekler

  • Farklı imza şemaları
    • secp256r1 (güvenli bölge, geçiş anahtarları)
    • Schnorr
    • BLS
    • Kuantum sonrası
    • ZK kanıtları (örn. zkemail)
  • Anahtar rotasyonu
    • Güvenliği ihlal edilmiş anahtarları değiştirin
    • Deadman'in miras anahtarı (hesap bir yıl boyunca aktif değilse anahtar aktif olur)
  • Farklı erişim politikaları
    • Çoklu imza
    • Rol tabanlı erişim
    • dapp'a özgü oturum anahtarları
    • Sosyal iyileşme
  • Farklı tekrar koruma şemaları
    • Farklı kuruluşlardan paralel işlemler
    • 3. şahıslar tarafından gönderilecek önceden imzalanmış gelecekteki işlemler
    • Yönetim kanalı
  • Gaz çıkarma
    • 3. şahısların gaz sponsorluğu
    • ETH dışındaki varlıklarla ödeme
    • Gizlilik: anonim airdrop talepleri veya ZK toplamalarından veya karıştırıcılarından çekilme
  • Yürütme soyutlaması
    • Birden fazla hedefe birden fazla çağrıyı toplu olarak göndermek (örn. onayla+transferGönderen)
    • Atomiklik
    • dapp'a özel kullanıcı deneyimi iyileştirmeleri

ERC-4337 ile EIP-3074 karşılaştırması: Yanlış ikilik

EIP-3074, EOA'yı başlatıcılar aracılığıyla keyfi yürütme mantığıyla güçlendirerek soyut Yürütmeyi amaçlamaktadır. Varlıkları yeni bir hesaba taşımak zorunda kalmadan bir EOA'nın yeteneklerini genişleten benzersiz bir özelliğe sahiptir. Yürütme bunu etkilemediğinden merkezi olmayan erişim gibi sorunları ele almasına gerek yoktur. Diğer dört işlevsellik bunu yapar ancak bunlar EIP-3074'ün kapsamı dışındadır.

ERC-4337, hesabın tamamını (beş işlevin tümü) soyutlamayı amaçlamaktadır. Eğer merkeziyetsizlik ve sansüre karşı direnç korunacaksa çözülmesi daha zor bir sorun. ERC-4337'nin odak noktası, merkezi altyapıya başvurmadan ilk dört işlevin soyutlanmasıyla sağlanan DoS ve olumsuz saldırı vektörlerini azaltmaktır. Bir ERC olarak EOA'nın yeteneklerini genişletemez ve akıllı hesaba geçiş yapılmasını gerektirir.

İki yöntem arasındaki örtüşme minimum düzeydedir: yalnızca Yürütme soyutlaması.

Ayrıca her yöntem diğerinin çözemediği sorunları çözmeyi amaçlamaktadır: EIP-3074 mevcut EOA'lara hizmet etmeyi ve işleri mümkün olduğunca basit tutmayı amaçlamaktadır. ERC-4337, Ethereum'un merkeziyetsizlik gibi temel özelliklerinden ödün vermeden tam Hesap Soyutlaması sağlamayı amaçlamaktadır.

ERC-4337'yi önceki bir teklifle karşılaştırmakta ısrar edilirse, en yakın olanı EIP-3074 değil, EIP-2938'dir. EIP-2938, hesap soyutlamada bir atılımdı; bir AA bellek havuzunda DoS azaltmanın zorluğunu fark eden ilk teklifti. ERC-4337, EIP-2938'in çözemediği bazı sorunları çözmektedir ancak tam bir karşılaştırma bu belgenin kapsamı dışındadır.

Hem ERC-4337 hem de EIP-3074 neyi çözebilir?

Her ikisi de yürütme soyutlamasını çözer ve dolayısıyla yukarıdaki kullanım durumlarının son kategorisini etkinleştirir:

  • Birden fazla hedefe birden fazla çağrıyı toplu olarak gönderme
  • Atomiklik
  • dapp'a özel kullanıcı deneyimi iyileştirmeleri

ERC-4337'nin yapamadığı, EIP-3074'ün yapabileceği ne var?

  • Mevcut EOA'lara karmaşık yürütme işlevselliği ekleyin.
    • ERC-4337, bir ERC olduğundan EOA'lara işlevsellik ekleyemez.
  • Yalnızca yürütme-soyutlamaya ihtiyaç duyulduğunda basitlik ve daha iyi gaz verimliliği.
    • Tam hesap soyutlaması, yürütme soyutlaması için gerekli olmayan karmaşıklığı artırır.

EIP-3074'ün yapamadığı neyi ERC-4337 yapabilir?

  • 1. günde herhangi bir EVM zincirini destekleyin. Konsensüs değişikliği yok.
    • EIP-3074'ün her zincir tarafından bir fikir birliği değişikliği yoluyla benimsenmesi gerekecektir.
  • İzinsiz yenilik
    • Cüzdanlar yalnızca beyaz listeye alınmış EIP-3074 çağırıcılarına izin verecektir. ERC-4337 hesapları herkes tarafından oluşturulabilir ve kullanılabilir.
  • Tam hesap soyutlaması - merkeziyetsizlikten ödün vermeden yukarıdaki tüm kullanım durumları:
    • Farklı imza şemaları.
      • EIP-3074, ECDSA'yı kullanır. EIP, farklı bir şemaya geçiş için gelecekteki bir yoldan bahsetmektedir, ancak EOA'nın kendisi ECDSA anahtarını kabul ettiği sürece, bir çağırıcı bunun doğrudan kullanılmasını engelleyemez.
    • Anahtar döndürme.
      • EIP-3074 ile EOA hala geri alınamaz bir anahtara sahiptir.
    • Farklı erişim politikaları
      • ECDSA anahtarı, çağırıcıyı atlayabilir ve hesapta herhangi bir işlemi gerçekleştirebilir. Ayrıntılı erişim kontrolü yok.
    • Farklı tekrar koruma şemaları
      • Hesap hala bir EOA'dır ve 1 boyutlu bir nonce kullanır.
    • Gaz çıkarma
      • Hesap kendi gazını ETH ile ödüyor.
      • Hesap adına meta işlemler göndermek için bir röle kullanılarak EIP-3074'ün üzerine bir gaz çıkarma sistemi kurulabilir. Ancak bu tür aktarımları DoS'tan ve sıkıntılardan korumak zorlu bir iştir, dolayısıyla bunlara izin verilmesi muhtemeldir. ERC-4337 karmaşıklığının çoğu, bu aktarıcıların (paketleyicilerin) izinsiz tutulmasından kaynaklanmaktadır.

EIP-3074 + EIP-5003, ERC-4337'nin yaptığını yapabilir mi?

EIP-5003, EOA'nın ECDSA anahtarını iptal etmesine ve akıllı bir sözleşme haline gelmesine olanak tanıyarak EIP-3074'ü tamamlar. Bir sözleşme olarak hesap işlevlerinin geri kalanını soyutlayabilir, örneğin ECDSA'yı farklı bir imzayla değiştirmek, anahtarları döndürmek, erişim politikalarını uygulamak vb. Bu anlamda EIP-6913 ve EIP-7377 gibi tekliflere eşdeğerdir ancak EIP-7377'den üstündür çünkü bir işlem kodu olarak geçişin kendisi için bir gaz çıkarma sistemi kullanabilir.

EOA akıllı sözleşmeye dönüştürüldüğünde artık doğrudan işlem yapamaz ve başka bir EOA aracılığıyla erişilmesi gerekir. Bu, ERC-4337'nin çözmek üzere tasarlandığı zorluğu ortaya koymaktadır. Kullanıcının geçişten sonra hesapla işlem yapmasının iki yolu vardır:

  1. Hesapla işlem yapmak için başka bir fonlu EOA bulundurun ve her işlemi iki kez imzalayın. Bu, hesap soyutlamanın değerini ortadan kaldırır ve kötü UX ile sonuçlanır.
  2. Finanse edilen bir EOA'yı sürdüren, işlemleri zincire koyan ve hesaptan geri ödeme alan bir aktarma kullanın. Böyle bir aktarmayı DoS'ye ve sıkıntıya karşı korumak göründüğünden daha zordur, bu nedenle bazı projeler izinli bir aktarma çalıştırır. Bu, ademi merkeziyetçiliğin ve sansüre karşı direncin kaybolmasıyla sonuçlanır.

Geçiş sonrası hesap erişimini merkezileştirmenin yolu, hesap gazı ödeyene kadar belirli kısıtlamalar uygulamaktır. Bu yaklaşım hem EIP-2938 hem de ERC-4337 tarafından benimsenmiştir. <a href="https://notes.ethereum.org/ @yoav /unified-erc-4337-mempool">ERC-4337 mempool, hesapla işlem yapmak için merkezi olmayan bir yol sunar.

TL;DR: Hayır, sadece ERC-4337'ye olan ihtiyacı vurguluyor.

Uyarı: EOA geçişinin zararlı olduğu düşünülüyor

Mevcut EOA kullanıcıları için varlıkları aktarmak yerine yerinde bir akıllı hesaba geçmek cazip geliyor. Bununla birlikte, bazıları hafifletilemeyen belirli bir güvenlik açığıyla birlikte gelir.

İptal edildikten sonra EOA anahtarı ele geçirilirse ne yanlış gidebilir?

  1. Anahtar diğer zincirlerde (geçiş zamanında mevcut olmayan gelecekteki zincirler dahil) geçerliliğini korur. Aynı hesabı diğer zincirlerde talep etmek ve bu zincirlerdeki hesaba gönderilen varlıkları aktarmak için kullanılabilir.
  2. Dapp ön uçlarının oturum açma süreci gibi zincir dışı sistemler imzaları kontrol eder. Birçoğu akıllı sözleşme imzaları için EIP-1271'i destekler, ancak bunu yalnızca ecrecover başarısız olursa deneyin. Anahtar, bu sistemlerdeki hesabın güvenliğini ihlal etmek için kullanılabilir.
  3. İzin yetkilerini imzalamak için zincir üzerinde (iptal edildiği aynı zincirde) kullanılabilir. Hesap, izni destekleyen ERC-20 tokenleri içeriyorsa, bu tokenlar iptal edilen anahtar kullanılarak çalınabilir.
  4. Çapraz zincir köprüler genellikle geri çekme sırasında bir imzayı kontrol eder. Hesabın böyle bir köprü üzerinden başka bir zincire para göndermesi durumunda, iptal edilen anahtar karşı taraftaki parayı çekmek için kullanılabilir.

Kullanıcı, geçişten sonra özel anahtarı yakabilir ve hiçbir kopyanın kalmamasını umabilir, ancak bu durumda kullanıcı aynı adresi diğer zincirlerde de talep edemez.

Bu nedenle, eski adresin korunması için güçlü bir neden olduğunda geçiş son çare olarak kullanılmalıdır. Varsayılan olarak, yeni hesapların bir EOA'dan taşınması yerine CREATE2 ile dağıtılması en iyisidir, böylece diğer zincirlerdeki bir EOA anahtarına bağlanmazlar.

Topluluk, mevcut kullanıcıların çoğunun EOA'lara sahip olması nedeniyle EOA geçişinin önemini gereğinden fazla vurgulama eğilimindedir. Bir sonraki milyar kullanıcı akıllı bir hesapla başlayabilir ve EOA'dan geçiş yapmak zorunda kalmaz. Biz mevcut EOA kullanıcıları bunun çok küçük bir kısmıyız. Mevcut kullanıcıların geçiş yapması için geçiş bir süreliğine önemli olabilir. Hesap soyutlaması norm haline geldiğinde, nadiren kullanılan bir akış haline gelecektir.

ERC-4337 ile EIP-3074 arasında sinerji var mı?

Evet, <a href="https://notes.ethereum.org/@yoav/eip-3074-erc-4337-synergy"> ilginç şekillerde birleştirilebilirler. Bir zincir EIP-3074'ü benimserse, ERC-4337 kullanan projeler bunu kendi yararlarına kullanabilir.

RIP-7560: Hesap soyutlamanın geleceği için umut verici bir yol

Hem EIP-3074 hem de ERC-4337, tam yerel hesap soyutlamanın bazı avantajlarından yararlanmaya yönelik adımlardır. İlki, yürütme soyutlamasının tüm avantajlarından yararlanmaya odaklanırken, ikincisi, hesap soyutlamanın tüm faydalarını tüm EVM zincirlerinde, ancak yerel olmayan ve daha az verimli bir şekilde elde etmeye odaklanır.

Kullanıcılarının tam yerel hesap soyutlamasından faydalanmasını isteyen bir zincir, RIP-7560'ı benimseyebilir. ERC-4337 ile aynı hesabı ve bellek havuzu mimarisini kullanır ancak protokol düzeyinde yerel olarak çalışır.

RIP-7560'ın 1. günden itibaren benimsenmesi gerekmiyor ve mevcut hesaplar, gelecekte herhangi bir zamanda onu benimsemeyi seçen zincirlerde ona geçiş yapabilecek:

  • ERC-4337 hesapları, uygulamalarını RIP-7560'ta tanımlanan özel EntryPoint adresine güvenecek şekilde değiştirerek, mimarilerini değiştirmeden RIP-7560'a geçiş yapabilecektir. Bir hesap çok az bir çabayla hem ERC-4337 hem de RIP-7560 ile uyumlu olabilir, dolayısıyla herhangi bir geçiş yapılmasına bile gerek kalmaz.
  • EOA, ERC-4337 veya EIP-3074'ten geçmeden doğrudan RIP-7560'a geçiş yapabilir. RIP-7560, EOA'lar için gaz çıkarımını zaten desteklemektedir. Gelecekteki bir RIP, SETCODE (EIP-6913) veya AUTHUSURP (EIP-5003) gibi bir işlem kodu kullanarak veya EIP-7377'ye benzer bir TransactionType4 alt türü ekleyerek EOA'nın kodunu ayarlamasına izin verebilir. Bu işlem kodu/alt türü, Tip-4 (RIP-7560) işleminde çağrılan bir geçiş sözleşmesi tarafından kullanılabilir. Ancak EOA geçişi <a href="https://notes.ethereum.org/@yoav/erc-4337-vs-eip-3074-false-dichotomy#Caveat:-EOA-migration-considered-harmful"> tasarruf edilmez .

RIP-7560'ın geri bildiriminize ihtiyacı var

RIP-7560'ı kutsallaştırmayı teklif etmeden önce onunla ilgili geri bildirim topluyoruz. Yerel hesap soyutlamayla ilgileniyorsanız lütfen Halkla İlişkiler'i inceleyin veya tartışmaya katılın.

Yasal Uyarı:

  1. Bu makale [https://notes.ethereum.org/@ yoav/erc-4337-vs-eip-3074-false-dichotomy@yoav ] adresinden yeniden basılmıştır. Tüm telif hakları orijinal yazara [@yoav] aittir. Bu yeniden basıma itirazlarınız varsa lütfen Gate Learn ekibiyle iletişime geçin; onlar konuyu hemen halledeceklerdir.
  2. Sorumluluk Reddi: Bu makalede ifade edilen görüş ve görüşler yalnızca yazara aittir ve herhangi bir yatırım tavsiyesi teşkil etmez.
  3. Makalenin diğer dillere çevirileri Gate Learn ekibi tarafından yapılır. Aksi belirtilmedikçe tercüme edilen makalelerin kopyalanması, dağıtılması veya intihal edilmesi yasaktır.
Jetzt anfangen
Registrieren Sie sich und erhalten Sie einen
100
-Euro-Gutschein!
Benutzerkonto erstellen