Orijinal yazar: Jarrod Watts
Orijinal derleme: Golden Finance 0xjs
Editörün Notu:
Yeni L2 ağı Blast, bu haftaki lansmanından bu yana kamuoyunun sıcak koltuğunda yer alıyor. NFT balinası Christian, Blast'a yalnızca 500 stETH yatırmakla kalmadı, aynı zamanda ayın 22'sinde Blast, 20 milyon ABD doları tutarında finansmanı tamamladığını da duyurdu. Birçok geliştirici aynı zamanda Blast'ın kodunu ve doğasını da tartışıyor. Hatta Polygon'dan Jarrod Watts, Blast'ın bir Katman 2 ağı olmadığını açıkça belirtti. Bu makale onun X tweet'inden çevrilmiştir.
Birisi "Blast sadece 3/5'lik bir çoklu imzadır..." dedi.
Son birkaç günümü bu iddianın doğru olup olmadığını görmek için kaynak kodunu araştırarak geçirdim.
İşte gördüğüm her şey:
1. Yeni bir cüzdan 0x52c31 iki sözleşmeyi devreye alır: 1) 0xa01: Hızlı Mevduat proxy sözleşmesi; 2) 0x5f6: Hızlı Mevduat uygulama sözleşmesi.
Bu "ajans sözleşmesi" ayarlarına aşina değilseniz bu konuya daha sonra geri döneceksiniz.
2.0x52c31 Bu sözleşmeleri dağıttıktan sonra mülkiyeti Gnosis Safe akıllı sözleşmesine aktarın.
Gnosis Safe veya “Safe2” sözleşmeleri en popüler ve güvenilir çoklu imzalı akıllı sözleşmelerdir. Bir işlemi gerçekleştirmek için imzalayanların çoğunluğunun imzasını gerektirirler.
3. Safe sözleşmesinde artık Blast sözleşmesinin sahibi olan 5 imzacı var.
Bu, imzalayanların çoğunluğunun (yani 3/5) bu Kasa sözleşmesi adına işlem yürütmesi gerektiği anlamına gelir. Bu 5 cüzdanın hepsi çok yeni cüzdanlar ama sahipleri bilinmiyor.
4. Yani 3/5 çoklu imza sözleşmesi artık Patlama Mevduatı sözleşmesinin "sahibidir".
Bahsettiğimiz gibi Patlama Mevduatı sözleşmesi iki sözleşmeden oluşur: acente ve uygulama.
Onların “sahibi” olmak aslında ne anlama geliyor?
Bahsettiğimiz gibi Patlama Mevduatı sözleşmesi iki sözleşmeden oluşur: acente ve uygulama.
Onların “sahibi” olmak aslında ne anlama geliyor?
5. Düzenli akıllı sözleşmelerde, blok zincirine dağıtıldıktan sonra kodu değiştiremezsiniz. Proxy akıllı sözleşmeler, sözleşmenin tamamını değiştirmeden bir akıllı sözleşmede "yükseltmeler" (değişiklikler) yapmanıza olanak tanır. Bu genellikle hataları düzeltmek veya işlevsellik eklemek için kullanılır.
6. Blast temsilcisi, OpenZeppelin'in UUPS Yükseltilebilir sözleşmesini uygular. Bu, uygulanan sözleşmenin mantığında değişikliklere izin veren "_upgradeTo" gibi işlevleri içerir. Bu, kullanıcıların etkileşimde bulunduğu sözleşmelerin aynı sözleşme adresini koruyabileceği anlamına gelir.
7. Bu yükseltilebilirlik için en kötü senaryo, (multisig) sahibinin sözleşmenin mantığını kötü niyetli bir şeye dönüştürmesidir.
Bu biraz korkutucu geliyor değil mi? ...Aslında bu "yardımcı işlevler" bugün çoğu ikinci dil tarafından kullanılmaktadır.
8. Optimism ve Arbitrum gibi Optimist Toplamalar da bu işleve sahiptir.
L2Beat'e göre:
·OP Mainnet ve Base sistemlerini koruyan kod, önceden haber verilmeksizin isteğe bağlı olarak değiştirilebilir.
·Arbitrum One yükseltmeleri yaklaşık 12 günlük bir gecikme gerektirir, ancak Yönetim Kurulu tarafından gecikmeden onaylanabilir.
9. Aynı şey zkEVM dünyası için de geçerli
L2Beat'e göre:
·Linea, Scroll ve zkSync sistemlerini koruyan kod önceden haber verilmeksizin değiştirilebilir.
·Polygon zkEVM yükseltmeleri yaklaşık 10 gün gecikir (acil durum etkinleştirilmediği sürece)
10. Bu Toplamaların yükseltme gerçekleştirebilen çoklu imzalara sahip olmasının nedeni, teknoloji olgunlaşırken geçici güvenliği sağlamaktır. L2Beat'in L2 aşaması bloğunda özetlediği gibi, Toplama'nın son aşaması bu güvenlik komitelerinin "ciddi kusurları" ele alma yeteneğini sınırlandırmalıdır.
11. Güvenlik Konseyi'nin yetenekleri zamanla azalıyor. Ancak üyelerin görünürlüğü önemlidir.
Örneğin, Polygon PIP-29, "sistemin akıllı sözleşmelerindeki dar kapsamlı, zaman sınırlı değişiklikleri" yönetmek için 13 üye önermektedir.
12. Yani Blast'ın çoklu imza yoluyla kod yükseltmeleri yapması ve fonları anında çalması gerçekten mümkün olsa da *şu anda* aynı şeyi yapan birçok başka L2 çözümü var.
12. Yani Blast'ın çoklu imza yoluyla kod yükseltmeleri yapması ve fonları anında çalması gerçekten mümkün olsa da *şu anda* aynı şeyi yapan birçok başka L2 çözümü var.
Şu ana kadar Blast'ı savundum. Ama işte kötü haber... Haydi devam edelim.
13.Patlama L2 değil.
Blast sadece iki işlevi olan akıllı bir sözleşmedir: 1. Kullanıcı fonlarını kabul edin. 2. Kullanıcı fonlarını Lido gibi protokollere yatırın.
Ethereum'a gönderilen test ağı, işlem, köprü, toplama ve işlem verisi yok. Bu L2 değil.
14. Blast sözleşmesine para yatırdığınızda, temel olarak 3-5 yabancının paranızı sizin adınıza rehin vermesine güvenirsiniz.
Bu 3-5 kişi gelecekte doğru olanı yapmaya karar vermedikçe parayı hiçbir zaman çekemezsiniz. Yine burada köprü yok.
15. Bu benim için gerçekten çılgınca...
Şu tarihe kadar paranızı Blast'tan geri alamazsınız:
Yabancılardan oluşan 3/5'lik bir çoklu imza tarafından yeni bir sözleşme dağıtılır;
Sözleşme, kendisinden fon çekme işlevine sahiptir;
Tüm fonları yeni sözleşmeye aktarıyorlar.
16. Ancak daha kötü durumlar da var.
Sözleşmedeki tüm fonları çalmak için "yükseltme" yapmalarına bile gerek olmadığını ve kullanıcının bu sözleşmede yatırdığı paraların başkası tarafından geri çekilemeyeceğini söyleyebilirim.
Görelim.
17. "enableTransition" işlevi, parametre olarak "mainnetBridge" sözleşmesini gerektirir.
Bu "mainnetBridge" sözleşmesinin işlevi: Taahhüt edilen tüm ETH ve DAI'yi alın.
Peki bu "mainnetBridge" sözleşmesi neye benziyor?
18. Kesinlikle her şey olabilir! Blast, mümkün olan maksimum miktarda LIDO ve DAI harcamak için herhangi bir "mainnetBridge" sözleşmesini onaylar...
Bu sözleşmenin doğruluğuna ilişkin bazı sınırlamalar olmalı mı? Peki, *evet*, hadi şu koda bakalım.
19. "_setMainnetBridge" fonksiyonundaki iddia ifadesi aşağıdadır.
O... Adreste herhangi bir kod olup olmadığını kontrol ediyor! Evet, EOA adresi olmadığı sürece sözleşmedeki tüm fonların sahibi olduğu onaylanmıştır. Toplam fon miktarı şu anda 200 milyon ABD dolarını aşıyor.
20. Bu nedenle aşağıdakileri yapabilecekleri varsayılabilir:
1) Son derece basit bir akıllı sözleşme oluşturun ve bunu mainnetBridge sözleşmesi olarak ayarlayın;
2) Akıllı sözleşmenin taahhüt edilen tüm ETH ve DAI'yi (200 milyondan fazla) almasına izin verin
Tüm fonları EOA cüzdanına çekmek için akıllı sözleşmeyi arayın.
21. Belirlediğimiz iki ana tehdit şunlardır:
·Para çalmak için 3/5 çoklu imzayla onaylanan kötü amaçlı kod yükseltildi.
·Kötü niyetli bir akıllı sözleşme oluşturun ve bunu, 3/5 çoklu imza yoluyla da fon çalmak için "mainnetBridge" akıllı sözleşmesi olarak ayarlayın.
22. Bu gerçekten olacak mı? Şahsen tahmin etmem gerekirse fonların çalındığını düşünmüyorum.
Ne olursa olsun, aslında Blast'ın yerli getirisi fikrinin çok ilginç bir değiş tokuş olduğunu düşünüyorum.
23. Kişisel olarak Blast'a para göndermenin şu anki haliyle riskli olduğunu düşünsem de, gönderip göndermemek sonuçta kullanıcının kararıdır ve burada sadece gördüklerimi paylaşıyorum.
Hala Blast ekibine ve iyi para yatıran herkese en iyisini diliyorum.
Tüm Yorumlar