Ethereum: kuidas nutikad lepingud töötavad?

Nutikad lepingud on peamine funktsioon, mis on Ethereumi nii edukaks teinud. 

Mis on nutikad lepingud ja milleks need on?

Bitcoini protokoll ei näe ette võimalust tõeliselt keeruliste nutikate lepingute loomine, sest see oli põhimõtteliselt mõeldud ainult tehingute võimaldamiseks. 

Seevastu Ethereum, mis sündis 6 aastat pärast Bitcoini, oli algusest peale kavandatud olema võrk, mis on võimeline nutikate lepingute hostimine ja täitmine

2014. aastal Ethereumi kaasasutaja Vitalik Buterin kirjutas sõnaselgelt lühiülevaade et tema kavandatav võrk oli a nutikatel lepingutel põhinev järgmise põlvkonna platvorm, ning et plokiahela tehnoloogial põhinevad Bitcoini alternatiivsed rakendused hõlmasid ka digitaalsete varade kasutamist kohandatud valuutade ja finantsinstrumentide, mitteasendatavate varade ja keerukamate rakenduste esindamiseks. 

Eelkõige nimetati viimaseid ehk nutikaid lepinguid kui rakendusi, mis hõlmavad digitaalsete varade otsest juhtimist suvalisi reegleid rakendava koodi abil või plokiahelal põhinevaid detsentraliseeritud autonoomseid organisatsioone, nn. DAOd.  

Vitalik kirjutas: 

"Ethereum kavatseb pakkuda plokiahelat, millel on sisseehitatud Turingi täielik programmeerimiskeel, mida saab kasutada "lepingute" loomiseks, mida saab kasutada suvaliste olekute ülemineku funktsioonide kodeerimiseks, võimaldades kasutajatel luua mis tahes ülalkirjeldatud süsteeme. – nagu ka paljud teised, mida me pole veel ette kujutanud – lihtsalt paari koodireale loogikat kirjutades”.

Seega on nutikad lepingud Ethereumis koodiread, mille abil on võimalik programmeerida käskude automaatset täitmist võrgu kaudu, kui teatud tingimused on täidetud, ilma et peaks nende täitmist vahendajale usaldama.

Tegelikult pani Buterin ise termini "lepingud" jutumärkidesse, sest need on pigem osapooltevahelised tegelikud lepingud. detsentraliseeritud arvutiprogrammid võrku. 

Seetõttu ei ole nende toimimine üldises plaanis kuigi keeruline. 

arukas leping
Nutikad lepingud täidetakse, kui neis sisalduvad tingimused on kontrollitud

Nutikate lepingute juurutamine Ethereumi plokiahelas

Esiteks peavad üks või mitu arendajat ilmselt looma nutika lepingu, kirjutades vastavad koodiread, ja seejärel saatke see Ethereumi võrku. 

Tehnilises mõttes tähendab selle avaldamine Ethereumi plokiahelas seda, et kõik võrgusõlmed panevad selle vastu võtma ja täitma. Pärast avaldamist täidavad kõik sõlmed alati kõiki selles olevaid juhiseid täpselt samal viisil. 

Seetõttu mitte ainult selle avaldamine, vaid ka juhiste täitmine on pöördumatu kui see on plokiahelas avaldatud. 

Seetõttu on tegelikult olulised selles sisalduvad juhised – mis võivad olla kõige erinevamad – ja kui palju inimesi seda kasutab. Tõepoolest, selleks, et nutika lepingu juhised saaksid tegelikult täidetud, peavad need olema üks või mitu tehingut, mis neid kutsuvad

Samuti tasub meeles pidada, et need juhised hõlmavad üldiselt ressursside, näiteks andmete või märkide kasutamist, nii et nende tegelikuks täitmiseks kõik vajalikud tingimused peavad olema täidetud. 

Mõnikord tulevad need andmed väljastpoolt, tänu niinimetatud oraaklitele, mõnikord aga lihtsalt plokiahelas tehtud tehingutest. 

Tavaliselt tehing, mis käivitab nutikas lepingus sisalduvate juhiste täitmise hõlmab a tasu ETH-s, ja paljudel juhtudel hõlmab täitmise tegelik käivitamine ka nutika lepingu enda või muude nutikate lepingute jaoks spetsiifiliste žetoonide maksmist või saatmist. 

Tehniliselt on nutikad lepingud teatud tüüpi kontod Ethereumi plokiahel, mida "kontrollib" võrk, mitte keskne üksus. Nad saavad salvestada ETH-d või žetoone ning saavad ka saata võrgus tehinguid autonoomselt.

Kuidas koodiga ja üldisemalt dAppsiga suhelda

Kasutajad saavad nutikate lepingutega suhelda, saates tehinguid, mis käivitavad ühe nende koodis määratletud funktsioonidest. 

Seetõttu on nutilepingute toimimine Ethereumis üldiselt väga lihtne: lihtsalt saatke teatud tüüpi tehing nutikale lepingule ja see käivitab sõlmede poolt kõik nutilepingu funktsioonis sisalduvad juhised, mille välja kutsus. tehing ise. 

Ilmselt võib olenevalt sellest, millised juhised käivitatavas funktsioonis sisalduvad, tekitada väga erinevaid tagajärgi, mis erinevad mitte ainult nutikate lepingute, vaid ka funktsioonide lõikes. 

Nutikate lepingute tohutu keerukus tuleneb seega just sellest, mida üksikud nutikad lepingud teevad, mitte aga üldiselt sellest, et Ethereumi võrk neid toetab ja täidab. Pealegi on täiesti võimatu loetleda, kuidas kõik võrgus olevad nutikad lepingud tegelikult töötavad. 


Allikas: https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/