¿Alguna vez has oído la expresión "el código es ley" donde la tecnología se utiliza para hacer cumplir reglas? En ese caso, ¿realmente necesitamos abogados? O tal vez podamos vivir en un mundo completamente automatizado donde el código dicta lo que podemos y no podemos hacer. Con el desarrollo actual de los contratos inteligentes, este escenario futurista puede estar más cerca de lo que pensamos.
Un contrato inteligente es un fragmento de código que puede ejecutarse automáticamente y de manera determinista. El código del contrato inteligente generalmente se almacena y ejecuta en la blockchain para hacerlo confiable y seguro. Los contratos inteligentes también tienen la capacidad de recibir, almacenar y enviar fondos e incluso llamar a otros contratos inteligentes. Siguen una semántica de si-entonces, lo que los hace bastante fáciles de programar.
Los contratos inteligentes tienen como objetivo eliminar el factor humano de la toma de decisiones. Se ha demostrado que el factor humano es a menudo el elemento más propenso a errores e ineficaz de los contratos estándar y tradicionales.
Ethereum es un buen ejemplo de una blockchain que soporta contratos inteligentes y permite a un programador implementar sus propios contratos inteligentes. Un contrato inteligente puede escribirse en un lenguaje de programación llamado Solidity, que fue creado específicamente para ese propósito. En Ethereum, todos los contratos inteligentes desplegados son inmutables. Esto significa que una vez desplegados no pueden ser modificados, lo que crea ciertos riesgos que discutiremos más adelante. Los contratos inteligentes en Ethereum también son descentralizados, lo que significa que no hay una sola máquina controlando el contrato. De hecho, todos los nodos de la red de Ethereum almacenan el mismo contrato con exactamente el mismo estado.