
Hiç bir walllet'ta bir şey imzalayıp "Dur bir saniye, az önce neyi onayladım ben?" diye düşündüyseniz bu yazı tam size göre. Akıllı sözleşme, özünde blokzincir üzerindeki bir koddur; ancak onunla etkileşim kurmak kafa karıştırıcı gelebilir. Bu kılavuz konuyu pratikleştiriyor: Nedir, ne işe yarar, ne gibi sorunlar çıkabilir ve "Onayla" butonuna basmadan önce neleri iki kez kontrol etmelisiniz?
Özetle
Akıllı sözleşme, bir blokzincirde saklanan ve tetiklendiğinde tam olarak yazıldığı gibi çalışan bir programdır.
Ethereum'da bir adreste yer alır, kendi verilerini (durumunu) tutar ve bir aracı olmadan tokenleri taşıyabilir veya kuralları uygulayabilir.
Akıllı sözleşmeler; takaslara, borç vermeye, NFT'lere, stake etmeye ve zincir üstü oyunlara güç verir. Ancak riskleri de vardır: Hatalar, kötü niyetli sözleşmeler, sınırsız token onayları, sahte dApp'ler ve mantığı değişen 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 az kırılgan hale getiren bir walllet kurulumu kullanın.
Ethereum'un kendi belgeleri, akıllı sözleşmeleri zincir üstünde yürütülen, bir blokzincir adresindeki kod + durum olarak tanımlar.
İnsanlar bunlara "sözleşme" der ama akıllı sözleşmeler yasal belgelerden ziyade otomat makinelerine benzer. Geçerli bir girdi (işlem) girersiniz. Kurallar eşleşirse makine işlemi gerçekleştirir (takas, mint, borç verme, transfer). Eşleşmezse reddeder. İşin sihri 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 davranabilir. Ancak, özellikle walllet'ınızda boş çek imzalıyormuşsunuz hissi veren korkutucu bir imza talebi belirdiğinde, sözleşmeyle etkileşime geçmek kafa karıştırıcı olabilir.
Blokzincirde akıllı sözleşme nedir?
Akıllı sözleşme, blokzincir üzerinde çalışan bir programdır.
Özellikle Ethereum'da, Ethereum.org bir akıllı sözleşmeyi, Ethereum blokzincirinde belirli bir adreste bulunan kod (işlevler) ve veri (durum) olarak tanımlar. Bu son kısım önemlidir: Akıllı sözleşme sadece "birtakım kodlardan" ibaret değildir. Zincir üstü bir adrese dağıtılmış bir koddur ve herkes bu adrese bir işlem göndererek sözleşmenin işlevlerini çağırabilir. Ayrıca bakiyeler, sahiplik veya bir oyunun mevcut durumu gibi verileri de depolayabilir.
Akıllı sözleşme nasıl çalışır?
Akıllı sözleşmeyi üç katmanlı, otomatik bir kural kitabı olarak düşünün:
Kurallar (kod): Talimatlar şöyledir: "A koşulu doğruysa X'i yap. Değilse eski haline döndür."
Bellek (durum): Sözleşmenin hatırladığı şeylerdir: Kimin neye sahip olduğu, hangi kredilerin 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 kendiliğinden uyanmaz. Birisi bir işlevi çağıran bir işlem gönderdiğinde çalışırlar.
"Takas Et", "Stake Et" veya "Mint Et" butonuna bastığınızda walllet'ınız, aslında belirli talimatlar (işlev + parametreler) içeren bir sözleşme adresine işlem gönderiyor ve bunu işlemek için ağ ücretini ödüyordur.
Ethereum'da akıllı sözleşmeler nasıl çalışır?
Pratik akışı öğrenmek istiyorsanız işte burada:
1. Adım: walllet'ınızı 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. Örnek: "100 USDC'yi ETH ile takas et."
3. Adım: walllet'ınız sizden imza ister. Burası çoğu kişinin çok hızlı tıkladığı andır. walllet size çözebildiği işlem detaylarını gösterir.
4. Adım: Blokzincir 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'un belgeleri, sözleşme mantığının zincir üstünde çalıştığını ve kod tarafından tanımlanan kuralları takip ettiğini vurgular.
5. Adım: Vaat değil, sonuç alırsınız. Sözleşme başarılı olursa tokenler taşınır. Başarısız olursa 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 yapılan çoğu şeyin omurgasıdır. İşte muhtemelen karşılaştığınız yaygın alanlar:
Token sözleşmeleri (ERC-20)
USDC, UNI ve diğer binlercesi "token akıllı sözleşmeleridir". Bakiyeleri takip eder, transferlere ve onaylara izin verirler. Chainlink'in eğitim sayfası, token akıllı sözleşmelerini tokenleri oluşturan, takip eden ve sahipliğini atayan mekanizma olarak tanımlar.
Takaslar ve ticaret (DEX'ler)
DEX sözleşmeleri likiditeyi tutar ve takasları gerçekleştirir. Fiyatları "tahmin etmezler". Bir formülü ve mevcut likiditeyi takip ederler.
Borç verme ve borç alma
Aave tarzındaki protokoller; teminatları, kredileri ve faizleri yönetmek için sözleşmeleri kullanır.
İlgili: Stake Etme ve Borç Verme: Hangi Kripto Getiri Stratejisi Size Uygun?
NFT'ler ve mint işlemleri
Bir NFT'yi mint etmek, token oluşturan ve mülkiyet atayan bir sözleşme işlevini çağırmaktır.
Stake etme ve ödüller
Çoğu stake etme sistemi, yatırımları kabul eden ve ödülleri takip eden sözleşmelerdir.
Otomasyon ve "gerçek dünya girdileri"
Bazı sözleşmeler zincir dışı verilere (fiyatlar gibi) bağlıdır. 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.
Eylem | Akıllı sözleşmenin yaptığı iş | Genellikle onayladığınız veya imzaladığınız şey | Dikkat edilmesi gereken ana risk | Onaylamadan önce neleri iki kez kontrol etmelisiniz? |
|---|---|---|---|---|
DEX'te takas | 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 onaylamak, yüksek kayma (slippage), sahte dApp'ler | Gerçek web sitesi, token tutarları, kayma oranı, yönlendirici/sözleşme detayları |
Token onaylama | Bir sözleşmeye walllet'ınızdan bir token harcama izni verir | Bazen sınırsız miktarda bir onay işlemi | Daha sonra kötüye kullanılabilecek sınırsız onaylar | Harcayıcının doğru olup olmadığı, 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'ınıza atar | Bir mint işlemi, bazen ek olarak bir imza | Sahte mint siteleri, yanlış koleksiyon, gizli ücretler | Resmî 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ırma/stake etme işlemi | Fonların sıkışıp kalması, belirsiz çekim kuralları, riskli ödül mekanizmaları | Kilitlenme süreleri, çekim kuralları, akıllı sözleşmenin itibarı, denetim geçmişi |
Borç verme veya alma | Teminatı, borcu, tasfiye eşiklerini ve faiz kurallarını yönetir | Yatırma, borç alma, geri ödeme veya onay işlemleri | Tasfiye, oracle sorunları, kafa karıştırıcı teminat ayarları | Sağlık faktörü, teminat varlığı, tasfiye eşiği, protokol itibarı |
Mesaj imzalama | Akışa bağlı olarak walllet kontrolünü kanıtlar veya belirli bir zincir dışı/zincir içi eylemi yetkilendirir | Token transferi yerine bir imza talebi | Körleme imzalama, kimlik avı, gizli izinler | İmzanın neden gerekli olduğu, alan adı, tam mesajın anlamı |
Akıllı sözleşme örnekleri
İşte kavramı somutlaştıran birkaç örnek:
Şirketsiz emanet hesabı (Escrow): Bir sözleşme, koşullar karşılanana kadar (her iki tarafın da teslimatı onaylaması gibi) fonları tutar, ardından serbest bırakır.
Abonelik benzeri ödemeler: Bir sözleşme, izin vermeniz durumunda periyodik ödemelere izin verebilir; ancak burası, kötüye kullanıldığında "onayların" tehlikeli olabileceği yerdir.
"Fiyat düşerse sat" otomasyonu: Oracle verileriyle bir sözleşme, bir fiyat beslemesine dayalı eylemleri tetikleyebilir. (Bu güçlü bir özelliktir ancak oracle veya mantık hatalıysa riskli bir alandı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 üzerinde" oldukları için tamamen güvenli oldukları garanti edilemez. Üç ana risk alanı vardır:
Hatalar (kasıtsız olanlar)
Bir sözleşmede mantık, matematik veya erişim kontrolü hatası olabilir. OpenZeppelin gibi güvenlik çerçeveleri yaygın koruyucu şablonları yayınlar (örneğin, yeniden giriş korumaları ve acil durum duraklatma mekanizmaları).
Kötü niyetli tasarım (kasıtlı olanlar)
Bir sözleşme; fonları çalmak, onaylı tokenleri boşaltmak veya varlıkları hapsetmek için oluşturulabilir. Kurallar kötüyse kod "doğrulanmış" olsa bile kötü niyetli olabilir.
Kullanıcının imzalama anı (en yaygın başarısızlık nedeni)
Sözleşme iyi olduğunda bile kullanıcılar şunlardan zarar görür:
Sahte dApp'ler ve kimlik avı bağlantıları
Onayları anlamadan yapılan körü körüne imzalamalar
Yanlış sözleşmeye sınırsız token harcama izni vermek
Vermek istemedikleri izinleri veren mesajları imzalamak
"walllet kullanıcı deneyimi" bu yüzden önemlidir. Çoğu kayıp insan hatasından kaynaklanır.
Gerçekten önemsemeniz gereken akıllı sözleşme riskleri (ve bunları nasıl azaltacağınız)
Bunu pratik tutacağım.
Risk 1: Sınırsız token onayları
Çoğu token sözleşmesi şöyle çalışır: Bir dApp tokenlerinizi harcamadan önce onu "onaylamanız" gerekir.
Tehlikeli olan "Sınırsız onay" seçeneğidir. Güvenilir, yoğun olarak kullanılan protokoller için bu sorun olmayabilir ancak yanlış sözleşmeyi onayladıysanız tam bir kabustur. Bunu nasıl azaltabilirsiniz?
Mümkün olduğunda sadece ihtiyacınız olanı onaylayın
Onaylara "giriş yapmak" gibi değil, birine kartınızı vermek gibi yaklaşı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 şablonları aracılığıyla yükseltilebilir şekilde tasarlanmıştır. Bu, etkileşimde bulunduğunuz adresin aynı kapı olarak kalabileceği, ancak arkasındaki mantığın değişebileceği anlamına gelir. ConsenSys, karmaşık sistemlerin yükseltilebilir bileşenleri destekleyebileceği fikrini tartışmaktadır.
Bunu nasıl azaltabilirsiniz?
Şeffaf yönetişime ve güvenlik geçmişine sahip protokolleri tercih edin
Açık ifadelere bakın: "yükseltilebilir" mi yoksa "değiştirilemez" mi
Anlamadığınız, bilinmeyen, yükseltilebilir sözleşmelerde uzun vadeli fon tutmaktan kaçının
Risk 3: Yönetici anahtarları ve ayrıcalıklı roller
Bazı sözleşmelerin duraklatabilen, yükseltebilen veya parametreleri değiştirebilen bir sahibi veya yönetici rolü vardır. Bu durum otomatik olarak kötü olduğu anlamına gelmez. Sadece bir güven unsurudur.
Bunu nasıl azaltabilirsiniz?
Protokolün merkeziyetsiz mi yoksa hâlâ bir ekip tarafından mı kontrol edildiğini kontrol edin
Rolleri, zaman kilitlerini ve güvenlik süreçlerini belgeleyen projeleri tercih edin
Risk 4: Oracle manipülasyonu ve sıra dışı durumlar
Bir sözleşme harici fiyat beslemelerine 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 azaltabilirsiniz?
Bilinen protokollerden şaşmayın
"Gerçek olamayacak kadar iyi" getiri sunan yeni çatallamalardan (fork) kaçının
Bir akıllı sözleşme dağıtıldıktan sonra değiştirilebilir mi?
Genellikle hayır. Ama bazen, özel bir yolla evet. Bir sözleşme değiştirilemez olarak dağıtılırsa kodu değiştirilemez. İnsanların zincir üstü sistemlere güvenmesinin nedenlerinden biri de budur. Ethereum.org, akıllı sözleşmelerin bir kez oluşturulduktan sonra değiştirilemeyen kodlarla tanımlanmış kurallara göre yürütüldüğünü belirtir.
Ancak bazı sistemler, sözleşme adresinin aynı kaldığı fakat çağrıların yeni bir mantık sözleşmesine yönlendirildiği yükseltilebilir şablonlar kullanır (proxy yükseltmeleri). Dolayısıyla gerçek cevap şudur: Tasarıma bağlıdır. Bir protokolle ilk kez etkileşime giriyorsanız bunun değiştirilemez mi yoksa yükseltilebilir mi olduğunu bilmenizde fayda var.
Akıllı sözleşme walllet'ı nedir?
Akıllı sözleşme walllet'ı, "hesabınızın" tek bir harici sahip olunan hesap (EOA) özel anahtarı yerine akıllı sözleşme mantığı tarafından kontrol edildiği bir walllet'tır. Pratikte, akıllı sözleşme walllet'ları farklı kurtarma modellerini (sosyal kurtarma, vasiler), gas ücretini daha esnek yollarla ödemeyi (tasarıma bağlı olarak), işlem gruplamayı ve dApp'ler için yetkilendirilmiş oturum anahtarlarını destekleyebilir.
Zaten walllet.com adresinde hesap soyutlama ve akıllı sözleşme walllet'ları hakkında bir makalemiz var. Bu makale ise daha geniş bir temel sunuyor: Akıllı sözleşmelerin kendileri ve onlarla nasıl güvenli bir şekilde etkileşime geçileceği.
Akıllı sözleşmelerle nasıl güvenli etkileşim kurulur?
Bir Solidity geliştiricisi olmanıza gerek yok. Sadece birkaç alışkanlık edinmeniz yeterlidir. İmzalamadan önce:
Gerçek sitede olduğunuzu kontrol edin (yer işareti ekleyin, reklamlara güvenmeyin)
walllet'ın neyi onayladığınızı söylediğine bakın (özellikle token onayları)
İ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 ters görünüyorsa işlemi bir blok gezgininde doğrulayın
Sınırsız bir onay verdiyseniz ve pişmansanız bunu iptal edin
"Körleme imza" hissini azaltan bir walllet kurulumu istiyorsanız net yönlendirmelere ve daha güvenli kimlik doğrulamaya odaklanan bir kurulum seçin. walllet.com'un passkey tabanlı yaklaşımı, kurtarma kelimesi kırılganlığını ortadan kaldırmak ve walllet erişimini Web3 uygulamalarıyla etkileşime izin verirken modern, güvenli bir girişe benzer hale getirmek için tasarlanmıştır.
walllet.com ile güvende hissedin ve modern şekilde giriş yapın
Çoğu insan DeFi'den nefret ettiği için akıllı sözleşmelerden kaçınmaz. İfadeler teknik geldiği, imzalamak riskli hissettirdiği, kurtarma korkutucu olduğu ve gas ücreti can sıktığı için kaçınırlar.
walllet.com'un içerik ve ürün yönü tam olarak bu zorlukları hedef alıyor: Passkey'ler ile anahtarsız erişim, yeni başlayanlar için dostça rehberlik ve takas ile köprü kurma gibi pratik iş akışlarının anlaşılır dille açıklanması. Amaç, akıllı sözleşmelerle daha az hata yaparak etkileşime girmenize 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'unuzu 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 her zamanki kafa karışıklığı olmadan etkileşime girmeye hazır mısınız? Saniyeler içinde walllet.com'unuzu oluşturun, küçük bir zincir içi eylemle başlayın ve tahmin yürütmeden onayları ve işlem ayrıntılarını öğrenmek için takas kılavuzunu kullanın.