Ethereum EIP-7702 yükseltmesi için güvenli EOA'dan akıllı Cüzdan'a geçişin aracı modeli

robot
Abstract generation in progress

EIP-7702 yetkilendirilmiş hesaplara özgü bazı zorlukları ele alan, EOA için EIP-7702 delege temel mantık yönlendirmesi olarak hizmet vermek üzere tasarlanmış hafif bir ERC-1967 proxy sözleşmesi olan EIP7702Proxy'yi geliştirdik. Bu makale, Boardlink topluluğu tarafından yazılan bir makaleden alınmıştır ve ForesightNews tarafından derlenmiş, derlenmiş ve katkıda bulunulmuştur. (Özet: Ethereum Pectra "hacker flip"i yükseltiyor, Wintermute uyarıyor: EIP-7702 çok sayıda sözleşmenin dağıtımını otomatikleştiriyor) (Arka plan eki: Ethereum Vakfı'nın "Bir Trilyon Dolarlık Güvenlik Projesi" ilk raporu yayınladı: Akıllı sözleşmelerin, altyapının ve bulut güvenliğinin sıralanması... Altı Ekolojik Zorluk EIP-7702, basit Ethereum cüzdanlarının (EOA'lar) akıllı sözleşme cüzdanlarına yükseltilmesini sağlayarak daha fazla güvenlik, gelişmiş özellikler, gaz sponsorluğu fırsatları ve diğer avantajlar sağlar. Tarihsel olarak, akıllı cüzdanların sıfırdan inşa edilmesi gerekiyordu, ancak EIP-7702'nin piyasaya sürülmesiyle, geleneksel cüzdanlar yükseltilebilir ve tüm varlıklarını ve zincir üstü geçmişlerini aynı cüzdan adresiyle tutabilir. Bu, yeni bir numara almak zorunda kalmadan sabit hattan akıllı telefona geçmek gibidir. EOA, bir "delegasyon ataması", yani bir delege akıllı sözleşmesine bir işaretçi ayarlayarak ve ardından EOA'yı yönetmek için akıllı sözleşmenin mantığını devrederek yükseltilir. Sonuç olarak, yükseltilmiş bir EOA işlevlere sahip olabilir, depolamayı ayarlayabilir, olayları yayabilir ve bir akıllı sözleşmenin gerçekleştirebileceği diğer tüm işlemleri gerçekleştirebilir. EOA, yeni, imzalı bir EIP-7702 yetkilendirmesi ile bu temsilciyi herhangi bir zamanda değiştirebilir veya silebilir. Bu, birçok yeni olasılığın kilidini açarken, bu güçlü özellik aynı zamanda dikkatli değerlendirme ve yenilikçi çözümler gerektiren yeni güvenlik zorluklarını da beraberinde getiriyor. EOA'nın bir akıllı sözleşme cüzdanı olarak hareket etmesini sağlamak için, EOA için bir EIP-7702 temsilcisi olarak hizmet vermek üzere tasarlanmış hafif bir ERC-1967 proxy sözleşmesi olan EIP7702Proxy'yi geliştirdik. Aracı tarafından gerçekleştirilen temel mantıksal yönlendirmeye ek olarak, EIP7702Proxy, EIP-7702 yetkilendirilmiş hesaplara özgü bazı zorlukları ele alan ek özellikler ve tasarım seçenekleri içerir. EIP7702Proxy'yi tasarlamanın bir amacı, "standart konuşlandırılmış" bir Coinbase akıllı cüzdanı ile EIP-7702 yetkilendirilmiş bir Coinbase akıllı cüzdanı arasında mümkün olduğunca fazla eşleştirilebilirlik sağlamaktır, bu da EIP-7702 mekanizması için gereken ek karmaşıklığı özel bir proxy'ye soyutlamak ve CoinbaseSmartWallet'ın orijinal uygulamasına güvenmeye devam etmek anlamına gelir. Bu zorluğun çözümü, yalnızca CoinbaseSmartWallet uygulamasına değil, herhangi bir uygulama mantığına etkili bir şekilde uygulanabilir ve aynı zamanda EOA'nın 7702 özellikli bir ortamda güvende kalmasına yardımcı olur. Aşağıda, EIP-7702 yükseltmeleri için mevcut herhangi bir akıllı sözleşme cüzdanı uygulamasını güvenli bir şekilde uyarlamamıza olanak tanıyan belirli zorlukları ve ilgili tasarım çözümlerini sunuyoruz. Zorluk #1: Güvenli Başlatmayı Zorlama EIP-7702'nin uygulanmasının önündeki ilk büyük engel, başlatma kısıtlamalarından kaynaklanmaktadır. CoinbaseSmartWallet dahil olmak üzere geleneksel akıllı sözleşme cüzdanları, genellikle ayrı bir fabrika sözleşmesi aracılığıyla, dağıtımları sırasında atomik olarak güvenli başlatmayı (hesap sahipliği oluşturma) gerçekleştirir. Bu atomiklik, bu tür birçok uygulamanın yalnızca bir kez çağrılabilen korumasız başlatıcı işlevlerine sahip olduğu anlamına gelir. Bununla birlikte, EIP-7702'nin tasarımı, kod yetkilendirme işlemi ("dağıtım"ın eşdeğer adımı) sırasında başlatma çağrı verilerinin gerçekleştirilmesine izin vermez, bu nedenle bu atomik olarak yapılamaz. Adımların bu şekilde ayrılması kritik bir güvenlik açığı penceresi oluşturur. Uygulama sözleşmesi EIP-7702 aracılığıyla EOA'ya "dağıtıldığında", bu 7702 yükseltme ve başlatma cüzdanı için standart EVM işleminin atomik olarak yürütüleceğinin garantisi yoktur. Teknik olarak, aynı anda işlense bile, yetkilendirmeyi ayarlayan kod, başlatma işlemi uygulamasından bağımsız olabilir, bu da bir saldırganın başlatma işlemini önceden yürütmesine ve akıllı hesabın sahipliğini talep etmesine izin verebilir. Çözüm: Uygulamayı atomik olarak yapılandırmak ve başlatmak için EOA imzası gereklidir Mevcut Coinbase akıllı cüzdanının, UUPSUpgradeable uygulamasıyla (gerçek CoinbaseSmartWallet mantığı) ERC-1967 proxy'sinden sonra konuşlandırıldığını unutmayın. Gerçek hesap adresindeki kod, uygulama mantığına yönelik işaretçileri depolamak için ERC-1967 tarafından tanımlanan normal bir depolama konumunu kullanan bir proxy'dir. 7702 bağlamındaki başlatma güvenlik açığına yönelik çözümümüz, herhangi bir uygulama mantığının yalnızca aracı onunla gerçekten bir bağlantı kurduğunda etkin (ve dolayısıyla tehlikeli) hale geldiğini kabul etmeyi içerir. Dolayısıyla, atomiklik dağıtımını ve başlatmayı zorlayamazsak, atomiklik uygulama kurulumunu ve başlatmayı zorlayabiliriz. EIP-7702CoinbaseSmartWallet Sözleşme Yapısı ve Mantıksal Delegasyon Süreci EIP-7702 bağlamında, EOA'nın kendisi, hesabında herhangi bir değişiklik yapmak için ilk yetkilidir ve yeni bir Smart hesabı başlatan ve kuran herhangi bir sahibe yetki vermek için bir imza sağlanmalıdır. EIP7702Proxy sözleşmemiz, yeni mantıksal uygulamaları atomik olarak ayarlayan ve hesapları başlatan bir setImplementation işlevi uygular. setImplementation işlevi: Yeni uygulama sözleşmesinin adresi, çağrı verilerinin başlatılması, nihai hesap durumunun güvenliğini değerlendirecek doğrulayıcı sözleşmenin adresi ve nonce ve sona erme süresi gibi temel imza yeniden yürütme koruması gibi temel verileri içeren EOA'dan gelen imzayı doğrular. ERC-1967 işaretçisinin değerini yeni uygulamaya ayarlayın ve sağlanan çağrı verilerini yeni mantıksal uygulamaya göre yürütün. İmzaya dahil edilen sertifikalandırıcı tarafından uygulanması gereken validateAccountState işlevini çağırın. Doğrulayıcı, nihai hesap durumunu güvenli olarak kabul edip etmediğini değerlendirmek için mantık içeren, uygulamaya özel bir sözleşmedir. Örneğin, CoinbaseSmartWallet için CoinbaseSmartWalletValidator, hesabın sahiplik durumunun boş olup olmadığını ve bu nedenle artık keyfi başlatmaya karşı savunmasız olup olmadığını kontrol eder. Zorluk #2: EIP-7702 Genelinde Yetkilendirilmiş Paylaşılan Depolama En karmaşık EIP-7702 zorlukları, depolama yönetimi ile ilgili olabilir. EOA, mantığını herhangi bir zamanda farklı bir sözleşmeye yeniden devretmekte veya temsilciyi tamamen silmekte özgürdür. Tüm delegeler EOA adreslerini şu adreste paylaşır...

View Original
The content is for reference only, not a solicitation or offer. No investment, tax, or legal advice provided. See Disclaimer for more risks disclosure.
  • Reward
  • Comment
  • Share
Comment
0/400
No comments
  • Pin
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)