Türkiye'nin en büyük inovasyon ve girişimcilik bültenine katılın
Kanallar İlham Uygulamalar SSS Sözlük Giriş Üye Ol

Web3

/web3 · 1.YIL

/web3 topluluğu, blockchain, merkeziyetsiz uygulamalar, akıllı kontratlar ve yeni nesil internet teknolojileri üzerine çalışan geliştiricileri bir araya getiren teknik odaklı bir topluluktur. Bu toplulukta Web3 geliştiricileri; Solidity, Rust, Move, JavaScript/TypeScript, smart contract geliştirme, dApp mimarisi, cüzdan entegrasyonları, token standartları, NFT altyapıları, DeFi protokolleri, DAO yapıları, on-chain veri, güvenlik, testnet süreçleri ve deployment deneyimleri üzerine bilgi paylaşabilir. Amaç; geliştiricilerin birbirinden öğrenmesini, teknik problemlerine çözüm bulmasını, açık kaynak projelere katkı sunmasını ve Web3 ekosisteminde daha güçlü ürünler geliştirmesini sağlamaktır.

62 içerik Katıl
#web3 akışına dön
@nikea · 4 gün önce swcregistry.io ↗

Bilinen güvenlik zafiyetleri kataloğu: Denetim öncesi kontrol listesi

Akıllı kontratlarda karşılaşılan zafiyet türlerini numaralandırıp sınıflandıran katalog. Her madde için açıklama, örnek kod ve düzeltme önerisi var.

Kullanım biçimi şöyle: kontratınızı yazdıktan sonra listeyi üstten aşağı geçip her maddeyi kendi kodunuzda sorgulamak. Bu, denetim öncesinde yapılabilecek en ucuz kontrol.

Ltedeki en sık karşılaşılan başlıklar: reentrancy, access control eksikliği, kontrol edilmeyen dış çağrı dönüşü, zaman damgasına bağımlılık, işlem sırasına bağımlılık, tam sayı taşması, güvensiz rastgelelik, gas sınırına takılan döngüler ve delege çağrı tuzakları.

Gas sınırına takılan döngüler konusu az konuşuluyor ama üretimde sık sorun çıkarıyor. Dizide dolaşan bir fonksiyon, dizi büyüdükçe bir gün blok gas sınırını aşıyor ve fonksiyon tamamen kullanılamaz hale geliyor. Bu tür bir hata kontrat dağıtıldıktan sonra düzeltilemiyor.

Katalog biraz eski maddeler içeriyor, çünkü bazı zafiyetler derleyicinin yeni sürümlerinde otomatik olarak engelleniyor. Yine de tarihsel örnekleri okumak, kalıpları tanımayı öğretiyor.
0 1 yorum
Yorumlar (1)
@bberber · 2 gün önce 5
Gas sınırına takılan döngüler konusu gerçekten sinsi, çünkü test ortamında hiç görünmüyor.

On kayıtla test ediyorsunuz, sorunsuz. Üretimde on bin kayıt olunca fonksiyon çalışmıyor ve fonlar kilitleniyor.

Çözüm kalıbı şu: kullanıcı başına hesaplama yapmak yerine, kullanıcının kendi payını çekmesini sağlamak. Yani dağıtım yapan döngü yerine, herkesin kendi hakkını talep ettiği bir yapı.

Buna çekme deseni deniyor ve hem gas sorununu hem başarısız transfer sorununu birden çözüyor.

Dizide dolaşmanız gerçekten gerekiyorsa sayfalama eklemek zorundasınız, başlangıç ve bitiş indeksi alan bir fonksiyon.

Bu tasarım kararını baştan vermek gerekiyor, sonradan düzeltmek dağıtılmış kontratta mümkün olmuyor.