Blockchain: Una guía para principiantes

Blockchain

No entiendo porqué a la gente le cuesta tanto entender que es Blockchain. Me pregunto porque yo tampoco lo entendía. En 2013 fue cuando escuché por primera vez hablar de Bitcoin (si, demasiado tarde). No tenía el suficiente dinero para comprar uno así que probé eso de la minería. Mas tarde pensé en estudiar la tecnología que estaba detrás, el famoso Blockchain, pero la verdad, estaba muy ocupado con mi startup (que tampoco funcionó).

Credits : xkcd

¿Entonces qué es eso del “Blockchain”?

Si analizamos la palabra Blockchain tenemos blocks(bloques) y chains (cadenas). En si, estamos hablando de una cadena de bloques. La información digital se divide en bloques que se encuentran unidos. Como ejemplo, podemos observar el siguiente diagrama dónde cada bloque representa un país y cada uno contiene las ciudades de ese país.

Todavía hay algo más. Cada uno de esos bloques tiene algo llamado “hash”. Un “hash” es un conjunto de caracteres (ej. “1hi515AHA5H” ). El hash deriva de la información contenida en el bloque. El bloque de U.S.A contiene las ciudades New York, Los Angeles, y Chicago. Por lo que el hash sería algo como “NYLAC” (Tecnicamente no es asi pero seguro que pillas la idea).

Todos los bloques sucesivos contienen el Hash del bloque anterior. Es lo que les mantiene unidos. Si alguien edita el hash del bloque U.S.A y añade por ejemplo Boston. El nuevo hash sería “NYLACB”. No obstante, el bloque que le sigue (India) ha guardado el hash “NYLAC” por lo que la cadena se rompería. El propósito del hash es asegurarse de que nadie edita, sabotea o modifica nuestro Blockchain.

¿Qué ocurre si alguien edita  los contenidos de un bloque y actualiza los hash de los bloques sucesivos?

Es posible hacerlo pero hay algo que no te he dicho. Los datos de un blockchain no están guardados en un ordenador si no que está replicado en el ordenador de todos los usuarios de la red Blockchain. Si te unes a una red, tu ordenador descargará los bloques. Si alguien modifica su versión, la red tomará por válido lo que tenga la mayoría.

Una cosa más, en una red Blockchain, no sólo los datos se replican, también el programa. Los ordenadores ejecutan el programa colectivamente. La mayor parte de apps disponibles en Internet están centralizadas. Facebook, tiene todos sus datos y programa alojados en sus servidores. Tu ordenador pide información al servidor de Facebook según la necesites. En el caso de las redes Blockchain, no hay nada centralizado. El propio ordenador del usuario tiene los datos y el programa. Si, esto significa que si todos los ordenadores de la red son apagados, la red muere.

Blockchains Públicos

blockchain
Credits : xkcd

¿Esto significa que la red Blockchain está formado por un grupo de gente que mantiene encendidos sus equipos por el bien común? ¿Qué uso le podemos dar a estos bloques que no se pueden sabotear?

Las redes Blockchain tienen una o varias funcionalidades.El Bitcoin es una moneda digital y un sistema de pago. Sus bloques a prueba de sabotajes aseguran cada transacción. A la gente que mantiene sus ordenadores funcionando se les llama mineros y son compensados en Bitcoins.

Ethereum tiene una funcionalidad adicional. Puede albergar tu propio código. Desarrollar tu propia red Blockchain desde 0 y construir una comunidad fiel puede ser muy complicado (Los mineros ponen su ordenador a disposición de la red exclusivamente). Ethereum se encarga del trabajo pesado y los mineros sólo deben pagar una cuota en base a los costes computacionales que generen.

Las apps de Blockchain no tienen porqué ser sólo criptomonedas o sistemas de pago. Pueden ser cualquier cosa como una red social o una plataforma educativa.

Blockchains Privados

blockchain

Credits : xkcd

Bitcoin y, Ethereum son ejemplos de Blockchain públicos. Todos pueden formar parte de la red. ¿Qué pasa si lo que queremos es una red privada?¿Para qué querría yo una red privada? 

Mark y Sara

Mark no ha pagado su parte del alquiler desde hace 5 meses. Cuando Sara le pregunta, el promete pagar más tarde. Ella no puede hacer nada y un abogado es caro. Los juzgados tardarían al menos un año en hacer que Mark pague así que la única opción es intentar persuadirle.

El negocio de Joe

Joe es un hombre de negocios. Tiene tratos frecuentes con diferentes compañías. Hace unos meses firmó un contrato con un nuevo cliente. A pesar de haber cumplido su parte del contrato, el cliente no quiere pagar. Esta gente se aprovecha del sistema legal vigente e intenta que Joe se contente con menos dinero del acordado. Joe ya conoce este tipo de gente y al final, entre abogados y juzgados, acaba costándole el beneficio de la operación.

¿Cómo podemos ayudar a Sara y a Joe?

En el caso de Sara, necesitamos conseguir que Mark pague la renta mensualmente. Un disparador temporal. La aplicación del calendario que llevas en el móvil utiliza el mismo tipo de disparador para enviarte una notificación cuando se acerca un evento de tu interés.

En el caso de Joe, una vez que se cumplan los términos del acuerdo, el cliente debe pagar. Es un disparador condicional. Si piensas en tu última compra en Amazón, encontrarás un buen ejemplo de disparador condicional. Si el pago no está confirmado, Amazon no te envía el producto.

El tema es que los programas de ordenador ejecutan estás instrucciones de forma consistente. Lo han hecho cuando has hecho click en este artículo. Para poder ayudar a Sara, debemos convertir los términos del contrato en código.

Pseudocódigo del contrato entre Sara y Mark

Si la fecha de hoy es 30 y el aquiler no se ha pagado, entonces
Transferir $500 de la cuenta de Mark a la cuenta de Sara

¿Pero dónde implementamos este cógido? Debe ser implementado en los ordenadores de ambas partes. El banco actuará como una parte de una red privada Blockachain. Mark y Sara firmarán un contrato codificado (a.k.a contrato smart) y sus bancos tendrán una copia del contrato . El día 30 de cada mes, cuando el reloj marque las 12:00, la cantidad será transferida de la cuenta de Mark a la de Sara.

Las redes privadas están restringidas sólo a las partes integrantes del contrato smart. Joe nunca podría formar parte de la red de Mark y Sara.

Lecturas Recomendadas

blockchain
Credits : xkcd

Ahora que ya tienes unas nociones de Blockchain te recomendamos los siguientes libros gratuitos para que profundices a tu rítmo:

Blockchain: A Practical Guide to Developing Business, Law, and Technology Solutions

Mastering Blockchain

Si te ha gustado este post seguro que te gustarán otros de la categoría:

¿Por qué hemos tardado tanto en indignarnos con Facebook?

Netflix: La empresa que nació de una multa