WATS Wallet logoWATS Wallet
Rehber8 dk okuma

Smart Contract (Akıllı Sözleşme) Nedir? Parayı Hareket Ettiren Kod

Akıllı sözleşme, bir blokzincire dağıtılmış, fonları sabit kurallara göre tutup hareket ettiren, her düğüm tarafından doğrulanan ve arada kimsenin olmadığı bir programdır. EVM, Solana ve TON'da nasıl çalıştıkları, ne zaman değişebildikleri, hataların neden gerçek paraya mal olduğu — ve WATS Hot Wallet'ın ücretleri tek bir tokenle tahsil etmek için bir ERC-4337 paymaster sözleşmesini nasıl kullandığı.

Bir akıllı sözleşme, bir blokzincire dağıtılmış, fonları sabit kurallara göre tutan ve hareket ettiren bir programdır; deterministik olarak çalışır — aynı girdi her zaman aynı sonucu üretir — ve ağdaki her düğüm bu yürütmeyi doğrular, arada ne bir şirket ne de bir görevli vardır. Zincir üstünde yaptığınız neredeyse her şey böyledir: tokenlar, takaslar, borç verme piyasaları ve bir protokolün bakiyenizi hareket ettirmesine izin veren onaylar. Karşı taraf kodun ta kendisi olduğu için ikna edilemez ve itiraz kabul etmez; bir kusurun destek talebi değil de boşaltılmış bir kasa olmasının nedeni de budur. EVM zincirleri bunlara akıllı sözleşme, Solana program der, TON ise cüzdanınızı bile bir sözleşme olarak modeller; ama mekanizma her yerde aynıdır. Cüzdanlar da onların üzerine kuruludur: WATS Hot Wallet, EVM zincirlerinde bir ERC-4337 paymaster sözleşmesini, Solana ve TON'da ise eşdeğer ücret ödeyiciyi kullanır; böylece her ücret, her zincirin yerel gas coin'i yerine tek bir tokenle, ATS ile tahsil edilir.

Parayı hareket ettiren kod

Bir smart contract (akıllı sözleşme), bir blokzincire dağıtılmış, fonları sabit kurallara göre tutan ve hareket ettiren bir programdır. Bir kez dağıtıldıktan sonra deterministik olarak çalışır — aynı girdi her zaman aynı sonucu üretir — ve ağdaki her düğüm bu yürütmeyi doğrular; arada ne bir şirket ne de bir görevli vardır. Tokenlar, takaslar ve borç verme piyasalarının hepsi birer akıllı sözleşmedir: bizzat karşı tarafın kendisi olan kod.

Önemli olan bu son ifade. Bir banka kullandığınızda size bir kurum borçludur ve talebinizi bir hukuk sistemi destekler. Bir akıllı sözleşme kullandığınızda ise anlaşmanın tamamı koddur — ikna edilemez ve itiraz kabul etmez. Web3'ü mümkün kılan bu özelliktir; başarısızlıklarını bu kadar affetmez yapan da yine odur.

Bir satış otomatı — dürüst versiyonu

Klasik benzetme, akıllı sözleşmenin bir satış otomatı olduğunu söyler: parayı atın, atıştırmalığı alın, tezgâhtara gerek yok. Kurallar hizmetin ta kendisidir. Bu kısım doğrudur ve determinizmi iyi yakalar — makine bugün sizden hoşlanmadığına karar veremez.

Benzetmenin gizlediği şey ise şu: Herkes bir makine kurabilir ve makine para almaya başlamadan önce hiçbir denetçi onu kontrol etmez — bir sözleşme ilk günden hatalı, hatta kasıtlı olarak düşmanca olabilir. Makine ayrıca gerçek para tutar: havuzlar ve borç verme piyasaları kullanıcı fonlarını sözleşmenin içinde saklar; dolayısıyla bir kusur, sıkışmış bir atıştırmalık değil, boşaltılmış bir kasadır. Ve satış otomatlarının aksine, sözleşmeler birbirini çağırır. Bu birleştirilebilirlik DeFi'nin arkasındaki süper güçtür — ve bozuk tek bir makinenin, kendisine bağlı her makineyi de aşağı çekebileceği anlamına gelir.

Her gün neyle etkileşiyorsunuz?

Kriptoyu az da olsa kullandıysanız akıllı sözleşmeler de kullandınız — genellikle işlem başına birkaç tane:

  • Tokenlar sözleşmedir. Bir ERC-20 "bakiyesi" cüzdanınızda duran madeni paralar değildir; token sözleşmesinin dahili defterindeki bir kayıttır — adresleri tutarlara eşleyen bir tablo. Token göndermek, o sözleşmeden iki kaydı güncellemesini istemek demektir.
  • Takaslar sözleşmedir. Bir DEX havuzu, iki token tutan ve işlemleri formülle fiyatlayan bir sözleşmedir — emir defteri yok, karşı tarafta bir işlem masası yok.
  • Onaylar, sizin bir sözleşmeyi yapılandırmanızdır. Bir DEX tokenlarınızı hareket ettirmeden önce, token sözleşmesine ne kadar alabileceğini söylersiniz — zincir üstüne kaydedilen bir allowance (harcama izni). Bu izin işlemin kendisinden daha uzun yaşadığı için anlaşılmayı hak eder; token onayları ve Permit yazısı tam olarak neyi verdiğinizi anlatır.

Bazı zincirlerde cüzdanınız bile bir sözleşmedir — bu da bizi büyük ekosistemlerin nasıl farklılaştığına getiriyor.

EVM, Solana ve TON sözleşmeleri nasıl farklılaşır?

Fikir her yerde aynıdır — ağ tarafından doğrulanan deterministik kod — ama mimari, kullanıcı olarak hissedebileceğiniz şekillerde farklılaşır.

EVM zincirleriSolanaTON
Yaygın adıAkıllı sözleşmelerProgramlarSözleşmeler (aktörler)
Durum nerede yaşarKod ve depolama birlikte, tek bir adresteKod programda; durum, her işleme ayrıca aktarılan ayrı hesaplardaHer sözleşme kendi durumunu tutar ve diğerleriyle asenkron mesajlarla konuşur
Token modeliTek bir ERC-20 sözleşmesi her sahibin bakiyesini kaydederSPL token programı sahip başına token hesaplarını yönetirHer sahibin jetton bakiyesi kendi küçük alt sözleşmesinde yaşar
Varsayılan olarak yükseltilebilir mi?Hayır — proxy kullanılmadıkça bytecode değiştirilemezEvet — yükseltme yetkisi iptal edilene kadarYalnızca sözleşmenin kendi kodu izin veriyorsa

TON bu modeli en uca taşır: cüzdanınız dahil zincirdeki her şey, diğer sözleşmelerle mesajlaşan bir sözleşmedir.

Bir akıllı sözleşme dağıtıldıktan sonra değiştirilebilir mi?

EVM zincirlerinde dağıtılmış bytecode'un kendisi düzenlenemez. Ama etkileştiğiniz şeylerin çoğu bir proxy'nin arkasında durur: sabit bir adresi çağırırsınız, o da her çağrıyı ayrı bir uygulama sözleşmesine iletir — ve bir yönetici proxy'yi yeni bir koda yönlendirebilir. Adresiniz aynı kalır; arkasındaki kuralların aynı kalması gerekmez.

Yani "değiştirilemez" aslında bir anahtar sorusudur. Yükseltme yetkisini kim tutuyor — ekip üyelerinden oluşan bir multisig mi, kamuya açık bir gecikmeyi zorunlu kılan bir timelock mu, bir yönetişim oylaması mı, yoksa yetki yakıldığı ve kod artık nihai olduğu için hiç kimse mi? İki cevap da otomatik olarak doğru değildir: yükseltilebilirlik ekiplerin hataları yamamasına izin verir; aynı zamanda anlaşmanın ayaklarınızın altında değişebileceği anlamına da gelir. Pratikte birçok büyük protokol ortada bir yerde durur — yükseltilebilir, ama timelock'ların ve multisig'lerin arkasında.

Akıllı sözleşme hataları neden bu kadar önemli?

Karşı taraf kodun kendisi olduğu için bir hata bir destek talebi değildir — arkasında para duran açık bir kapıdır. Transferi geri alacak bir dolandırıcılık departmanı yoktur ve çoğu zincirde, kapı açık dururken gerçekliği duraklatma gücüne sahip kimse de yoktur.

Bu örüntü teknolojinin kendisi kadar eskidir. 2016'da, erken dönem bir Ethereum yatırım sözleşmesi olan The DAO'daki bir reentrancy hatası, bir saldırganın fonların büyük bir kısmını boşaltmasına izin verdi; sonuçları o kadar ağırdı ki Ethereum bunu geri almak için hard fork yaptı ve bu süreçte Ethereum Classic ayrıştı. Koca ekosistemler adına kilitli token tutan köprü sözleşmeleri de aynı temel nedenle kripto tarihinin en büyük kayıplarından bazılarını üretti: yalnızca kodla korunan devasa değer.

Denetimler bir sözleşmeyi güvenli yapar mı?

Daha güvenli yapar — güvenli değil. Bir denetim (audit), güvenlik mühendislerinin kodun tek bir sürümünü tek bir zaman noktasında incelediği ücretli bir gözden geçirmedir. Bilinen hata sınıflarını ve özensiz kalıpları yakalar; kodun doğruluğunu kanıtlamaz, gelecekteki yükseltmeleri kapsamaz ve sözleşmenin, denetçilerin hiç görmediği protokollerle birleştiğinde nasıl davranacağını hesaba katmaz. İyi denetlenmiş protokoller yine de istismar edildi.

Kullanıcı için pratik okuma: hem denetlenmiş hem de zamanla ve değerle sınanmış sözleşmeleri tercih edin, denetlenmemiş yeni sözleşmeleri birer deney olarak görün, token onaylarını sıkı tutun ve karşı tarafın kodunun hak ettiğinden fazlasını asla yatırmayın.

WATS bu tabloda nerede

WATS Hot Wallet'ta akıllı sözleşme rayları ücret modelinin ta kendisidir: imzaladığınız her işlem — bir transfer, bir sözleşme çağrısı — zincirin yerel gas'i yerine tek bir tokenle, ATS ile ücretlendirilir; EVM'de bir ERC-4337 paymaster, Solana ve TON'da ise eşdeğer bir ücret ödeyici/aktarıcı aracılığıyla. ATS bir LayerZero OFT'sidir, böylece tek bir bakiye EVM, Solana ve TON genelinde çalışır ve toplanan ATS 100M arzdan 30M tabana doğru yakılır. Cüzdan non-custodial kalır — anahtarlarınızı siz tutarsınız ve WATS asla bir anahtar tutmaz — ve WATS, ERC-4337 ile OFT tek-token ücretlerini, yerel gas yerine tahsil edilen haliyle, bu yakımla birleştiren ilk ve tek cüzdandır.

Akıllı sözleşmeler kriptonun egzotik bir köşesi değildir — bir tokeni her hareket ettirdiğinizde imzaladığınız şeydir ve karşı taraftaki kod, fonlarınızla onu yazan kişi arasında duran tek şeydir. İki şey sizin kontrolünüzde kalır: neyi onayladığınız ve anahtarlarınızın nerede durduğu. Onayları vermeden önce gözden geçirin ve her yatırımı kodun hak ettiği kadarıyla boyutlandırın — sonra da anahtar tarafını kendinizde tutmak için, sizin adınıza fon hareket ettiremeyen bir cüzdandan imzalayın. WATS Hot Wallet kapsadığı sekiz zincirin tamamında — Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana ve TON — tam olarak budur: anahtarları kullanıcı tutar, WATS asla bir anahtar tutmaz ve ücret tarafı, bu yazının anlattığı teknolojinin ta kendisiyle çalışır — her zincirin yerel gas'i yerine ATS ile tahsil eden bir ERC-4337 paymaster sözleşmesi.

Sıkça sorulan sorular

Tokenlar gerçekten akıllı sözleşme mi?

Evet. EVM zincirlerinde bir ERC-20 tokeni, depolaması adresleri bakiyelere eşleyen bir sözleşmedir — tokenlarınız cüzdanınızdaki nesneler değil, o defterdeki kayıtlardır. Solana'da SPL token programı sahip başına token hesaplarını yönetir; TON'da ise her sahibin jetton bakiyesi kendi küçük alt sözleşmesinde yaşar. Her durumda token transfer etmek, bir programdan kayıtlarını güncellemesini istemek demektir.

Bir akıllı sözleşme dağıtıldıktan sonra değiştirilebilir mi?

Bazen. EVM zincirlerinde dağıtılmış bytecode değiştirilemez, ama birçok proje proxy kullanır: kullanıcılar, bir yöneticinin değiştirebileceği bir uygulama sözleşmesine yönlendiren sabit bir adresi çağırır. Solana programları, yükseltme yetkisi iptal edilene kadar varsayılan olarak yükseltilebilirdir. Yani asıl soru, yükseltme anahtarlarını kimin kontrol ettiğidir — bir multisig mi, bir timelock mu, bir yönetişim oylaması mı, yoksa hiç kimse mi. Bir değiştirilemezlik iddiasına güvenmeden önce bunu kontrol edin.

Denetlenmiş akıllı sözleşmeleri kullanmak güvenli mi?

Daha güvenli, ama güvenli değil. Bir denetim, kodun tek bir sürümünün belirli bir andaki incelemesidir; bilinen hata sınıflarını yakalar ama doğruluğu kanıtlamaz, sonraki yükseltmeleri kapsamaz ve diğer protokollerle her etkileşimi test etmez. İyi denetlenmiş sözleşmeler yine de istismar edildi. Denetimleri birçok sinyalden biri olarak görün — üretimde geçen süre, güvence altındaki değer ve yönetici anahtarlarının ne kadar güç taşıdığıyla birlikte — ve riskinizi buna göre boyutlandırın.

Bir akıllı sözleşmeyle etkileşmek için zincirin yerel coin'ine ihtiyacım var mı?

Genellikle evet — ağ gas'i kendi coin'iyle tahsil eder; dolayısıyla sıfır ETH'si olan bir cüzdan, elinde hangi tokenlar olursa olsun bir Ethereum sözleşmesini çağıramaz. Kendisi de bir akıllı sözleşme olan bir paymaster bunu değiştirir ve WATS Hot Wallet somut bir örnektir: Ethereum, Arbitrum, Optimism, Base, Polygon ve BNB Chain'de bir ERC-4337 paymaster, Solana ve TON'da ise eşdeğer ücret ödeyiciyi kullanır; böylece her ücret tek bir tokenle, ATS ile tahsil edilirken ağ altta yine kendi yerel gas'ini alır. ATS bir LayerZero OFT olduğu için tek bir bakiye sekiz zincirin tamamını kapsar; yani zincir başına doldurulup beklenecek bir gas rezervi kalmaz. Bu bir indirim değildir — blok alanı aynı fiyata mal olur, yalnızca onu ödeyen token değişir.

Akıllı sözleşme kullanmak, fonlarımın kontrolünden vazgeçmek anlamına mı gelir?

Hayır. Bir sözleşmeyi çağırmak, kendi anahtarınızla bir talimat imzalamanızdır ve sözleşme yalnızca o imzanın ve verdiğiniz mevcut token onaylarının izin verdiği kadarını yapabilir — onayları sıkı tutmanın herhangi bir denetim rozetinden daha önemli olmasının nedeni budur. En önemlisi anahtarın sizde kalmasıdır: WATS Hot Wallet tamamen non-custodial'dır, yani anahtarları kullanıcı tutar ve WATS asla bir anahtar tutmaz; WATS NFC Metal Card da hiçbir özel anahtar saklamaz — WATS uygulamalarında duran anahtarlara dokunarak kimlik doğrulaması yapar. Üstlendiğiniz gerçek risk, imzaladığınız cüzdan değil, sözleşmenin kodu ve ona verdiğiniz harcama izinleridir.