ERC-4626'yı tek bir makalede anlamak: DeFi tokenleştirilmiş kasalar için yeni standart

TLDR: ERC-4626, simgeleştirilmiş kasalar için standarttır.

ERC-4626'nın kullanıma sunulmasından önce, her kasanın kendi spesifikasyonu ve uygulama detayları vardı. Bu, entegrasyonu zorlaştırır, hataya açık hale getirir ve kaynak israfına neden olur.

ERC-4626, tıpkı ERC-20 gibi, entegrasyon çabasını azaltmak ve daha tutarlı ve sağlam bir uygulama modeli oluşturmak için bu sorunu standart bir spesifikasyonla çözmeye çalışır.

ERC-4626 nedir?

ERC-4626, verim kasalarının teknik parametrelerini iyileştiren bir standarttır. Tek bir temel ERC-20 belirtecinin paylaşımlarını temsil eden verim kasaları için standart bir API sağlar.

Tokenize kasalar, DeFi'de son derece yaygın bir model haline geldi. Getiri toplayıcılar, borç verme piyasaları, staking türevleri ve diğer birçok dApp, tokenleştirilmiş kasalardan yararlanır ve bunlara güvenir. Simgeleştirilmiş kasa örnekleri arasında Yearn ve Balancer bulunur. Bir getiri toplayıcı olarak Yearn Vault, kullanıcıların dijital varlıkları yatırmasına ve getiri elde etmesine olanak tanır. Balancer, iş mantığının merkezinde kasalara dayanan otomatik bir portföy yöneticisi ve likidite sağlayıcısıdır. Bu kasalar, çeşitli havuzlardaki belirteçleri yönetir. Aynı zamanda, belirteç yönetimini havuzun mantığından ayırırlar.

Protokol, kasalarını tokenleştirerek likiditeyi ve esnekliği artırır. Tokenize kasalar, DeFi platformlarında işlem yapmayı ve varlıkları kullanmayı kolaylaştırır. Ek olarak, çeşitli, birbirine bağlı finansal ürünlerin oluşturulmasını sağlarlar. Endüstri, genellikle "para Lego" olarak anılan bu paradigmayı savunuyor.

Bununla birlikte, uygun uyarlanabilirlik veya standardizasyon olmadan şekillendirilebilirlik, zorluklar sunar. Geliştiricilerin ERC-20 gibi endüstri standartlarına uymasını zorlaştırmakla kalmaz, aynı zamanda yeni geliştiricilerin kafasını karıştırabilir. Uygun uyarlama veya standardizasyon olmadan, yeni değişiklikleri gözden geçirmek ve entegrasyonların uygulama ayrıntılarını doğrulamak zordur.

Bu nedenle ERC-4626, bu sorunu çözmek ve entegrasyonu basitleştirmek ve DeFi katılımcılarının nihayet daha güvenli ve sağlam bir birleşik kasa spesifikasyonunu benimsemesine izin vermek için önerildi. Bu da, belirteçleri birden fazla protokole entegre ederken protokolün olası saldırı yüzeyini azaltacaktır.

ERC-4626 hangi güvenlik sorunlarını önleyebilir?

ERC-4626, birleşik bir standart sağlayarak, çapraz protokol entegrasyonunun inşasını hızlandırır. Tanıdık, tutarlı standartlar geliştiriciler için daha kolay anlaşılır ve kodlama hatası olasılığını azaltır. Bu, şekillendirilebilirlik sorunlarını önlemeye yardımcı olur. Topluluğun kasayı her protokol için ayrı ayrı tasarlaması yerine yalnızca bir kez tasarlaması gerektiğinden, standardizasyon aynı zamanda çabanın tekrarlanmasını da önler. Bu tasarım çabası genellikle hataya açık olduğundan, yerleşik ancak yaygın tasarım kusurlarının tekrarlanmasını önlemeye yardımcı olur.

ERC-4626'nın hangi sorunları önleyebileceğini göstermek için burada iki vaka çalışması sunacağız.

Rari Başkenti etkinliği

Rari Capital Ethereum havuzundaki tüm kullanıcı fonlarının %60'ına eşdeğer olan Rari Capital'den yaklaşık 11 milyon dolar değerinde jeton çalındı.

Genel olarak, Rari Capital, güvenli olmayan bir çapraz protokol uygulaması nedeniyle saldırıya uğradı. Ethereum havuzu, ETH'yi Alpha Finance'in ibETH token sözleşmesine bir çıktı stratejisi olarak alıyor. Bu özel strateji, ibETH/ETH döviz kurunun değerini, örneğin ibETH.work çağrılırken bu saldırı senaryosunda hatalı çıktılara sahip olabilecek belirli sözleşmeler ve formüller (özellikle ibETH.totalETH / ibETH.totalSupply işlevi) aracılığıyla izler. ( ) işlevi, borç değerleri yapay olarak şişirilebilir.

Bir saldırgan, RariFundManager sözleşmesindeki para yatırma ve çekme işlevlerini tekrar tekrar çağırarak Rari Fon Yöneticisini tüketebilir. Para yatırma ve çekme işlevleri, arayana verilecek REPT token sayısını veya arayan kişiye verilecek ETH miktarını hesaplamak için havuzun bakiyesini elde etmelidir.Bu işlem Alpha havuzunun getBalance işlevini çağıracaktır. ibETH sözleşmesini ve bunun totalETH işlevini çağırın. Rari, bu işlevi değiştirme olasılığının farkında değil.

ibETH sözleşmesinde başka bir fonksiyon daha var: ibETH.work. Bu işlev, kullanıcı tarafından belirtilen herhangi bir sözleşmeyi çağırabilir. Bu, Rari'nin para yatırma ve çekme işlevlerinin yeniden giriş yapmasına ve birden çok kez çağrılmasına olanak tanır.

Work işlevi ödenebilir bir işlevdir, yani kullanıcı work işlevi aracılığıyla ibETH sözleşmesindeki ETH miktarını kontrol edebilir, böylece totalETH işlevi tarafından döndürülen değeri değiştirebilir. Daha da kötüsü, çalışma işlevi ayrıca RariFundManager gibi başka herhangi bir sözleşmeyi çağırmayı da destekler.

Saldırgan bu işlev sayesinde tekrar ETH gönderip ibETH sözleşmesindeki toplam ETH miktarını artırabilir ve aynı zamanda RariFundManager sözleşmesinde para çekme çağrısı yaparak daha fazla varlık kullanabilir.

Bu olay, DeFi sözleşmelerindeki yetersiz entegrasyon ve uyumsuz tasarımların ortaya çıkardığı önemli riskleri vurgulamaktadır. ERC-4626 gibi standartların, kritik bir güvenlik ve öngörülebilirlik katmanı ekleyerek bu tür saldırıları nasıl önleyebileceğini ve tek tip davranışı ve karşılıklı anlayışı teşvik edebileceğini vurgulamaktadır.

Cream Finance davası

Cream Finance, platformdaki iki temel zayıflıktan yararlanan karmaşık bir saldırıya maruz kaldı: manipüle edilmiş bir karıştırma kahini ve sınırsız bir token arzı. Saldırının önemli bir kısmı, yUSD belirtecinin algılanan değerini etkileyen karıştırma kehanetinin manipülasyonuydu. Saldırgan, yUSD kasasına büyük miktarda Yearn 4-Curve jetonu gönderdiğinde, kasa tarafından bildirilen döviz kurunu değiştirdi ve bu nedenle, yUSD jetonlarının kahine algılanan değerini de etkiledi.

Buradaki temel ders, sağlam ve manipüle edilemez bir fiyat kehanetinin bir DeFi protokolünün istikrarı için kritik olduğudur. Zaman ağırlıklı ortalama fiyat (TWAP) oracle'ları, ani fiyat manipülasyonlarına karşı daha dirençli oldukları için bu tür saldırıları önlemeye yardımcı olabilir.

Bu sorunlar ve diğer kırılgan tasarım modelleri, ERC-4626'nın dikkatli bir şekilde benimsenmesi ve uygulanmasıyla azaltılabilir.

ERC-4626'daki potansiyel güvenlik riskleri

Yeni bir protokol kullanmanın her zaman bazı ödünleşimleri vardır. Simgeleştirilmiş kasalar için, bunları özel dikkat gerektiren akıllı sözleşmelere entegre ederken potansiyel sorunlar olabilir.

ChargeOnTransfer belirteçlerini yönetin

Kasa, ChargeOnTransfer belirteçlerini destekleyecek şekilde tasarlanmışsa varlıkları aktarırken kasadaki miktar ve paylaşımların beklenen aralık içinde olup olmadığını kontrol edin.

Ondalık değişkenin uygun kullanımı

convertTo işlevinin EIP-4626 kasasının ondalık sayıları değişkenini kullanması gerekmese de, mümkün olduğunda temel simgenin ondalıklarını yansıtmanız şiddetle tavsiye edilir. Bu uygulama, potansiyel karışıklık kaynaklarının ortadan kaldırılmasına yardımcı olur ve çeşitli ön uç ve zincir dışı kullanıcılar için entegrasyonu basitleştirir.

yuvarlama

Spesifikasyona göre, kasa uygulayıcıları, hesaplamalar sırasında kasanın kendisine kullanıcılarına göre öncelik vermek daha güvenli olduğundan, farklı değişken ve görüntüleme yöntemlerinde belirli ve zıt yuvarlama yönlerinin gerekli olduğunun farkında olmalıdır:

  • Bir kullanıcıya sunduğu bazı dayanak token miktarı için çıkarılacak hisse sayısını hesaplıyorsa veya dayanak tokenin belirli bir payını bir kullanıcıya devretmek için çalışıyorsa aşağı yuvarlanmalıdır.

  • Bir kullanıcının belirli bir miktarda temel token alabilmesi için ne kadar hisse vermesi gerektiğini hesaplıyorsa veya bir kullanıcının belirli sayıda hisse alabilmesi için kaç temel token vermesi gerektiğini hesaplıyorsa, yuvarlanmak

Tercih edilen yuvarlama yönünün belirsiz olacağı yer convertTo işlevidir. Tüm EIP-4626 kasa uygulamalarında tutarlılığı sağlamak için bu işlevlerin her zaman aşağı yuvarlanması gerektiğini belirtin. Entegratörler, örneğin sonuca bir Wei ekleyerek özet sürümü kendileri taklit edebilir.

Bir kullanıcının kasadaki hissesini kullanarak (previewRedeem) aldığı temel varlıkların miktarı, aynı miktarda hisseyi ihraç etmek için ödenmesi gereken miktardan (previewMint) önemli ölçüde farklı olabilir. Bu farklar küçük (ör. yuvarlama hatalarından dolayı) veya büyük (ör. bir kasa para çekme veya para yatırma ücretlerini uygular) olabilir. Bu nedenle, entegratörler kendi kullanım durumlarına en uygun önizleme işlevlerini kullanmaya özen göstermeli ve bunların birbirinin yerine geçebileceğini asla varsaymamalıdır.

Temel işlevleri geçersiz kıl

Amaçlanan işlevselliği uygulamak veya genişletmek için, temel işlevi değiştirmek yerine mevcut kancaların kullanılması önerilir. Bu uygulama, verimli kod testi ve denetimi için daha yönetilebilir bir yol sağlar.

Sıfır paylaşım

ERC-4626'nın orijinal spesifikasyonu, kasada paylaşım olmaması durumunda köşe durumunun nasıl ele alınacağını ve kasanın normal mi davranacağını yoksa geri mi alınacağını özetlemiyordu. Bu, potansiyel bir karışıklık ve hata kaynağı olabilir.

Fiyat kehanetleri olarak kasalar

Oracle fiyat manipülasyonu saldırıları riski ile ilgili olarak, bu önizleme yöntemlerinin döndürdüğü değerler mümkün olduğunca gerçeğe yakındır. Bu nedenle, zincir içi koşulları değiştirerek çalışabilirler ve fiyat kehanetleri olarak kullanmak her zaman güvenli değildir. ERC-4626 spesifikasyonu, belirsizliğe izin veren bir dönüştürme yöntemi ve bir totalAssets yöntemi içerir ve bu nedenle güçlü bir fiyat kahini olarak uygulanabilir. Örneğin, varlıklar ve hisseler arasında dönüştürme yaparken, dönüştürme yöntemini uygulamak için zaman ağırlıklı ortalama fiyatı kullanmak doğrudur.

Somut uygulama sorunları

Arabirim belirtimine uyuyor gibi görünen ancak temel işlevleri tamamen farklı tasarım belirtimlerinden oluşan kötü amaçlı uygulamalar olabileceğinden, bütünleştiriciler daha fazla entegrasyondan önce herhangi bir tokenize edilmiş kasa uygulamasını gözden geçirmelidir.

EOA Doğrudan Erişim

Bir kasaya doğrudan erişilecekse, uygulamasının kayma kayıplarını veya yanlışlıkla para yatırma/çekme limitlerini karşılamak için kullanılabilecek özelliklere sahip olması gerekir. Akıllı sözleşmelerden farklı olarak, EOA, işlem geri alma için güvenli bir mekanizmaya sahip değildir.Çekirdek işlev çağrılırken kesin çıktı elde edilmezse, geri almanın bir yolu yoktur.

Genişletilmiş Kasa

Daha fazla oyuncu ERC-4626 standardını benimsemeye başladıkça, standart için daha fazla uzantının uygulandığını göreceğiz. Örneğin Superform, tek bir Vault sözleşmesi içinde farklı hesaplamaların kullanımını destekleyen deneysel bir Multi Vault uzantısı geliştirdi. Doğal olarak, uygulama orijinal standarttan ne kadar saparsa, yeni güvenlik açıklarının ortaya çıkma olasılığı o kadar yüksek olur. Geliştiriciler ve denetçiler, risk altındaki gerçek değeri belirlemek için kullanım durumuna göre en iyi seçeneği bulabilirler.

Felaket olaylarına yol açan her protokolün en küçük eklemesi değil, entegre edildiğinde bunların toplamı olduğuna dikkat etmek önemlidir.

Yukarıda belirtilen potansiyel saldırı vektörleri, ERC-4626 standardını çevreleyen daha çok tartışılan konulardan bazılarıdır. Benimseme arttıkça, kesinlikle daha fazla uygulama kullanım durumu ve ERC-4626 kasalarıyla entegrasyon için daha uygun senaryolar keşfedeceğiz.

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