Vyper, Solidity ja Scrypto: Kuinka älykkäitä sopimuskieliä verrataan

Katsaus kolmeen eri ohjelmointikieleen lohkoketjuverkostoille ja niiden vertailuun.

Ethereum-verkko toi älykkäät sopimukset lohkoketju-avaruuteen tehden konsepteista sellaisia hajautettu rahoitus (DeFi) mahdollista. 

Älykkäät sopimukset voivat suorittaa prosessit automaattisesti, kun tietyt ehdot täyttyvät. Tämän uuden teknologian myötä kehitettiin uusi koodauskieli nimeltä Solidity.

Kun lohkoketjuteollisuus jatkaa kasvuaan ja uusia lohkoketjuverkkoja syntyy, avaruuteen tuodaan uusia ohjelmointikieliä, erityisesti Vyper ja Scrypto.

Ohjelmointikielet ovat sääntöjoukko, joka muuntaa teksti- ja numerojonot koneellisesti luettavaksi koodiksi. Yksinkertaisesti sanottuna ohjelmointikielet antavat tietokoneille mahdollisuuden ymmärtää ihmisten syöttämiä ohjeita. Mitä tulee lohkoketjuteollisuuteen, Solidity, Python ja Javascript ovat joitain yleisimmin käytettyjä kieliä, mutta ne kaikki toimivat eri tavalla.

Mikä on vakavuus?

Solidity on olio- ja korkean tason ohjelmointikieli älykkäiden sopimusten rakentamiseen Ethereum-lohkoketjussa ja muissa lohkoketjuverkostoissa, kuten BNB Smart Chain ja Avalanche. Kieli kehitettiin vuonna 2014, ja sillä on yhtäläisyyksiä ohjelmointikielten, kuten JavaScriptin, C++:n ja Pythonin, kanssa.

Koska Solidity on korkean tason kieli, tietokonekoodi kirjoitetaan helposti ymmärrettävällä ja ihmisen luettavalla tavalla ykkösten ja nollien sijaan. Esimerkiksi Solidity-koodi sisältää sanoja ja lauseita, kuten "toiminto" ja "sopimus", sekä kiharoita suluja ja numeroita.

Oliosuuntautunut koodauskieli tarkoittaa, että Solidity käyttää "objekteja", jotka ovat koodinpätkiä, joita voidaan käyttää uudelleen luomaan samanlaisia ​​koodinpätkiä kirjoittamatta joka kerta uudelleen alkuperäistä koodia.

Solidity käyttää myös kääntäjää muuntaakseen ihmisen luettavan korkean tason koodin koneellisesti luettavaksi koodiksi, joka suoritetaan Ethereum Virtual Machinessa (EVM).

Mikä on Vyper?

Vyper on sopimussuuntautunut, pytoninen ohjelmointikieli älykkäille sopimuksille, joka on suunniteltu käytettäväksi EVM:n kanssa. Kieli on suunniteltu parantamaan Solidityä parantamalla koodin turvallisuutta ja luettavuutta. Vyper keskittyy voimakkaasti koodinsa kuuluvuuteen. Tästä johtuen yksi sen periaatteista on, että ihmisten pitäisi pystyä lukemaan mahdollisimman paljon Vyper-koodia. 

Vyper pyrkii myös tekemään harhaanjohtavan koodin kirjoittamisesta mahdollisimman vaikeaa. Yksinkertaisuus lukijalle (eli tarkastajalle) on tärkeämpää kuin yksinkertaisuus kirjoittajalle (eli kehittäjälle). Tällä tavalla on helpompi tunnistaa haitallinen koodi älykkäässä sopimuksessa tai hajautetussa sovelluksessa (DApp).

Mikä on Scrypto?

Scrypto on omaisuuslähtöinen älykäs sopimuskieli. Kielen on kehittänyt Radix, se perustuu Rustiin ja säilyttää suurimman osan Rustin ominaisuuksista lisäten samalla tiettyjä toimintoja ja syntaksia Radix Engine v2:lle. Koska Scrypto on omaisuussuuntautunut, se voi olla vuorovaikutuksessa resurssien, kuten tokenien, kanssa, jotka ovat eräänlainen resurssi kielessä. 

Koodauskielissä, kuten Solidity, ERC-20-tunnukset ovat älykkäinä sopimuksina EVM:ssä. Scrypton resurssit ovat resursseja, jotka ovat säilöissä ja varastoissa. Yksinkertaisesti sanottuna se on kuin ämpäri (säiliö) ja sen täyttäminen kolikoilla (omaisuus), joita voidaan säilyttää säästöpossussa (holvissa).

Viimeaikaiset: Salausalan osaajien kysyntä on vähemmän riippuvainen markkinoista alan kypsyessä

Scrypto keskittyy myös kehittäjäystävällisyyteen sallimalla heidän kirjoittaa vain tarvittavan koodin samalla, kun he ovat vuorovaikutuksessa säiliöiden ja resurssien kanssa mahdollistaakseen toiminnallisuuden DAppissa. Suojaus on toinen periaate, jossa kehittäjät voivat antaa erityisiä ohjeita DApp-sovellukselle yleisten käyttöoikeuksien antamisen sijaan.

Kuinka älykkäitä sopimuskieliä verrataan

Solidityllä on laaja valikoima online-oppimisresursseja ja paljon yhteisön tukea, koska sitä käytetään suurissa lohkoketjuverkostoissa, kuten Ethereum. Solidityssä on myös laaja valikoima ominaisuuksia, jotka on otettu olio-ohjelmoinnista (OOP), mikä tekee siitä modulaarisen ja helpommin vianmäärityksen ongelmatilanteissa. Jos esimerkiksi tietyn luokan objektin oli tarkoitus toimia toimintahäiriönä, se voidaan jäljittää luokan alkuperään. 

Tämä toimii, koska Solidity käyttää kapselointia, mikä tarkoittaa, että jokainen objekti on itsenäinen ja jokainen toiminto toimii itsenäisesti. Koodauskielen modulaarisuuden ansiosta kehittäjät voivat myös työskennellä useiden objektien parissa samanaikaisesti, mikä tekee älykkäiden sopimusten rakentamisesta, korjaamisesta ja käyttöönotosta tehokkaampaa.

Vyper on yksinkertaisempi koodauskieli kuin Solidity, ja se korostaa läpinäkyvyyttä, kielirakenteen yksinkertaisuutta ja kuultavuutta. Vyperissä on myös vähemmän ominaisuuksia kuin Solidityssä, mikä tehtiin tarkoituksella turvallisuussyistä. Rajoitettu ominaisuusjoukko vähentää haavoittuvuuksien määrää, joita pahantahtoiset toimijat voivat hyödyntää.

Esimerkiksi Solidity käyttää modifioijia, jotka osoittavat, että tarkastukset on suoritettu ennen prosessin suorittamista ja sen jälkeen. Vyper ei kuitenkaan käytä modifioijia, koska kehittäjät uskovat sen helpottavan harhaanjohtavan koodin kirjoittamista. Se myös rohkaisee yksilöitä kehittämään koodia, joka pomppii läpi tiedoston, mikä vähentää kuultavuutta. Koska Vyperissä ei ole modifioijia, on mahdotonta lisätä koodiin tilamuutoksia.

Toinen Vyperin ulkopuolelle jäävä ominaisuus on perinnöllisyys. Solidityssä useat sopimukset voivat periä ominaisuuksia pääsopimuksesta. Jos on erimielisyyttä, se edellyttää myös, että yksilöt ymmärtävät ensisijaisuuden normit. Vyper ei käytä luokan periytymistä, koska se eliminoi koodin mahdollisen monimutkaisuuden lähteen, mikä parantaa kuultavuutta. Yleisesti ottaen Vyper on minimalistisempi koodauskieli, joka vaihtaa joitakin toimintoja parantaakseen turvallisuutta ja parantaakseen koodikantansa tutkimista, jotta Vyper-pohjaisten älykkäiden sopimusten käyttäjiä voidaan suojata paremmin.

Vaikka Solidity voi olla yksi suosituimmista ja tunnetuimmista ohjelmointikielistä blockchain-avaruudessa, joillakin kielillä on helpompi oppimiskäyrä kehittäjille. Lisäksi yksinkertaisemmat ohjelmointikielet helpottavat uusien kehittäjien houkuttelemista alalle.

Adam Simmons, RDX Worksin strategiajohtaja – Radixin takana olevat kehittäjät – kertoi Cointelegraphille: ”Oikeilla työkaluilla on suuri ero – ja tällä hetkellä lohkoketjujen kehittäjillä ei ole oikeita työkaluja. Tämä ei tarkoita vain kielten yksinkertaistamista, vaan intuitiivisten ja turvallisten kehittäjätyökalujen tekemistä", jatkaa:

Huipussaan DeFi kasvoi yli 200 miljardiin dollariin TVL:ssä vain kahdessa vuodessa – joten on selvää, että kysyntää on erittäin korkea. Tästä 200-kertaisesta pääoman kasvusta huolimatta kehittäjien määrä kasvoi vain kaksinkertaiseksi, yhteensä noin 2 19,000:een (noin 30 miljoonasta kehittäjästä maailmanlaajuisesti).

Huolimatta hajautetun rahoitusalueen voimakkaasta kasvusta, kehittäjien määrä ei kasvanut kysyntää vastaavaksi. Simmons uskoo, että kehittäjät ovat saattaneet kokea Solidityn liian vaikeaksi siirtyä lohkoketjukehitykseen:

"Kehittäjät epäröivät siirtyä kokopäiväisesti Web3:een Solidityn jyrkän oppimiskäyrän ja turvallisuuteen liittyvien korkeiden riskien vuoksi. Huolimatta erittäin lahjakkaista kehittäjistä ja miljoonista dollareista, jotka on käytetty tietoturvatarkastuksiin, DeFi kerää edelleen rahaa hakkeroista ja hyväksikäytöistä. Pelkästään tämä riittää estämään kehittäjiä pääsemästä tilaan."

”Oikeilla kielillä ja työkaluilla kehittäjät voivat kasvattaa koko alaa paljon nopeammin. Aivan kuten pelimoottorit antoivat kehittäjille työkalut videopelituotannon mullistamiseen 90-luvulla, oikeat Web3-kielet ja -työkalut antavat kehittäjille mahdollisuuden nopeuttaa Web3:n kasvua", Simmons lisäsi.

Scrypto keskittyy myös turvallisuuteen, yksinkertaisuuteen ja käyttäjäystävällisyyteen. Scrypto-transaktiot keskittyvät omaisuuteen. Ne määrittelevät, kuinka käyttäjä haluaa järjestelmäresurssien jaetun. Ne voivat myös osoittaa, kuinka käyttäjän tai muun komponentin tulee käsitellä palautettuja resursseja monikomponenttitapahtumassa.

Tapahtumat Ethereumissa ovat yleensä kutsua älykkääseen sopimukseen (koska Ethereumin DApps ja tokenit ovat älykkäitä sopimuksia). Sitä vastoin Scrypton liiketoimiin liittyy omaisuuden siirtäminen komponentista toiseen.

Jos käyttäjä A haluaa esimerkiksi lähettää 10 mukautettua tokenia käyttäjälle B, hänen tapahtumansa osoittavat, että hän yrittää poistaa 10 merkkiä ne sisältävästä varastosta. Tapahtuma osoittaa myös, että he lähettävät kyseiset tunnukset käyttäjän B tilikomponentin talletusmenetelmään. Koska resurssien (tässä tapauksessa merkkien) on sijaittava jossain, ämpäri (säilö) käytetään tokenien siirtämiseen käyttäjältä A käyttäjälle B.

Yllä olevassa esimerkissä käyttäjä siirtää resurssit (rahakkeet) sisältävän ämpärin toisen käyttäjän talletusmenetelmään sen sijaan, että hän soittaisi token-älysopimukseen. Vuorovaikutus DAppsin kanssa toimii samalla tavalla, kun käyttäjät poistavat tunnuksia tileiltään ja siirtävät ne asiaankuuluvalle komponentille, jonka kanssa he haluavat olla vuorovaikutuksessa. Yhteenvetona voidaan todeta, että Scrypto käyttää omaisuuspohjaista lähestymistapaa, jossa käyttäjät tallentavat ja välittävät todellista omaisuutta. Omaisuuspohjainen lähestymistapa helpottaa myös kehittäjien DApps-koodausta, koska se on helpompi vuorovaikutuksessa tokenien (resurssien), token poolien (holvit) ja käyttäjien (komponenttien) kanssa.

Toisessa esimerkissä, jos vaihto-DApp (kuten Uniswap) olisi koodattu Scryptolla, kehittäjien tarvitsee vain koodata swapin kaupankäyntimenetelmä. Ensin DEX:n on tunnistettava käyttäjän saapuva Token A -säiliö ja laskettava sitten vaihtokurssi. Seuraavaksi saapuvat merkit talletetaan, ja DEX lähettää oikean määrän Token B:tä takaisin käyttäjälle.

Mikä ohjelmointikieli blockchain-kehittäjien tulisi valita?

Kehittäjät voivat käyttää lohkoketjujen kehittämiseen perinteisiä ohjelmointikieliä (C++, Python, JavaScript) sekä erityisesti rakennettuja ratkaisuja, kuten Solidity, Vyper ja Scrypto. Useat ohjelmointikielet voivat olla hyödyllisiä lohkoketjutilassa, koska ne tarjoavat kehittäjille joukon työkaluja työskennelläkseen. 

Esimerkiksi kehittäjät, jotka tuntevat C++:n, JavaScriptin ja Pythonin, saattavat pitää Soliditya houkuttelevana. Pythonin tuntevat kehittäjät voivat siirtyä Vyperiin, kun taas Rustin tuntevat kehittäjät voivat käyttää Scrypto-kieltä.

Viimeaikaiset: Sosiaaliset tunnukset ovat Web3:n moottori fanijoukoista kannustimiin

Simmons on samaa mieltä ja kertoo Cointelegraphille: "Kun Web3:een tulee enemmän kieliä, tulemme todennäköisesti näkemään ajanjakson, jolloin kilpailevia lähestymistapoja on melko vähän. Koska nämä kielet sopivat tuotemarkkinoille kehittäjien kanssa ja mikä tärkeintä, antavat näille kehittäjille mahdollisuuden rakentaa tehokkaita, hyödyllisiä ja turvallisia DApps-sovelluksia, alan todennäköisesti houkuttelee niitä, jotka tuottavat parhaat tulokset.

Solidity on luonnollisesti valinta kehittäjille, jotka haluavat työskennellä Ethereumin ja vastaavien lohkoketjuverkkojen parissa. Samaan aikaan Vyper ja Scrypto voisivat houkutella kehittäjiä, jotka pitävät yksinkertaisuudesta ja lisäturvasta. Scrypto voi myös olla parempi kehittäjille sen lisääntyneen yksinkertaisuuden ja omaisuussuuntautuneen lähestymistavan vuoksi.

Lähde: https://cointelegraph.com/news/vyper-solidity-and-scrypto-how-the-smart-contract-languages-compare