Ethereum: ¿cómo funcionan los contratos inteligentes?

Los contratos inteligentes son la característica principal que ha hecho que Ethereum tenga tanto éxito. 

Qué son los contratos inteligentes y para qué sirven

El protocolo Bitcoin no prevé la posibilidad de crear contratos inteligentes verdaderamente complejos, porque básicamente fue diseñado solo para permitir transacciones. 

En cambio, Ethereum, que nació 6 años después de Bitcoin, fue diseñado desde el principio para ser básicamente una red capaz de alojamiento y ejecución de contratos inteligentes

En 2014, cofundador de Ethereum Vitalik Buterin escribió explícitamente en el whitepaper que la red que estaba diseñando era un plataforma de próxima generación basada en contratos inteligentes, y que las aplicaciones alternativas a Bitcoin basadas en la tecnología blockchain también incluían el uso de activos digitales para representar monedas e instrumentos financieros personalizados, activos no fungibles y aplicaciones más complejas. 

En particular, estos últimos, es decir, los contratos inteligentes, se definieron como aplicaciones que implican el control directo de activos digitales mediante un código que implementa reglas arbitrarias, u organizaciones autónomas descentralizadas basadas en blockchain, las denominadas DAOs.  

Vitalik escribió: 

“Lo que Ethereum pretende proporcionar es una cadena de bloques con un lenguaje de programación completo de Turing incorporado que se puede usar para crear 'contratos' que se pueden usar para codificar funciones arbitrarias de transición de estado, lo que permite a los usuarios crear cualquiera de los sistemas descritos anteriormente. – así como muchos otros que aún no hemos imaginado – simplemente escribiendo la lógica en unas pocas líneas de código”.

Así, los contratos inteligentes en Ethereum son líneas de código mediante las cuales es posible programar la ejecución automática de instrucciones por la red, cuando se cumplen ciertas condiciones, sin tener que confiar su ejecución a un intermediario.

De hecho, el mismo Buterin puso el término “contratos” entre comillas, porque más que contratos reales entre partes, son programas informáticos ejecutados por un sistema descentralizado red. 

Desde un punto de vista general, por tanto, su funcionamiento no es muy complicado. 

contrato inteligente
Los contratos inteligentes se ejecutan una vez verificadas las condiciones contenidas en los mismos

Implementación de contratos inteligentes en la cadena de bloques de Ethereum

En primer lugar, uno o más desarrolladores obviamente deben crear el contrato inteligente escribiendo las líneas de código apropiadas, y luego deben enviarlo a la red Ethereum. 

En términos técnicos, publicarlo en la cadena de bloques de Ethereum significa hacer que todos los nodos de la red lo reciban y lo ejecuten. Una vez publicado, todas las instrucciones que contiene siempre serán ejecutadas por todos los nodos exactamente de la misma manera. 

Por lo tanto, no sólo su publicación sino también la ejecución de instrucciones es irreversible una vez que se publica en la cadena de bloques. 

Por lo tanto, lo realmente importante son las instrucciones que contiene -que pueden ser las más diversas- y cuántas personas lo utilizan. De hecho, para que las instrucciones de un contrato inteligente se ejecuten realmente, debe haber una o más transacciones que las invocan

También vale la pena recordar que estas instrucciones generalmente implican el uso de recursos, como datos o tokens, por lo que para que realmente se ejecuten, deben cumplirse todas las condiciones establecidas como necesarias. 

A veces, estos datos provienen del exterior, gracias a los llamados oráculos, mientras que a veces simplemente provienen de transacciones en la cadena de bloques. 

Por lo general, la transacción que desencadena la ejecución de las instrucciones contenidas en un contrato inteligente implica el pago de un tarifa en ETH, y en muchos casos para desencadenar realmente la ejecución también implica el pago o el envío de tokens específicos del contrato inteligente en sí u otros contratos inteligentes. 

Técnicamente, los contratos inteligentes son un tipo de cuenta en el Etereum blockchain, "controlado" por la red en lugar de una entidad central. Pueden almacenar ETH o tokens, y también pueden enviar transacciones en la red de forma autónoma.

Cómo interactuar con el código y, en general, con dApps

Los usuarios pueden interactuar con contratos inteligentes enviando transacciones que activar una de las funciones definidas en su código. 

Por lo tanto, el funcionamiento de los contratos inteligentes en Ethereum es generalmente muy simple: simplemente envíe una transacción de cierto tipo a un contrato inteligente, y esto activará la ejecución por parte de los nodos de todas las instrucciones contenidas en la función del contrato inteligente invocado por la transacción en sí. 

Obviamente, dependiendo de qué instrucciones contenga la función invocada, se pueden generar consecuencias muy diferentes, que varían no solo de un contrato inteligente a otro, sino también de una función a otra. 

Por lo tanto, la enorme complejidad de los contratos inteligentes se deriva precisamente de lo que hacen los contratos inteligentes individuales, y no en general del hecho de que la red Ethereum los soporte y los ejecute. Además, es absolutamente imposible enumerar cómo funcionan realmente todos los tipos de contratos inteligentes en la red. 


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