Vyper, Solidity és Scrypto: Az intelligens szerződéses nyelvek összehasonlítása

Tekintse meg három különböző programozási nyelvet a blokklánc-hálózatokhoz, és hogyan hasonlítható össze.

Az Ethereum hálózat intelligens szerződéseket vitt be a blokklánc térbe, így olyan koncepciókat hozott létre decentralizált pénzügy (DeFi) lehetséges. 

Az intelligens szerződések automatikusan végrehajthatják a folyamatokat, ha bizonyos feltételek teljesülnek. Ezzel az új technológiával együtt egy új kódolási nyelvet fejlesztettek ki Solidity néven.

Ahogy a blokklánc-ipar folyamatosan növekszik, és új blokklánc-hálózatok jelennek meg, további programozási nyelvek kerülnek a térbe, nevezetesen a Vyper és a Scrypto.

Programozási nyelvek olyan szabálykészlet, amely a szövegből és számokból álló karakterláncokat géppel olvasható kóddá alakítja. Egyszerűen fogalmazva, a programozási nyelvek lehetővé teszik a számítógépek számára, hogy megértsék az emberi lények által bevitt utasításokat. Ami a blokklánc-ipart illeti, a Solidity, a Python és a Javascript a leggyakrabban használt nyelvek közé tartoznak, mégis mindegyik másképp működik.

Mi a szilárdság?

A Solidity egy objektum-orientált és magas szintű programozási nyelv intelligens szerződések létrehozására az Ethereum blokkláncon és más blokklánc-hálózatokon, mint például a BNB Smart Chain és az Avalanche. A nyelvet 2014-ben fejlesztették ki, és hasonlóságokat mutat olyan programozási nyelvekkel, mint a JavaScript, a C++ és a Python.

Mivel a Solidity egy magas szintű nyelv, a számítógépes kódot az egyesek és nullák helyett könnyen érthető és ember által olvasható módon írják be. Például a Solidity kód olyan szavakat és kifejezéseket tartalmaz, mint a „funkció” és a „szerződés”, valamint göndör zárójeleket és számokat.

Az objektum-orientált kódolási nyelv azt jelenti, hogy a Solidity „objektumokat” használ, amelyek olyan kódrészletek, amelyek újra felhasználhatók hasonló kódrészletek létrehozására anélkül, hogy minden alkalommal újraírnák az eredeti kódot.

A Solidity fordítóprogramot is használ az ember által olvasható, magas szintű kód gép által olvasható kóddal történő átalakítására, amelyet az Ethereum Virtual Machine (EVM) hajt végre.

Mi az a Vyper?

A Vyper egy szerződésorientált, pitonikus programozási nyelv az intelligens szerződésekhez, amelyet az EVM-mel való használatra terveztek. A nyelvet úgy tervezték, hogy javítsa a Solidity-t a kód biztonságának és olvashatóságának javításával. A Vyper nagy hangsúlyt fektet a kódja hallhatóságára. Emiatt az egyik alapelve, hogy az emberek minél több Vyper kódot tudjanak olvasni. 

A Vyper arra is törekszik, hogy a lehető legnehezebbé tegye bárki számára a félrevezető kód írását. Az egyszerűség az olvasó (azaz az auditor) számára fontosabb, mint az egyszerűség az író (azaz a fejlesztő) számára. Így könnyebb lesz azonosítani a rosszindulatú kódokat egy intelligens szerződésben vagy decentralizált alkalmazásban (DApp).

Mi az a Scrypto?

A Scrypto egy eszközorientált intelligens szerződéses nyelv. A nyelvet a Radix fejlesztette ki, a Rust-on alapul, és megtartja a Rust legtöbb funkcióját, miközben speciális funkciókat és szintaxist ad hozzá a Radix Engine v2-hez. Mivel a Scrypto eszköz-orientált, kölcsönhatásba léphet olyan eszközökkel, mint például a tokenek, amelyek egyfajta erőforrás a nyelven belül. 

Az olyan kódolási nyelvekben, mint a Solidity, az ERC-20 tokenek intelligens szerződésként léteznek az EVM-en. A Scrypto eszközei olyan erőforrások, amelyek tárolókban és tárolókban találhatók. Egyszerűen fogalmazva, ez olyan, mintha van egy vödör (a tartály), és megtöltjük érmékkel (az eszköz), amelyeket egy malacbankában (a páncélszekrényben) lehet tárolni.

Friss: A kriptográfiai tehetségek iránti kereslet kevésbé függ a piactól, ahogy az iparág érik

A Scrypto arra is összpontosít, hogy fejlesztőbarát legyen, mivel lehetővé teszi számukra, hogy csak a szükséges kódot írják le, miközben a konténerekkel és erőforrásokkal kommunikálnak, hogy lehetővé tegyék a DApp-on belüli funkcionalitást. A biztonság egy másik alapelv, mivel a fejlesztők konkrét utasításokat adhatnak egy DApp-nek, ahelyett, hogy általános engedélyeket adnának.

Az intelligens szerződéses nyelvek összehasonlítása

A Solidity online tanulási források széles skálájával és nagy közösségi támogatással rendelkezik, mivel olyan nagy blokklánc-hálózatokban használják, mint az Ethereum. A Solidity az objektum-orientált programozásból (OOP) átvett funkciók széles skálájával is rendelkezik, így moduláris, és probléma esetén könnyebben megoldható. Például, ha egy bizonyos osztályból származó objektum hibásan működött, az az osztály eredetére vezethető vissza. 

Ez azért működik, mert a Solidity beágyazást használ, ami azt jelenti, hogy minden objektum önálló, és minden funkció egymástól függetlenül működik. A kódolási nyelv modularitása azt is lehetővé teszi a fejlesztők számára, hogy egyidejűleg több objektumon dolgozzanak, így hatékonyabbá válik az intelligens szerződések felépítése, javítása és telepítése.

A Vyper egy egyszerűbb kódolási nyelv, mint a Solidity, amely az átláthatóságot, a nyelvi szerkezet egyszerűségét és a hallhatóságot hangsúlyozza. A Vyper is kevesebb funkcióval rendelkezik, mint a Solidity, amit biztonsági okokból szándékosan tettek. A korlátozott szolgáltatáskészlet csökkenti a rosszindulatú szereplők által kihasználható sebezhetőségek számát.

Például a Solidity olyan módosítókat használ, amelyek jelzik, hogy a folyamat végrehajtása előtt és után ellenőrzéseket hajtottak végre. A Vyper azonban nem használ módosítókat, mivel a fejlesztők úgy vélik, hogy ez megkönnyíti a félrevezető kód írását. Arra is ösztönzi az egyéneket, hogy olyan kódot fejlesszenek ki, amely az egész fájlban ugrál, csökkentve a hallhatóságot. Mivel a Vyperben nincsenek módosítók, lehetetlen állapotváltozást hozzáadni a kódhoz.

Egy másik tulajdonság, amely kizárt a Vyperből, az öröklődés. A Solidityben több szerződés is örökölhet funkciókat egy szülőszerződéstől. Ha nézeteltérés van, az is szükségessé teszi, hogy az egyének megértsék az elsőbbségi normákat. A Vyper nem használ osztályöröklést, mert kiküszöböli a kód lehetséges bonyolultsági forrását, ami hozzájárul a jobb hallhatósághoz. Általánosságban elmondható, hogy a Vyper egy minimalista kódolási nyelv, amely bizonyos funkciókat a nagyobb biztonság és a kódbázis jobb vizsgálata érdekében cserél, hogy jobban megvédje a Vyper-alapú intelligens szerződések felhasználóit.

Míg a Solidity az egyik legnépszerűbb és legismertebb programozási nyelv lehet a blokklánc térben, egyes nyelvek könnyebb tanulási görbékkel rendelkeznek a fejlesztők számára. Ezenkívül az egyszerűbb programozási nyelvek megkönnyítik az új fejlesztők bevonását az iparágba.

Adam Simmons, az RDX Works – a Radix mögött álló fejlesztők – stratégiai igazgatója a Cointelegraphnak elmondta: „A munkához megfelelő eszközök megléte nagy különbséget jelent – ​​és jelenleg a blokklánc-fejlesztők nem rendelkeznek a megfelelő eszközökkel. Ez nem csak a nyelvek egyszerűbbé tételéről szól, hanem az intuitív és biztonságos fejlesztői eszközökről is.”

„Csúcspontján a DeFi mindössze két év alatt 200 milliárd dollár feletti TVL-re nőtt – tehát egyértelműen nagyon magas a kereslet. Ennek ellenére a 200-szoros tőkenövekedés ellenére a fejlesztők száma csak kétszeresére, összesen körülbelül 2 19,000-re nőtt (a világ mintegy 30 millió fejlesztője közül).

A decentralizált pénzügyi térben tapasztalható nagymértékű növekedés ellenére a fejlesztők száma nem nőtt a keresletnek megfelelően. Simmons úgy véli, hogy a fejlesztők túl nehéznek találták a Solidity-t ahhoz, hogy áttérjenek a blokklánc-fejlesztésre:

„A fejlesztők tétováznak a teljes munkaidőben a Web3 használatától a Solidity meredek tanulási görbéje és a biztonsággal kapcsolatos magas kockázatok miatt. A rendkívül tehetséges fejlesztők és a biztonsági auditokra költött dollármilliók ellenére a DeFi még mindig pénzt szed a hackelésekből és a kizsákmányolásokból. Ez önmagában elég ahhoz, hogy visszatartsa a fejlesztőket attól, hogy belépjenek a térbe.”

„A megfelelő nyelvek és eszközök birtokában a fejlesztők sokkal gyorsabban tudják növelni az egész iparágat. Ahogy a 90-es években a játékmotorok olyan eszközöket adtak a fejlesztőknek, amelyek forradalmasították a videojáték-gyártást, a megfelelő Web3 nyelvek és eszközök lehetővé teszik a fejlesztők számára, hogy felgyorsítsák a Web3 növekedését” – tette hozzá Simmons.

A Scrypto emellett a biztonságra, az egyszerűségre és a felhasználóbarátságra is összpontosít. A Scrypto tranzakciók az eszközökre összpontosítanak. Meghatározzák, hogy a felhasználó hogyan szeretné elosztani a rendszererőforrásokat. Azt is jelezhetik, hogy a visszaadott erőforrásokat a felhasználónak vagy egy többkomponensű tranzakció egy másik összetevőjének hogyan kell kezelnie.

Az Ethereumon végrehajtott tranzakciók általában intelligens szerződés megkötését jelentik (mivel az Ethereumon lévő DApp-ok és tokenek intelligens szerződések). Ezzel szemben a Scrypto-n végzett tranzakciók magukban foglalják az eszközök egyik komponensből a másikba való áthelyezését.

Például, ha A felhasználó 10 egyéni tokent akar küldeni B felhasználónak, a tranzakciója azt mutatná, hogy 10 tokent próbál kivenni az ezeket tartalmazó tárolóból. A tranzakció azt is mutatja, hogy elküldik ezeket a tokeneket a B felhasználó számlakomponensének befizetési módjára. Mivel az erőforrásoknak (ebben az esetben a tokeneknek) valahol el kell helyezkedniük, egy vödör (tároló) segítségével továbbítják a tokenek A felhasználótól B felhasználóhoz.

A fenti példában a felhasználó az erőforrásokat (a tokeneket) tartalmazó vödröt a második felhasználó letéti metódusába helyezi át, ahelyett, hogy egy token intelligens szerződést hívna. A DApps-szal való interakció hasonlóan működik, a felhasználók kivonják a tokeneket a fiókjukból, és átadják azokat a megfelelő összetevőnek, amellyel kapcsolatba szeretnének lépni. Összefoglalva, a Scrypto eszközalapú megközelítést alkalmaz, a felhasználók tényleges eszközöket tárolnak és továbbítanak. Az eszközalapú megközelítés megkönnyíti a fejlesztők számára a DApp-ok kódolását, mivel könnyebben kommunikálhatnak a tokenekkel (erőforrásokkal), a tokenkészletekkel (vaults) és a felhasználókkal (összetevőkkel).

Egy másik példa, ha egy swap DApp (mint például az Uniswap) Scrypto-val van kódolva, a fejlesztőknek csak a csere kereskedési módját kellene kódolniuk. Először a DEX-nek azonosítania kell a felhasználó bejövő A token tárolóját, majd ki kell számítania az árfolyamot. Ezután a beérkező tokeneket letétbe helyezik, és a DEX a megfelelő mennyiségű B tokent küldi vissza a felhasználónak.

Milyen programozási nyelvet válasszanak a blokklánc-fejlesztők?

A fejlesztők a hagyományos programozási nyelveket (C++, Python, JavaScript) használhatják a blokkláncok fejlesztéséhez, valamint olyan speciálisan felépített megoldásokat, mint a Solidity, a Vyper és a Scrypto. A több programozási nyelv előnyös lehet a blokklánc-tér számára, mivel számos eszközt biztosít a fejlesztőknek a munkához. 

Például azok a fejlesztők, akik ismerik a C++-t, a JavaScriptet és a Pythont, vonzónak találhatják a Solidity-t. A Python-t ismerő fejlesztők a Vyper felé fordulhatnak, míg a Rust-ot ismerő fejlesztők a Scrypto nyelv használatát választhatják.

Friss: A közösségi tokenek a Web3 motorja lesznek, a rajongótáboroktól az ösztönzésig

Simmons egyetért, és azt mondta a Cointelegraphnak: „Mivel több nyelv érkezik a Web3-ba, valószínűleg látni fogunk egy olyan időszakot, amikor jó néhány versengő megközelítés létezik. Mivel ezek a nyelvek a termékpiacon illeszkednek a fejlesztőkhöz, és ami a legfontosabb, lehetővé teszik a fejlesztők számára, hogy hatékony, hasznos és biztonságos DApp-eket építsenek, valószínűleg látni fogjuk, hogy az iparág a legjobb eredményt nyújtó termékek felé fog vonzódni.”

A Solidity természetesen azoknak a fejlesztőknek a választása, akik az Ethereumon és hasonló blokklánc-hálózatokon szeretnének dolgozni. Ugyanakkor a Vyper és a Scrypto olyan fejlesztőket vonzhat, akik előnyben részesítik az egyszerűséget és a nagyobb biztonságot. A Scrypto a fejlesztők számára is előnyösebb lehet megnövekedett egyszerűsége és eszközorientált megközelítése miatt.

Forrás: https://cointelegraph.com/news/vyper-solidity-and-scrypto-how-the-smart-contract-languages-compare