Sonsuz Mint Saldırısı

Definition pending verification.

Genellikle akıllı sözleşmeler bağlamında 'mint hatası' veya 'reentrancy zafiyeti' olarak da adlandırılan sonsuz mint saldırısı, bir saldırganın bir sözleşmenin mantığını manipüle ederek keyfi olarak büyük miktarda token veya varlık mint ettiği bir tür istismardır. Bu genellikle merkeziyetsiz finans (DeFi) protokollerinde, özellikle token mint etme, borç verme veya teminatlandırma mekanizmalarını içerenlerde meydana gelir. Temel güvenlik açığı genellikle sözleşmenin bir işlem sırasında harici çağrıları nasıl ele aldığı veya dahili durumunu nasıl güncellediğiyle ilgilidir. Örneğin, bir sözleşme bir kullanıcıya tek bir işlem içinde teminat yatırmasına, bu teminata dayalı yeni bir token mint etmesine ve ardından teminatı çekmesine izin verebilir. Eğer sözleşme, teminatı doğrulamadan veya dahili durumunu doğru bir şekilde güncellemeden önce yeni tokenı mint ederse, bir saldırgan aynı işlem bağlamında mintleme fonksiyonunu birden çok kez tetikleyebilir. Her çağrı, aynı başlangıç (veya yetersiz doğrulanmış) teminat üzerinden daha fazla token mint edebilir, bu da 'sonsuz' veya büyük ölçüde şişirilmiş miktarda tokenın havadan oluşturulmasına yol açar. Bu, tokenın değerini düşürür ve protokolün rezervlerini tüketebilir. Bu tür saldırıları önlemek, checks-effects-interactions (kontrol-etkiler-etkileşimler) deseninin kullanılması, reentrancy koruyucuları, harici çağrılardan önce doğru durum güncellemeleri ve kapsamlı denetimler gibi dikkatli akıllı sözleşme tasarımı gerektirir.

        graph LR
  Center["Sonsuz Mint Saldırısı"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_advanced_propulsion_systems["advanced-propulsion-systems"]:::related -.-> Center
  click Rel_advanced_propulsion_systems "/terms/advanced-propulsion-systems"
  Rel_consciousness_simulation_hardware["consciousness-simulation-hardware"]:::related -.-> Center
  click Rel_consciousness_simulation_hardware "/terms/consciousness-simulation-hardware"
  Rel_cognitive_enhancement["cognitive-enhancement"]:::related -.-> Center
  click Rel_cognitive_enhancement "/terms/cognitive-enhancement"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5 yaşındaki gibi açıkla

Bir altın karşılığında bir kurabiye vermesi gereken sihirli bir kurabiye makinesi hayal edin. Eğer makine bozuksa, siz bir bozuk para koyup bir kurabiye alabilir, sonra *o* kurabiyeyi kullanarak makineyi kandırıp sanki başka bir bozuk para daha koymuşsunuz gibi gösterebilir ve sonsuz kurabiye alabilirsiniz!

🤓 Expert Deep Dive

Sonsuz mint saldırıları, genellikle reentrancy veya harici çağrıların yanlış işlenmesiyle ilgili akıllı sözleşmelerin durum geçiş mantığındaki kusurları istismar eder. Yaygın bir desen, şu adımları içeren bir fonksiyonu içerir: 1) Kullanıcı girdisini kabul eder (örn. teminat). 2) Harici bir çağrı yapar (örn. geri çağırmayı tetikleyen bir ERC777 token sözleşmesine). 3) Dahili durumu günceller (örn. tokenları mint eder, bakiyeleri günceller). Eğer harici çağrı, durum güncellenmeden önce (örn. teminat tam olarak hesaba katılmadan veya bakiye ayarlanmadan) orijinal fonksiyona yeniden giren bir çağrı tetiklerse, saldırgan bunu istismar edebilir. Örneğin, bir borç verme protokolünde, bir kullanıcı teminat C yatırır, dahili olarak harici bir token sözleşmesini çağıran mint(loan_amount) fonksiyonunu çağırır. Bu token sözleşmesinin geri çağırma fonksiyonu mint fonksiyonuna tekrar girer, bu da saldırganın ilk mint çağrısı durum güncellemesini tamamlamadan aynı teminat C'yi kullanarak tekrar mint yapmasına olanak tanır. 'Checks-Effects-Interactions' (Kontrol-Etkiler-Etkileşimler) deseni kritiktir: koşulları doğrulayın (Checks), dahili durumu güncelleyin (Effects), ardından harici sözleşmelerle etkileşime geçin (Interactions). Reentrancy koruyucuları (mutexler) de aynı işlem bağlamında tekrarlayan çağrıları önleyebilir. Güvenlik açıkları ayrıca ERC777'nin reentrancy yeteneklerinden veya kusurlu ERC20 uygulamalarından kaynaklanabilir.

🔗 İlgili terimler

Ön koşullar:

📚 Kaynaklar