Ugrás a fő tartalomra

Segíts frissíteni ezt az oldalt

🌏

Az oldal új verziója jelenleg csak angolul érhető el. Segíts nekünk a fordításban.

Oldal fordítása
Lásd angolul

Itt nincsenek bugok!🐛

Ez az oldal nincs lefordítva. Egyelőre szándékosan hagytuk meg angol nyelven ezt az oldalt.

Bevezetés az okosszerződésekbe

Utolsó módosítás: , Invalid DateTime
Oldal szerkesztése

Mi az az okosszerződés?

Az "okosszerződés" egy program, mely az Ethereum blokkláncon fut. Kód (a függvényei) és adat (az állapota) gyűjteménye, mely egy bizonyos címen létezik az Ethereum blokkláncon.

Az okosszerződés egy Ethereum számla típus. Ez azt jelenti, hogy van egy egyenlegük és tranzakciókat tudnak indítani a hálózaton. Azonban nem egy felhasználó kezeli őket, ehelyett telepítve vannak a hálózatra és úgy futnak, ahogy programozták őket. A felhasználói számlák interakcióba léphetnek az okosszerződésekkel tranzakciók indításával, melyek egy függvényt hajtanak végre az okosszerződésen. Az okosszerződések szabályokat fektethetnek le, mint egy rendes szerződés, és automatikusan betartatják azokat a kód által.

Előfeltételek

Olvasd el a számlákról, tranzakciókról és az Ethereum virtuális gépről szóló cikkeket, mielőtt beleugranál az okosszerződések világába.

Egy digitális ételautomata

Talán a legjobb okosszerződés metafora az ételautomata, ahogy Nick Szabo fogalmazta meg. A megfelelő bemenetekkel, egy bizonyos kimenet jön létre.

Hogy megkapd a nasit az ételautomatából:

1pénz + nasi választás = kiadott nasi
2

Ez a logika be van programozva az ételautomatába.

Az okosszerződésbe logika van beprogramozva, mint egy ételautomatába. Az alábbi példában bemutatjuk, hogy hogy nézne ki ez az ételautomata egy okosszerződés formájában:

1pragma solidity 0.6.11;
2
3contract VendingMachine {
4
5 // A szerződés állapotváltozóinak deklarálása
6 address public owner;
7 mapping (address => uint) public cupcakeBalances;
8
9 // Amikor a 'VendingMachine' szerződést telepítik:
10 // 1. beállítja a telepítő címet a szerződés tulajdonosaként
11 // 2. beállítja a telepített okosszerződés egyenlegét 100 muffinra
12 constructor() public {
13 owner = msg.sender;
14 cupcakeBalances[address(this)] = 100;
15 }
16
17 // A tulajdonos növelheti az okosszerződés muffin egyenlegét
18 function refill(uint amount) public {
19 require(msg.sender == owner, "Only the owner can refill.");
20 cupcakeBalances[address(this)] += amount;
21 }
22
23 // Bárki vásárolhat muffint
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
Összes megjelenítése
📋 Másolás

Mint ahogy az ételautomaták szükségtelenné teszik az árusító alkalmazottat, az okosszerződések is számos iparágban leválthatják a közvetítőket.

Nem engedélyköteles

Bárki írhat okosszerződést és telepítheti a hálózatra. Csak meg kell tanulnod egy okosszerződés nyelven programoznod és elegendő ETH-tel rendelkezned, hogy telepítsd a szerződést. Egy okosszerződés telepítés lényegében egy tranzakció, így ki kell fizetned a gázt, ahogy kifizetnéd egy egyszerű ETH átutalás esetében is. A gáz költségek azonban sokkal magasabbak a szerződés telepítés esetében.

Az Ethereum fejlesztőbarát okosszerződés nyelvekkel rendelkezik:

  • Solidity
  • Vyper

Többet a nyelvekről

Azonban be kell őket fordítani telepítés előtt, hogy az Ethereum virtuális gép értelmezni és tárolni tudja majd a szerződést. Többet a fordításról

Összeilleszthetőség

Az okosszerződések nyilvánosak az Ethereumon, így nyílt API-ként is tekinthetünk rájuk. Ez azt jelenti, hogy meghívhatsz más okosszerződéseket a te szerződésedben, hogy nagymértékben kiterjeszthesd a lehetőségeket. A szerződések még más szerződéseket is telepíteni tudnak.

Tudj meg többet az okosszerződés összeilleszthetőségről.

Korlátok

Az okosszerződések önmagukban nem képesek információt lekérni a "külvilági" eseményekről, mivel nem tudnak HTTP kérvényeket küldeni. Ez a design szerinti külső információkra való támaszkodás veszélyeztetheti a biztonság és a decentralizáció szempontjából fontos konszenzust.

Az orákulumok használata megoldást nyújt ezen probléma megoldására.

Okosszerződés anyagok

OpenZeppelin Contracts - Library biztonságos okosszerződés fejlesztéshez.

  • openzeppelin.com/contracts/
  • GitHub
  • Közösségi Fórum

DappSys - Biztonságos, egyszerű, flexibilis okosszerződés építőelemek.

További olvasnivaló

Hasznosnak találtad a cikket?