[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/ayudaleyprotecciondatos.es\/2019\/07\/25\/smart-contracts-ejemplos\/#BlogPosting","mainEntityOfPage":"https:\/\/ayudaleyprotecciondatos.es\/2019\/07\/25\/smart-contracts-ejemplos\/","headline":"Smart Contracts, \u00bfqu\u00e9 son? Ejemplos","name":"Smart Contracts, \u00bfqu\u00e9 son? Ejemplos","description":"Descubre en qu\u00e9 consisten los Smart contracts o contratos inteligentes, su origen, si son legales y seguros, \u00a1m\u00e1s informaci\u00f3n aqu\u00ed!","datePublished":"2019-07-25","dateModified":"2021-01-19","author":{"@type":"Person","@id":"https:\/\/ayudaleyprotecciondatos.es\/author\/agonzar34\/#Person","name":"Ana Gonz\u00e1lez","url":"https:\/\/ayudaleyprotecciondatos.es\/author\/agonzar34\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/9d20ce04c893956aaa747aa424b64675?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9d20ce04c893956aaa747aa424b64675?s=96&d=blank&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"AyudaLeyProteccionDatos","logo":{"@type":"ImageObject","@id":"https:\/\/ayudaleyprotecciondatos.es\/wp-content\/uploads\/2016\/01\/ayuda-ley-proteccion-datos.png","url":"https:\/\/ayudaleyprotecciondatos.es\/wp-content\/uploads\/2016\/01\/ayuda-ley-proteccion-datos.png","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/ayudaleyprotecciondatos.es\/wp-content\/uploads\/2019\/07\/smart-contracts.jpg","url":"https:\/\/ayudaleyprotecciondatos.es\/wp-content\/uploads\/2019\/07\/smart-contracts.jpg","height":927,"width":1400},"url":"https:\/\/ayudaleyprotecciondatos.es\/2019\/07\/25\/smart-contracts-ejemplos\/","commentCount":"2","comment":[{"@type":"Comment","@id":"https:\/\/ayudaleyprotecciondatos.es\/2019\/07\/25\/smart-contracts-ejemplos\/#Comment1","dateCreated":"2020-04-07 13:20:28","description":"Buenos d\u00edas Luis, la web no es segura y no incluye ni pol\u00edtica de privacidad ni aviso legal","author":{"@type":"Person","name":"Ana Gonz\u00e1lez","url":""}},{"@type":"Comment","@id":"https:\/\/ayudaleyprotecciondatos.es\/2019\/07\/25\/smart-contracts-ejemplos\/#Comment2","dateCreated":"2020-04-07 04:28:35","description":"yo estoy actualmente haciendo contratos con GramFree.net, y no dice el vencimiento de los contratos por ningun lado. Saben algo de esta web??","author":{"@type":"Person","name":"luis palma v.","url":""}}],"about":["INTERNET","TECNOLOG\u00cdA"],"wordCount":2742,"articleBody":" if (typeof BingeIframeRan === \"undefined\") { window.addEventListener(\"message\", receiveMessage, false); function receiveMessage(event) { try { var parsed = JSON.parse(event.data) if (parsed.context === \"iframe.resize\") { var iframes = document.getElementsByClassName(\"binge-iframe\"); for (let i = 0; i < iframes.length; ++i) { if (iframes[i].src == parsed.src || iframes[i].contentWindow === event.source) { iframes[i].height = parsed.height; } iframes[i].style.opacity = 1; } } } catch (error) { } } var BingeIframeRan = true; } En una sociedad eminentemente tecnol\u00f3gica como la actual aparece un nuevo tipo de contratos, los llamados Smart contracts o contratos inteligentes. En este post te explicamos en qu\u00e9 consisten esos contratos, la legalidad y la seguridad de los mismos.\u00bfQu\u00e9 son los Smart contracts?Diferencias entre Smart contracts y contratos tradicionalesConsentimiento de las partesObjeto del contratoLegalidad de los Smart contractsOrigen de los Smart contractsSmart contracts en EthereumSolidity\u00bfSon seguros los contratos inteligentes?\u00bfC\u00f3mo crear un smart contract?Plataformas para crear contratos inteligentesTron\u00a0EOS\u00a0\u00bfQu\u00e9 son los Smart contracts?Los contratos inteligentes consisten en programas inform\u00e1ticos programados para ejecutar autom\u00e1ticamente acuerdos establecidos entre dos o m\u00e1s partes. Se sujeta el contrato al alcance de un t\u00e9rmino (llegada de un d\u00eda concreto) o al cumplimiento de una determinada condici\u00f3n (que ocurra un cierto hecho). Al cumplirse ese t\u00e9rmino o condici\u00f3n se ejecuta autom\u00e1ticamente el contrato sin que exista una autoridad o un juez que reclame ese cumplimiento.Esto nos lleva a hacernos algunas preguntas.\u00bfC\u00f3mo es posible que el contrato pueda cumplirse solo?\u00bfC\u00f3mo puede saberse\u00a0que la condici\u00f3n a la que estaba sometido ese contrato se ha cumplido?En definitiva, \u00bfc\u00f3mo funcionan los smart contracts?Para responder a estas cuestiones est\u00e1n los llamados Or\u00e1culos. Se trata de programas inform\u00e1ticos que verifican informaci\u00f3n confiable en Internet lo que les permite conservar actualizados los contratos. Ese Or\u00e1culo de un Smart contract es similar a un tercero que hace de intermediario entre las partes que suscriben un contrato.El Or\u00e1culo puede comprobar cualquier cosa que se encuentre en Internet. Desde un determinado precio en el mercado hasta la llegada de una fecha o la realizaci\u00f3n de un hecho concreto. Es decir, puede verificar cualquier circunstancia a la que las partes hayan supeditado el cumplimiento del contrato inteligente.Lo que se pretende es descentralizar los Or\u00e1culos todo lo posible para que estos puedan comprobar diversas fuentes de informaci\u00f3n establecidas por los participantes en el contrato y as\u00ed verificar los datos. Existe un proyecto basado en Blockchain que pretende esa descentralizaci\u00f3n mediante la comprobaci\u00f3n de una multitud de bases de datos.Diferencias entre Smart contracts y contratos tradicionalesUn contrato es definido legalmente como un acuerdo entre dos o m\u00e1s partes que tiene la finalidad de crear, modificar o finalizar una relaci\u00f3n jur\u00eddica de car\u00e1cter patrimonial.Para ser v\u00e1lidos legalmente, los contratos deben incluir tres elementos:Consentimiento de las partes intervinientesEstablecimiento del objeto del contratoCausa posible y l\u00edcitaLos Smart contracts tambi\u00e9n deben tener esos elementos, pero con algunas diferencias destacables. Tambi\u00e9n existen diferencias respecto a la formalidad en los Smart contracts. A continuaci\u00f3n vamos a ver cada una de ellas.Consentimiento de las partesUn contrato inteligente tambi\u00e9n requiere el consentimiento de las partes intervinientes pero la identificaci\u00f3n de las mismas no es igual que en los contratos tradicionales. Al ser un programa inform\u00e1tico escrito en un c\u00f3digo, las partes se deben identificar a trav\u00e9s de un algoritmo o c\u00f3digo, seg\u00fan lo que pretenda el contrato.Para ratificar ese consentimiento es necesario que las partes realicen un \u00abDoble dep\u00f3sito\u00bb en la direcci\u00f3n establecida por el contrato. Esto significa que los participantes deber realizar un dep\u00f3sito de fondos como garant\u00eda de que cumplir\u00e1n con sus obligaciones.Por otro lado, existe tambi\u00e9n una herramienta llamada \u00abFunci\u00f3n Multifirma\u00bb. Este programa exige que las partes del contrato confirmen las transacciones internas de ese contrato. De esta forma se evita que alguna de las partes utilice o retire los fondos depositados para la ejecuci\u00f3n del contrato sin cumplir las normas establecidas.Objeto del contratoEl objeto del contrato en los contratos tradicionales se refiere a las obligaciones incluidas en esos contratos. Estas obligaciones pueden ser:Acciones de hacer, de dar o de no hacerTransmisi\u00f3n de un derechoServicios de resultado o de medioEn los Smart contracts el objeto est\u00e1 referido a una obligaci\u00f3n que tenga un apoyo digital, esa obligaci\u00f3n debe poder cumplirse en el entorno digital.Por ejemplo, un contrato con un alba\u00f1il para reformar mi casa no puede realizarse como contrato inteligente ya que esa obligaci\u00f3n no puede cumplirse en un entorno digital ni es posible controlarla digitalmente.Estos impedimentos del mundo real intentan solucionarse a trav\u00e9s del Internet de las cosas. Mientras m\u00e1s objetos comunes est\u00e9n conectados a Internet, m\u00e1s sencillo ser\u00e1 tener un apoyo digital de las obligaciones para establecerlas en un contrato inteligente. En la actualidad, por muy raro que parezca, una gran parte de las empresas est\u00e1n prepar\u00e1ndose para esos cambios. Por ejemplo, los seguros, las farmacias o el sector de la construcci\u00f3n.Otra de las diferencias entre los contratos tradicionales y los inteligentes es que los primeros se celebran por escrito y se formalizan ante notario o ante un juez. Los Smart contracts se escriben mediante c\u00f3digos al ser programas inform\u00e1ticos y no necesitan que un juez o notario los revise para darles validez. Esos contratos se cumplen por s\u00ed solos.Legalidad de los Smart contractsUna de las cuestiones m\u00e1s pol\u00e9micas actualmente es si los contratos inteligentes pueden tener la misma validez que los tradicionales, celebrados por escrito entre las partes. Los expertos en el sector de las criptomonedas consideran que esos contratos inteligentes colisionan con los tradicionales ya que pretenden cumplir las mismas funciones pero al margen de la legalidad.Sin embargo, otros juristas consideran que los Smart contracts en Espa\u00f1a s\u00ed pueden adaptarse al derecho vigente sin problemas. As\u00ed, hay quien considera que los contratos inteligentes se aplican seg\u00fan las normas de Derecho Internacional Privado. A trav\u00e9s de este sector del derecho pueden estudiarse los elementos de conexi\u00f3n del contrato para poder establecer cu\u00e1l es la jurisdicci\u00f3n nacional aplicable para interpretar ese contrato.Para otros juristas no todos los Smart contracts son contratos legales. \u00danicamente se consideran conformes a la ley cuando incluyan el contenido y los t\u00e9rminos de los contratos tradicionales, o cuando regulen una obligaci\u00f3n contractual entre dos o m\u00e1s partes. En caso de considerar al contrato inteligente como un mero programa inform\u00e1tico, no estar\u00eda sujeto a ninguna jurisdicci\u00f3n por lo que no ser\u00eda un contrato legal.Para considerar los contratos inteligentes como legales o no no es necesario establecer una nueva regulaci\u00f3n de la normativa existente. Es posible verlos como una nueva manera de aplicar los conocidos contratos tradicionales en nuestro ordenamiento jur\u00eddico.Tambi\u00e9n hay quien considera estos contratos inteligentes como una opci\u00f3n de arbitraje donde las partes intervinientes eligen voluntariamente regirse por las disposiciones establecidas en el propio contrato.Origen de los Smart contractsEl concepto de smart contract comenz\u00f3 a utilizarse por primera vez hace 26 a\u00f1os. Entonces se establec\u00eda que esos contratos deb\u00edan\u00a0unir protocolos con interfaces de usuario para asegurar y formalizar relaciones mediante redes inform\u00e1ticas hacer m\u00e1s normales las relaciones en el \u00e1mbito digital.Era necesario incluir una comprobaci\u00f3n de los elementos, las consecuencias en caso de incumplimiento y una constataci\u00f3n autom\u00e1tica para su cumplimiento para que estos contratos se consideren v\u00e1lidos y legales.En los 90 surgi\u00f3 un proyecto de criptomoneda llamado DigiCash y se consideran los Smart contracts como un proyecto adecuado para garantizar la correcta transacci\u00f3n con criptomonedas.En ese momento a\u00fan estaba lejos de la realidad la aplicaci\u00f3n de los contratos inteligentes debido a que la tecnolog\u00eda no estaba adaptada suficientemente para cumplir los requerimientos de esos contratos.Al surgir la tecnolog\u00eda Blockchain y los ordenadores m\u00e1s potentes volvi\u00f3 a aparecer el concepto de Smart contracts y en la actualidad es mucho m\u00e1s f\u00e1cil su aplicaci\u00f3n. De hecho, el uso de smart contracts en blockchain es cada vez m\u00e1s habitualSmart contracts en EthereumEl creador de Ethereum consider\u00f3 que dentro de esta red, con la tecnolog\u00eda Blockchain y el sistema descentralizado, podr\u00edan aplicarse los contratos inteligentes.Estos contratos eran considerados como aplicaciones complejas a trav\u00e9s de las cuales pod\u00edan controlarse activos digitales mediante c\u00f3digos con reglas arbitrarias. Y se entend\u00eda que los contratos inteligentes pod\u00edan crear sistemas ilimitados, pudiendo utilizarse sobre todo en tres tipos de aplicaciones:FinancierasSemi financierasNo financierasDentro de esas aplicaciones pueden utilizarse en:Sistemas de identidad y reputaci\u00f3nConservaci\u00f3n de archivos de forma descentralizadaMercado descentralizado BlockchainOrganizaciones aut\u00f3nomas descentralizadasSistemas de Escrow con m\u00faltiples garantesApuestas cruzadas, etc.SolidityLos contratos inteligentes en Ethereum no se escriben igual que los tradicionales. Al ser programas inform\u00e1ticos deben ser programados como tales.El lenguaje utilizado para escribir este tipo de contratos en Ethereum se llama Solidity. Se trata de un complejo lenguaje inform\u00e1tico con el que es posible resolver complicados problemas inform\u00e1ticos y ejecutar tareas mediante instrucciones.Con este tipo de lenguaje la red Ethereum es m\u00e1s compleja que la red de Bitcoin. La parte positiva es que eso permite incorporar elementos m\u00e1s complejos como los Smart contracts. Pero la parte negativa de todo esto es que se produce un mayor consumo de energ\u00eda en los ordenadores, lo que conlleva un incremento considerable de los costes por su utilizaci\u00f3n.\u00bfSon seguros los contratos inteligentes?Muchos consideran estos programas como totalmente seguros ante cualquier error o ataque. Pero eso no es del todo cierto. Los contratos inteligentes pueden tener errores o fallos en su configuraci\u00f3n, al igual que cualquier programa inform\u00e1tico.El principal ejemplo de la vulnerabilidad de esos contratos inteligentes fue el hackeo producido al Smart contract de la Organizaci\u00f3n aut\u00f3noma descentralizada de Ethereum. Este ataque ocasion\u00f3 p\u00e9rdidas de casi 4 millones de Ethers, conflictos dentro de la comunidad de Ethereum e incluso la separaci\u00f3n de Ethereum Classic.Los fallos en la programaci\u00f3n de un contrato inteligente pueden provocar de alguna forma, un ciberataque a la empresa con el fin de robar el dinero que se ha depositado dentro de ese contrato. Por eso la preparaci\u00f3n de estos contratos debe realizarse con mucho cuidado para evitar cualquier fallo que pueda ser aprovechado por un ciberdelincuente.Al estar configurados en la red Blockchain, una vez preparados, esos smart contracts no pueden ser modificados o reescritos. Si existe alg\u00fan tipo de error respecto a los t\u00e9rminos y condiciones o las cifras del contrato no podremos arreglarlo. Lo incluido en el contrato inteligente es irreversible por lo que debemos atenernos a las consecuencias de ello.\u00bfC\u00f3mo crear un smart contract?Imagina que quieres hacer un dep\u00f3sito de Bitcoins o de otra criptomoneda en alguna p\u00e1gina web o servicio que acepte este m\u00e9todo de pago. L\u00f3gicamente, no querr\u00e1s ser estafado ni perder tu dinero. En ese caso, la soluci\u00f3n es crear un smart contract.Estos son los pasos para crear un smart contract:Se genera un clave p\u00fablica que usuario y p\u00e1gina web deben compartirse mutuamente.El usuario crear una primera transferencia, por ejemplo de 1 BTC, sim emitirla. Esta transacci\u00f3n se crear en un OUTPUT necesario para que el usuario y la p\u00e1gina web puedan firmarlo.A continuaci\u00f3n el usuario env\u00eda el hash de la transacci\u00f3n a la p\u00e1gina web. Este hash funciona como un algoritmo matem\u00e1tico que convierte un bloque aleatorio de datos en una nueva serie de caracteres, los cuales tienen una longitud definida.La p\u00e1gina web realiza una segunda transacci\u00f3n en la que se devuelve la primera transacci\u00f3n al usuario a trav\u00e9s de la clave proporcionada en el primer paso. Sin embargo, la operaci\u00f3n no estar\u00eda completa, ya que esa primera transacci\u00f3n requer\u00eda las firmas tanto del usuario como de la p\u00e1gina web.En relaci\u00f3n al punto anterior, ahora es cuando se crea el par\u00e1metro nLockTime, el cual permite establecer una fecha futura para la transacci\u00f3n de los Bitcoins. Por ejemplo, si se pone de nLockTime un mes, no se podr\u00edan a\u00f1adir fondos a una transacci\u00f3n antes de que pase ese per\u00edodo de tiempo.La p\u00e1gina web devuelve la transacci\u00f3n sin firmar al usuario. De esta forma, el usuario puede comprobar que se le ha devuelto la transacci\u00f3n \u00edntegra y que todo el proceso se ha realizado correctamente y el importe volver\u00eda a su posesi\u00f3n, eso s\u00ed, pasado el mes que se coloc\u00f3 en el nLockTime.*Colocando la funci\u00f3n Secuence Numer en 0, ambas partes podr\u00edan modificar la fecha del contrato en el futuro si lo creen conveniente.Ahora, imagina que la p\u00e1gina web desaparece o que no hay manera de contactar con sus administradores. \u00bfSe podr\u00edan recuperar los fondos?La respuesta es s\u00ed. El script del INPUT, esto es, las instrucciones de cada operaci\u00f3n, todav\u00eda no ha terminado. El lugar destinado a la firma del usuario sigue formado por una serie de ceros. Por tanto, falta la firma del usuario en el smart contract.Una vez que el usuario haya puesto su firma y pasado el mes de l\u00edmite que se estableci\u00f3, se transmitir\u00edan tanto la primera como la segunda transacci\u00f3n, es decir, el BTC que el usuario a\u00f1adi\u00f3 a los fondos de la web en la primera transacci\u00f3n le ser\u00edan devueltosExplicado con palabras puede resultar complicado de entender, pero en la pr\u00e1ctica es m\u00e1s f\u00e1cil de lo que parece y funciona de manera muy natural. Adem\u00e1s, existen plataformas dise\u00f1adas para este tipo de transacciones con contratos inteligentes.Plataformas para crear contratos inteligentesYa te hemos hablado de Ethereum, pero hay muchas otras plataformas destinadas a la configuraci\u00f3n de contratos inteligentes. Dos ejemplos son Tron y EOS.Tron\u00a0Tron es una plataforma de smart contracts fundada en el a\u00f1o 2017 por Justin Sun. Est\u00e1 orientada a facilitar y mejorar la ejecuci\u00f3n y escalabilidad de apps descentralizadas.Esta plataforma utiliza un c\u00f3digo extra\u00eddo de una rama de Ethereum y configura los smart contracts mediante una copia del lenguaje de contratos inteligentes de Solidify.(el m\u00e1s empleado por Ethereum).Sin embargo, los mecanismos de consenso que emplea Tron son diferentes a los que emplea Ethereum. Mientras \u00e9sta empleaba un sistema llamado Prueba de Trabajo, en la que los usuario produc\u00edan bloques para la red, Tron emplea un mecanismo denominado Prueba de Estaca o DPos. En este caso, los bloques para la red son producidos por 27 Super Representantes, lo que le permite realizar transacciones de forma mucho m\u00e1s r\u00e1pida.EOS\u00a0Otra de las plataformas para smart contract m\u00e1s conocidas en EOS. Esta herramienta naci\u00f3 a mediados del a\u00f1o 2018 y desde entonces ha obtenido un \u00e9xito considerable. En este caso tambi\u00e9n usa como mecanismo de consenso la Prueba de Estaca o de participaci\u00f3n delegada, en la que 21 Super Productores elegidos por la propia comunidad se encargar de producir bloques,Como ves, los Smart contracts son el futuro. \u00bfEst\u00e1s preparado para ello?"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/ayudaleyprotecciondatos.es\/#breadcrumbitem","name":"Ayuda Ley Protecci\u00f3n Datos"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/ayudaleyprotecciondatos.es\/2019\/07\/25\/smart-contracts-ejemplos\/#breadcrumbitem","name":"Smart Contracts, \u00bfqu\u00e9 son? Ejemplos"}}]}]