Els Smart Contracts
Els smart contracts són programes informàtics que s’executen automàticament en una blockchain quan es compleixen unes determinades condicions preestablides. Això permet la creació d’aplicacions descentralitzades (dApps) i centralitzades que poden realitzar transaccions i acords de manera automatitzada.
Els smart contracts han sigut un dels desenvolupaments més importants en la indústria blockchain en els últims anys.
Encara 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 manera automàtica, una vegada s’haja complit un cert esdeveniment determinable, que s’ha programat prèviament. D’aquesta manera, es facilita l’execució.
Com funciona un smart contract?
Els smart contracts poden operar de manera autònoma gràcies a que la xarxa en la qual 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’indique al programa informàtic quin és el resultat esperat i quin serà l’esdeveniment que desencadenarà eixe resultat. Seria una cosa així: en cas de X, llavors Y.
S’han de conéixer i acceptar les regles establides i els passos que s’executaran abans de desplegar el programa ja que, una vegada això ocórrega, serà impossible canviar les regles que s’hagen programat. Això és així perquè cada línia de codi queda registrada en 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 polsa 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 pel que fa 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), al mateix temps 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 també el procés d’execució d’aquest.
Els smart contracts permeten a més la creació de nous tokens dins d’una xarxa, com és el cas dels ja esmentats 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 manera que és possible portar una subcomptabilitat de les transaccions realitzades amb aquests tokens en el llibre principal d’Ethereum, tenint la seua pròpia unitat de compte. Tot això, sense que es mesclen 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 uns 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. Quan es produïsquen els esdeveniments que desencadenen el smart contract, el codi efectuarà els canvis immediatament. El problema és que, per la seua naturalesa, no és possible ajustar els resultats del smart contract al context o a les circumstàncies que envolten la seua execució, per la qual cosa no és possible avançar-se als imprevistos.
- També poden 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 en la blockchain i s’executen automàticament. D’aquesta manera un codi erroni pot no reflectir amb exactitud la seua intenció i resultar en 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, la qual cosa posa en dubte la capacitat d’autonomia i d’autosuficiència. A més, actualitzar smart contracts pot ser complicat, per la seua 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 programari que s’executa en cada node de la xarxa Ethereum, alçant 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 en l’EVM, que és on s’executen.
L’EVM és una màquina virtual Turing-completa, cosa que significa que pot executar qualsevol tipus de programa informàtic, sempre que complisca 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 en Ethereum i han permés la creació d’una gran quantitat d’aplicacions descentralitzades (dApps) en la seua blockchain.