¿Qué son los contratos inteligentes?
Índice
Introducción
¿Cómo funcionan?
Características clave
Ventajas y casos de uso
Limitaciones
Crítica
Conclusiones
¿Qué son los contratos inteligentes?
InicioArtículos
¿Qué son los contratos inteligentes?

¿Qué son los contratos inteligentes?

Intermedio
Publicación: Sep 16, 2019Actualización: Jun 29, 2022
7m

Introducción

Nick Szabo describió por primera vez los contratos inteligentes en la década de 1990. En ese momento, definió al contrato inteligente como una herramienta que formaliza y protege redes informáticas al combinar protocolos con interfaces de usuario.

Szabo estudió el uso potencial de los contratos inteligentes en varios campos que involucran acuerdos contractuales, como por ejemplo los sistemas de crédito, el procesamiento de pagos y la gestión de derechos de contenido.

En el mundo de las criptomonedas, podemos definir un contrato inteligente como una aplicación o programa que se ejecuta en una blockchain. Generalmente, funcionan como un acuerdo digital que es ejecutado por un conjunto específico de reglas. Estas reglas son predefinidas por código informático, que es replicado y ejecutado por todos los nodos de la red.

Los contratos inteligentes de blockchain permiten la creación de protocolos trustless. Esto significa que dos partes pueden comprometerse a través de una blockchain, sin necesidad de conocerse o confiar entre sí. Si las condiciones no se cumplen, el contrato no será ejecutado. Aparte de eso, la utilización de contratos inteligentes puede eliminar la necesidad de intermediarios, reduciendo significativamente los costos operativos.

Aunque el protocolo Bitcoin admite contratos inteligentes desde hace muchos años, estos fueron popularizados por el creador y cofundador de Ethereum, Vitalik Buterin. Cabe señalar, sin embargo, que cada blockchain puede presentar un método distinto para la implementación de contratos inteligentes. 

En este artículo nos centraremos en los contratos inteligentes que se ejecutan en la Ethereum Virtual Machine (EVM), componente esencial de la blockchain Ethereum.


¿Cómo funcionan?

De forma resumida, un contrato inteligente funciona como un programa determinístico. Ejecuta una tarea particular cuando ciertas condiciones se cumplen, si es que se cumplen. Como tal, los sistemas de contrato inteligente a menudo contienen condicionales como "si…", "cuando…". Pero a pesar de la terminología popular, los contratos inteligentes no son contratos legales ni inteligentes. Simplemente son secciones de código que se ejecutan en un sistema distribuido (blockchain).

En la red Ethereum, los contratos inteligentes son los responsables de ejecutar y administrar las operaciones de la blockchain que se producen cuando los usuarios (direcciones) interactúan entre sí. Cualquier dirección que no sea un contrato inteligente se denomina "Externally Owned Account" o "EOA" (cuenta controlada externamente). Esto significa que, mientras los contratos inteligentes son controlados por código informático, las EOA son controladas por usuarios.

Básicamente, los contratos inteligentes de Ethereum están compuestos por un código de contrato y dos claves públicas. La primera clave pública es aquella proporcionada por el creador del contrato. La otra clave representa al contrato en sí mismo, lo que significa que actúa como identificador digital único de cada contrato inteligente.

La implementación de cualquier contrato inteligente se realiza mediante una transacción en la blockchain, y solo podrá ser activado cuando sea llamado por una EOA (o por otros contratos inteligentes). Sin embargo, el activador inicial siempre es de una EOA (usuario).


Características clave

Los contratos inteligentes de Ethereum a menudo presentan las siguientes características:

Distribuidos. Los contratos inteligentes son replicados y distribuidos en todos los nodos de la red Ethereum. Esta es una de las principales diferencias respecto a otras soluciones basadas en servidores centralizados.

Determinísticos. Los contratos inteligentes solamente realizan las acciones para las que fueron diseñados, siempre y cuando las condiciones se cumplan. Además, el resultado será siempre el mismo, sin importar quién los ejecute.

Autónomos. Los contratos inteligentes pueden automatizar todo tipo de tareas, funcionando como programas autoejecutables. En la mayoría de casos, sin embargo, si un contrato no es activado, permanecerá "latente" y no ejecutará ninguna acción.

Inmutables. Los contratos inteligentes no pueden ser modificados una vez implementados. Solamente pueden ser eliminados si una función particular ha sido previamente implementada. Por lo tanto, podríamos afirmar que los contratos inteligentes pueden proporcionar código a prueba de manipulaciones (tamper-proof code).

Personalizables. Antes de su implementación, los contratos inteligentes pueden programarse de muchas formas distintas. Y por lo tanto, pueden ser utilizados para crear muchos tipos de aplicaciones descentralizadas (DApps). Esto está relacionado con el hecho de que Ethereum es una blockchain Turing completa.

Trustless. Dos o más partes pueden interactuar vía contratos inteligentes sin conocerse ni confiar entre sí. Además, la tecnología blockchain garantiza que los datos son precisos.

Transparentes. Dado que los contratos inteligentes están basados en una blockchain pública, su código fuente no solo es inmutable sino también visible para todo el mundo.


¿Puedo modificar o eliminar un contrato inteligente?

Es imposible agregar nuevas funciones a un contrato inteligente de Ethereum después de que haya sido implementado. Sin embargo, si su creador incluye en el código una función llamada SELFDESTRUCT, tendrá la capacidad de "eliminar" el contrato inteligente en el futuro y reemplazarlo por uno nuevo. Por otra parte, si la función no se incluye en el código de antemano, no podrá eliminarse el contrato.

En particular, los llamados contratos inteligentes actualizables permiten a los desarrolladores tener más flexibilidad sobre la inmutabilidad de los contratos. Hay muchas formas de crear contratos inteligentes actualizables, con diversos grados de complejidad.

Tomando un ejemplo simplificado, imaginemos que un contrato inteligente se divide en múltiples contratos más pequeños. Algunos de ellos están diseñados para ser inmutables, mientras que otros tienen habilitada la función de eliminarse. Esto significa que parte del código se puede eliminar y reemplazar, mientras que otras funcionalidades permanecen intactas.


Ventajas y casos de uso

Como código programable, los contratos inteligentes son altamente personalizables y pueden diseñarse de muchas maneras diferentes, ofreciendo muchos tipos de servicios y soluciones.

Como programas descentralizados y autoejecutables, los contratos inteligentes pueden proporcionar una mayor transparencia y menores costos operativos. Dependiendo de la implementación, también pueden aumentar la eficiencia y reducir los gastos burocráticos.

Los contratos inteligentes son particularmente útiles en situaciones que implican la transferencia o el intercambio de fondos entre dos o más partes.

En otras palabras, los contratos inteligentes pueden ser diseñados para una amplia variedad de casos de uso. Entre algunos ejemplos incluyen la creación de activos tokenizados, sistemas de votación, billeteras de criptomonedas, exchanges descentralizados, juegos y aplicaciones móviles. También pueden ser implementados junto con otras soluciones de blockchain que abordan sectores como salud, beneficencia, cadena de suministro, gobernanza y Finanzas Descentralizadas (DeFi).


ERC-20

Los tokens emitidos en la blockchain de Ethereum siguen un estándar conocido como ERC-20. El estándar describe las funciones principales de todos los tokens basados en Ethereum. Por ello, estos activos digitales a menudo son llamados tokens ERC-20, y representan una gran parte de las criptomonedas existentes.
Muchas empresas y startups de blockchain han implementado contratos inteligentes para emitir sus tokens digitales en la red de Ethereum. Tras la emisión, la mayoría de estas empresas distribuyeron sus tokens ERC-20 a través de eventos de Oferta Inicial de Monedas (ICO). En la mayoría de casos, el uso de contratos inteligentes permitió el intercambio de fondos y la distribución de tokens, de forma trustless y eficiente.


Limitaciones

Los contratos inteligentes están hechos de código informático escrito por humanos. Esto conlleva numerosos riesgos, ya que el código está sujeto a vulnerabilidades y errores. Idealmente, deberían ser escritos e implementados por programadores expertos, especialmente cuando se trata de información confidencial o grandes cantidades de dinero.

Por lo demás, hay quien argumenta que los sistemas centralizados pueden ofrecer la mayoría de soluciones y funcionalidades ofrecidas por los contratos inteligentes. La principal diferencia es que los contratos inteligentes se ejecutan en redes P2P distribuidas, en lugar de en servidores centralizados. Y como se basan en un sistema de blockchain, tienden a ser inmutables o muy difíciles de modificar.

La inmutabilidad puede ser ventajosa en algunas situaciones, pero muy perjudicial en otras. Por ejemplo, cuando una Organización Autónoma Descentralizada (DAO) llamada "The DAO" fue pirateada en 2016, millones de ether (ETH) fueron robados debido a fallos en el código de su contrato inteligente.

Dado que su contrato inteligente era inmutable, los desarrolladores no pudieron arreglar el código. Esto finalmente resultó en un hard fork, dando lugar a una segunda cadena de Ethereum. En pocas palabras, una de las cadenas "revirtió" el hack y devolvió los fondos a los legítimos propietarios (esta es parte de la actual blockchain de Ethereum). La otra cadena decidió no interferir con el hack, afirmando que las cosas que ocurren en una blockchain nunca deben modificarse (esta cadena se conoce ahora como Ethereum Classic).

Es importante tener en cuenta que el problema no provino de la blockchain Ethereum. En cambio, fue causado por una implementación defectuosa del contrato inteligente.

Otra limitación de los contratos inteligentes está relacionada con su incierto estado legal. No solo porque está en una zona gris en la mayoría de los países, sino también porque los contratos inteligentes no se ajustan al marco legal actual.

Por ejemplo, muchos contratos requieren que ambas partes estén debidamente identificadas y sean mayores de 18 años. El seudónimo que proporciona la tecnología blockchain, combinado con la falta de intermediarios, podría amenazar esos requisitos. Si bien existen soluciones potenciales para esto, la ejecución legal de los contratos inteligentes es un verdadero desafío, especialmente cuando se trata de redes distribuidas sin fronteras.


Crítica

Algunos entusiastas de blockchain ven los contratos inteligentes como una solución que pronto reemplazará y automatizará una gran parte de nuestros sistemas comerciales y burocráticos. Si bien esta es una realidad posible, probablemente esté lejos de convertirse en la norma.

Los contratos inteligentes son ciertamente una pieza de tecnología interesante. Pero, ser distribuido, determinístico, transparente y de alguna manera inmutable puede hacerlos menos atractivos en algunas situaciones.

Básicamente, la crítica se basa en el hecho de que los contratos inteligentes no son una solución adecuada para muchos problemas del mundo real. De hecho, algunas organizaciones están mejor con alternativas convencionales basadas en servidor. 

En comparación con los contratos inteligentes, los servidores centralizados son más fáciles y baratos de mantener, y tienden a presentar una mayor eficiencia en términos de velocidad y comunicación entre redes (interoperabilidad).


Conclusiones

No hay duda de que los contratos inteligentes causaron un gran impacto en el mundo de las criptomonedas, y ciertamente revolucionaron el espacio blockchain. Si bien los usuarios finales pueden no interactuar directamente con los contratos inteligentes, es probable que estos contratos impulsen una amplia gama de aplicaciones en el futuro, que van desde servicios financieros hasta la gestión de cadenas de suministro.

Los contratos inteligentes y la blockchain, en conjunto, tienen el potencial de revolucionar casi todas las áreas de nuestra sociedad. Pero solo el tiempo dirá si estás tecnologías innovadoras lograrán superar las múltiples barreras para una adopción a gran escala.