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

in #counterparty7 years ago (edited)

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 un primer capítulo en nuestra guía dedicado a hacer una introducción a los smart contracts, no queremos que te quedes con dudas sin entender en totalidad el concepto de qué son los contratos inteligentes y cuál es 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 a Bitcoin más importantes que están plenamente focalizados en los smart contractras.

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.

Por otro lado, 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.

¿Te das cuenta del potencial de esto?

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 cotidiano.

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. Ecosistemas sin figuras autoritarias que someten a su voluntad a sus integrantes. Hablamos de un mundo más justo.

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?

El usuario y la página web se envían entre sí una clave pública recién generada.
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.
El usuario envía el hash de la primera transacción a la página web.
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.
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?
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.
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)”

Best of Bitcoin (currency and settlement system) + best of Ethereum (smart contract programming environment):

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.

Artículo de: http://blog.bit2me.com/

Sort:  

Just taking this opportunity to say "THANK YOU FOR FOLLOWING ME"

Congratulations @brainiac! You have received a personal award!

1 Year on Steemit
Click on the badge to view your Board of Honor.

Do not miss the last post from @steemitboard!


Participate in the SteemitBoard World Cup Contest!
Collect World Cup badges and win free SBD
Support the Gold Sponsors of the contest: @good-karma and @lukestokes


Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @brainiac! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.028
BTC 64377.96
ETH 3500.45
USDT 1.00
SBD 2.52