Seguramente habrás oído hablar de los Smart Contracts.
Curioso, porque es otro de esos términos que terminan por ser conocidos con su nombre en inglés, en vez de usar el español, que sería “Contratos inteligentes” o podría ser también “Contratos Elegantes”, aunque creo que es mejor quedarnos con la primera opción.
Bien, ¿de qué van los Smart Contracts?
¿Qué los hace inteligentes?
Todos sabemos lo que es un contrato, pero lo de inteligente tiene que tener alguna explicación.
Te voy a intentar explicar por qué son inteligentes.
¿Qué son los Smart Contracts?
Los contratos inteligentes son aquellos contratos que permiten hacer intercambios de todo tipo sin la necesidad de un intermediario, o sea de un agente, broker o dealer.
Esto de por sí supone una ventaja impresionante ¿no?
Otra manera de ver qué es un Smart Contract es así:
Sería un programa que usa la infraestructura blockchain y como programa tiene un código y unos datos, así como una dirección específica.
Por lo tanto podemos ver que estamos ante un trabajo de programación. Para el que no sepa sobre el tema puede sonar a “chino”, la verdad, pero lo importante aquí es coger la idea general.
¿Cómo funcionan los Smart Contracts?
En buena parte de la web este término está asociado a la criptomoneda Ethereum, que es la que supuestamente facilita el funcionamiento de estos contratos.
Desde este punto de vista, los Contratos Inteligentes vendrían a funcionar gracias a los Ether, que serían como una especie de imput de energía para que dichos contratos puedan ejecutarse.
Sin embargo, esto no quiere decir que el uso de estos contratos sea solo posible en Ethereum, pues otras aplicaciones blockchain también pueden ser usadas para esto.
Para ver cómo funciona uno de estos contratos lo mejor es ver un ejemplo.
Ejemplo de Smart ContractsPedro quiere comprar un coche que tiene Juan. En el caso 1, o vida real, Pedro y Juan podrían intercambiar el coche de manera privada, sin la ayuda de dealers o concesionarios. Esto se aproximaría a lo que sería un Smart Contract. En este caso Pedro paga a Juan y este último le da las llaves. Pero aquí no se ve bien lo que es el Contrato Inteligente, pues el contrato del que hablamos se procesa de manera virtual, en el blockchain. En el caso 2, tendríamos que Juan le deja el coche a un concesionario y Pedro lo compra en dicho agente, con lo que Juan tiene que dejar que el anterior gane una comisión por la transacción, y con ello genere el contrato escrito que da lugar a la misma. El caso 2 sería lo que los Smart Contracts “quieren eliminar”. En el caso 3, en el mundo del Blockchain Pedro envía el dinero a la aplicación que gestiona el contrato, luego Juan envía una especie de “código” necesario para conducir el coche, y entonces tiene lugar la transacción: uno recibe el coche y el otro el código que le permite arrancar el coche. ¿Pero cómo asegurarse de que Pedro obtiene el coche real? Porque podría pasar que Juan le deje el código, sí, pero que no le deje el coche, algo que el blockchain o Smart Contract no podría comprobar fácilmente. |
¿Ves?
Intentando dar un ejemplo, nos podemos encontrar con dificultades técnicas.
¿Qué me dice esto?
Que el modelo de Smart Contracts, de entrada, funciona mucho mejor para el mundo virtual, donde la transacción se puede verificar de manera automática al intercambiar “dinero” por “token”, ya sea este token un pedazo de activo digital de cualquier tipo. Es decir, que cuando se da el token y se ejecuta el contrato, entonces el token, o sea, la propiedad digital pasa a manos del comprador.
¿Qué ventaja supone esto con respecto al ejemplo de Juan y Pedro de la vida real?
Bueno, que nos muestra que es un modelo de trabajo perfecto para una economía de tipo virtual, que no tiene límites ni fronteras, y que permite comprar y vender tokens a ciudadanos de cualquier parte del mundo sin necesidad de contar con agentes.
Por tanto, si Juan está en México y Pedro está en España ambos pueden intercambiar esa propiedad digital de manera segura, transparente y eficiente mediante un smart contract.
Perfecto.
Sin embargo, hay algunas dudas que surgen, y para ello vamos a ver el ejemplo que dan en muchas páginas potentes de la red, como la misma Ethereum.org, donde nos hablan del ejemplo de la “máquina expendedora” como el mejor para explicar cómo funcionan estos contratos inteligentes.
En la página de Ethereum nos dan ese ejemplo de cómo sería el código de esa máquina expendedora que vendría a ser un Smart Contract:
pragma solidity 0.6.11;
contract VendingMachine {
// Declare state variables of the contract
address public owner;
mapping (address => uint) public cupcakeBalances;// When ‘VendingMachine’ contract is deployed:
// 1. set the deploying address as the owner of the contract
// 2. set the deployed smart contract’s cupcake balance to 100
constructor() public {
owner = msg.sender;
cupcakeBalances[address(this)] = 100;
}// Allow the owner to increase the smart contract’s cupcake balance
function refill(uint amount) public {
require(msg.sender == owner, «Only the owner can refill.»);
cupcakeBalances[address(this)] += amount;
}// Allow anyone to purchase cupcakes
function purchase(uint amount) public payable {
require(msg.value >= amount * 1 ether, «You must pay at least 1 ETH per cupcake»);
require(cupcakeBalances[address(this)] >= amount, «Not enough cupcakes in stock to complete this purchase»);
cupcakeBalances[address(this)] -= amount;
cupcakeBalances[msg.sender] += amount;
}
}
Origen de los Smart Contracts
Para seguir hablando de este asunto de la «máquina expendedora» qué mejor que irnos a la historia inicial de este concepto.
La idea surgió de Nick Szabo, quien en 1994 tuvo la idea de que un sistema descentralizado era lo mejor que se podía usar para poder ejecutar los contratos inteligentes o contratos que se auto-ejecutan mediante códigos de computadora.
En 1997 escribió un artículo titulado la “Idea de los Contratos Inteligentes”. En el mismo hablaba del ejemplo de la “máquina expendedora”.
¿Cómo es la metáfora de la máquina expendedora?
Básicamente esta metáfora nos dice que la máquina vendría a ser el “libro contable” o Smart Contract , y que un individuo A podría conseguir un servicio B (por ejemplo una chocolatina), simplemente metiendo el dinero en la máquina. De esa manera, el contrato inteligente se ejecutaría con la expedición del artículo.
De esa manera, en teoría, no haría falta ese agente intermediario tan necesario hasta hoy para la mayoría de las transacciones del mundo físico o real.
La máquina se encargaría de eliminar al “hombre del medio”.
¿Pero es eso cierto?
En teoría sí, pero de entrada surge cuestión.
La máquina expendedora tiene dueño.
¿Quién es el dueño del Smart Contract?
Esto nos lleva a otras preguntas como ¿Quién es el dueño del ecosistema Ethereum?
Muchos dirán que dichos elementos no tienen dueño; que pertenecen a todos y a nadie a la misma vez.
Sin embargo, la duda me sigue asaltando, pues de manera inmediata veo que el ejemplo de la “máquina expendedora” tiene esa falla. Dicha máquina tiene un dueño, o sea la empresa dueña de esas máquinas. Piensa que no tiene por qué ser una empresa sino que también puede tratarse del Estado.
Esto me lleva a preguntarme sobre la seguridad de estos contratos.
¿Son seguros los Smart Contracts?
En teoría sí, se supone que los mismos están elaborados de una manera que no pueden ser rotos sin que todos los participantes del sistema se den cuenta.
Sin embargo, en la práctica el tema no es tan sencillo.
Bien conocidos son los episodios de hackeos en el pasado en los que hubo debilidades del sistema por antonomasia del contrato inteligente: Ethereum. Por ejemplo, el episodio de julio de 2017, donde robaron una cantidad importante de Ethereum. Hay más hackeos si nos ponemos a buscar.
Luego, si leemos varias fuentes interesantes sobre el tema, como por ejemplo un artículo brutal de Blockgeeks, donde en uno de sus apartados dice algo así:
Votos protegidos por Libros necesitarían ser descifrados y eso requeriría una energía computacional enorme. Nadie tiene tanta capacidad, por lo que se necesitaría a Dios para hackear el sistema.
Bueno, esta afirmación nos deja caer dos cosas:
- Es muy difícil hackear un Smart Contract bien elaborado
- Con la pericia suficiente se puede hackear
Es decir, aunque lo haga de manera exagerada (con «Dios»), nos están reconociendo que el sistema puede fallar.
Además, si nos ponemos a investigar veremos mucha «literatura» sobre la necesidad de crear contratos siguiendo unos patrones específicos para la seguridad, algo que también demuestra que anterioremente a esos patrones hubo muchos problemas de interferencias y robos.
Cada criptomoneda que sirve para este tipo de contratos tiene una serie de recomendaciones diferentes, ya sea Ethereum, NEO o EOS.
¿Qué se puede hacer para evitar problemas de seguridad?
Hay algunos pasos a tomar, como por ejemplo:
- Seguir las recomendaciones de las comunidades de cada criptomoneda
- Hacer tests completos antes de que el contrato salga al mercado
- Aplicar auditorías continuas para buscar bugs y errores
Desgraciadamente, la misma naturaleza tecnológica de estos Smart Contracts va a hacer imposible que los mismos puedan ser 100% seguros.
Ojo, que no estoy diciendo que no se vayan a implementar ni que sean muy inseguros, sino que nunca se van a poder implementar con seguridad total.
Es un hecho que tenemos que tener en cuenta.
Luego, lo que queda es un duro trabajo de creación de dichos contratos con las mejores prácticas de seguridad, y de elaborar un sistema de vigilancia para evitar los posibles ataques.
Así que aquí todavía hay bastante terreno por recorrer, algo normal teniendo en cuenta que nos encontramos en la «infancia» de este mundo de contratos virtuales.
El futuro de los Smart Contracts
Viendo como está el panorama en el mundo, creo que parece que este tipo de contratos va a subir como la espuma en los próximos años. Lo está haciendo ya, de hecho.
El gran ascenso de las criptomonedas, con Bitcoin y Ethereum a la cabeza nos da la pista necesaria para entender que la adopción de las realidades virtuales es ya un hecho, y lo más importante: que esa adopción parece tener una tendencia de carácter exponencial.
Al ritmo que vamos no creo que tardemos mucho en llegar a una economía virtual en la que el dinero físico haya desaparecido y la actividad económica principal se haya transferido casi totalmente al mundo virtual.
Ahí es donde el concepto de Smart Contract tomará la primacía sobre la mayoría de las actividades económicas.
Sin embargo, esto tiene unas causas y consecuencias.
Las causas de esta adopción vienen por el empuje global hacia una economía más virtual y sostenible (supuestamente) habida cuenta de la emergencia que suponen el Cambio Climático y la pandemia. Esta adopción no se podría explicar tan fácilmente sin ese empuje masivo que están llevando a cabo los gobiernos mundiales.
Esto es crucial de entender.
Lo que quiero decir es que la adopción de este tipo de contratos se acelera debido al intervencionismo estatal masivo, un intervencionismo que acapara cada vez más ramas de la economía y sociedad que hemos conocido hasta ahora.
Como dije en la parte inicial del artículo, estos contratos son especialmente eficientes para una realidad virtual, pero no necesariamente tanto para una realidad física; no al menos con el paradigma de gobierno controlador que tenemos hoy en día.
O sea, la idea es estupenda.
Con un smart contract puedo comprar una casa sin necesidad de abogado, notario e incluso banquero, pero eso no puede ser en una realidad donde el Estado tiene ese proceso controlado al máximo y fuerza a los individuos a contratar dichos servicios.
En ese sentido lo más importante es la regulación estatal, y creo que es fácil entender que la misma tiene controlada a la actividad real o física. No se puede escapar a ello, ni con smart contract ni sin él.
Lo que sí tiene el Smart Contract es una facilidad innata para facilitar las transacciones virtuales. Lo único que le va a interesar al Estado aquí es que declares tus ganancias. Si has ganado X dinero vendiendo tokens y los sacas a la economía real, el Estado quiere su parte de ese dinero.
Recordemos cómo serían los contratos antiguos:
- Primero de palabra
- Luego vinieron las escrituras de abogados privados
- Tercero con notarías y registros de la propiedad
Este tipo de contratos tienen una desventaja evidente en un mundo virtual en el que no hay fronteras.
Eso, y el hecho de que los estados van a controlar cada vez más la economía física, va a hacer que la actividad se vaya al mundo virtual, y es ahí donde los Smart Contracts van a tomar el liderazgo de ese mundo, en teoría, descentralizado.
Sin embargo, me sigue quedando esta pregunta en la mente:
Who owns the bending machine?