Ethereum Pectra yükseltmesi: EIP-7702 EOA ve CA sınırlarını bulanıklaştırarak yerel hesap soyutlaması için yeni bir çağ açıyor

Ethereum Pectra Yükseltmesi: EIP-7702 EOA'ya devrim niteliğinde bir dönüşüm getiriyor

Giriş

Ethereum, Pectra yükseltmesine yaklaşmakta, bu önemli bir güncelleme olup, birçok önemli iyileştirme önerisi getirilecektir. Bunlardan biri, EIP-7702, Ethereum dış hesabı (EOA) üzerinde devrim niteliğinde bir dönüşüm gerçekleştirmiştir. Bu öneri, EOA ile sözleşme hesabı CA arasındaki sınırları bulanıklaştırmakta, EIP-4337'nin ardından yerel hesap soyutlaması yönünde atılan kritik bir adım olup, Ethereum ekosistemine tamamen yeni bir etkileşim modeli kazandırmaktadır.

Pectra, testnet üzerinde dağıtımını tamamladı ve yakında ana ağa geçmesi bekleniyor. Bu makale, EIP-7702'nin uygulama mekanizmasını derinlemesine inceleyecek, olası fırsatları ve zorlukları tartışacak ve farklı katılımcılara pratik bir kullanım kılavuzu sunacaktır.

Protokol Analizi

Genel Bakış

EIP-7702, EOA'nın bir akıllı sözleşme adresi belirlemesine ve kod setlemesine izin veren tamamen yeni bir işlem türü tanıttı. Bu, EOA'nın akıllı sözleşmeler gibi kodu yürütmesine olanak tanırken, işlem başlatma yeteneğini korur. Bu özellik, EOA'ya programlanabilirlik ve birleştirilebilirlik kazandırır; kullanıcılar EOA içinde sosyal kurtarma, yetki kontrolü, çoklu imza yönetimi, zk doğrulama, abonelik tabanlı ödeme, işlem sponsorluğu ve işlem toplu işleme gibi işlevleri gerçekleştirebilirler. Dikkat edilmesi gereken bir nokta, EIP-7702'nin EIP-4337 tarafından gerçekleştirilen akıllı sözleşme cüzdanları ile mükemmel uyumlu olmasıdır; her iki tarafın sorunsuz entegrasyonu, yeni işlevlerin geliştirilmesi ve uygulanması sürecini büyük ölçüde basitleştirmiştir.

EIP-7702, SET_CODE_TX_TYPE (0x04) olan bir işlem türünü tanıtmaktadır, veri yapısı aşağıdaki gibi tanımlanmıştır:

rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, value, data, access_list, authorization_list, signature_y_parity, signature_r, signature_s])

authorization_list alanı şöyle tanımlanmıştır:

authorization_list = [[chain_id, address, nonce, y_parity, r, s], ...]

Yeni işlem yapısında, authorization_list alanı dışında, diğerleri EIP-4844 ile aynı anlama sahip olacaktır. Bu alan liste türündedir ve birden fazla yetkilendirme girişi içerebilir, her bir yetkilendirme girişi şunları içerir:

  • chain_id, bu yetkilendirme delegasyonunun geçerli olduğu zinciri gösterir.
  • adres, yetkilendirilen hedef adresi belirtir.
  • nonce, mevcut yetkilendirilmiş hesabın nonce'u ile eşleşmelidir.
  • y_parity, r, s yetkilendirilmiş hesabın yetkilendirme imza verileridir

Bir işlemdeki authorization_list alanı, birden fazla farklı yetkilendirilmiş hesabı içerebilir. ( EOA ) tarafından imzalanmış yetkilendirme girişleri, yani işlem başlatıcısı yetkilendiren kişiyle farklı olabilir ve yetkilendiren kişinin yetkilendirme işlemlerinin gaz ücretini ödemesi sağlanabilir.

gerçekleştirmek

Yetkilinin yetkilendirme verilerini imzalarken, önce chain_id, address ve nonce'un RLP kodlaması yapılmalıdır. Ardından, kodlanmış veriler MAGIC sayısı ile birlikte keccak256 hash işlemi yapılır ve imzalanacak veri elde edilir. Son olarak, yetkilinin özel anahtarı ile hashlenmiş veri imzalanarak y_parity, r, s verileri elde edilir. MAGIC (0x05) alan ayırıcı olarak kullanılır, amacı farklı türdeki imzaların sonuçlarının çakışmamasını sağlamaktır.

Dikkat edilmesi gereken nokta, eğer yetkilendirenin yetkilendirdiği chain_id 0 ise, bu durumda yetkilendirenin, nonce'un da ( ile eşleşmesi şartıyla, EIP-7702'yi destekleyen tüm EVM uyumlu zincirlerde ) yetkisini yeniden oynatmasına izin verdiğidir.

Yetkilendiren kişi yetkilendirme verilerini imzaladıktan sonra, işlem başlatıcısı bunları authorization_list alanında imzalamak üzere bir araya getirir ve işlemi RPC aracılığıyla yayar. İşlem, blok içinde yer alıp yürütülmeden önce, Proposer önce işlemi ön kontrolünden geçirir; bu aşamada to adresi zorunlu olarak kontrol edilir, böylece bu işlemin bir sözleşme oluşturma işlemi olmadığı garanti edilir. Yani EIP-7702 türündeki işlemleri gönderirken, işlemin to adresi boş olamaz.

Aynı zamanda, bu tür işlemler authorization_list alanının en az bir yetkilendirme maddesi içermesini zorunlu kılar; eğer birden fazla yetkilendirme maddesi aynı yetkilendiren tarafından imzalanmışsa, yalnızca son yetkilendirme maddesi geçerli olacaktır.

İşlem yürütme sürecinde, düğüm önce işlem başlatıcısının nonce değerini artıracak, ardından authorization_list içindeki her bir yetkilendirme maddesi için applyAuthorization işlemini gerçekleştirecektir. applyAuthorization işleminde, düğüm önce yetkilendirenin nonce'unu kontrol edecek, ardından yetkilendirenin nonce'unu artıracaktır. Bu, eğer işlem başlatıcısı ve yetkilendiren aynı kullanıcı ise (EOA), yetkilendirme işlemini imzalarken nonce değerinin 1 artırılması gerektiği anlamına gelir.

Bir düğüm bir yetkilendirme maddesini uygularken herhangi bir hata ile karşılaşırsa, bu yetkilendirme maddesi atlanacak, işlem başarısız olmayacak ve diğer yetkilendirme maddeleri uygulanmaya devam edecektir. Bu, toplu yetkilendirme senaryolarında DoS riski oluşmamasını sağlamak içindir.

Yetki verilen uygulama tamamlandığında, yetkilendiren adresin code alanı 0xef0100 || address olarak ayarlanacaktır; burada 0xef0100 sabit bir tanımlayıcıdır, address ise yetkilendirilen hedef adrestir. EIP-3541'in sınırlamaları nedeniyle, kullanıcılar 0xef baytlarıyla başlayan sözleşme kodunu normal yollarla dağıtamazlar, bu da bu tür tanımlayıcıların yalnızca SET_CODE_TX_TYPE (0x04) türündeki işlemlerle dağıtılmasını garanti eder.

Yetki tamamlandıktan sonra, yetki veren kişi yetkiyi kaldırmak isterse, sadece yetkilendirilmiş hedef adresi 0 adresi olarak ayarlaması yeterlidir.

EIP-7702 ile tanıtılan yeni işlem türü, yetkilendiricinin (EOA) gibi akıllı sözleşmelerin kodunu çalıştırmasını sağlarken, işlem başlatma yeteneğini de korur. EIP-4337 ile karşılaştırıldığında, bu kullanıcıya (Native AA)'a daha yakın bir yerel hesap soyutlama deneyimi sunarak, kullanıcıların kullanım eşiğini büyük ölçüde düşürmektedir.

En İyi Uygulamalar

EIP-7702'nin Ethereum ekosistemine yeni bir canlılık katmasına rağmen, yeni uygulama senaryoları da yeni riskler getirecektir. Aşağıda ekosistem katılımcılarının uygulama sürecinde dikkat etmesi gereken noktalar yer almaktadır:

özel anahtar depolama

EOA, akıllı sözleşmelerin yerleşik sosyal kurtarma gibi yöntemlerini kullanarak özel anahtar kaybından kaynaklanan finansal kayıpları çözebilse de, EOA özel anahtarının sızdırılması riskini ortadan kaldıramaz. Şunu belirtmek gerekir ki, yetkilendirme gerçekleştirildikten sonra, EOA özel anahtarı hâlâ hesap üzerinde en yüksek kontrol yetkisine sahiptir; özel anahtara sahip olan, hesap içindeki varlıkları dilediği gibi tasfiye edebilir. Kullanıcı veya cüzdan hizmet sağlayıcısı EOA'nın yetkilendirmesini tamamladıktan sonra, yerel olarak depolanan özel anahtarı tamamen silse bile, özel anahtar sızdırılma riskini tamamen ortadan kaldıramaz; özellikle tedarik zinciri saldırısı riski bulunan senaryolarda.

Kullanıcılar için, yetkilendirilmiş hesaplar kullanılırken, her zaman özel anahtar korumasını öncelikli hale getirmeli ve her zaman şunu unutmamalıdır: Not your keys, not your coins.

Çok zincirli tekrar

Kullanıcı, yetkilendirme sözleşmesini imzalarken, yetkilendirmenin geçerli olacağı zinciri chainId ile seçebilir. Ayrıca, yetkilendirmenin çoklu zincirlerde tekrar geçerli olmasını sağlamak için chainId'si 0 olanı seçebilir, böylece kullanıcı tek bir imza ile çoklu zincirlerde yetkilendirme yapabilir. Ancak, çoklu zincirlerdeki aynı akıllı sözleşme adresinde farklı uygulama kodlarının olabileceğine dikkat edilmelidir.

Cüzdan hizmet sağlayıcıları için, kullanıcılar yetkilendirme yaptıklarında, yetkilendirmenin geçerli olduğu zinciri mevcut bağlı ağ ile karşılaştırmalı ve kullanıcılara chainId'si 0 olan yetkilendirmenin getirebileceği riskleri hatırlatmalıdır.

Kullanıcılar ayrıca, farklı zincirlerdeki aynı akıllı sözleşme adreslerinin her zaman aynı sözleşme koduna sahip olmadığını dikkate almalı ve öncelikle yetkilendirmenin hedefini anlamalıdır.

başlatılamadı

Mevcut ana akım akıllı sözleşme cüzdanlarının çoğu, proxy modeli kullanmaktadır. Cüzdan proxy'si dağıtım sırasında, DELEGateCALL çağrısını kullanarak sözleşmenin başlatma fonksiyonunu gerçekleştirir, böylece cüzdanın başlatılması ile proxy cüzdanın dağıtılması atomik bir işlem haline gelir ve erken başlatma sorununu önler. Ancak kullanıcı EIP-7702 ile yetki devrettiğinde, yalnızca adresinin code alanını günceller ve yetki devri adresini çağırarak başlatma işlemi gerçekleştiremez. Bu, EIP-7702'nin, cüzdan başlatma işlemi için dağıtım işlemi sırasında başlatma fonksiyonunu çağırabilen yaygın ERC-1967 proxy sözleşmeleri gibi olmasını engeller.

Geliştiriciler için, EIP-7702'yi mevcut EIP-4337 cüzdanlarıyla birleştirirken, cüzdanın başlatma işlemi sırasında yetki kontrolü yapılmasına dikkat edilmelidir (. Örneğin, ecrecover ile imza adresinin geri kazanılması yoluyla yetki kontrolü yapılmalıdır ), böylece cüzdanın başlatma işleminin kapkaç riskinden korunması sağlanır.

Depolama Yönetimi

Kullanıcılar EIP-7702 delegation fonksiyonunu kullanırken, fonksiyon gereksinimlerinin değişmesi, cüzdan güncellemeleri gibi nedenlerle farklı bir akıllı sözleşme adresine yeniden delegasyon yapmaları gerekebilir. Ancak farklı akıllı sözleşmelerin depolama yapıları arasında farklılıklar olabilir. ( Örneğin, farklı akıllı sözleşmelerin slot0 slotu farklı veri türlerini temsil edebilir. ) Yeniden delegasyon durumunda, yeni akıllı sözleşmenin eski akıllı sözleşmenin verilerini yanlışlıkla yeniden kullanmasına neden olabilir, bu da hesap kilitlenmesi, fon kaybı gibi olumsuz sonuçlar doğurabilir.

Kullanıcılar için, yeniden yetkilendirilen durumları dikkatlice ele almak önemlidir.

Geliştiriciler için, geliştirme sürecinde ERC-7201 tarafından önerilen Namespace Formülünü takip etmek, değişkenleri belirli bağımsız depolama alanlarına tahsis etmek ve depolama çakışması riskini azaltmak önemlidir. Ayrıca ERC-7779 (draft), EIP-7702 için yeniden delegasyonun standart sürecini sağlamaktadır: depolama çakışmasını önlemek için ERC-7201 kullanmayı, yeniden delegasyondan önce depolama uyumluluğunu doğrulamayı ve eski delege arayüzünü çağırarak eski verileri temizlemeyi içerir.

sahte yükleme

Kullanıcı delegasyon işlemi yaptıktan sonra, EOA da akıllı sözleşme olarak kullanılabilir hale gelecektir, bu nedenle merkezi borsa (CEX), akıllı sözleşme ile para yatırma işlemlerinin yaygınlaşması durumu ile karşılaşabilir.

CEX, her bir para yatırma işleminin durumunu trace ile kontrol etmeli ve akıllı sözleşme sahte para yatırma riskini önlemelidir.

Hesap Dönüşümü

EIP-7702 delegasyonu uygulandıktan sonra, kullanıcıların hesap türleri EOA ile SC arasında serbestçe dönüşebilir, bu da hesapların hem işlem başlatabilmesini hem de çağrılabilmesini sağlar. Bu, hesabın kendisini çağırdığı ve dış çağrılar yaptığı zaman, msg.sender'ın da tx.origin olacağı anlamına gelir; bu, yalnızca EOA'nın katılabileceği projelerdeki bazı güvenlik varsayımlarını bozacaktır.

Sözleşme geliştiricileri için, tx.origin'in her zaman EOA olduğunu varsaymak artık geçerli olmayacaktır. Aynı şekilde, msg.sender == tx.origin kontrolü ile geri çağırma saldırılarına karşı savunma da işe yaramayacaktır.

Geliştiriciler, geliştirme sürecinde gelecekteki katılımcıların akıllı sözleşmeler olabileceğini varsaymalıdır.

Sözleşme Uyumluluğu

Mevcut ERC-721 ve ERC-777 token'ları, sözleşme transferleri sırasında Hook işlevine sahiptir, bu da alıcının token'ları başarıyla almak için ilgili geri çağırma fonksiyonunu uygulaması gerektiği anlamına gelir.

Geliştiriciler için, kullanıcıların yetkilendirdiği hedef sözleşmenin, ana akım tokenlerle uyumlu olmasını sağlamak için ilgili geri çağırma fonksiyonlarını uygulaması gerektiği açıktır.

Balık tutma kontrolü

EIP-7702 delegasyonu uygulandıktan sonra, kullanıcı hesaplarındaki varlıklar akıllı sözleşmeler tarafından kontrol edilebilir hale gelebilir, bir kullanıcı hesabını kötü niyetli bir sözleşmeye devrettiğinde, saldırganların fonları çalması oldukça kolaylaşır.

Cüzdan hizmet sağlayıcıları için, EIP-7702 türündeki işlemleri mümkün olan en kısa sürede desteklemek son derece önemlidir ve kullanıcılar yetki devri imzası yaparken, kullanıcıya yetki devredilen hedef akıllı sözleşmeyi vurgulayarak göstermelidir, bu da kullanıcıların phishing saldırılarına maruz kalma riskini azaltacaktır.

Ayrıca, hesap yetkilendirmesiyle hedef sözleşmenin daha derinlemesine otomatik analizi ( açık kaynak kontrolü, yetki kontrolü gibi ) kullanıcıların bu tür risklerden kaçınmalarına daha iyi yardımcı olabilir.

Özet

Bu makale, Ethereum'un yaklaşan Pectra güncellemesindeki EIP-7702 önerisi etrafında döner. EIP-7702, yeni bir işlem türü getirerek EOA'ya programlanabilirlik ve bileşenlik kazandırır, EOA ile sözleşme hesapları arasındaki sınırları bulanıklaştırır. Şu anda EIP-7702 türü için pratikte test edilmiş bir uyumlu akıllı sözleşme standardı olmadığı için, farklı ekosistem katılımcıları, kullanıcılar, cüzdan hizmet sağlayıcıları, geliştiriciler, CEX'ler gibi, pratik uygulamalarda birçok zorluk ve fırsatla karşı karşıya kalmaktadır. Bu makalede açıklanan en iyi uygulama içeriği tüm potansiyel riskleri kapsamayabilir, ancak yine de her tarafın pratikte uygulamada dikkate alması gereken değerli bilgiler sunmaktadır.

ETH10.01%
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.
  • Reward
  • 9
  • Repost
  • Share
Comment
0/400
notSatoshi1971vip
· 07-26 08:08
卷市开炒之前先提前 pusuya yatmak啦 7702必Aya doğru
View OriginalReply0
0xSunnyDayvip
· 07-24 10:37
Bu güncelleme çok sert oldu 8 Koştu
View OriginalReply0
BasementAlchemistvip
· 07-23 13:37
Yine bir sözleşme hesabı yeniliği mi? Çok tuhaf.
View OriginalReply0
MEVHunterXvip
· 07-23 13:21
Bir 4337 hikayesi daha işte~ Harika, bir dalga oluştur!
View OriginalReply0
PanicSeller69vip
· 07-23 13:20
Bir bakışta pump yapacak, ne zaman dipten satın al v tanrısı?
View OriginalReply0
FastLeavervip
· 07-23 13:14
Yine bir güncelleme?? Rug Pull uyarısı
View OriginalReply0
PerennialLeekvip
· 07-23 13:12
Birçok kez yükseldi, anlayan anlar.
View OriginalReply0
WinterWarmthCatvip
· 07-23 13:12
ATM konuşmaya başladı, yeni güncellemeler mi var? Çekim üzerinde konuşalım.
View OriginalReply0
Web3ExplorerLinvip
· 07-23 13:07
büyüleyici... eip-7702, eth'nin şu anda ihtiyaç duyduğu kuantum sıçraması olabilir
View OriginalReply0
View More
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate App
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)