Introducción a Blockchain / Introduction to Blockchain

Federico Kunze
Blockchain at Berkeley
6 min readOct 12, 2017

Click here to view the English version of this article.

Introducción

“El comercio en internet ha llegado a depender casi exclusivamente de instituciones financieras que sirven como intermediarios de confianza para procesar los pagos electrónicos. Mientras el sistema funciona relativamente bien para la mayoría de las transacciones, aún sufre de inherentes debilidades generadas por dicho sistema basado en confianza”.

Satoshi Nakamoto

Esta es la frase que mencionó un grupo de personas (o persona), conocida(s) bajo el pseudónimo de Satoshi Nakamoto, en la introducción del artículo que posteriormente sirvió de base para la creación de Bitcoin. Efectivamente, los costos de intermediación hoy en día encarecen el costo de las transacciones y la falta de confianza muchas veces hace imposible lograr un acuerdo entre usuarios desconocidos

Blockchain nace para crear confianza sin necesidad de un intermediario

La tecnología Blockchain permite que los usuarios vuelvan a confiar en el sistema, sin necesidad de depositar toda la confianza en otras personas o en una autoridad central. Además, esto soluciona el problema de los altos costos debido a que en cada transacción realizada los intermediarios obtienen un porcentaje de ganancia (ej: bancos, corredoras de propiedades, sitios de comercio, etc).

Qué es Blockchain

Blockchain es un registro distribuido e inmutable de transacciones entre entidades. Este registro almacena balances de cuentas, los propietarios de los activos y mensajes entre ellos. Es distribuido porque la información es compartida por todos los nodos que conforman la red. Es confiable e incensurable ya que no existe autoridad central que pueda ser propensa a errores o fraudes. Finalmente, es inmutable ya que una vez que se registra una transacción, no puede ser alterada.

El problema del doble gasto y el mecanismo de consenso

Blockchain es revolucionario porque resuelve el problema de doble gasto propio de los activos digitales sin depender de una autoridad central. Por ejemplo, si tengo una canción o un archivo de texto en mi computador, puedo crear copias de ellos y compartirlas. Sin embargo, si creara un archivo que represente una moneda virtual, ¿quién previene de crear múltiples copias de mi dinero digital?

En la imagen se ejemplifica el problema de doble gasto, en el cual varios usuarios interactúan entre ellos de forma pública y descentralizada (sin intermediario). Alice debe pagar 10 Bitcoins (BTC) a Bob y a Gloria. Sin embargo, solo cuenta con recursos para hacer una de las dos transacciones. Alice crea las transacciones para ambos, pero solo el primero que recibe la transacción obtiene los 10 BTC (tal como cuando un cheque rebota). Dado que red es pública, el resto de los usuarios se da cuenta de esta acción irregular, por lo que se genera consenso por parte de la mayoría de la red y la transacción se revierte y se vuelve inválida.

La imagen ejemplifica el problema del doble gasto y el mecanismo de consenso

El ciclo de una transacción

Anteriormente, se mencionó la importancia del proceso de validación de las transacciones generadas en la red. A continuación, se detalla el ciclo que hace una transacción desde que es emitida hasta que es agregada al blockchain:

  1. El remitente realiza la transacción a la dirección de la cuenta del destinatario. Dicha transacción contiene la firma del propietario de los fondos generada a partir de una llave secreta (contraseña aleatoria generada criptográficamente) que sólo él conoce y luego se anuncia a la red.
  2. Los nodos que conforman la red reciben la transacción y la validan, al comprobar que la firma sea válida y que el remitente tenga suficientes fondos para hacer la transferencia.
  3. La transacción se propaga por la red para que los nodos tengan registro de ella y se añade a un montón de transacciones verificadas (transaction pool), pero aún no añadidas a la cadena de bloques .
  4. Algunos usuarios aseguran y validan la red al recoger transacciones del montón priorizadas según la razón dada por propina/(tamaño de la transacción) para posteriormente agruparlas en bloques, los que deben ser añadidos a una “cadena” de bloques donde cada bloque está enlazado con el anterior.
  5. Para para enlazar un nuevo bloque, dichos usuarios validadores deben resolver un puzzle matemático mediante prueba y error (imagina probar números totalmente al azar entre 1–9 para encontrar la solución de un Sudoku). Este puzzle es resuelto cuando se encuentra número (nonce) que al ponerlo como input del puzzle, genera como output una cierta cantidad de ceros al comienzo de dicho output. Mientras más ceros, mayor es la dificultad del puzzle.
  6. Con el nonce encontrado que resuelve el puzzle, el usuario prueba que se ha realizado el trabajo de verificación (i.e, se ha resuelto el puzzle) y validación del bloque. Esta prueba de que se ha resuelto el puzzle se conoce como Proof-of-Work y una vez realizada, el usuario puede anunciar a la red que ha encontrado la solución al enlazar su bloque al final de la cadena.
  7. El usuario que valida recibe una recompensa en criptomonedas realizar el Proof-of-Work. Este proceso es conocido como minado, ya que se crean nuevas criptomonedas por realizar dicho trabajo de validación, mientras que los usuarios que realizan este trabajo se les llama mineros. Actualmente, la recompensa por el trabajo de minado es 12.5 BTC para Bitcoin y 3 ETH para Ethereum.
La cadena de bloques enlaza cada nuevo bloque con su predecesor

De esta forma, la cadena se vuelve inmutable. Por ejemplo, para modificar el valor de una transacción en el bloque 3, se debe volver a realizar el puzzle matemático para encontrar un nuevo nonce que lo resuelva para los bloques 3, 4, y así sucesivamente hasta el bloque más reciente.

Algunas Aplicaciones

La principal aplicación de blockchain son las inversiones en criptomonedas y en ICOs, que es la forma de capitalización de nuevas compañías descentralizadas. Sin embargo, existen muchas aplicaciones que van más allá del ámbito financiero.

En general, existen tres principales situaciones de uso para las aplicaciones que se pueden construir sobre blockchain:

Las aplicaciones financieras son una de las principales situaciones en que se usa blockchain
  1. Financieras: Criptomonedas, ICOs, billeteras digitales, cuentas de ahorro con multifirmas, etc.
  2. Semi-Financieras: Sistemas basados en fideicomiso, financiación en una cadena de suministros, mercados descentralizados entre usuarios (OpenBazaar), mercados de predicciones descentralizados (Augur), entre otros.
  3. No Financieras: Almacenaje de archivos de forma descentralizada (IPFS y Storj), procedencia de activos en una cadena de suministros, sistemas de balotaje y votación, gobiernos autónomos descentralizados (DAO por sus siglas en inglés), etc.

Conclusión

Blockchain permite construir confianza en una red de usuarios sin necesidad de confiar en los individuos gracias a su registro inmutable mediante el enlace de cada nuevo bloque generado con su antecesor y a la validación de las transacciones en la red por parte de los mineros.

El hecho de que Blockchain reduzca los costos causados por la intermediación de una entidad o autoridad central permite que las aplicaciones de esta tecnología vayan muchos más allá del uso financiero o con fines de inversión.

A continuación, adjunto una lista de lectura no técnica de blockchain recopilada por Ashley Lannquist, consultora en Blockchain at Berkeley.

¿Quieres saber más de blockchain? ¿Quieres entender en profundidad las situaciones de uso e implementar blockchain en tu empresa? En Blockchain at Berkeley entregamos educación y consultoría a compañías, nos hacemos cargo del desarrollo de estrategia de blockchain e implementación de soluciones usando smart contracts. Contáctanos al correo consulting@blockchain.berkeley.edu

Gracias a Juan F. Serrano y Gloria Zhao.

--

--

Federico Kunze
Blockchain at Berkeley

Software Developer @ Tendermint | Blockchain Developer @ Blockchain at Berkeley