Ana içeriğe geç

Bu sayfanın güncellenmesine yardım edin

🌏

Bu sayfanın yeni bir sürümü vardır ancak şu anda yalnızca İngilizce'dir. Son sürümü çevirmemize yardımcı ol.

Sayfayı çevir
İngilizce'yi gör

Burada hata yok!🐛

Bu sayfa tercüme edilmiyor. Bu sayfayı şimdilik kasıtlı olarak İngilizce bıraktık.

Akıllı sözleşmelere giriş

Son düzenleme: , Invalid DateTime
Sayfayı düzenle

Akıllı sözleşme nedir?

Bir "akıllı sözleşme" basitçe Ethereum blok zincirinde çalışan bir programdır. Ethereum blok zincirindeki özel bir adreste bulunan bir kod (sözleşmenin fonksiyonları) ve veri (sözleşmenin durumu) koleksiyonudur.

Akıllı sözleşmeler bir tür Ethereum hesabıdır. Bu, bir bakiyeye sahip oldukları ve ağ üzerinde işlemler gönderebildikleri anlamına gelir. Ancak bir kullanıcı tarafından kontrol edilmezler, bunun yerine ağa dağıtılırlar ve programlandıkları gibi çalışırlar. Sonrasında kullanıcı hesapları akıllı sözleşmede tanımlanmış bir fonksiyonu yürüten işlemler göndererek akıllı sözleşme ile etkileşime geçebilirler. Akıllı sözleşmeler, normal bir sözleşmeye benzer şekilde kurallar belirleyebilir ve bu kuralları kod aracılığıyla zorunlu kılabilirler. Akıllı sözleşmeler varsayılan olarak silinemezler ve onlarla yapılan etkileşimler geri alınamaz.

Ön Koşullar

Yeni başlıyorsanız veya daha az teknik bir giriş arıyorsanız, akıllı sözleşmelere girişimizi öneririz.

Akıllı sözleşmelerin dünyasına atlamadan önce hesaplar, işlemler ve Ethereum Sanal Makinesi hakkında yeterince bilgi sahibi olduğunuzdan emin olun.

Dijital bir otomat

Nick Szabo'nun açıkladığı gibi, bir akıllı sözleşme için en iyi metafor, muhtemelen bir otomattır. Doğru girdilerle, belli bir çıktı garanti edilir.

Otomattan bir atıştırmalık almak için:

1money + snack selection = snack dispensed
2

Bu mantık otomatın içine programlanmıştır.

Bir akıllı sözleşme, tıpkı bir otomat gibi içine programlanmış bir mantığa sahiptir. Burada bu otomat bir akıllı sözleşme olsaydı nasıl gözükebileceğinin basit bir örneği bulunuyor:

1pragma solidity 0.8.7;
2
3contract VendingMachine {
4
5 // Declare state variables of the contract
6 address public owner;
7 mapping (address => uint) public cupcakeBalances;
8
9 // When 'VendingMachine' contract is deployed:
10 // 1. set the deploying address as the owner of the contract
11 // 2. set the deployed smart contract's cupcake balance to 100
12 constructor() {
13 owner = msg.sender;
14 cupcakeBalances[address(this)] = 100;
15 }
16
17 // Allow the owner to increase the smart contract's cupcake balance
18 function refill(uint amount) public {
19 require(msg.sender == owner, "Only the owner can refill.");
20 cupcakeBalances[address(this)] += amount;
21 }
22
23 // Allow anyone to purchase cupcakes
24 function purchase(uint amount) public payable {
25 require(msg.value >= amount * 1 ether, "You must pay at least 1 ETH per cupcake");
26 require(cupcakeBalances[address(this)] >= amount, "Not enough cupcakes in stock to complete this purchase");
27 cupcakeBalances[address(this)] -= amount;
28 cupcakeBalances[msg.sender] += amount;
29 }
30}
31
Tümünü göster
📋 Kopyala

Bir otomatın bir kasiyere olan ihtiyacı yok etmesi gibi, akıllı sözleşmeler de birçok endüstrideki aracıların yerini alabilir.

İzne dayalı olmama

Herkes bir akıllı sözleşme yazabilir ve onu ağa dağıtabilir. Sadece bir akıllı sözleşme dilinde kod yazmayı öğrenmeniz ve sözleşmenizi dağıtmaya yetecek kadar ETH sahibi olmanız gerekir. Bir akıllı sözleşme dağıtmak teknik olarak bir işlem olduğu için basit bir ETH aktarımında gaz ödeyeceğiniz gibi bunda da Gaz ödemeniz gerekir. Ancak sözleşme dağıtımları için gaz ücretleri çok daha yüksektir.

Ethereum, akıllı sözleşme yazmak için geliştirici dostu dillere sahiptir:

  • Solidity
  • Vyper

Diller hakkında daha fazlası

Ancak, Ethereum sanal makinesinin sözleşmeyi yorumlayabilmesi ve depolayabilmesi için dağıtılmadan önce derlenmeleri gerekir. Derleme üzerine daha fazla bilgi

Birleştirilebilirlik

Akıllı sözleşmeler Ethereum üzerinde herkese açıktır ve açık API'ler olarak düşünülebilirler. Bu, olanakları büyük ölçüde genişletmek için kendi akıllı sözleşmenizde başka akıllı sözleşmeleri çağırabileceğiniz anlamına gelir. Sözleşmeler, başka sözleşmeleri bile dağıtabilir.

Akıllı sözleşme birleştirilebilirliği hakkında fazlasını öğrenin.

Kısıtlamalar

Akıllı sözleşmeler "gerçek hayat" olayları hakkında tek başlarına bilgi edinemezler çünkü HTTP istekleri gönderemezler. Bu şekilde tasarlanmıştır. Dış bilgiye bağlı kalmak, güvenlik ve merkeziyetsizlik için önemli olan mutabakatı riske atabilir.

Bu, kâhinler ile çözülebilir.

Akıllı sözleşmelerin diğer bir kısıtlaması ise maksimum sözleşme boyutudur. Bir akıllı sözleşme maksimum 24 KB olabilir: Aksi takdirde sahip olduğu gaz tükenir. Bu, Elmas Deseni kullanılarak aşılabilir.

Akıllı sözleşme kaynakları

OpenZeppelin Contracts - Güvenli akıllı sözleşme geliştirme kütüphanesidir.

DappSys - Akıllı sözleşmeler için güvenli, basit ve esnek yapılı yapı taşlarıdır.

Daha fazla bilgi

Bu makale yararlı oldu mu?

👈

Önceki

Yığına giriş

Sonraki

Akıllı sözleşme dilleri
👉