Els Smart Contracts
Els smart contracts són programes informàtics que s’executen automàticament en una blockchain quan es compleixen certes condicions preestablertes. Això permet la creació d’aplicacions descentralitzades (dApps) i centralitzades que poden realitzar transaccions i acords de manera automatitzada.
Els smart contracts han estat un dels desenvolupaments més importants a la indústria blockchain en els últims anys.
Tot i que originalment van ser creats per a Ethereum, els smart contracts s’han convertit ràpidament en una eina valuosa per a moltes blockchains.
Per exemple, es poden utilitzar per a desencadenar un pagament electrònic de forma automàtica, una vegada s’hagi complert cert esdeveniment determinable, que s’ha programat prèviament. D’aquesta forma, se’n facilita l’execució.
Com funciona un smart contract?
Els smart contracts poden operar de forma autònoma gràcies a que la xarxa en què es desplega ho permet i, a més, la seguretat de la transacció queda garantida per la tecnologia blockchain. Només és necessari que s’indiqui al programa informàtic quin és el resultat esperat i quin serà l’esdeveniment que desencadenarà aquest resultat. Seria una cosa així: En cas de X, llavors Y.
S’han de conèixer i acceptar les regles establertes i els passos que s’executaran abans de desplegar el programa ja que, un cop això passi, serà impossible canviar les regles que s’hagin programat. Això és així perquè cada línia de codi queda registrada a la blockchain i, per tant, és immutable.
Un exemple il·lustratiu del que seria una transacció irrevocable, són les màquines expenedores. Aquestes només dispensen els productes quan s’introdueix la quantitat de diners correcta i es prem el botó corresponent. Tant els articles venuts com els diners que es reben es guarden a l’interior de la màquina, que els protegeix d’“atacs externs”.
Avantatges dels smart contracts
Un dels principals avantatges és que els smart contracts ofereixen seguretat a les parts en quant al compliment automàtic del que estava programat.
Aquesta mateixa naturalesa automàtica també elimina qualsevol possible error humà (més enllà dels possibles errors d’escriptura del codi), a la vegada que afavoreix la creació de smart contracts que són, en la pràctica, quasi immutables. En ser automàtics, es redueixen els costos i els problemes, facilitant-ne també el procés d’execució.
Els smart contracts permeten a més la creació de nous tokens dins d’una xarxa, com és el cas dels ja anomenats tokens que segueixen l’estàndard ERC-20, o els NFT, que segueixen l’estàndard ERC-721. Aquests tokens, són creats a partir d’un smart contract d’emissió, que segueixen aquests estàndards i són desplegats sobre la xarxa d’Ethereum o altres que ho permeten, de forma que és possible portar una subcomptabilitat de les transaccions realitzades amb aquests tokens en el llibre principal d’Ethereum, tenint la seva pròpia unitat de compte. Tot això, sense que es barregin els saldos d’ether o altres tokens amb els del token en qüestió, i garantint la transparència, traçabilitat i seguretat que brinda la xarxa d’Ethereum.
Problemes dels smart contractsNo obstant això, els smart contracts també són vulnerables a certs riscos o problemes legals.
- Un d’aquests problemes seria la pèrdua de control sobre els resultats, conseqüència directa de la naturalesa automatitzable i programable dels smart contracts. De seguida que es produeixin els esdeveniments que desencadenen el smart contract, el codi efectuarà els canvis immediatament. El problema és que, per la seva naturalesa, no és possible ajustar els resultats del smart contract al context o a les circumstàncies que envolten la seva execució, per la qual cosa no és possible avançar-se als imprevistos.
- També pot donar lloc a riscos operatius. Per exemple, si el codi és incorrecte es pot ocasionar un problema molt difícil de resoldre, ja que totes les operacions estan vinculades i integrades a la blockchain i s’executen automàticament. D’aquesta forma un codi erroni pot no reflectir amb exactitud la seva intenció i causar un risc operatiu.
- A més, gran part dels resultats d’un smart contract depenen d’informació exterior (cotitzacions de criptoactius, preus d’actius, etc.), això significa que l’execució pot ser vulnerable a informació errònia, el que posa en dubte la capacitat d’autonomia i d’autosuficiència. A més, actualitzar smart contracts pot ser complicat, per la seva propietat d’immutabilitat. Les fonts d’informació que s’utilitzen per a integrar dades de l’exterior a una blockchain (per exemple, la cotització d’una determinada acció) es denominen oracles.
Smart Contracts i l’Ethereum Virtual Machine
La relació entre els smart contracts i la Màquina Virtual d’Ethereum o Ethereum Virtual Machine (EVM) és estreta i fonamental. L’EVM és un software que s’executa en cada node de la xarxa Ethereum, aixecant un sistema operatiu bàsic que permet executar els smart contracts.
En altres paraules, els smart contracts es programen en el llenguatge de programació compatible amb aquestes màquines virtuals, com és l’anomenat Solidity, i després es carreguen a l’EVM, que és on s’executen.
L’EVM és una màquina virtual Turing-completa, la qual cosa significa que pot executar qualsevol tipus de programa informàtic, sempre i quan compleixi amb les regles de consens de la xarxa Ethereum. L’EVM també és responsable de mantenir el registre dels estats dels smart contracts i d’actualitzar-los després de cada transacció.
Els smart contracts i l’EVM són la clau de la programabilitat a Ethereum i han permès la creació d’una gran quantitat d‘aplicacions descentralitzades (dApps) a la seva blockchain.