Ce sunt contractele inteligente?
Cuprins
Introducere
Cum funcționează acestea?
Caracteristici cheie
Avantaje și cazuri de utilizare
Limitări
Critică
Gânduri de încheiere
Ce sunt contractele inteligente?
AcasăArticole
Ce sunt contractele inteligente?

Ce sunt contractele inteligente?

Intermediar
Publicat Sep 16, 2019Actualizat Sep 23, 2022
8m

Introducere

Nick Szabo a descris pentru prima dată contractele inteligente în anii 1990. Pe atunci, el definea un contract inteligent drept un instrument care formalizează și securizează rețelele de computere prin combinarea protocoalelor cu interfețele de utilizator.

Szabo a discutat despre utilizarea potențială a contractelor inteligente în diferite domenii care implică acorduri contractuale - cum ar fi sistemele de credite, procesarea plăților și gestionarea drepturilor de conținut.

În lumea criptomonedelor, putem defini un contract inteligent ca o aplicație sau un program care rulează pe un blockchain. De obicei, acestea funcționează ca un acord digital care este aplicat printr-un set specific de reguli. Aceste reguli sunt predefinite de codul computerului, care este replicat și executat de toate nodurile rețelei.

Contractele inteligente blockchain permit crearea de protocoale fără încredere. Aceasta înseamnă că două părți își pot lua angajamente prin blockchain, fără a fi nevoie să se cunoască sau să aibă încredere una în cealaltă. Acestea pot fi sigure că, dacă nu sunt îndeplinite condițiile, contractul nu va fi executat. Mai mult decât atât, utilizarea contractelor inteligente poate elimina nevoia de intermediari, reducând semnificativ costurile operaționale.

Deși protocolul Bitcoin acceptă contracte inteligente de mulți ani, acestea au fost făcute mai populare de către creatorul și co-fondatorul Ethereum, Vitalik Buterin. Se va remarca, totuși, că fiecare blockchain poate prezenta o metodă diferită de implementare a contractelor inteligente. 

Acest articol se va concentra asupra contractelor inteligente care rulează pe Mașina virtuală Ethereum (EVM), care este o parte esențială a blockchain-ului Ethereum.


Cum funcționează acestea?

În termeni simpli, un contract inteligent funcționează ca un program determinist. Acesta execută o anumită sarcină atunci când și numai dacă sunt îndeplinite anumite condiții. Ca atare, un sistem de contract inteligent urmează adesea funcțiile informatice „dacă… atunci…”. Însă, în ciuda terminologiei populare, contractele inteligente nu sunt contracte legale, nici inteligente. Sunt doar o bucată de cod care rulează pe un sistem distribuit (blockchain).

În rețeaua Ethereum, contractele inteligente sunt responsabile pentru executarea și gestionarea operațiunilor blockchain care au loc atunci când utilizatorii (adresele) interacționează unii cu ceilalți. Orice adresă care nu este un contract inteligent se numește cont deținut extern (EOA). Astfel, contractele inteligente sunt controlate de codul computerului, iar EOA-urile sunt controlate de utilizatori.

Practic, contractele inteligente Ethereum sunt formate dintr-un cod de contract și două chei publice. Prima cheie publică este cea furnizată de creatorul contractului. Cealaltă cheie reprezintă contractul în sine, acționând ca un identificator digital care este unic pentru fiecare contract inteligent.

Implementarea oricărui contract inteligent se face printr-o tranzacție blockchain, iar contractele pot fi activate numai atunci când sunt inițiate de un EOA (sau de alte contracte inteligente). Cu toate acestea, primul declanșator este întotdeauna cauzat de un EOA (utilizator).


Caracteristici cheie

Un contract inteligent Ethereum prezintă adesea următoarele caracteristici:

Distribuit. Contractele inteligente sunt replicate și distribuite în toate nodurile rețelei Ethereum. Aceasta este una dintre diferențele majore față de alte soluții care se bazează pe servere centralizate.

Determinist. Contractele inteligente efectuează doar acțiunile pentru care au fost concepute, cu condiția ca cerințele să fie îndeplinite. De asemenea, rezultatul va fi întotdeauna același, indiferent de cine le execută.

Autonom. Contractele inteligente pot automatiza tot felul de sarcini, funcționând ca un program care se execută automat. În majoritatea cazurilor, totuși, dacă un contract inteligent nu este declanșat, acesta va rămâne „latent” și nu va efectua nicio acțiune.

Imuabil. Contractele inteligente nu pot fi modificate după implementare. Acestea pot fi „șterse” doar dacă o anumită funcție a fost implementată anterior. Astfel, putem spune că aceste contracte inteligente pot oferi un cod care nu poate fi alterat.

Personalizat. Înainte de implementare, contractele inteligente pot fi codificate în multe moduri diferite. Astfel, acestea pot fi folosite pentru a crea multe tipuri de aplicații descentralizate (DApps). Acest lucru are legătură cu faptul că Ethereum este un blockchain Turing complet.

Fără încredere. Două sau mai multe părți pot interacționa prin intermediul contractelor inteligente fără să se cunoască sau să aibă încredere unul în celălalt. În plus, tehnologia blockchain asigură exactitatea datelor.

Transparent. Deoarece contractele inteligente se bazează pe un blockchain public, codul lor sursă nu este doar imuabil, ci și vizibil pentru oricine.


Pot modifica sau șterge un contract inteligent?

Este imposibil să adăugați noi funcții la un contract inteligent Ethereum după implementare. Cu toate acestea, dacă creatorul său include o funcție numită SELFDESTRUCT în cod, acesta poate „șterge” contractul inteligent în viitor - și îl poate înlocui cu unul nou. În schimb, însă, dacă funcția nu este inclusă în cod în prealabil, nu o va putea șterge.

În special, așa-numitele contracte inteligente upgradabile le permit dezvoltatorilor să aibă mai multă flexibilitate în ceea ce privește imuabilitatea contractelor. Există multe modalități de a crea contracte inteligente upgradabile, cu diferite grade de complexitate.

Luând un exemplu simplificat, să ne imaginăm că un contract inteligent este împărțit în mai multe contracte mai mici. Unele dintre acestea sunt concepute pentru a fi imuabile, în timp ce altele au funcția „Ștergere” activată. Aceasta înseamnă că o parte a codului (contractele inteligente) poate fi ștearsă și înlocuită, în timp ce alte funcționalități rămân intacte.


Avantaje și cazuri de utilizare

În calitate de cod programabil, contractele inteligente sunt extrem de personalizabile și pot fi proiectate în multe moduri diferite, oferind multe tipuri de servicii și soluții.

Ca programe descentralizate și care se execută automat, contractele inteligente pot oferi o transparență sporită și costuri operaționale reduse. În funcție de implementare, pot crește eficiența și pot reduce cheltuielile birocratice.

Contractele inteligente sunt deosebit de utile în situațiile care implică transferul sau schimbul de fonduri între două sau mai multe părți.

Cu alte cuvinte, contractele inteligente pot fi proiectate pentru o mare varietate de cazuri de utilizare. Unele exemple includ crearea de active tokenizate, sisteme de vot, portofele cripto, schimburi descentralizate, jocuri și aplicații mobile. Acestea pot fi, de asemenea, implementate împreună cu alte soluții blockchain care abordează domeniile precum asistența medicală, caritatea, lanțul de aprovizionare, guvernanța și finanțele descentralizate (DeFi).


ERC-20

Tokenurile emise pe blockchain-ul Ethereum urmează un standard cunoscut sub numele de ERC-20. Standardul descrie funcțiile de bază ale tuturor tokenurilor bazate pe Ethereum. Prin urmare, aceste active digitale sunt adesea numite tokenuri ERC-20 și reprezintă o mare parte din criptomonedele existente.

Multe companii blockchain și startupuri au implementat contracte inteligente pentru a emite propriile tokenuri digitale în rețeaua Ethereum. După emitere, majoritatea acestor companii și-au distribuit tokenurile ERC-20 prin intermediul evenimentelor Initial Coin Offering (ICO). În cele mai multe cazuri, utilizarea contractelor inteligente a permis schimbul de fonduri și distribuirea de tokenuri într-un mod eficient și fără încredere.


Limitări

Contractele inteligente sunt alcătuite dintr-un cod de computer scris de oameni. Acest lucru aduce numeroase riscuri, deoarece codul este supus unor vulnerabilități și erori. În mod ideal, acestea trebuie scrise și implementate de programatori cu experiență, mai ales atunci când implică informații sensibile sau sume mari de bani.

Mai mult decât atât, unii susțin că sistemele centralizate pot oferi majoritatea soluțiilor și funcționalităților oferite de contractele inteligente. Principala diferență este că aceste contracte inteligente rulează pe o rețea P2P distribuită, mai degrabă decât pe un server centralizat. Și pentru că se bazează pe un sistem blockchain, acestea tind să fie imuabile sau foarte greu de modificat.

Imuabilitatea poate fi avantajoasă în unele situații, dar foarte problematică în altele. De exemplu, atunci când o organizație descentralizată autonomă (DAO) numită „The DAO” a fost piratată în 2016, milioane de ether (ETH) au fost furate din cauza unor defecte în codul contractului lor inteligent.

Întrucât contractul lor inteligent era imuabil, dezvoltatorii nu au putut să repare codul. Acest lucru a dus în cele din urmă la un hard fork, dând naștere unui al doilea lanț Ethereum. Cu alte cuvinte, un lanț a „întors” hack-ul și a returnat fondurile proprietarilor de drept (face parte din actualul blockchain Ethereum). Celălalt lanț a decis să nu interfereze cu hack-ul, afirmând că lucrurile care se întâmplă pe un blockchain nu trebuie niciodată schimbate (acest lanț se numește acum Ethereum Classic).

Este important de reținut că problema nu a fost cauzată de blockchain-ul Ethereum. În schimb, a fost cauzată de o implementare defectuoasă a contractului inteligent.

O altă limitare a contractelor inteligente este legată de statutul lor juridic incert. Nu numai pentru că se află într-o zonă gri în majoritatea țărilor, ci și pentru că aceste contracte inteligente nu se potrivesc cadrului legal actual.

De exemplu, multe contracte necesită ca ambele părți să fie identificate în mod corespunzător și să aibă peste 18 ani. Pseudonimul oferit de tehnologia blockchain, combinat cu lipsa intermediarilor, poate amenința aceste cerințe. Deși există soluții potențiale pentru această situație, aplicabilitatea legală a contractelor inteligente este o adevărată provocare, mai ales când vine vorba de rețele distribuite, fără granițe.


Critică

Unii pasionați de blockchain văd contractele inteligente drept o soluție care va înlocui și automatiza în curând o mare parte a sistemelor noastre comerciale și birocratice. Deși aceasta este o posibilă realitate, probabil că este departe de a deveni normă.

Contractele inteligente sunt cu siguranță o tehnologie interesantă. Dar, fiind distribuite, deterministe, transparente și oarecum imuabile, pot fi mai puțin atrăgătoare în unele situații.

În esență, critica se bazează pe faptul că aceste contracte inteligente nu reprezintă o soluție potrivită pentru multe probleme din lumea reală. De fapt, unele organizații preferă să utilizeze alternative convenționale bazate pe server. 

În comparație cu contractele inteligente, serverele centralizate sunt mai ușor și mai ieftin de întreținut și tind să prezinte o eficiență mai mare în ceea ce privește viteza și comunicarea între rețele (interoperabilitate).


Gânduri de încheiere

Nu există nicio îndoială că aceste contracte inteligente au avut un impact mare în lumea criptomonedelor și cu siguranță au revoluționat spațiul blockchain. Deși este posibil ca utilizatorii finali să nu interacționeze direct cu contractele inteligente, acestea pot alimenta o gamă largă de aplicații în viitor, de la servicii financiare până la managementul lanțului de aprovizionare.

Împreună, contractele inteligente și blockchain-ul au potențialul de a perturba aproape toate domeniile societății noastre. Însă numai timpul va spune dacă aceste tehnologii inovatoare vor reuși să depășească numeroasele bariere care stau în calea adoptării lor pe scară largă.