Mi az a smart contract (okosszerződés)?

Az okosszerződés (vagy szintén használt angol nevén smart contract) egy, a blokkláncra publikált, önálló működésre nem képes programkód.

Az okosszerződés (vagy szintén használt angol nevén smart contract) egy, a blokkláncra publikált, önálló működésre nem képes programkód. Az okosszerződésben leírt utasításokat egy virtuális gép (Ethereum esetében az Ethereum Virtual Machine) futtatja, a futtatáshoz pedig interakcióra van szükség egy tárca vagy más okosszerződés részéről.

Ez az interakció kétféle lehet:

  • tranzakció
  • hívás

Az "önálló működésre nem képes" alatt azt értjük, hogy a kód blokkláncra történő publikálásának ténye önmagában nem elég ahhoz, hogy lefusson a kód. Minden esetben szükség van egy hívó vagy tranzaktáló félre, aki végső soron a benne definiált műveletek virtuális gép általi futtatását kezdeményezi. Magán a programkódon belül lehetőség van lekérdezni ezt a felet, és akár ez alapján szétválasztani a működést.

Ezalól egyetlen kivétel van, az okosszerződés konstruktora, ami egy speciális függvény, direkt arra kitalálva, hogy tartalma a smart contract blokkláncra kerülésekor lefusson.

Az okosszerződések blokkláncba kerülésük (bányászás vagy validálás) után nyilvánosak és visszavonhatatlanok.

Mire használható egy okosszerződés?

A rövid válasz: mindenre, de tipikusan komplex blokklánc-műveletek automatizálására. Példák alkalmazási területekre:

  • DeFi, azaz decentralized finance alkalmazások, például a Uniswap váltó belső működése okosszerződésekkel van megoldva

  • Új kriptovaluta tokenek létrehozása az ERC20 szabvány szerint

  • NFT-k létrehozása, azaz "mintelése"

  • Cross-chain bridge-ek

  • Arbitrázs műveletek atomizálása (azaz annak biztosítása, hogy a tranzaktáló fél által kezdeményezett több egyidejű token váltási kísérlet kizárólag együtt futhasson le)

  • Blockchain játékok

  • Egyéb decentralizált alkalmazások, pl.: sportfogadás és kaszinó, szállítmányozási láncok monitorozása privát láncokon, stb.

Ezek a leggyakrabban használt applikációk, emellett természetesen még számos felhasználási terület létezik.

Hogyan néz ki egy egyszerű smart contract?

Elöljáróban: Egy smart contract nem egyszerű. Általában Solidity vagy Rust nyelven íródik, sokszáz sort tartalmaz, és teli van tűzdelve emberi szemmel nehezen értelmezhető hexadecimális címekkel. Éppen ezért a lehető legegyszerűbb okosszerződést választottam példának:

Ez a program egy Solidity nyelven írt okosszerződés, amellyel a vele interaktáló fél nem túl izgalmas módon képes egy nemnegatív egész számot tárolni a blokkláncon (set függvény), és képes lekérdezni azt (get függvény).

Tranzakciós költségek a blokkláncon

A blokkláncon történt bármilyen változás (azaz tranzakció) drága számítási művelet. Bányászok és/vagy validátorok hardvererőforrásokat allokálnak annak érdekében, hogy a kód lefuthasson. Éppen ezért a tranzakcióknak anyagi költsége van. Ezt gas cost-nak hívják, és Ethereum blokkláncon ETH-ban (vagy kisebb egységeiben, Gwei, wei) mérik.

A tranzaktáló fél tehát saját tárcájában rendelkeznie kell bizonyos mennyiségű ETH-val hogy le tudja futtatni a tranzakciót (a fenti példában a set függvény hívása tranzakciónak minősül, hiszen a blokklánc állapotát megváltoztatja, odaír egy számot). Minden egyes elemi műveletnek megvan a költsége, melyet az EVM dokumentációjában megismerhetünk. Ezek az elemi műveletek az úgynevezett bájtkód műveletei, ami egy előfordított (leginkább Assembly-re hasonlító) gépi kód. Szintén a példánál maradva, az x = newValue; sor szintén be fog fordulni EVM gépi kódra, az írási művelet OPCODE-ját az alábbi táblázatból kikeresve pedig azonosíthatjuk a művelet konkrét költségét. Az okosszerződésben lévő valamennyi művelet költsége természetesen összeadódik, és a végső gas cost fizetése a tranzaktáló félre terhelődik.

Amennyiben a tranzaktáló fél nem rendelkezik elég Etherrel (ETH) a tranzakció lebonyolításához, az nem kerül be a blokkláncba, érvénytelen lesz. Előfordulhat azonban, hogy ekkor is kell valamennyi költséget fizetni, tipikusan ha a program félig lefutott és már igénybe vett számítási kapacitást a hálózattól. Emellett fontos megjegyezni hogy a tranzakció tényleg köznapi értelemben vett tranzakció, azaz "fél lefutás" nincs, ilyen esetben minden elvégzett művelet visszavonódik. Nem kerül bele a blokkláncba.

Leendő blockchain fejlesztőknek

Konkrétumokat az Ethereum számítási költségeiről és az EVM működéséről itt találsz:

ByBit regisztráció tutorial

A A legegyszerűbb dolgod akkor van, ha a fenti linkre kattintva a Google belépést választod.

A legnépszerűbb smart contract programnyelv tanulását itt tudod elkezdeni:

ByBit regisztráció tutorial

A A legegyszerűbb dolgod akkor van, ha a fenti linkre kattintva a Google belépést választod.

A gyakorlat részéhez pedig az alábbi tutorialt javaslom, ami játékos formában visz végig egyszerűbb contractok (token, NFT) megírásáig:

ByBit regisztráció tutorial

A A legegyszerűbb dolgod akkor van, ha a fenti linkre kattintva a Google belépést választod.
💡
Ha tetszett ez az írás, iratkozz fel a Bullmarket Hungary tartalmaira :)
A kriptó világ legfontosabb friss híreit válogatjuk, heti 1 levélben. A feliratkozás ingyenes.

Ezeket is ajánljuk

featured
Bitcoin
bullmarket.hub
bullmarket.hu
·2024. 12. 28.

3 érv hogy miért fektess bitcoinba

featured
HírekBitcoin
bullmarket.hub
bullmarket.hu
·2024. 12. 28.

4 karakter, 4000 dolláros BTC rali

featured
Rövid hírHírekBitcoin
bullmarket.hub
bullmarket.hu
·2024. 12. 28.

50000 BTC-t foglalt le ma a német rendőrség

featured
Rövid hírHírekBitcoin
bullmarket.hub
bullmarket.hu
·2024. 12. 28.

65 országban vezethet be BTC fizetést a Strike app