Warcry anuncia una gira por España y casualmente para por nuestra ciudad y nos apetece ir a verlo. En el anuncio indican que las entradas para el concierto se pueden adquirir en su página web. Accedemos al portal, rellenamos los campos, ponemos los datos de nuestra tarjeta, pagamos y nos llega al correo la entrada para el concierto. Este proceso realmente es un smart contract por el cual nosotros adquirimos el derecho a asistir al concierto de Warcry.
Índice de contenidos
Pues en realidad no es un contrato y no es inteligente, es un código que establece una serie de condiciones que se deben cumplir para habilitar unos beneficios para alguna de las partes.
Los smart contracts son propuestos en 1996 por parte de Nick Szabo, un científico informático, jurista y criptógrafo muy ligado a Bitcoin. Su propuesta busca ofrecer una herramienta que permita formalizar acuerdos entre partes para entornos de redes de ordenadores como pueda ser internet.
Estos smart contracts vendrían a ser aplicaciones que se ejecutan dentro de una blockchain. Se componen de una serie de acuerdos digitales que se deben cumplir obligatoriamente y que se basan en unas reglas concretas. Las reglas se establecen en un código informático que se distribuirá por toda la red.
Permiten los smart contracts que dos partes que no se conocen establezcan una serie de compromisos mediante una blockchain sin necesidad de un tercero confiable. Si las condiciones no se cumplen por las partes, el contrato no se liquidara. Un proceso mucho más sencillo, sin necesidad de terceros confiables, que no está limitado por fronteras y que reduce los costes y tiempo de constitución.
Son programas que tienen una finalidad determinista, ejecutándose de manera continuada hasta que las condiciones establecidas se cumplen. Normalmente los smart contract se suelen basar en unas determinadas condiciones que permiten avanzar hasta el cumplimiento del mismo. Un ejemplo sencillo serían los videojuegos, en los cuales debes completar unas acciones para pasar al siguiente nivel y así hasta completarlo.
Los smart contract requieren de una blockchain donde almacenarse y ejecutarse, ya que realmente son fragmentos de código. En Ethereum los smart contracts se ejecutan y administran operaciones que se producen cuando direcciones (usuarios) interactúan entre ellos.
Todas las direcciones (de usuarios) en una blockchain que no son un smart contract reciben el nombre de cuenta externamente controlada (Externally Owned Account; EOA). Las EOAs lo que hacen es controlar el código informático que establecen las condiciones y características de los smart contracts.
Un smart contract en cualquier blockchain se basa en un código que determinada unas acciones y un conjunto de claves públicas. Se deben dar al menos dos claves públicas, la del creador del contrato inteligente y la del propio contrato, que hace el papel de identificador único.
Se realiza luego una ejecución del mismo mediante una transacción en la blockchain elegida. El smart contract solo se ejecutará cuando sea llamado por una EOA o por otros contratos inteligentes.
Presentan el siguiente conjunto de características únicas:
La realidad es que los smart contract tienen la capacidad de ser eliminados, si así se ha programado. Dentro de la blockchain de Ethereum los smart contract pueden añadir una función en el código que es: SELFDESTRUCT. Esta implementación en el código permite borrar el contrato inteligente en el futuro si se detecta un error o sustituirlo por uno nuevo. Si no se añade este elemento, el smart contrat jamás se podrá borrar
No. Una vez el smart contract está lanzado no puede ser modificado. Normalmente lo que se hace es que un contrato inteligente realice llamadas a otros contratos inteligentes con funciones determinadas. Esto nos permite borrar un smart contrat (si hemos habilitado la opción de borrado) concreto para sustituir un smart contract por otro nuevo más completo o mejorado.
El límite de las capacidades de un smart contract lo pone la capacidad de imaginación de las personas y la habilidad de un/unos programadores para crear el código.
Bitcoin presenta algunas dificultades en cuanto a la creación y despliegue de smart contracts que se corregirá con Taproot, en gran parte. Ethereum por su parte permite la creación, despliegue y ejecución sin límites técnicos gracias a su EMV de tipo Turing completo, que a grandes rasgos funciona como un gran ordenador descentralizado.
Dentro de Bitcoin las implementaciones más habituales son las Colores Coins, una especie de tokens con prestaciones y capacidades más limitadas que en Ethereum.
Ethereum por otro lado permite crear smart contracts muy ricos y que permiten hacer una enorme cantidad de cosas. Se pueden crear organizaciones autónomas descentralizadas (DAO), aplicaciones descentralizadas (DApps), tokens fungibles y no fungibles (NFT, por ejemplo), aplicaciones de finanzas descentralizadas (DeFi), exchange descentralizadas (DEX) y todo lo que podamos imaginar.
Son código. Cualquier software, juego o sistema operativo tienen código y es fácil que presenten diferentes tipos de problemas. Los smart contract no son más que código y son desarrollados por personas, así que pueden tener fallos que pueden terminar siendo catastróficos.
The DAO, una organización autónoma descentralizada creada basándose en un smart contract fue hackeada en 2016 debido a un fallo en el contrato inteligente desarrollado para su creación. Esto permitió a un atacante robar nada más y nada menos que 3.6 millones de ether (moneda de la blockchain de Ethereum).
Precisamente que estos contratos inteligentes sean inmutables hace que un fallo en el código no se pueda corregir. Es por esto que normalmente si se quiere crear un smart conract muy complejo se divida en una gran cantidad de estos, por si alguno presentara algún fallo de seguridad poder suprimirlo y lanzar uno nuevo que funcione correctamente.
Debe quedar claro que pese a su nombre no son ni un contrato (en el sentido convencional del término) ni son inteligentes. Son simplemente código que tiene una serie de condiciones establecida por él o los desarrolladores del mismo.
La particularidad que los hace tan atractivos es que son inmutables, por lo que una vez lanzados no se pueden modificar las variables que lo rigen. Aunque se pueden eliminar, siempre que se habilite esta función y si se detecta algún problema en el código o se quieran añadir funcionalidades.
Te recomendamos nuestro artículo sobre qué es y cómo funciona Ethereum
Sus capacidades y posibilidades son infinitas, simplemente limitadas por la imaginación de los desarrolladores y la capacidad de sintetizarlo en un código. Puede ser que alguna blockchain, como la de Bitcoin, tenga algunas limitaciones en cuanto a soporte o facilidad de creación y despliegue de los smart contracts.
CHIEFTEC acaba de presentar dos nuevas cajas para PC, Visio y Visio Air con un…
Asus ZenWiFi BT8 es un sistema Mesh Wi-Fi 7 el cual se sitúa por debajo…
Qualcomm anuncia nuevos SoC Snapdragon X, pero no se trata de una nueva generación, sino…