• Estás a tan solo un e-mail de conocer Bitcoin y operar con él como si tú mismo/a lo hubieras creado.

    Puedes anular tu suscripción cuando quieras.

  • Smart contracts, ¿Qué son, cómo funcionan y qué aportan?

    Tiempo de lectura10 minutos

    En estos últimos años, tras la creación de Bitcoin y el lanzamiento de su primera versión en 2009, han sido muchos los proyectos interesantes que han ido apareciendo aportando nuevas ideas y soluciones descentralizadas a muchos de los procesos o aplicaciones centralizadas que todos usamos en la actualidad. ¿Te suenan los smart contracts?

    Esta vez hablaremos de ellos en profundidad, mecanismos que tienen como objetivo eliminar intermediarios para simplificar procesos con el objetivo de ahorrar costes al consumidor.

    La mayor parte de la información relacionada con los smart contracts tan sólo está disponible en inglés y es por ello que, desde Bit2Me y tras el primer artículo de nuestra guía de introducción a los smart contracts,  no queremos que te quedes con dudas sin entender en su totalidad el concepto de qué son los contratos inteligentes y su potencial.

    Este nuevo artículo se dividirá en tres partes. En primer lugar hablaremos del origen de los smart contracts, posteriormente analizaremos la situación actual y en tercer lugar presentaremos algunos de los proyectos alternativos más importantes que también están trabajando en ello y disponen de monedas alternativas en la base de su funcionamiento.

    Smart contracts

    ¿Qué es un smart contract?

    Para entender un smart contract primero hemos de recordar que significa un contrato. Un contrato no es más que un acuerdo entre dos o más partes, un entorno donde se define lo que se puede hacer, cómo se puede hacer, qué pasa si algo no se hace… Es decir, unas reglas de juego que permite, a todas las partes que lo aceptan, entender en qué va a consistir la interacción que van a realizar.

    Hasta ahora los contratos han sido documentos verbales o caros documentos escritos, sujetos a las leyes y jurisdicciones territoriales, y en ocasiones requiriendo de notarios, es decir, más costes y tiempo. Algo no accesible para cualquier persona. Y esto no es lo peor: los contenidos de los contratos pueden estar sujetos a la interpretación. ¡Agárrate!

    En cambio un contrato inteligente es capaz de ejecutarse y hacerse cumplir por sí mismo, de manera autónoma y automática, sin intermediarios ni mediadores. Evitan el lastre de la interpretación al no ser verbal o escrito en los lenguajes que hablamos. Los smart contracts se tratan de “scripts” (códigos informáticos) escritos con lenguajes de programación, siendo los términos del contrato puras sentencias y comandos en el código que lo forma. Un smart contract puede ser creado y llamado por personas físicas y/o jurídicas, pero también por máquinas u otros programas que funcionan de manera autónoma. Un smart contract tiene validez, sin depender de autoridades, debido a su naturaleza: es un código visible por todos y que no se puede cambiar al existir sobre la tecnología blockchain, la cual le da ese carácter descentralizado, inmutable y transparente. Es importante destacar que, al estar distribuido por miles de ordenadores, se evita así que una gran compañía los custodie, lo que elimina burocracia, censuras y los grandes costes / tiempos implícitos de este proceso que, dicho sea de paso, hasta ahora es el cuotidiano.

    Si juntamos los principios de un smart contract con la creatividad de muchos desarrolladores del planeta el resultado son posibilidades jamás vistas, accesibles para todos y a costes que rozan la gratuidad. Imagina un coche Tesla auto-conducido, comprado en grupo, capaz de autogestionarse y alquilarse por si solo pero sin una compañía tipo Uber detrás llevándose el 10%. Bienvenido al mundo de los contratos inteligentes.

    Los primeros contratos inteligentes

    Fue en 1997 cuando el jurista y criptógrafo Nick Szabo, por primera vez en el mundo, define en detalle el concepto smart contract. Lamentablemente, pese a definir la teoría, era imposible hacerla realidad con la infraestructura tecnológica existente. Para que los contratos inteligentes se puedan ejecutar es necesario que existan las transacciones programables y un sistema financiero que las reconozca, digitalmente nativo.

    Precisamente, lo que Nick definía como inexistente en 1997, en 2009 se hace realidad con la aparición de Bitcoin y su tecnología, la cadena de bloques (blockchain).

    Bitcoin tiene algunos smart contracts ya creados que se ejecutan por defecto y de manera transparente al usuario. Cuando hablamos de contratos de distribución nos referimos a uno de los casos de uso de Bitcoin para formar acuerdos entre personas a través de la blockchain. Y es que Bitcoin, entre todas sus ventajas, permite añadir lógica al dinero, algo único de este tipo de dinero: es dinero programable. Esta lógica aplicada al dinero nos permite resolver problemas comunes que podemos encontrarnos en la actualidad, pero aumentando el nivel de confianza a lo largo de todo el proceso automatizado en el que se desarrolla la interacción.

    Ejemplificando, podrían desarrollarse nuevos productos o aplicaciones como por ejemplo:

    • Mercados distribuidos que permitieran implementar contratos P2P y trading en los mercados con Bitcoin postulándose como un competidor completo al sistema financiero actual.
    • Propiedades como automóviles, teléfonos, casas o elementos no físicos controlados a través de la cadena de bloques conforman las nombradas smart property. Mediante el uso de los contratos y con propiedades inteligentes se permite que el nivel de confianza sea muy superior reduciendo el fraude, los honorarios de mediación para terceras partes y permite que las operaciones se lleven a un nuevo nivel.
    • Automatización de herencias estableciendo la asignación de los activos tras el fallecimiento. En cuanto llegase el fallecimiento, el contrato entraría en vigor y se ejecutaría repartiendo en este caso los fondos a la dirección establecida en el contrato.
    • Seguros: Partes de accidente, pagos de la compañía para reparaciones, reducción del fraude en accidentes,…

    Y es que los smart contracts se sirven de la tecnología de Bitcoin para existir, algo que le viene genial a Bitcoin, pues está haciendo que reciba mucha más atención trayendo cientos de miles de nuevos usuarios a su ecosistema. De hecho no es difícil encontrar afirmaciones del tipo: “Los smart contracts son la killer APP de Bitcoin

    Esta lógica que puede aplicarse a las transacciones Bitcoin se realiza a través del uso de todo un lenguaje propio, permitiendo que sea la misma blockchain quien determine qué hacer en base a las indicaciones programadas. Esto quiere decir que tenemos una transacción con unas instrucciones de forma distribuida e inmutable, dando una seguridad completa y sin interpretaciones.

    ¿Cómo se realiza un contrato inteligente en Bitcoin?

    Para que todo esto sea posible, tiene que haber un proceso completamente seguro que garantice que, al menos dos partes, puedan ejecutar el contrato sin necesidad de confiar el uno del otro, ni tan si quiera conocerse.

    Los contratos utilizan el sistema descentralizado de Bitcoin para hacer cumplir acuerdos financieros sin dependencia de agentes externos, como sistemas judiciales, disminuyendo el riesgo de tratar con entidades desconocidas en transacciones financieras.

    Existen varios pasos para la creación de smart contracts seguros. Ejemplifiquemos con el caso de realizar depósitos seguros en cualquier página web que acepte bitcoins. ¿A nadie le gusta perder su dinero, verdad?

    1. El usuario y la página web se envían entre sí una clave pública recién generada.
    2. El usuario crea la primera transacción sin transmitirla poniendo por ejemplo 5 BTC en un output que requiere tanto el usuario como el sitio web para firmarlo.
    3. El usuario envía el hash de la primera transacción a la página web.
    4. El portal crea una segunda transacción correspondiente al contrato. En esta segunda transacción se gasta la primera y se devuelve al usuario a través de la dirección que proporcionó en el primer paso, pero como la primera transacción requería dos firmas (usuario y página web) esta operación todavía no estaría completa. Aquí es dónde toma importancia un nuevo parámetro: nLockTime. Este se puede añadir en una transacción de bitcoin estableciendo una fecha futura de por ejemplo 6 meses. Antes de esta fecha, esos fondos no se podrían incorporar en ninguna transacción. El Sequence Number del input también se pone a 0.
    5. Finalmente, la transacción sin firmar por completo se devolvería al usuario. Este comprobaría que todo está correcto y que las monedas volverían a su posesión. Eso sí, tras los 6 meses que se estipularon con nLockTime. Al tener el Sequence Number en 0, este contrato podría ser modificado en un futuro si ambas partes así lo creen conveniente. Pero claro… si los administradores de la página web desaparecen, ¿cómo podría el usuario recuperar los fondos?
    6. Hay que tener en cuenta que el script del input (instrucciones grabadas en cada transacción) todavía no ha finalizado. El espacio reservado para la firma del usuario todavía está formado por un conjunto de ceros después de que el portal creará la segunda transacción. Ahora tan sólo faltaría la firma del usuario en dicho contrato.
    7. A partir de aquí, tras los 6 meses que se delimitaron sí se transmitirían tanto la primera como la segunda transacción y los 5 BTC de la primera transacción, se devolverían al usuario en cuestión.

    En conjunto, todas estas características no solo permiten construir nuevas e interesantes herramientas financieras sobre la cadena de bloques Bitcoin sino que, al estar cada contrato inteligente formado por personas o máquinas, las posibilidades de innovación para el ámbito del Internet of Things, Insurtech, Logística, Administración son tan amplias que es probable que empiecen a salir muy pronto las primeras killer app o aplicaciones revolucionarias de estos ámbitos.

    Situación actual de los smart contracts en Bitcoin

    Bitcoin contratos inteligentes

    No olvidemos que cuando hablamos de Bitcoin estamos hablando de un ecosistema nuevo, dinámico y en proceso constante de crecimiento, pero también, como hemos indicado anteriormente, de smart contracts. Poco a poco van apareciendo nuevas implementaciones de los smart contracts en Bitcoin pero, actualmente, ya se aplica en algunas funcionalidades que probablemente te sonarán, como los monederos multifirma, en los que dos partes o más deben aprobar la realización de una transacción antes de que los fondos sean liberados.

    Junto a las direcciones multifirma, los dobles depósitos son una de las funciones que facilitan el correcto funcionamiento de los contratos inteligentes de este tipo. Fue introducido por BitHalo y es innovador porque elimina la necesidad de un tercero que actúe como árbitro. Básicamente consiste en que las partes, digamos por ejemplo un comprador y un vendedor, realizan AMBOS una transacción de depósito ligado a un contrato inteligente. El programa del contrato tiene un tiempo determinado antes de que caduque. Si las personas involucradas en el acuerdo no lo resuelven en dicho periodo de tiempo, los fondos de los depositas se quemarán, es decir, serán enviados a una dirección en la que nadie conoce la clave privada, lo que obliga a las partes a esforzarse al máximo en la búsqueda de soluciones.

    Muy pronto, en un nuevo artículo de nuestra guía de iniciación a Bitcoin os presentaremos los principales monederos multifirma y explicaremos también su funcionamiento con el máximo de detalles posible.

    Aunque Bitcoin dispone de un lenguaje de programación para añadir lógica, hay quienes opinan que a veces se queda corto. Este es el motivo por el que han ido creándose soluciones que llevan los smart contracts a nuevos horizontes, con lenguajes Turing completo.

    Antes de introducir algunas de las plataformas y proyectos qué también hacen uso de los contratos inteligentes con su propia moneda alternativa, es importante destacar el papel del proyecto Counterparty y uno de los recién llegados, Rootstock, quienes quieren llevar los smart contracts de nueva generación a Bitcoin.

    ¿Qué es Counterparty?

    Counterparty nace en 2014. Es una plataforma open source en la que se pueden desarrollar aplicaciones peer-to-peer, inicialmente orientadas al sector financiero, sobre la blockchain de Bitcoin: Actualmente el protocolo implementa y soporta la creación de activos, la emisión de bonos de esos activos, pago de dividendos, el comercio de activos usando un mercado descentralizado, las apuestas binarias, y los contratos-para-diferencia (CFD).  Su protocolo de código abierto, además de permitir crear y operar con activos digitales, también permite escribir contratos inteligentes, permitiendo transformar muchas de las acciones del mundo real en código que funcionan de forma automática sin necesidad de intermediarios y resistente a fallos.

    counter_party_platform

    En Counterparty también existe un token (o criptomoneda) llamado XCP. Este se utiliza para ofrecer algunas posibilidades que no son técnicamente posibles por el momento utilizando BTC (bitcoins).

    Aunque el interés en smart contracts más potentes se viene anunciando desde el inicio del proyecto, es recientemente cuando se ha confirmado que finalmente se va a introducir dentro de Counterparty el EVM de Ethereum, el cual permitirá ejecutar contratos inteligentes idénticos a los de Ethereum pero sobre la red de Bitcoin, permitiendo una diversidad de aplicaciones enorme como Organizaciones Autónomas Descentralizadas (DAOs),  sistemas de identidad, sistemas de votación basados en consenso, entre otras. A fecha de esté capítulo de la Guía Bitcoin, el Ethereal Virtual Machine (EVM) está operativo solo en la red de pruebas de Counterparty. ¿Cómo es posible que hayan podido reaprovechar el EVM de software libre? Counterparty utiliza el mismo lenguaje de programación de contratos inteligentes, llamado Solidity.

    Según comenta Trevor Altpeter, director de la Counterparty Foundation, EVM ahora será capaz de hacer todo lo que hace Ethereum, solo que en la blockchain de Bitcoin.

    Para poder ejecutar los contratos se utiliza la moneda de Counterparty, el XCP.

    ¿Qué es RootStock?

    Rootstock, conocido como el Ethereum de Bitcoin,  es otra de las plataformas intentando llevar smart contracts turing completo a Bitcoin para aprovechar así el efecto red y la seguridad de Bitcoin sin necesidad de crear algo de cero (se ha publicado que la plataforma también va a ser compatible con Ethereum). Se trata de una plataforma open source para la creación contratos inteligentes que recompensará a los mineros que participen activamente. Su objetivo principal es el de añadir valor y funcionalidad al ecosistema Bitcoin activando smart contracts seguros en la red, añadiendo opciones para pagos instantáneos y una mayor escalabilidad. Para ello, RootStock, se sirve de cadenas laterales (sidechain), conectadas a la cadena de Bitcoin, y su token (Roots), el cual servirá solo para ser intercambiado por bitcoins.

    Pese a ser relativamente nuevo, Rootstock ya ha conseguido 1 millón de dólares en su última ronda de financiación por parte del Digital Currency Group (DGC).

    El propio Nick Szabo ha dicho en su twitter: “lo mejor de Bitcoin (moneda y liquidez del sistema) + lo mejor de Ethereum (ecosistema de programación de contratos inteligentes)”

    Plataformas innovando con los smart contracts

    No todos los proyectos giran únicamente en torno a la red Bitcoin y son ya varias las alternativas. Destacan inicialmente Ethereum y, durante el 2016, Lisk. Entremos un poco en detalle para describir cada una de ellas.

    Smart contracts en Ethereum

    Antes de empezar con Ethereum, queremos advertir que en este artículo no se va a comparar Ethereum con Ethereum Classic, simplemente nos vamos a limitar a describir el objetivo de su software cuyo token o activo podría ser Ethereum, Ethereum Classic, Classic Ethereum o Ethereum Origin (entre otros que han surgido tras los problemas de TheDAO).

    Ethereum lleva los smart contracts de Bitcoin a otro nivel y es quien, principalmente, ha inspirado a otras soluciones, como Counter Party o Rootstock, que quieren conseguir lo mismo pero sobre la red de Bitcoin.

    Ethereum, que es uno de los proyectos más famosos en el sector de los smart contracts, es una plataforma de computación distribuida basada en una blockchain pública como Bitcoin y que además permite ejecutar contratos inteligentes P2P (entre los nodos, sin servidores centrales) en una máquina virtual descentralizada llamada Ethereum Virtual Machine (EVM).

    Se basa en toda la teoría de Bitcoin en cuanto a estar distribuido, tener su propia criptomoneda, mineros e incluso su propio blockchain entre otras cosas pero, a diferencia de Bitcoin, Etherum ha creado un intérprete de lenguaje de programación  mucho más extenso (Turing completo), permitiendo añadir lógica mucho más compleja dentro del blockchain. Es decir, se podría asemejar a un ordenador distribuido, el cual utiliza su criptomoneda (el ether) como la “gasolina” que necesitan el contrato para que los mineros puedan ejecutarlo. Es decir, ahora con ethereum los contratos son programas con muchas más funcionalidades y posibilidades. Aunque para ello, y esto es algo que mucha gente les critica, han tenido que crear toda una nueva red de cero, renunciando a la red de Bitcoin (la más potente del mundo).

    Todas las aplicaciones funcionan en una blockchain con una potencia de cómputo muy alta que permite a los desarrolladores crear aplicaciones descentralizadas (DAPPS): Organizaciones Autónomas Descentralizadas (DAO), Mercados de intercambio,…

    Puedes consultar, estudiar o copiar una extensa lista de aplicaciones descentralizadas desarrolladas sobre Ethereum en Ethercasts.

    ¿Quieres aprender más sobre Ethereum? A continuación te dejamos una infografía en español que podría ser de tu interés.

    Infografía Ethereum

    Si te parecen interesantes y quieres que desde Bit2Me realicemos más artículos sobre este tipo de aplicaciones descentralizadas, no dudes en comentárnoslo en nuestros perfiles sociales.

    Smart contracts en Lisk

    Esta plataforma para crear y ejecutar smart contracts de forma descentralizada fue lanzada en 2016 presentándose como una de las mejores opciones para desarrollar contratos inteligentes seguros y rápidos gracias a la utilización de Javascript (el lenguaje de programación más usado) como el lenguaje para la creación de los smart contracts, convirtiéndose así en una alternativa a Ethereum en la que el lenguaje de programación utilizado es Solidity.

    Lisk DAPPS

    Tras una exitosa pre venta de la moneda que necesitará el contrato para funcionar (el LSK), en la que se recaudaron más de 14,000 bitcoins, Lisk todavía se encuentra en una fase muy inicial pero ya dispone de varios conceptos de DAPP en los que se está trabajando como el ‘proof of existance’ o una red social para artistas llamada Discovr.

    Los oráculos

    No podemos olvidar los oráculos. Una de las características más importantes para que un smart contract pueda interactuar con el mundo real, son los llamados oráculos (oracles en inglés). Los oráculos son instrumentos que permiten actualizar estados internos de un smart contract a través de información del exterior (generalmente obtenida a través de APIs), por ejemplo obtener la cotización de una acción o divisa o si un paquete ha sido enviado por la empresa de transportes. Para explicarlo mejor imaginemos un contrato inteligente sobre una apuesta de fútbol, Madrid – Barça, el contrato usaría como oráculo una fuente oficial, por ejemplo la web de la Liga de fútbol española. En función del resultado libera los fondos al ganador. ¿Quien necesita una casa de apuestas que se queda con un porcentaje de tu dinero? Esto mismo vendría a ser una casa de apuestas sin comisiones, segura y sin intermediarios (descentralizada).

    Los oráculos también funcionan de forma autónoma. No obstante, hay que tener presente que la fuente que usa el oráculo se trata de una tercera parte en la que hay que confiar, y que podría corromperse por su dueño, crackearse, o simplemente podría fallar su servidor, algo que tiene implicaciones negativas: estamos CENTRALIZANDO la confianza, algo contrario a la filosofía blockchain. Por suerte, ya existen proyectos que están desarrollando soluciones para este problema Orisi y Oraclize. En esencia combinan el resultado de todos los proveedores de información que se le indique y es este quien determina su decisión en función de lo que la mayoría le diga. Es decir, descentraliza la obtención del resultado, algo genial.

    Esto es solo el principio

    Y hasta aquí llega, de momento, nuestro recorrido por esta apasionante rama de la tecnología blockchain. Como has visto, algunas plataformas compiten por soluciones similares en un entorno de creatividad constante pero todos con el mismo objetivo: eliminar puntos de fricción del sistema tradicional para ahorrar tiempo y dinero a la gente. A apenas unos pocos años de los primeros pasos de Bitcoin, solo unos pocos se tomarán la molestia de leer este texto (siéntete afortunado), menos aún serán los que profundizarán sobre ello y muy muy pocos los que decidirán dar un paso al frente y pasar a la acción. Está todo por hacer, hay muchos problemas, muchas cosas que funcionan mal ¿no es una oportunidad única de hacer algo?

    A poco que uno se ponga a imaginar puede vislumbrar un mañana sin grandes multinacionales monopolizando sectores, sino códigos transparentes que viven infinitamente en una cadena de bloques y son capaces de orquestar la provisión de todo tipo de servicios sin coste (o un coste ridículo comparado al actual). Vamos hacia un mundo global, pero distribuido, sin intermediarios ni grandes empresas organizando todo a su antojo en la sombra. Un mundo global con servicios globales, donde los smart contracts tienen todas las papeletas de ser la semilla de un cambio sin precedentes: se calculan más de 25 billones de dispositivos conectados a Internet en 2017, todos ellos susceptibles de ejecutar smart contracts entre ellos a diario.

    ¿Y si pudieras reducir la tasa de tu hipoteca, crear fondos de ayuda comunitarios, crear / actualizar tu testamento sin coste, asegurarte que tu amigo jamás fuera capaz de escabullirse sin pagar una apuesta o tener en tu país un sistema democrático real, justo y eficiente jamás visto hasta la fecha? Recuerda que todo esto se basa en un fundamento clave: descentralización. Y siempre sobre códigos abiertos y libres que cualquiera puede ver, estudiar, copiar y mejorar. Imagina un Uber sin Uber, un Airbnb pero sin Airbnb: Un smart contract que abre las cerraduras a la persona que paga = ahorro de intermediarios y costes (Airbnb se lleva el 10%). P2P de verdad.

    En esto y mucho más se traducen los smart contracts, ahora solo falta crear interfaces sencillas que hagan uso de este potencial en casos concretos. ¿Estás listo para ello?

  • Compra Bitcoin () VENDE Bitcoin ()

    Estás a tan solo un e-mail de conocer Bitcoin y operar con él como si tú mismo/a lo hubieras creado.

    Puedes anular tu suscripción cuando quieras.