
Bir cüzdanda bir şey imzalayıp “Dur, az önce neyi onayladım?” dediyseniz, bu yazı sizin için. Akıllı sözleşme, blokzincir üzerindeki bir koddan ibarettir. Ama onunla işlem yapmak kafa karıştırıcı olabilir. Bu rehber işi pratik hale getiriyor: ne olduğu, ne yaptığı, neyin ters gidebileceği ve “Onayla”ya dokunmadan önce neyi kontrol etmeniz gerektiği.
Kısaca
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 yaşar, kendi verisini (durum) tutar ve aracı olmadan token taşıyabilir ya da kural uygulayabilir.
Akıllı sözleşmeler takasları, borç vermeyi, NFT'leri, staking'i ve zincir üstü oyunları çalıştırır. Ama riskli de olabilirler: hatalar, kötü niyetli sözleşmeler, sınırsız token onayları, sahte dApp'ler ve mantığı değişebilen güncellenebilir sözleşmeler.
En güvenli yol basit ve sıkıcıdır: sözleşmeyi doğrulayın, onayları anlayın, küçük başlayın ve imzalamayı daha anlaşılır, kurtarmayı daha az kırılgan yapan bir cüzdan kurulumu kullanın.
Ethereum’un kendi belgeleri akıllı sözleşmeyi, bir blokzincir adresinde duran ve zincir üstünde çalışan kod + durum olarak tanımlar.
İnsanlar akıllı sözleşmelere “sözleşme” der ama bunlar hukuki evraktan çok otomatlara benzer. Geçerli bir girdi verirsiniz (bir işlem). Kurallar uyuyorsa makine işi yapar (takas, basım, borç verme, transfer). Uymuyorsa reddeder. Büyüsü de tehlikesi de buradadır.
Akıllı sözleşme aracıları ortadan kaldırabilir, 7/24 çalışabilir ve öngörülebilir davranabilir. Ama onunla işlem yapmak kafa karıştırıcı olabilir. Özellikle cüzdanınız, boş çek imzalıyormuşsunuz gibi hissettiren korkutucu bir imza isteği açtığında.
Blokzincirde akıllı sözleşme nedir?
Akıllı sözleşme, blokzincir üzerinde çalışan bir programdır.
Özellikle Ethereum'da, Ethereum.org akıllı sözleşmeyi Ethereum blokzincirinde belirli bir adreste duran kod (fonksiyonlar) ve veri (durum) olarak tanımlar. Son kısım önemli: akıllı sözleşme sadece “bir kod” değildir. Zincir üstündeki bir adrese yüklenmiş koddur ve herkes o adrese işlem göndererek fonksiyonlarını çağırabilir. Bakiyeler, sahiplik ya da bir oyunun mevcut durumu gibi verileri de saklayabilir.
Akıllı sözleşme nasıl çalışır?
Akıllı sözleşmeyi üç katmanlı otomatik bir kural kitabı gibi düşünün:
Kurallar (kod): Talimatlardır: “A koşulu doğruysa X'i yap. Değilse geri al.”
Hafıza (durum): Sözleşmenin hatırladıklarıdır: kimin neye sahip olduğu, hangi kredilerin olduğu, hangi NFT'lerin basıldığı, güncel kurun ne olduğu (ya da nasıl hesaplanacağı) vb.
Tetikleyici (sizin işleminiz): Akıllı sözleşmeler kendiliğinden uyanmaz. Biri bir fonksiyonu çağıran işlem gönderdiğinde çalışır.
“Takas”, “Stake” ya da “Bas”a bastığınızda cüzdanınız temelde bir sözleşme adresine talimat eklenmiş (fonksiyon + parametreler) bir işlem gönderir ve bunu işlemek için ağ ücretini öder.
Akıllı sözleşmeler Ethereum'da nasıl çalışır?
Pratik akış şöyle:
1. adım: Cüzdanınızı bir dApp'e bağlarsınız. dApp kullanıcı arayüzüdür. Sözleşme ise alttaki motordur.
2. adım: dApp bir işlem önerir. Örnek: “100 USDC'yi ETH ile takas et.”
3. adım: Cüzdanınız imza ister. Birçok kişinin hızlıca geçtiği an budur. Cüzdan, çözebildiği işlem ayrıntılarını size gösterir.
4. adım: Blokzincir sözleşme kodunu çalıştırır. Doğrulayıcılar sözleşmeyi çalıştırır, durumu günceller ve nihai sonucu üretir. Ethereum belgeleri, sözleşme mantığının zincir üstünde çalıştığını ve kodun tanımladığı kurallara uyduğunu vurgular.
5. adım: Söz değil, sonuç alırsınız. Sözleşme başarılı olursa tokenlar 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 tokenları değil.
Kriptoda akıllı sözleşmeler ne için kullanılır?
Basit transferlerin ötesinde yapılan çoğu şeyin omurgası akıllı sözleşmelerdir. Muhtemelen gördüğünüz örneklerle yaygın gruplar:
Token sözleşmeleri (ERC-20)
USDC, UNI ve binlercesi “token akıllı sözleşmeleridir”. Bakiyeleri takip eder, transfer ve onaylara izin verirler. Chainlink'in eğitim sayfası token akıllı sözleşmelerini, tokenları oluşturan, takip eden ve sahipliğini atayan mekanizma olarak tanımlar.
Takas ve alım satım (DEX'ler)
DEX sözleşmeleri likidite tutar ve takasları gerçekleştirir. Fiyatı “tahmin” etmezler. Bir formüle ve mevcut likiditeye göre çalışırlar.
Borç verme ve borç alma
Aave tarzı protokoller teminatı, kredileri ve faizi yönetmek için sözleşmeler kullanır.
İlgili: Staking mi borç verme mi: Hangi kripto getiri stratejisi size uygun?
NFT'ler ve basım
NFT basmak, bir token oluşturan ve sahipliğini atayan bir sözleşme fonksiyonunu çağırmaktır.
Staking ve ödüller
Birçok staking sistemi, yatırılan fonu 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) bağlıdır. Oracle sistemleri bu veriyi sözleşmelere iletmek için vardır. Chainlink oracle'ları, akıllı sözleşmeleri dış veri ve sistemlere bağlamanın bir yolu olarak tanımlar.
İşlem | Akıllı sözleşmenin yaptığı | Genelde neyi onaylıyor ya da imzalıyorsunuz | Dikkat edilecek ana risk | Onaylamadan önce kontrol edin |
|---|---|---|---|---|
DEX'te takas | Protokolün fiyat mantığına ve mevcut likiditeye göre bir tokenı diğeriyle değiştirir | Önce token onayı, sonra takas işlemi | Yanlış sözleşmeyi onaylamak, yüksek slippage, sahte dApp'ler | Gerçek site, token miktarları, slippage, router/sözleşme bilgileri |
Token onayı | Bir sözleşmeye cüzdanınızdan token harcama izni verir | Bir onay işlemi, bazen sınırsız miktar için | Sonradan kötüye kullanılabilecek sınırsız onaylar | Harcayıcının doğru olup olmadığı, onayın sınırlı mı sınırsız mı olduğu |
NFT basma | Yeni bir NFT oluşturur ve cüzdanınıza atar | Bir basım işlemi, bazen ek olarak bir imza | Sahte basım siteleri, yanlış koleksiyon, gizli ücretler | Resmi proje bağlantısı, koleksiyon adı, basım fiyatı, ağ |
Token stake etme | Tokenları bir sözleşmede kilitler ve ödülleri ya da katılımı takip eder | Onay artı yatırma/stake işlemi | Fonların takılı kalması, belirsiz çekim kuralları, riskli ödül mekanizması | Kilit süresi, çekim kuralları, sözleşmenin itibarı, denetim geçmişi |
Borç verme ya da alma | Teminatı, borcu, tasfiye eşiklerini ve faiz kurallarını yönetir | Yatırma, borç alma, geri ödeme ya da 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ün itibarı |
Mesaj imzalama | Akışa göre cüzdan kontrolünü kanıtlar ya da belirli bir zincir dışı/zincir üstü işlemi yetkilendirir | Token transferi yerine bir imza isteği | Körü körüne imza, oltalama, gizli izinler | İmzanın neden gerektiği, alan adı, mesajın tam anlamı |
Akıllı sözleşme örnekleri
Kavramı somutlaştıran birkaç örnek:
Şirketsiz emanet (escrow): Bir sözleşme, koşullar sağlanana kadar (örneğin iki taraf da teslimatı onaylayana kadar) fonu tutar, sonra serbest bırakır.
Abonelik benzeri ödemeler: İzin verirseniz bir sözleşme düzenli ödemelere izin verebilir. Ama “onaylar” kötüye kullanılırsa tehlikeli hale geldiği yer de burasıdır.
“Fiyat düşerse sat” otomasyonu: Oracle verisiyle bir sözleşme, fiyat akışına göre işlem tetikleyebilir. (Bu güçlüdür; oracle ya da mantık hatalıysa risk alanıdır.)
Akıllı sözleşmeler güvenli mi?
Bazen.
Dürüst cevap şu: akıllı sözleşmeler güvenli olabilir ama sırf “zincir üstünde” oldukları için güvenli oldukları garanti değildir. Üç ana risk alanı var:
Hatalar (kasıtsız)
Bir sözleşmenin mantığında, matematiğinde ya da erişim kontrolünde hata olabilir. OpenZeppelin gibi güvenlik çerçeveleri yaygın savunma kalıplarını yayınlar (örneğin reentrancy'ye karşı korumalar ve acil durdurma mekanizmaları).
Kötü niyetli tasarım (kasıtlı)
Bir sözleşme fon çalmak, onaylı tokenları boşaltmak ya da varlıkları kilitlemek için yazılmış olabilir. Kod “doğrulanmış” olsa bile kurallar kötüyse kötü niyetli olabilir.
Kullanıcının imza anı (en yaygın hata)
Sözleşme sorunsuz olsa bile kullanıcılar şunlarla zarar görür:
Sahte dApp'ler ve oltalama bağlantıları
Onayları anlamadan körü körüne imzalamak
Yanlış sözleşmeye sınırsız token harcama izni vermek
Vermek istemedikleri izinleri veren mesajları imzalamak
“Cüzdan deneyimi” bu yüzden önemlidir. Kayıpların çoğu insan katmanında olur.
Gerçekten önemsemeniz gereken akıllı sözleşme riskleri (ve nasıl azaltılır)
Pratik tutacağım.
Risk 1: Sınırsız token onayları
Birçok token sözleşmesi şöyle çalışır: bir dApp tokenlarınızı harcamadan önce ona “onay” vermeniz gerekir.
Tehlikeli olanı “Sınırsız onayla”dır. Güvenilir, çok kullanılan protokollerde sorun olmayabilir ama yanlış sözleşmeyi onayladıysanız kabustur. Nasıl azaltılır:
Mümkünse sadece gerektiği kadar onay verin
Onayları “giriş yapmak” gibi değil, birine kartınızı vermek gibi görün
Sosyal medyada bulduğunuz yeni bir dApp kullanıyorsanız onayları tekrar kontrol edin
Risk 2: Güncellenebilir sözleşmeler (kurallar değişebilir)
Bazı sözleşmeler proxy yapılarıyla güncellenebilir tasarlanır. Yani işlem yaptığınız adres aynı “ön kapıyı” korurken arkasındaki mantık değişebilir. ConsenSys, karmaşık sistemlerin güncellenebilir bileşenleri destekleyebileceği fikrini ele alır.
Nasıl azaltılır:
Şeffaf yönetişimi ve güvenlik geçmişi olan protokolleri tercih edin
Açık beyan arayın: “güncellenebilir” mi “değiştirilemez” mi
Anlamadığınız, az bilinen, güncellenebilir sözleşmelerde uzun vadeli fon tutmayın
Risk 3: Yönetici anahtarları ve ayrıcalıklı roller
Bazı sözleşmelerde durdurabilen, güncelleyebilen ya da parametreleri değiştirebilen bir sahip veya yönetici rolü vardır. Bu otomatik olarak kötü değildir. Sadece bir güven faktörüdür.
Nasıl azaltılır:
Protokolün merkeziyetsiz mi yoksa hâlâ bir ekip tarafından mı kontrol edildiğine bakın
Rolleri, zaman kilitlerini ve güvenlik süreçlerini belgeleyen projeleri tercih edin
Risk 4: Oracle manipülasyonu ve tuhaf uç durumlar
Bir sözleşme dış fiyat akışlarına dayanıyorsa kötü veri kötü sonuç doğurabilir. Oracle'lar bunu daha güvenli yapmak için vardır ama yine de risk modelinin parçasıdır. Nasıl azaltılır:
Bilinen protokollerde kalın
“Gerçek olamayacak kadar iyi” getiri vaat eden yepyeni fork'lardan uzak durun
Akıllı sözleşme yüklendikten sonra değiştirilebilir mi?
Çoğu zaman hayır. Ama bazen, belirli bir şekilde, evet. Bir sözleşme değiştirilemez olarak yüklendiyse kodu değiştirilemez. İnsanların zincir üstü sistemlere güvenmesinin bir nedeni de budur. Ethereum.org, akıllı sözleşmelerin oluşturulduktan sonra değiştirilemeyen kodun tanımladığı 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 güncellenebilir yapılar kullanır (proxy güncellemeleri). Yani asıl cevap: tasarıma bağlıdır. Bir protokolle ilk kez işlem yapıyorsanız değiştirilemez mi güncellenebilir mi olduğunu bilmeye değer.
Akıllı sözleşme cüzdanı nedir?
Akıllı sözleşme cüzdanı, “hesabınızın” tek bir harici sahipli hesap (EOA) özel anahtarı yerine akıllı sözleşme mantığıyla kontrol edildiği bir cüzdandır. Pratikte akıllı sözleşme cüzdanları farklı kurtarma modellerini (sosyal kurtarma, koruyucular), gas'ı daha esnek yollarla ödemeyi (tasarıma göre), işlemleri toplu yapmayı ve dApp'ler için izinli oturum anahtarlarını destekleyebilir
walllet.com'da hesap soyutlama ve akıllı sözleşme cüzdanları hakkında zaten bir yazımız var. Bu yazı daha geniş bir temel: akıllı sözleşmelerin kendisi ve onlarla nasıl güvenle işlem yapılacağı.
Akıllı sözleşmelerle güvenle nasıl işlem yapılır?
Solidity geliştiricisi olmanız gerekmez. Sadece birkaç alışkanlık yeterli. İmzalamadan önce:
Gerçek sitede olduğunuzu kontrol edin (yer imlerine ekleyin, reklamlara güvenmeyin)
Cüzdanın neyi onayladığınızı söylediğine bakın (özellikle token onayları)
İlk işlemde küçük bir miktarla başlayın
Anlamadığınız “Mesaj imzala” isteklerinde ekstra dikkatli olun
İmzaladıktan sonra:
Bir şey tuhaf görünüyorsa işlemi bir blok gezgininde doğrulayın
Sınırsız onay verip pişman olduysanız iptal edin
“Körü körüne imzalama” hissini azaltan bir cüzdan kurulumu istiyorsanız, net istemlere ve daha güvenli kimlik doğrulamaya odaklanan birini seçin. walllet.com'un passkey tabanlı yaklaşımı, seed phrase kırılganlığını ortadan kaldırmak ve erişimi güvenli, modern bir girişe benzetmek için tasarlandı. Web3 uygulamalarıyla işlem yapmaya da devam edebilirsiniz.
walllet.com ile güvenli ve modern giriş
Çoğu kişi akıllı sözleşmelerden DeFi'den nefret ettiği için kaçınmaz. Kaçınır çünkü ifadeler teknik gelir, imzalamak riskli hissettirir, kurtarma korkutucu gelir ve gas can sıkar
walllet.com’un içeriği ve ürün yönü tam da bu sürtünmeleri hedefler: passkey ile seed phrase'siz erişim, yeni başlayanlara uygun rehberlik ve takas, köprüleme gibi pratik akışların insan diliyle anlatılması. Amaç, akıllı sözleşmelerle daha az “eyvah” anıyla işlem yapmanıza yardım etmek. DeFi, takas, NFT ya da onay gerektiren herhangi bir şeyi kullanmaya başlıyorsanız iyi bir sonraki adım walllet.com hesabınızı oluşturup çok küçük bir miktarla pratik yapmaktır. Bunu araba kullanmayı öğrenmek gibi düşünün: otoyolda başlamazsınız.
Akıllı sözleşmelerle alışılmış kafa karışıklığı olmadan işlem yapmaya 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 tahminle öğrenmek için takas rehberini kullanın.
İlgili yazılar
Kripto ve Web3: Cüzdanlar, ağlar ve güvenlik
Wallet drainer nedir? Bu saldırılar nasıl işler ve nasıl korunursunuz
Token bakiyesi güvenle nasıl kontrol edilir: Cüzdan uygulaması, blok gezgini ve yaygın hatalar