
16 Ocak 2025'te SSP Wallet v1.9.0, SSP'nin Account Abstraction'a ait Solidity sözleşmeleri — her Ethereum ve Sepolia adresinin arkasındaki Factory ve Account Implementation — üzerinde Halborn ile yürütülen haftalar süren güvenlik incelemesini kapatıyor. Denetim, önemli noktalarda temiz çıktı: yalnızca üç Bilgilendirici ve iki Düşük öncelikli bulgu, hepsi de kullanılmayan veya ölü kodda. Yine de her birini ele almayı, sözleşmeleri yeniden dağıtmayı ve daha temiz sürümleri v1.9.0'da yayımlamayı seçtik. Bu yeniden dağıtım, Ethereum ve Sepolia kullanıcıları için kırıcı bir değişiklik: bu iki zincirdeki deterministik adresiniz, yükseltmeden sonra değişecek.
TL;DR
- Halborn, SSP'nin Account Abstraction'ının Solidity tarafını denetledi: Factory ve Account Implementation sözleşmeleri.
- Bulgular: 3 Bilgilendirici, 2 Düşük, 0 Orta, 0 Yüksek. Hepsi kullanılmayan veya ölü kod yollarında. Daha önce dağıtılan sözleşmeler güvenliydi ve güvenli kalıyor.
- Kod tabanını tamamen temiz tutmak için yine de yeniden dağıttık — yeni Factory ve Account Implementation sözleşmeleri v1.9.0 ile geliyor.
- Kırıcı değişiklik: Ethereum ve Sepolia adresleri yükseltme sonrasında değişiyor. Yükseltmeden önce fonları taşıyın veya geçiş kılavuzu için SSP destek ekibine ulaşın.
- UTXO zincirleri — Bitcoin, Zcash, Bitcoin Cash, Flux — etkilenmiyor.
Halborn neyi denetledi
Kapsam, v1.6.0'da gönderdiğimiz ve o zamandan beri yinelediğimiz Schnorr multisig'li ERC-4337 sözleşmelerinin Solidity tarafıydı. Somut olarak: @runonflux/account-abstraction deposu — bir kullanıcı ilk kez işlem yaptığında bir hesabı deterministik biçimde dağıtan Factory sözleşmesi ve o hesabın UserOperations öğelerini nasıl doğruladığını, Schnorr imzalarını nasıl denetlediğini ve ERC-4337'nin bundler-ve-EntryPoint akışını nasıl izlediğini tanımlayan Account Implementation sözleşmesi.
Halborn'un teknik ekibi, üretim akıllı sözleşmelerine ayırdığı tüm test bataryasını çalıştırdı. Depo, onların ifadesiyle güçlü, ERC-4337 önerilerine saygılı ve Schnorr'u temiz biçimde uyguluyor. Bu sonuç önemli, çünkü Schnorr uygulaması tasarımın önceki çalışma birikimi en küçük olan parçası — AA yığınının diğer tüm parçaları sektörde defalarca denetlendi, ancak bir ERC-4337 doğrulayıcısının içinde toplanmış Schnorr imzaları kendi inşa ettiğimiz bir şey.
Ne buldular
Rapor 3 Bilgilendirici ve 2 Düşük öncelikli bulgu içeriyor — hiç Orta, hiç Yüksek, hiç Kritik yok. Tam raporu halborn.com/audits/influx-technologies/account-abstraction-schnorr-multisig adresinde okuyabilirsiniz.
Her bulgu, ya canlı sözleşmelerde kullanılmayan ya da gerçek kullanıcı fonlarına karşı çalışmayan bir yolun parçası olan kodda yer alıyor — savunmacı iskele, eski bir yinelemeden kalan dallar, bu türden şeyler. Hiçbiri bir saldırganın fon almasının, imza taklit etmesinin veya bir hesabı bozmasının yolunu tarif etmiyor. Ethereum mainnet'te dağıtılan sözleşmeler, denetim süresince ve sonrasında tam anlamıyla güvenli kaldı.
Yine de neden yeniden dağıttık
İki neden. İlki, temiz bir kod tabanı başlı başına bir güvenlik biçimidir. Dağıtılmış bir sözleşmeye derlenen ölü kod, gelecekteki denetçilerin, entegratörlerin ve katkıcıların hakkında muhakeme etmek zorunda kaldığı ölü koddur. Onu çıkarmak, gelecekteki herhangi bir incelemenin bakması gereken yüzeyi daraltır — daha az dal, daha az varsayım, sözleşmeyi yanlış okumanın daha az yolu.
İkincisi, her bulguyu ele alan sürümü değil, onları erteleyen sürümü değil, ele alanı gönderme şansınız olduğunda, onu gönderirsiniz. Biz de öyle yaptık. v1.9.0, Halborn'un her önerisini içeren yeni dağıtılmış Factory ve Account Implementation sözleşmelerine karşı yayımlanıyor. @runonflux/account-abstraction deposunun kararlı dalı artık main (npm ^1.1.0); master dalı ve npm ~1.0.0, eski dağıtılan sözleşmelerde kalmak isteyenler için kullanılabilir kalıyor.
Ethereum ve Sepolia kullanıcıları için KIRICI DEĞİŞİKLİK
Factory, hesap adresinizi açık anahtarlarınızdan deterministik olarak türeten bileşen olduğundan, Factory'yi yeniden dağıtmak aynı anahtarların farklı bir adres türetmesi anlamına gelir. Ethereum mainnet veya Sepolia'da fonu olan kullanıcılar için bu, v1.9.0'ın pratik sonucudur: yükseltmeden sonra SSP'nin size Ethereum veya Sepolia için gösterdiği adres yenidir. Eski adreste duran herhangi bir ETH veya ERC-20 kendiliğinden hareket etmez.
Bunu güvenli biçimde halletmenin iki yolu var. Doğrudan yol, yükseltmeden önce fonları eski adresten dışarı taşımak — onları başka bir cüzdana veya borsaya gönderin, ardından yükseltin, sonra yeni adresinize gönderin. Diğer yol, zaten yükseltmiş veya daha büyük ya da daha karmaşık pozisyonları olan kullanıcılar için, geçiş kılavuzu için SSP destek ekibiyle iletişime geçmektir; böylece eski sözleşmelerle eski fonların geri alınmasında size eşlik edebiliriz.
UTXO zincirleri etkilenmez. Bitcoin, Zcash, Bitcoin Cash ve Flux adresleri anahtarlarınızdan bir EVM sözleşmesi üzerinden geçmeden türetilir, bu nedenle v1.9.0 bu adresleri değiştirmez. Yalnızca Ethereum ve Sepolia söz konusudur.
Devamı geliyor
Bu yazı, yayım gününde özellikle AA sözleşmeleri denetimini kapsıyor. Daha büyük hikâye — Halborn'un SSP cüzdanı, sözleşmeler ve SDK üzerindeki tüm incelemeleri — SSP'nin 2025 Halborn denetimlerinin içinden yazısında anlatılıyor; orada bu denetim diğer ikisinin bağlamına yerleştiriliyor.
Kaynak: SSP Wallet v1.9.0 sürüm notları.