Ethereum: kā darbojas viedie līgumi?

Viedie līgumi ir galvenā iezīme, kas ir padarījusi Ethereum tik veiksmīgu. 

Kas ir viedie līgumi un kam tie paredzēti

Bitcoin protokols neparedz iespēju radot patiesi sarežģītus viedos līgumus, jo tas būtībā bija paredzēts tikai darījumu veikšanai. 

Turpretim Ethereum, kas dzimis 6 gadus pēc Bitcoin, jau no paša sākuma tika izveidots, lai būtībā būtu tīkls, kas spēj viedo līgumu mitināšana un izpilde

2014. gadā Ethereum līdzdibinātājs Vitaliks Buterinam skaidri rakstīja papīrs ka viņa projektētais tīkls bija a nākamās paaudzes platforma, kuras pamatā ir viedie līgumi, un ka Bitcoin alternatīvās lietojumprogrammas, kuru pamatā ir blokķēdes tehnoloģija, ietvēra arī digitālo aktīvu izmantošanu, lai attēlotu pielāgotas valūtas un finanšu instrumentus, neaizvietojamus aktīvus un sarežģītākas lietojumprogrammas. 

Jo īpaši pēdējie, ti, viedie līgumi, tika definēti kā lietojumprogrammas, kas ietver tiešu digitālo aktīvu kontroli ar kodu, kas ievieš patvaļīgus noteikumus, vai decentralizētas autonomas organizācijas, kuru pamatā ir blokķēde, t.s. DAO.  

Vitaliks rakstīja: 

"Ko Ethereum plāno nodrošināt, ir blokķēde ar iebūvētu Tjūringa pilnu programmēšanas valodu, ko var izmantot, lai izveidotu "līgumus", kurus var izmantot, lai kodētu patvaļīgas stāvokļa pārejas funkcijas, ļaujot lietotājiem izveidot jebkuru no iepriekš aprakstītajām sistēmām. – kā arī daudzas citas, kuras vēl neesam iedomājušies – vienkārši ierakstot loģiku dažās koda rindās”.

Tādējādi viedie līgumi vietnē Ethereum ir koda rindas, ar kurām to var izdarīt ieprogrammēt automātisku instrukciju izpildi pa tīklu, kad ir izpildīti noteikti nosacījumi, neuzticot to izpildi starpniekam.

Faktiski pats Buterīns terminu “līgumi” lika pēdiņās, jo tie ir nevis reāli līgumi starp pusēm. datorprogrammas, ko izpilda decentralizēta tīkls. 

Tāpēc no vispārīgā viedokļa to darbība nav īpaši sarežģīta. 

smart līgums
Viedie līgumi tiek izpildīti, kad ir pārbaudīti tajos ietvertie nosacījumi

Viedo līgumu izvietošana Ethereum blokķēdē

Pirmkārt, vienam vai vairākiem izstrādātājiem acīmredzami ir jāizveido viedais līgums, ierakstot atbilstošās koda rindiņas, un pēc tam viņiem ir nosūtiet to uz Ethereum tīklu. 

Tehniskā ziņā tā publicēšana Ethereum blokķēdē nozīmē likt visiem tīkla mezgliem to saņemt un izpildīt. Pēc publicēšanas visas tajā esošās instrukcijas vienmēr izpildīs visos mezglos tieši tādā pašā veidā. 

Tāpēc ne tikai tā publicēšana, bet arī instrukciju izpilde ir neatgriezeniska kad tas ir publicēts blokķēdē. 

Tāpēc patiesi svarīgi ir tajā ietvertās instrukcijas — kuras var būt visdažādākās — un cik daudz cilvēku tās izmanto. Patiešām, lai gudrā līguma norādījumi patiešām tiktu izpildīti, tiem jābūt viens vai vairāki darījumi, kas tos izsauc

Ir arī vērts atcerēties, ka šīs instrukcijas parasti ietver resursu, piemēram, datu vai marķieru, izmantošanu, lai tos faktiski izpildītu, ir jāievēro visi nepieciešamie nosacījumi. 

Dažreiz šie dati nāk no ārpuses, pateicoties tā sauktajiem orākuliem, savukārt dažreiz tie vienkārši nāk no darījumiem blokķēdē. 

Parasti darījums, kas aktivizē viedā līgumā ietverto instrukciju izpildi ietver samaksu a maksa ETH, un daudzos gadījumos, lai faktiski aktivizētu izpildi, ir jāveic arī pašam viedajam līgumam vai citiem viedajiem līgumiem raksturīgu marķieru apmaksa vai nosūtīšana. 

Tehniski viedie līgumi ir konta veids vietnē Ethereum blokķēde, ko “kontrolē” tīkls, nevis centrālā vienība. Viņi var uzglabāt ETH vai žetonus, kā arī var sūtīt darījumus tīklā autonomi.

Kā mijiedarboties ar kodu un vispārīgāk ar dApps

Lietotāji var mijiedarboties ar viedajiem līgumiem, nosūtot darījumus, kas aktivizē kādu no to kodā definētajām funkcijām. 

Tāpēc viedo līgumu darbība Ethereum parasti ir ļoti vienkārša: vienkārši nosūtiet noteikta veida darījumu viedajam līgumam, un tas aktivizēs visu instrukciju izpildi mezglos, kas ietverti viedā līguma funkcijā, ko izsauc pats darījums. 

Acīmredzot atkarībā no tā, kuras instrukcijas ir ietvertas izsauktajā funkcijā, var tikt ģenerētas ļoti dažādas sekas, kas atšķiras ne tikai no viedā līguma uz viedo līgumu, bet arī no funkcijas uz funkciju. 

Tāpēc viedo līgumu milzīgā sarežģītība izriet tieši no tā, ko dara atsevišķi viedie līgumi, nevis kopumā no tā, ka Ethereum tīkls tos atbalsta un izpilda. Turklāt ir absolūti neiespējami uzskaitīt, kā faktiski darbojas visa veida viedie līgumi tīklā. 


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