En el primer artículo del curso sobre cadena de bloques expliqué por qué surge y cómo se da origen al blockchain. Ahora toca profundizar un poco más sobre cadena de bloques, para que entendamos más conceptos importantes que nos ayudarán a comprender cómo usar la tecnología, o cómo la usa por ejemplo el proyecto BitCoin.

La revolución silenciosa

Aunque nos cueste creerlo, o pensar en ello, estamos en medio de una revolución: el blockchain, o cadena de bloques, es una base de datos distribuida que mantiene una lista cada vez mayor de registros ordenados, llamado "bloques".



Consideremos lo que ha pasado en tan sólo los últimos 10 años:

La primera innovación importante del blockchain, fue un experimento con la moneda digital; el bitcoin. La capitalización del mercado bitcoin -mientras escribo este artículo supera los xx mil millones de dólares, y es utilizado por millones de personas para pagos, incluyendo un mercado de grandes y crecientes remesas.

La segunda innovación importante se denominó en sí misma blockchain, que es esencialmente la comprensión de que la tecnología subyacente que hace funcionar al Bitcoin podría ser separado de la moneda y se utiliza para todo tipo de otras formas de cooperación entre organizaciones.

La tercera innovación se denomina "contrato inteligente", y se plasma en un sistema de segunda generación de cadena de bloques que se denomina Ethereum, que construyó pequeños programas de ordenador directamente en blockchain que permitiró a los instrumentos financieros, como préstamos o bonos, que se representó, en lugar de sólo el efectivo como muestras de la bitcoin. Ahora, Ethereum tiene una capitalización de mercado de alrededor de mil millones de dólares, con cientos de proyectos.

La cuarta gran innovación, la vanguardia del pensamiento actual blockchain, se llama "prueba de participación." La generación de cadenas de bloques actuales están garantizados por "prueba de trabajo", en la que el grupo con mayor potencia de cálculo total de toma las decisiones. Estos grupos se denominan "mineros" y operan grandes centros de datos para proporcionar esta seguridad, a cambio de pagos criptomoneda (conocido como fees). Los nuevos sistemas de acabar con estos centros de datos, reemplazándolos con instrumentos financieros complejos, para un grado de seguridad similar o incluso superior. Se espera que los sistemas de prueba de participación estén listos para finales del 2017.

La quinto mayor innovación en el horizonte se llama escala blockchain. En este momento, en el mundo blockchain, todos los ordenadores de la red procesa cada transacción. Esto es lento. Un blockchain escalado acelera el proceso, sin sacrificar la seguridad, por averiguar cuántos equipos son necesarios para validar cada transacción y dividir el trabajo de manera eficiente. Para manejar esto sin comprometer la seguridad y robustez legendaria de blockchain es un problema difícil, pero no uno intratable. Se espera que un blockchain a escala para ser lo suficientemente rápido para alimentar el Internet de las cosas y ir de cabeza a cabeza con los principales intermediarios de pago (VISA y SWIFT) del mundo de la banca.

Este panorama de la innovación representa tan solo 10 años de trabajo de un grupo selecto de científicos de la computación, criptógrafos, y matemáticos. Estos cambios y otros, representan un penetrante reducción de los costos de transacción. Cuando bajan los costos de transacción pasado umbrales invisibles, habrá súbita, dramática, difíciles de predecir agregaciones y desagregaciones de los modelos de negocio existentes. Por ejemplo, las subastas solían ser estrecho y local, más que universal y global, ya que ahora están en sitios como eBay. A medida que los costos de llegar a las personas cayeron, hubo un cambio repentino en el sistema. 

Predecir qué dirección seguirá la tecnología de la cadena de bloques, o imaginar cuál será su verdadero poder sería escribir sobre futurología y no lo haré.

Volvamos al blockchain...


¿Qué es el blockchain?

De acuerdo con hyperledger.org, "Un blockchain es un ledger distribuido peer-to-peer forjado por consenso, combinado con un sistema para contratos inteligentes y otras tecnologías asistenciales". Los contratos inteligentes son simplemente programas informáticos que ejecutan acciones predefinidas cuando se cumplen ciertas condiciones dentro del sistema. El consenso se refiere a un sistema para asegurar que las partes acuerden un cierto estado del sistema como el verdadero estado.

Veamos los contratos inteligentes, y los algoritmos de consenso por separado.

Contratos inteligentes


Los contratos inteligentes son simplemente programas informáticos que ejecutan acciones predefinidas cuando se cumplen ciertas condiciones dentro del sistema. Los contratos inteligentes proporcionan el lenguaje de las transacciones que permiten modificar el estado del libro mayor. Pueden facilitar el intercambio y la transferencia de cualquier cosa de valor (por ejemplo, acciones, dinero, contenido, propiedad).

Contratos inteligentes


Bitcoin: una implementación popular de Blockchain

Con la invención del sistema de caja peer-to-peer (P2P) conocido como Bitcoin en 2008, tenemos un ejemplo de una red de pago descentralizada global con una infraestructura distribuida y de propiedad pública, que funciona como un sistema "sin permiso". Existe un caso persuasivo de que Bitcoin es la primera 'aplicación asesina' de la computación descentralizada. Uno puede enviar y recibir bitcoins en cualquier lugar del mundo de forma completamente P2P, sin tener que intermediar a través de un tercero de confianza, como un banco.

De acuerdo con el sitio web CoinMarketCapitalizations, a partir de octubre de 2017, la capitalización bursátil de Bitcoin (capitalización bursátil) fue de casi $ 100 mil millones.

Según AngelList, se han creado más de mil nuevas empresas para aprovechar las tecnologías relacionadas con Bitcoin y Blockchain desde el inicio del sistema de pago Bitcoin. Cientos de grandes empresas y docenas de gobiernos y universidades se han involucrado activamente en la investigación, prueba y creación de prototipos de protocolos, plataformas y aplicaciones de blockchain. En particular, el sector de servicios financieros ha estado invirtiendo activamente en la exploración de aplicaciones más amplias de tecnologías de contabilidad distribuida (de las cuales, blockchain es un subconjunto) desde finales de 2015.


Bitcoin y la Cripto-economía

Bitcoin también ha dado lugar a un gran interés académico y de investigación en el área de la seguridad criptoeconómica y criptoeconomía.

De acuerdo con Vitalik Buterin

"Cryptoeconomics se trata de construir sistemas que tienen ciertas propiedades deseadas mediante la criptografía para probar las propiedades de los mensajes que ocurrieron en el pasado y al mismo tiempo utilizar incentivos económicos definidos dentro del sistema para alentar las propiedades deseadas para el futuro".



En otras palabras, el campo de Cryptoeconomics explora la intersección de la criptografía y los incentivos económicos. Si bien la criptografía se usa para garantizar la seguridad de la red en varios niveles y funciones, los incentivos económicos incorporados proporcionados a los nodos participantes en la red aseguran que, en cualquier punto dado, la mayoría de los jugadores en la red operan de manera deseable.

En lugar de imponer barreras a la entrada, blockchains sin permiso son públicos y abiertos para que cualquiera pueda unirse. Dado que dichas redes pueden razonablemente esperar todo tipo de agentes, incluidos los actores malintencionados, la clave está en incentivar el buen comportamiento en una mayoría crítica de la red, de modo que:
  • Los actores maliciosos no pueden controlar la red a través de un ataque escalado.
  • Los actores maliciosos no pueden confabularse para emprender un ataque mayoritario organizado en la red.
  • Los beneficios de proteger la red son consistentemente más altos que el costo de atacar la red.
  • El costo de atacar la red es prohibitivamente alto.



Ethereum: una alternativa a Bitcoin


De acuerdo con la documentación oficial de Ethereum:

"Ethereum es una plataforma de blockchain abierta que permite a cualquier persona crear y usar aplicaciones descentralizadas que funcionan con la tecnología blockchain".

La plataforma blockchain de Ethereum facilita la funcionalidad de scripting, o 'contratos inteligentes', que se ejecutan a través de los nodos en la red. Como resultado, a diferencia de la cadena de bloques de Bitcoin, no solo rastrea las transacciones, sino que también las programa. Técnicamente, Ethereum es una máquina virtual completa de Turing con su criptomoneda nativa llamada 'éter'. La plataforma fue propuesta en 2013 en un libro blanco por el entonces Vitalik Buterin de 19 años.

A partir de octubre de 2017, Ethereum tenía una capitalización de mercado de más de $ 28 mil millones, convirtiendo a ether en la segunda criptomoneda más valiosa después de Bitcoin.

Como el segundo blockchain público más conocido después de la cadena de bloques de Bitcoin, Ethereum ha introducido una era de actividad sin precedentes alrededor de blockchain y la tecnología ledger distribuida.



Dapps

Como explica Stephan Tual, las aplicaciones de Ethereum no tienen un intermediario; en su lugar, los usuarios interactúan de forma P2P con otros usuarios a través de una variedad de interfaces: social, financiera, de juegos, etc. Dado que las aplicaciones se desarrollan en la propia red descentralizada basada en el consenso, la censura de terceros es virtualmente imposible. Los actores malintencionados no pueden alterar la aplicación en secreto cambiando el código y poniendo en peligro a todos los usuarios de la aplicación (o nodos que interactúan activamente con ella). Estas aplicaciones descentralizadas se conocen como Dapps.



Como están protegidos de forma criptográfica, los Dapps se conocen como 'aplicaciones seguras'. Algunos de los Dapps de alto perfil basados ​​en la plataforma Ethereum incluyen:

  • Augur, que es un mercado de predicción descentralizada. Obtenga más información en https://augur.net/.
  • Digix, que tokeniza el oro en Ethereum. Obtenga más información en: https://digix.global/.
  • Maker, que es una Organización Autónoma Descentralizada (DAO). Obtenga más información en: https://makerdao.com/.

La red Ethereum es una red pública global distribuida, lo que significa que no se ejecuta en servidores centrales en una determinada ubicación geográfica. En cambio, la potencia de computación que ejecuta la red es aportada por nodos distribuidos por todo el mundo. En otras palabras, los Dapps tienen 'tiempo de inactividad cero', nunca bajan y, en general, no se pueden apagar.



Contratos inteligentes de Ethereum

Un ejemplo hipotético de un contrato inteligente basado en Ethereum puede implicar la siguiente transacción: en una subida de capital, transfiera la cantidad X del inversor a la empresa al recibir las acciones dadas de la empresa. El monto monetario X, que fue prevalidado por la empresa para la transacción (al igual que en una compra con tarjeta de crédito), se mantiene en custodia mediante el contrato inteligente, hasta que las acciones hayan sido recibidas por el inversionista. Cualquier tipo de lógica comercial sofisticada arbitraria puede ser comprometida con la cadena de bloques. El blockchain de Ethereum solo codifica estas 'reglas de los juegos'. Los pagos reales ocurren al interactuar con la cadena de bloques.

La siguiente ilustración describe este proceso. El contrato inteligente codifica el acuerdo entre la empresa que recauda fondos y sus inversores (Panel 1). El contrato inteligente se encuentra en el blockchain público de Ethereum y se ejecuta en la máquina virtual Ethereum (EVM). Una vez que golpea un evento desencadenante, como una fecha de vencimiento o un precio de ejercicio que ha sido precodificado, el contrato inteligente se ejecuta automáticamente según la lógica comercial (Panel 2). Como un beneficio adicional, los reguladores pueden analizar la actividad del mercado de manera continua, sin comprometer la identidad de los jugadores específicos en una cadena de bloques pública sin permiso, como Ethereum (Panel 3).

Contratos inteligentes de Ethereum

Nota: con el advenimiento de la plataforma blockchain de Ethereum y la funcionalidad de scripts o contratos inteligentes que permite, hay intentos continuos para hacer lo mismo con la cadena de bloques Bitcoin, que no permite esto, por razones de seguridad. RSK es una de esas plataformas de contratos inteligentes que busca lograr esto "con una vinculación de 2 vías a Bitcoin". La funcionalidad adicional puede ser muy útil para hacer que la cadena de bloques de Bitcoin sea útil para casos de uso que no sean transferencias en efectivo.


Algoritmos de consenso

El consenso en la red se refiere al proceso de lograr un acuerdo entre los participantes de la red sobre el estado correcto de los datos en el sistema. El consenso lleva a que todos los nodos compartan exactamente los mismos datos. Un algoritmo de consenso, por lo tanto, hace dos cosas: asegura que los datos en el libro mayor son los mismos para todos los nodos de la red y, a su vez, evita que los actores malintencionados manipulen los datos. El algoritmo de consenso varía con las diferentes implementaciones de blockchain.

Mientras que la cadena de bloques de Bitcoin utiliza Prueba de trabajo como el algoritmo de consenso, otras cadenas de bloques y libros distribuidos están implementando una variedad de algoritmos de consenso, como la Prueba de estaca, Prueba de quemadura, Prueba de capacidad, Prueba de tiempo transcurrido y muchos otros, dependiendo en sus requisitos únicos.

A continuación, explicaremos brevemente algunos de estos algoritmos.



Prueba de trabajo (PoW)

El algoritmo de consenso de prueba de trabajo implica resolver un desafío computacional desafiante con el fin de crear nuevos bloques en la cadena de bloques de Bitcoin. Coloquialmente, el proceso se conoce como 'minería', y los nodos de la red que se dedican a la minería se conocen como 'mineros'. El incentivo para las transacciones mineras radica en los pagos económicos, donde los mineros que compiten son recompensados ​​con 12.5 bitcoins y una pequeña tarifa de transacción.

Como se describe en el informe 2016 de Kudelski Security:

"La prueba de trabajo (PoW) es el resultado de un proceso de minería exitoso y, aunque la prueba es difícil de crear, [es] fácil de verificar".

Para una mejor comprensión, considere el siguiente ejemplo proporcionado por Ofir Beigel:

"(...) adivinar una combinación de un bloqueo es una prueba de un desafío. Es muy difícil producir esto, ya que tendrá que adivinar muchas combinaciones diferentes, pero una vez producido, es fácil de validar. Solo ingrese la combinación y ver si el bloqueo se abre ".

Existen múltiples críticas para el algoritmo de consenso PoW. PoW requiere una gran cantidad de energía que se gastará, dado el algoritmo computacionalmente pesado. Además, PoW tiene una alta latencia de validación de transacciones, y la concentración de la potencia minera se encuentra en países donde la electricidad es barata. En términos de seguridad de la red, PoW es susceptible al '51% de ataque ', que se refiere a un ataque a una cadena de bloques por un grupo de mineros que controlan más del 50% de la potencia de computación de la red.



Prueba de Estaca (PoS)

El algoritmo de prueba de estaca es una generalización del algoritmo de prueba de trabajo. En PoS, los nodos se conocen como los "validadores" y, en lugar de extraer el blockchain, validan las transacciones para ganar una tarifa de transacción. No se debe realizar una extracción, ya que todas las monedas existen desde el primer día. En pocas palabras, los nodos se seleccionan aleatoriamente para validar bloques, y la probabilidad de esta selección aleatoria depende de la cantidad de participación que se tenga. Entonces, si el nodo X posee 2 monedas y el nodo Y posee 1 moneda, el nodo X tiene el doble de probabilidades de ser llamado para validar un bloque de transacciones. La implementación específica de PoS puede variar, dependiendo del caso de uso, o como una cuestión de diseño de software. Las instancias incluyen Comprobante de depósito y Prueba de quemadura. El algoritmo PoS ahorra costosos recursos computacionales que se gastan en la minería bajo un régimen de consenso PoW.



Prueba de tiempo transcurrido (PoET)

Desarrollado por Intel, el algoritmo de consenso Prueba de tiempo transcurrido emula la Prueba de trabajo de estilo Bitcoin. La implementación de Sawtooth de Hyperledger es un ejemplo de PoET en el trabajo. En lugar de competir para resolver el desafío criptográfico y extraer el próximo bloque, como en el blockchain de Bitcoin, el algoritmo de consenso PoET es un híbrido de una lotería aleatoria y de un orden de llegada. En PoET, cada validador recibe un tiempo de espera aleatorio.

"El validador con el menor tiempo de espera para un bloque de transacción en particular es elegido líder".




Tolerancia de falla bizantina simplificada (SBFT)


El algoritmo de consenso tolerante a fallas bizantinas simplificadas implementa una versión adoptada del algoritmo tolerante a errores bizantinos prácticos (PBFT), y busca proporcionar mejoras significativas sobre el protocolo de consenso prueba de trabajo de Bitcoin. La idea básica involucra a un único validador que agrupa las transacciones propuestas y forma un nuevo bloque. Tenga en cuenta que, a diferencia de la cadena de bloques de Bitcoin, el validador es una parte conocida, dada la naturaleza permitida del libro mayor. El consenso se logra como resultado de un número mínimo de otros nodos en la red que ratifican el nuevo bloque. Para ser tolerante a una falla bizantina, el número de nodos que debe alcanzar el consenso es 2f + 1 en un sistema que contiene 3f + 1 nodos, donde f es el número de fallas en el sistema. Por ejemplo, si tenemos 7 nodos en el sistema, entonces 5 de esos nodos deben estar de acuerdo si 2 de los nodos están actuando de manera incorrecta.

El ejemplo práctico sería el de ByzCoin, que busca realizar mejoras clave sobre el protocolo original de Bitcoin. Al abordar el desafío de la escalabilidad debido a la alta latencia, las transacciones de ByzCoin se comprometen irreversiblemente con la cadena de bloques en cuestión de segundos. La ventaja adicional es que los árboles de comunicación "(...) optimizan los compromisos de transacción y la verificación en operaciones normales". (Informe de seguridad de Kudelski 2016).



Prueba de autoridad (PoA)


Prueba de la autoridad (PoE) es un algoritmo de consenso que se puede utilizar para los libros mayores autorizados. Utiliza un conjunto de 'autoridades', que son nodos designados que pueden crear nuevos bloques y proteger el libro mayor. Los libros mayores que utilizan el PoA requieren la aprobación de la mayoría de las autoridades para que se cree un bloque.



Comparación de enfoques de consenso con permiso y PoW estándar

El consenso puede implementarse de diferentes maneras, como mediante el uso de algoritmos basados en lotería (PoET o PoW) o mediante el uso de métodos basados en votación (SBFT), cada uno de los cuales apunta a diferentes requisitos de red y modelos de tolerancia a fallas.

Los algoritmos basados en lotería son ventajosos ya que pueden escalar a una gran cantidad de nodos. Los algoritmos basados en votación proporcionan una finalidad de baja latencia.

La siguiente tabla ofrece una vista rápida de las principales consideraciones, los pros y los contras de los diferentes enfoques comerciales de blockchain para llegar a un consenso.

Comparación de enfoques de consenso con permiso y PoW estándar

... en el próximo post seguiremos avanzando sobre blockchain.