
Bir walllet'te bir işlem imzalayıp "Dur bir saniye, ben az önce neyi onayladım?" diye düşündüyseniz, bu rehber tam size göre. Akıllı sözleşmeler blockchain üzerindeki kodlardan ibarettir ancak onlarla etkileşime girmek kafa karıştırıcı gelebilir. Bu rehber konuyu pratikleştiriyor: Akıllı sözleşme nedir, ne işe yarar, ne tür sorunlar çıkabilir ve "Onayla" butonuna basmadan önce neleri kontrol etmelisiniz?
Özet (TL;DR)
Akıllı sözleşme, bir blockchain üzerinde saklanan ve tetiklendiğinde tam olarak yazıldığı gibi çalışan bir programdır.
Ethereum üzerinde bir adreste yaşar, kendi verilerini (durumunu) tutar ve bir aracı olmadan token transferi yapabilir ya da kuralları uygulayabilir.
Akıllı sözleşmeler; takas, borç verme, NFT'ler, stake etme ve zincir üstü oyunlara güç verir. Ancak riskleri de vardır: kod hataları, kötü niyetli sözleşmeler, sınırsız token onayları, sahte dApp'ler ve mantığı değişebilen yükseltilebilir sözleşmeler.
En güvenli yaklaşım basit ve sakin kalmaktır: Sözleşmeyi doğrulayın, onayları anlayın, küçük miktarlarla başlayın ve imzalamayı daha net, kurtarmayı ise daha güvenli hale getiren bir walllet kurulumu kullanın.
Ethereum'un kendi dökümanları akıllı sözleşmeleri, bir blockchain adresinde bulunan, zincir üstünde çalışan kod + durum olarak tanımlar.
İnsanlar bunlara "sözleşme" dese de akıllı sözleşmeler hukuki metinlerden ziyade otomat makinelerine benzer. Geçerli bir girdi (işlem) gönderirsiniz. Kurallar eşleşirse makine işlemi gerçekleştirir (takas, mint, borç verme, transfer). Eşleşmezse reddeder. İşin büyüsü de tehlikesi de buradadır.
Bir akıllı sözleşme aracıları ortadan kaldırabilir, 7/24 çalışabilir ve öngörülebilir şekilde hareket eder. Ancak özellikle walllet'inizde boş bir çek imzalıyor hissi veren, korkutucu görünen bir imza talebi belirdiğinde onlarla etkileşime girmek kafa karıştırıcı olabilir.
Blockchain'de akıllı sözleşme nedir?
Akıllı sözleşme, blockchain üzerinde çalışan bir programdır.
Özellikle Ethereum özelinde, Ethereum.org akıllı sözleşmeyi, Ethereum blockchain'inde belirli bir adreste bulunan kod (fonksiyonlar) ve veri (durum) olarak tanımlar. Bu son kısım önemlidir: Akıllı sözleşme sadece "herhangi bir kod" değildir. Zincir üstü bir adrese konuşlandırılmış bir koddur ve herkes bu adrese bir işlem göndererek fonksiyonlarını çağırabilir. Ayrıca bakiyeler, sahiplik durumları veya bir oyunun mevcut durumu gibi verileri de saklayabilir.
Akıllı sözleşme nasıl çalışır?
Akıllı sözleşmeyi üç katmandan oluşan otomatik bir kural kitabı gibi düşünebilirsiniz:
Kurallar (kod): Bunlar talimatlardır: "A koşulu doğruysa X'i yap. Değilse işlemi geri al."
Bellek (durum): Sözleşmenin hatırladığı şeylerdir: Kimin neye sahip olduğu, hangi kredilerin açık olduğu, hangi NFT'lerin mint edildiği, mevcut döviz kurunun ne olduğu (veya nasıl hesaplanması gerektiği) vb.
Tetikleyici (işleminiz): Akıllı sözleşmeler durduk yere çalışmaz. Birisi bir fonksiyonu çağıran bir işlem gönderdiğinde yürütülürler.
"Takas Et", "Stake Et" veya "Mint Et" butonuna bastığınızda, walllet'iniz aslında bir sözleşme adresine bazı talimatlar (fonksiyon + parametreler) ekleyerek bir işlem gönderiyor ve bunu gerçekleştirmek için ağ ücreti ödüyordur.
Ethereum'da akıllı sözleşmeler nasıl çalışır?
İşin pratik akışı tam olarak şöyledir:
1. Adım: walllet'inizi bir dApp'e bağlarsınız. dApp kullanıcı arayüzüdür, sözleşme ise arkadaki motordur.
2. Adım: dApp bir işlem önerir. Örneğin: "100 USDC'yi ETH ile takas et."
3. Adım: walllet'iniz sizden imza ister. Birçok insanın çok hızlı geçtiği an burasıdır. walllet, çözebildiği işlem ayrıntılarını size gösterir.
4. Adım: Blockchain, sözleşme kodunu yürütür. Doğrulayıcılar sözleşmeyi çalıştırır, durumu günceller ve nihai bir sonuç üretir. Ethereum dokümanları, sözleşme mantığının zincir üstünde çalıştığını ve kodu tarafından tanımlanan kuralları izlediğini vurgular.
5. Adım: Bir söz verme değil, kesin bir sonuç alırsınız. Sözleşme başarılı olursa tokenler taşınır. Başarısız olursa (geri alınırsa), durum güncellemesi tamamlanmadığı için genellikle sadece gas ücretini kaybedersiniz, takas etmeye çalıştığınız tokenleri değil.
Kriptoda akıllı sözleşmeler ne için kullanılır?
Akıllı sözleşmeler, basit transferlerin ötesinde insanların yaptığı çoğu şeyin omurgasını oluşturur. İşte muhtemelen karşılaştığınız yaygın kullanım alanları:
Token sözleşmeleri (ERC-20)
USDC, UNI ve binlerce diğer varlık birer "token akıllı sözleşmesidir". Bakiyeleri takip eder, transferlere ve onaylara izin verirler. Chainlink'in eğitim sayfası, token akıllı sözleşmelerini token oluşturan, takip eden ve sahiplik atayan mekanizma olarak tanımlar.
Takas ve ticaret (DEX'ler)
DEX sözleşmeleri likiditeyi tutar ve takasları gerçekleştirir. Fiyatları "tahmin etmezler". Belirli bir formülü ve mevcut likiditeyi takip ederler.
Borç alma ve verme
Aave tarzı sistemler gibi protokoller, teminatları, kredileri ve faizleri yönetmek için sözleşmeler kullanır.
İlgili: Stake Etme ve Borç Verme Karşılaştırması: Hangi Kripto Getiri Stratejisi Size Uygun?
NFT'ler ve mint işlemleri
Bir NFT mint etmek, bir token oluşturan ve sahiplik atayan bir sözleşme fonksiyonunu çağırmaktır.
Stake etme ve ödüller
Çoğu stake sistemi, yatırılan fonları kabul eden ve ödülleri takip eden sözleşmelerdir.
Otomasyon ve "gerçek dünya verileri"
Bazı sözleşmeler zincir dışı verilere (fiyatlar gibi) ihtiyaç duyar. Oracle sistemleri bu verileri sözleşmelere beslemek için vardır. Chainlink, oracle'ları akıllı sözleşmeleri harici veri ve sistemlere bağlamanın bir yolu olarak tanımlar.
İşlem | Akıllı sözleşmenin yaptığı iş | Genellikle onayladığınız veya imzaladığınız şey | Dikkat edilmesi gereken temel risk | Onaylamadan önce neleri kontrol etmelisiniz? |
|---|---|---|---|---|
DEX'te takas yapma | Protokolün fiyatlandırma mantığına ve mevcut likiditeye göre bir tokeni diğeriyle değiştirir | Önce bir token onayı, ardından bir takas işlemi | Yanlış sözleşmeyi onaylama, yüksek kayma (slippage), sahte dApp'ler | Gerçek web sitesi, token tutarları, kayma toleransı, yönlendirici/sözleşme detayları |
Token onaylama | Bir sözleşmeye walllet'inizden token harcama izni verir | Genellikle sınırsız miktarda olabilen bir onay işlemi | Daha sonra kötüye kullanılabilecek sınırsız onaylar | Harcama yapan adresin doğruluğu, onayın sınırlı mı yoksa sınırsız mı olduğu |
NFT mint etme | Yeni bir NFT oluşturur ve bunu walllet'inize tanımlar | Bir mint işlemi, bazen ek olarak bir imza | Sahte mint siteleri, yanlış koleksiyon, gizli ücretler | Resmi proje bağlantısı, koleksiyon adı, mint fiyatı, ağ |
Token stake etme | Tokenleri bir sözleşmeye kilitler ve ödülleri veya katılımı takip eder | Onay artı yatırım/stake işlemi | Fonların kilitli kalması, belirsiz çekim kuralları, riskli ödül mekanizmaları | Kilit süreleri, çekim kuralları, akıllı sözleşmenin itibarı, denetim geçmişi |
Borç alma veya verme | Teminatı, borcu, likidasyon eşiklerini ve faiz kurallarını yönetir | Yatırma, borç alma, geri ödeme veya onay işlemleri | Likidasyon, oracle sorunları, kafa karıştırıcı teminat ayarları | Sağlık faktörü, teminat varlığı, likidasyon eşiği, protokolün itibarı |
Mesaj imzalama | Akışa bağlı olarak walllet kontrolünü kanıtlar veya belirli bir zincir dışı/zincir üstü işlemi yetkilendirir | Token transferi yerine bir imza talebi | Körleme imzalama, kimlik avı, gizli izinler | İmzanın neden gerektiği, alan adı, mesajın tam olarak ne anlama geldiği |
Akıllı sözleşme örnekleri
Konunun somutlaşmasını sağlayacak birkaç örnek:
Şirketsiz emanet hesabı (Escrow): Bir sözleşme, koşullar karşılanana kadar (örneğin her iki tarafın da teslimatı onaylaması gibi) fonları tutar ve ardından serbest bırakır.
Abonelik benzeri ödemeler: Bir sözleşme, izin vermeniz durumunda periyodik ödemelere izin verebilir; ancak burası yanlış kullanıldığında "onayların" tehlikeli olabileceği bir alandır.
"Fiyat düşerse sat" otomasyonu: Oracle verileri sayesinde bir sözleşme, bir fiyat akışına göre işlemleri tetikleyebilir. (Bu güçlü bir özelliktir ancak oracle veya mantık hatalıysa risk barındırır.)
Akıllı sözleşmeler güvenli mi?
Bazen.
Dürüst cevap şudur: Akıllı sözleşmeler güvenli olabilir, ancak sadece "zincir üstünde" oldukları için tamamen güvenli oldukları garanti edilemez. Üç ana risk alanı vardır:
Hatalar (istem dışı)
Bir sözleşmede mantık, matematik veya erişim kontrolü hatası olabilir. OpenZeppelin gibi güvenlik sistemleri, yaygın koruma yöntemleri yayınlar (örneğin, yeniden giriş saldırılarına karşı korumalar ve acil durum durdurma mekanizmaları).
Kötü niyetli tasarım (kasıtlı)
Bir sözleşme fonları çalmak, onaylı tokenleri çekmek veya varlıkları hapsetmek için tasarlanabilir. Kurallar kötüyse, kod "doğrulanmış" olsa bile kötü niyetli olabilir.
Kullanıcının imzalama anı (en yaygın hata sebebi)
Sözleşmede hiçbir sorun olmasa bile, kullanıcılar şunlardan dolayı zarar görebilir:
Sahte dApp'ler ve kimlik avı (phishing) bağlantıları
Onayları anlamadan körü körüne imzalama
Yanlış sözleşmeye sınırsız token harcama izni verme
Farkında olmadan yetki veren mesajları imzalama
İşte bu yüzden "walllet kullanıcı deneyimi" önemlidir. Kayıpların çoğu insan hatasından kaynaklanır.
Gerçekten önemsemeniz gereken akıllı sözleşme riskleri (ve bunları nasıl azaltacağınız)
Pratik detaylara odaklanalım.
Risk 1: Sınırsız token onayları
Birçok token sözleşmesi şu şekilde çalışır: Bir dApp tokenlerinizi harcamadan önce ona "onay" vermeniz gerekir.
Bunun tehlikeli versiyonu, güvenilen ve çok kullanılan protokoller için sorun olmayabilen ancak yanlış sözleşmeyi onayladıysanız tam bir kabusa dönüşen "Sınırsız Onayla" seçeneğidir. Bunu nasıl önlersiniz:
Mümkün olduğunda yalnızca ihtiyacınız olan miktarı onaylayın
Onayları bir yere "giriş yapmak" gibi değil, kredi kartınızı birine vermek gibi görün
Sosyal medyada bulduğunuz yeni bir dApp kullanıyorsanız onayları tekrar kontrol edin
Risk 2: Yükseltilebilir sözleşmeler (kurallar değişebilir)
Bazı sözleşmeler, proxy yapıları aracılığıyla yükseltilebilir şekilde tasarlanmıştır. Bu, etkileşimde bulunduğunuz adresin aynı kalması, ancak arkasındaki mantığın değişebilmesi anlamına gelir. ConsenSys, karmaşık sistemlerin yükseltilebilir bileşenleri destekleyebileceğini belirtir.
Bunu nasıl önlersiniz:
Şeffaf yönetim ve güvenlik geçmişine sahip protokolleri tercih edin
"Yükseltilebilir" mi yoksa "değiştirilemez" (immutable) mi olduğunu belirten açık açıklamalara bakın
Anlamadığınız, bilinmeyen ve yükseltilebilir sözleşmelerde uzun vadeli fon tutmaktan kaçının
Risk 3: Yönetici anahtarları ve yetkili roller
Bazı sözleşmelerde işlemleri durdurabilen, yükseltebilen veya parametreleri değiştirebilen bir sahip veya yönetici rolü bulunur. Bu durum her zaman kötü niyetli olduğu anlamına gelmez. Sadece bir güven faktörüdür.
Bunu nasıl önlersiniz:
Protokolün merkeziyetsiz mi olduğunu yoksa hala bir ekip tarafından mı kontrol edildiğini kontrol edin
Rolleri, zaman kilitlerini (timelock) ve güvenlik süreçlerini şeffafça belgeleyen projeleri tercih edin
Risk 4: Oracle manipülasyonu ve sıra dışı durumlar
Bir sözleşme harici fiyat akışlarına dayanıyorsa, hatalı veriler kötü sonuçlara yol açabilir. Oracle'lar bunu daha güvenli hale getirmek için vardır ancak yine de risk modelinin bir parçasıdır. Bunu nasıl önlersiniz:
Bilinen ve güvenilen protokollerden şaşmayın
"Gerçek olamayacak kadar iyi" getiriler sunan, yeni çıkmış kopyalardan kaçının
Bir akıllı sözleşme dağıtıldıktan sonra değiştirilebilir mi?
Çoğunlukla hayır. Ancak bazen, özel bir yöntemle evet. Bir sözleşme değiştirilemez (immutable) olarak dağıtıldıysa, kodu değiştirilemez. İnsanların zincir üstü sistemlere güvenmesinin temel nedenlerinden biri budur. Ethereum.org, akıllı sözleşmelerin oluşturulduktan sonra değiştirilemeyen kodlar tarafından tanımlanan kurallara göre çalıştığını belirtir.
Ancak bazı sistemler, sözleşme adresinin aynı kaldığı ama çağrıların yeni bir mantık sözleşmesine yönlendirildiği yükseltilebilir yapılar (proxy upgrades) kullanır. Yani gerçek cevap: tasarıma bağlıdır. Bir protokolle ilk kez etkileşime giriyorsanız, onun değiştirilemez mi yoksa yükseltilebilir mi olduğunu bilmekte fayda vardır.
Akıllı sözleşme walllet'i nedir?
Akıllı sözleşme walllet'i, "hesabınızın" tek bir harici hesap (EOA) özel anahtarı yerine akıllı sözleşme mantığı tarafından kontrol edildiği bir walllet'tir. Pratikte akıllı sözleşme walllet'leri; farklı kurtarma modellerini (sosyal kurtarma, vasiler), gas ücretlerini daha esnek şekillerde ödemeyi (tasarıma bağlı olarak), işlemlerin toplulaştırılmasını ve dApp'ler için izinli oturum anahtarlarını destekleyebilir.
Zaten walllet.com adresinde hesap soyutlama ve akıllı sözleşme walllet'leri hakkında bir makalemiz var. Bu makale ise daha geniş bir temeli ele alıyor: akıllı sözleşmelerin kendisi ve onlarla nasıl güvenle etkileşim kuracağınız.
Akıllı sözleşmelerle güvenli şekilde nasıl etkileşim kurulur?
Solidity geliştiricisi olmanıza gerek yok. Sadece birkaç alışkanlık edinmeniz yeterlidir. İmzalamadan önce:
Gerçek sitede olduğunuzdan emin olun (yer imlerine ekleyin, reklamlara güvenmeyin)
walllet'in neyi onayladığınızı söylediğine bakın (özellikle token onaylarına)
İlk etkileşimde küçük bir miktarla başlayın
Anlamadığınız "Mesajı imzala" istemlerine karşı ekstra dikkatli olun
İmzaladıktan sonra:
Bir şeyler garip görünüyorsa işlemi bir blok tarayıcısında doğrulayın
Sınırsız bir onay verdiyseniz ve pişman olduysanız, bu onayı iptal edin
"Körleme imzalama" hissini azaltan bir walllet kurulumu istiyorsanız, net uyarılara ve daha güvenli kimlik doğrulamaya odaklanan birini seçin. walllet.com'un geçiş anahtarı (passkey) tabanlı yaklaşımı, kurtarma kelimesi zayıflığını ortadan kaldırmak ve walllet erişimini güvenli, modern bir giriş deneyimi haline getirirken Web3 uygulamalarıyla etkileşim kurmanızı sağlamak için tasarlanmıştır.
walllet.com ile güvenli ve modern giriş deneyimini yaşayın
Çoğu insan DeFi'den nefret ettiği için akıllı sözleşmelerden kaçınmıyor. Kelimeler teknik, imzalama riskli, kurtarma korkutucu ve gas ücretleri can sıkıcı geldiği için kaçınıyorlar.
walllet.com'un içerik ve ürün yönü tam olarak bu zorlukları hedef alıyor: geçiş anahtarlarıyla kurtarma kelimesiz erişim, yeni başlayanlar için rehberlik ve takas ya da köprüleme gibi pratik süreçlerin anlaşılır bir dille açıklanması. Amaç, akıllı sözleşmelerle daha az hata yaparak etkileşim kurmanıza yardımcı olmaktır. DeFi, takaslar, NFT'ler veya onay gerektiren herhangi bir şeyi kullanmaya başlıyorsanız, iyi bir sonraki adım walllet.com hesabınızı oluşturmak ve çok küçük bir miktarla pratik yapmaktır. Bunu araba kullanmayı öğrenmek gibi düşünün: otobanda başlamazsınız.
Akıllı sözleşmelerle alışılagelmiş kafa karışıklığı olmadan etkileşim kurmaya hazır mısınız? Saniyeler içinde walllet.com hesabınızı oluşturun, küçük bir zincir üstü işlemle başlayın ve onayları ve işlem ayrıntılarını daha az kafa karışıklığıyla öğrenmek için takas rehberini kullanın.