Mantenimiento de un registro de Tokens: Bitcoin, Blockchain y otros Registros Distribuidos - Token-Economy-Book/2ndEdition-Spanish GitHub Wiki
Las redes de blockchain se desarrollan sobre la idea de redes P2P, proveyendo un conjunto de datos universal en el que todo actor puede confiar, aún cuando no conozca o confíe en los demás actores. Copias inmutables de esos datos se almacenan en y gestionan por cada nodo de la red. Incentivos económicos representados por tokens nativos de la red se usan para que la red sea resistente a ataques, a colusión y faltas.
El concepto de “blockchain” fue introducido por el white paper de Bitcoin en octubre de 2008, con el fin de crear un “dinero P2P sin bancos”. El paper, publicado bajo un pseudónimo de Satoshi Nakamoto, proponía un sistema en el que todas las computadoras de la red tienen una copia idéntica del registro de transacciones, que sirve de único punto de referencia para todos en la red. Todos los nodos de la red colectivamente actualizan y gestionan este registro, que representa un conjunto universal de datos en el que cada actor puede confiar, aun cuando podría no conocer ni confiar en los demás actores. Personas e instituciones que no se conocen o no se confían, y que residen en diferentes países y están sujetos a distintas jurisdicciones, y que no tienen contratos vinculantes entre ellos, ahora pueden interactuar en Internet sin necesidad de recurrir a terceros de confianza como bancos, plataformas de Internet, u otro tipo de cámaras compensadoras.
El problema del Doble Gasto: Esta nueva forma de gestión distribuida de datos resolvió el problema del doble gasto en Internet. Por la forma en la que Internet está diseñada hoy, uno puede gastar el mismo valor -representado como un archivo digital- varias veces, porque la información digital puede ser copiada, y las copias del mismo archivo digital pueden ser enviadas de una computadora a muchas otras al mismo tiempo. Antes de la aparición de Bitcoin, ideas sobre redes P2P con seguridad criptográfica habían sido discutidas en diferentes momentos de evolución, principalmente en papers académicos, desde 1980 (leer más: Anexo - Orígenes de Bitcoin). Sin embargo, nunca había habido una implementación práctica de una red P2P que pudiera resolver el problema del doble gasto sin tener que recurrir a un tercero de confianza que garantizara el intercambio de valor. El protocolo de Bitcoin introdujo un mecanismo que volvía costoso poder realizar una copia de un valor digital.
Blockchain: En una red de blockchain, las transacciones de tokens son registradas en lotes de datos llamados “bloques” que son “hasheados”. El hash criptográfico crear una huella digital del bloque (leer más: Parte 1 - Seguridad del Token: Criptografía). Cada bloque incluye el hash del bloque anterior, con lo cual cada bloque está vinculado en forma de cadena. Este proceso garantiza la integridad histórica de todos los bloques hacia atrás y hasta el primer bloque, generalmente llamado bloque génesis. Si los datos de un bloque son alterados, el valor del hash del bloque y los siguientes bloques cambiará, y todos los nodos de la red sabrán que los datos han sido alterados. Esta lista creciente de bloques encadenados es denominada el registro.
El registro es un archivo que contiene una lista creciente de registro de transacciones, encadenados en bloques que son criptográficamente protegidos de manipulación y alteración. Si hubiera un intento de manipulación, el valor del hash del registro manipulado no coincidiría con el valor del hash registrado en las copias del registro en todos los otros nodos. Por ello el valor del hash de un bloque sirve como una protección contra falsificación que puede ser utilizado para corroborar la autenticidad de una transacción en el registro.
Registro Distribuido: Una copia del registro está almacenada en múltiples nodos de una red P2P con protección criptográfica. Para poder cambiar los datos del registro en todas las copias en toda la red, los nodos de la red deben acordar tal cambio. Un registro distribuido es un registro compartido, público, confiable de transacciones que toda persona puede revisar, pero que ningún usuario individual controla. Cada nodo independiente tiene la última versión del registro, que contiene todas las transacciones que se han hecho, y puede verificar las transacciones. Este proceso es denominado “consenso”. Esto es particularmente útil en diseños inter-organizacionales donde ninguna institución quiere confiar en otra respecto al manejo de sus datos.
Tokens: El término “token” es simplemente una metáfora. Contrariamente a lo que la metáfora podría sugerir, un token no representa un archivo digital que es enviado desde un dispositivo a otro. En cambio, representa una entrada en el registro que pertenece a una dirección de blockchain. Solo la persona que tenga la llave privada para esa dirección puede acceder a los respectivos tokens, usando un software billetera, que actúa como un cliente de la blockchain (leer más: Parte 1 - Seguridad del Token: Criptografía, Billeteras).
A diferencia de las bases de datos distribuidas, donde los datos están distribuidos pero gestionados y controlados por una única entidad, las redes de blockchain permiten un control distribuido. Diferentes personas e instituciones que no se confían mutuamente comparten información sin requerir un administrador central.
Como una hoja de cálculo en la nube: El registro también podría ser descripto como una hoja de cálculo en la nube. Piensa en aplicaciones en la nube como “Google Sheets”, donde todos pueden acceder y editar un archivo de manera simultánea. Pero, a diferencia de Google Sheets, donde el archivo está almacenado centralizadamente en los servidores de Google, el registro de una red de blockchain es un documento que no está almacenado de manera centralizada. En cambio, cada nodo de la red tiene una copia idéntica del mismo archivo todo el tiempo (con excepciones temporales cada vez que se crea un nuevo bloque).
Estado Universal: Cada computadora de la red gestiona su propia copia idéntica del registro, que actúa como un conjunto universal de datos a lo largo de toda la red, garantizando que cada token sea transferido solo una vez. Por ello el registro representa el estado universal de la red, en el que todos los nodos de la red estén de acuerdo. Sirve como un notario digital y una estampa de tiempo públicamente verificable.
Transacciones de Bitcoin: Cuando se usa la red de Bitcoin, en lugar de que un banco valide transacciones financieras, todas las computadoras de la red verifican sus copias del registro para validar transacciones, y de manera colectiva confirman transacciones por consenso de la mayoría. No se confía en ningún usuario por sobre otro. En lugar de una única tercera parte de confianza validando transacciones a través de sus servidores y por su sola autoridad (voto único), una red de computadoras P2P que corre en un protocolo de blockchain valida las transacciones por consenso (voto de la mayoría).
El protocolo es una serie de reglas y procesos que definen cómo todo los nodos (anónimos) en la red pueden ponerse de acuerdo en el estado verdadero de la red. El protocolo define cómo los participantes en la red interactúan entre ellos: (i) bajo qué condiciones será válido enviar tokens de A hacia B; (ii) las recompensas económicas por validar transacciones con un token criptográfico; (iii) cómo referenciar identidades y firmar transacciones; y (iv) quién decide las mejoras de la red.
Criptoeconomía: La criptografía asegura la red y provee transparencia absoluta para todos los participantes, a la vez que mantiene la privacidad de cada actor individual. También asegura que las transacciones anteriores son verdaderas. La teoría de los juegos es aplicada para asegurar que las futuras transacciones serán realizadas de manera honesta por parte de consenso de la mayoría de todos los actores de la red, asumiendo que todos los actores podrían ser corruptos. El mecanismo de consenso está diseñado para dificultar la manipulación del registro.
Consenso: Prueba-de-Trabajo es el “mecanismo de consenso” usado por la red de Bitcoin para dirigir la acción colectiva de un conjunto anónimo de actores de la red. Está basado en principios criptoeconómicos. La teoría de juegos inversa es usada para recompensar a los actores de la red con un token nativo de la propia red. En el caso de la red de Bitcoin, el token es el Bitcoin. Este mecanismo de recompensa está diseñado para hacer económicamente inviable hacerle trampa a la red, debido a la prohibitiva capacidad y poder de computación que sería necesario para hacerlo, tomando en consideración escenarios de ataques extremos. Las reglas de consenso están diseñadas de un modo tal que vuelvan a la red resistente a ataques, a pesar de la ausencia de partes centralizadas que gobiernen la honestidad de las actividades de la red.
Identidades: Una dirección de blockchain, que es derivada de una llave privada, representa una identidad pseudónima del propietario de un token. Los tokens están registrados como propiedad de una determinada dirección en el registro público. Sólo el dueño de tal dirección puede solicitar enviar esos tokens a otra dirección. Para demostrar su propiedad a otros participantes de la red, los tenedores de tokens necesitan firmar transacciones con sus llaves privadas. Esta forma de gestión de la identidad está totalmente basada en funciones matemáticas, permitiendo a otras computadoras de la red confirmar la validez de la transacción sin necesidad de conocer a la persona ni de conocer su llave privada (leer más: Parte 1 - Criptografía e Identidades centradas en el Usuario).
Máquina Contable y de Gobernanza: Las redes de blockchain también pueden ser descritas como una máquina contable distribuida, o máquinas de gobernanza supranacional que son públicas y transparentes. Proveen una capa de gobernanza para la Internet. Todos los participantes de la red tienen igual acceso a los mismos datos (casi) en tiempo real. Las transacciones son colectivamente gestionadas. Son transparentes para todos los actores y pueden ser trazadas hasta su origen.
Organización Descentralizada y Autónoma (DAO): El registro es colectivamente gestionado por nodos autónomos de la red, y esta es la razón por la cual presenta una nueva forma de infraestructura organizacional, comúnmente conocida como DAO (leer más: Parte 2 - Economía y Gobernanza Institucional de la DAO; Parte 4 - Tokens Guiados por Propósito).
Explorador de Bloques: Debido a la naturaleza pública de las redes de blockchain, cualquiera puede hacer big data en el registro, como trazar todas las transacciones de tokens, medir la tasa de hash total de la red, el suministro de tokens, y el crecimiento de las transacciones, etc. Sin embargo, mientras todos los datos del registro son públicos, pocas personas tienen la habilidad requerida para hacer analítica avanzada de datos en la blockchain. Los exploradores de bloques son aplicaciones de terceros que permiten que todos puedan públicamente explorar todas las transacciones de una red en particular, como Bitcoin y otras redes públicas de blockchain. Los exploradores de bloques son como un motor de búsqueda dedicado para datos relacionados con blockchain. Sin embargo, el nivel de transparencia también genera problemas relacionados a la privacidad. Estos problemas relacionados a la privacidad están siendo abordados con nuevos protocolos de blockchain que usan métodos de encriptación que preservan la privacidad (leer más: Parte 3 - Tokens de Privacidad).
El desafío subyacente a una red P2P con un conjunto de nodos anónimos es cómo gestionar a los nodos maliciosos dada la ausencia de una parte central que asegure el sistema. Uno debe siempre asumir que habrá actores malos intentando trastocar toda red pública y abierta. ¿Cómo una red distribuida puede acordar qué datos son correctos o incorrectos, o qué proceso es verdadero y falso dada una configuración que parte de la desconfianza? Esto es conocido como el “Problema de los Generales Bizantinos”. Un nodo malicioso, también llamado un nodo bizantino, puede intencionalmente enviar información incorrecta a todos los demás nodos que participan del proceso de consenso. Las fallas bizantinas son consideradas las más difíciles dentro de una red distribuida. Mecanismos de consenso robustos deben resistir ataques DDoS (Denegación Distribuida de Servicios), ataques sybil[^1] y otros ciber ataques. Antes de la irrupción de Bitcoin, se creía imposible poder alcanzar un consenso entre nodos que no se confían dentro de una red P2P que fuera resistente a ataques y a fallas.
Por primera vez en la historia de la computación distribuida, el protocolo de Bitcoin introdujo una solución matemática a este problema con la “Prueba-de-Trabajo”, lo que volvió económicamente desproporcionado el costo de un ataque en relación al beneficio de atacar. Se dio nacimiento a un nuevo campo de la ciencia sobre los juegos de coordinación económica utilizando herramientas criptográficas, conocido como “Criptoeconomía”. La criptoeconomía puede ser definida como el estudio de la interacción económica en ambientes de falta de confianza, donde cada actor podría potencialmente ser corrupto. Es interdisciplinaria, y requiere un profundo conocimiento de la criptograafía, la economía, y las redes P2P, y qué motiva a los actores de la red. La infraestructura de llave pública-privada garantiza acceso y control a nuestros tokens de una manera resistente a ataques. Las funciones de hasheo permiten a los nodos verificar transacciones que se hacen en la red. Tanto las funciones de hasheo como la criptografía de llave pública-privada son necesarias para el juego de coordinación económica llamado Prueba-de-Trabajo, para recompensar a los mineros que agregan bloques con transacciones genuinas al registro. Los mecanismos criptoeconómicos proveen un equilibro de seguridad que vuelven a la red resistente a ataques, resistente a fallas y resistente a la colusión. Esto permite a los nodos anónimos de la red acordar en el estado de todas las interacciones en la red. La red de Bitcoin es la primera aplicación práctica de la criptoeconomía. Produce una “confianza por matemática” antes que una “confianza por contrato legal”.
Sin embargo, la seguridad depende en la resiliencia de las asunciones sobre cómo reaccionarán los actores de la red frente a los incentivos económicos. Las reacciones de las personas frente a los incentivos ha sido un campo de estudio de la Economía desde tiempo atrás. De allí que la criptoeconomía tenga mucho en común con el diseño de mecanismos, un campo de la economía relacionado a la teoría de los juegos. La teoría de los juegos analiza las interacciones estratégicas, que son conocidas como juegos. Trata de entender cuál sería la mejor estrategia para cada jugador si ambos jugadores deciden maximizar el mejor resultado común. El diseño de mecanismos define resultados deseados y trabaja hacia atrás creando un juego que incentiva a los jugadores en dirección al resultado deseado. Mientras la criptoeconomía es interdisciplinaria, es una disciplina desarrollada predominantemente en la comunidad de la ciencia de la computación. Pareciera que hay bastante espacio para incorporar métodos de otras disciplinas económicas, y de otras disciplinas (más de esto en el próximo capítulo y en la Parte 4 - Tokens guiados por Propósito).
“Prueba-de-Trabajo” (PdT) es el mecanismo de consenso usado en la red de Bitcoin y en otras redes de blockchain similares para garantizar que una transacción enviada a la red es válida. El mecanismo desarrolla la asunción de que todos los nodos de la red podrían potencialmente ser corruptos, y que el menor denominador común es el dinero. La Prueba-de-Trabajo está diseñada de modo tal que (i) si quieres gastar dinero y respetas las reglas, puedes ganar tokens de la red; (ii) no es negocio hacer trampa porque el minado requiere un hardware para computadoras específico y consume grandes cantidades de energía.
Cuando los tokens son enviados a la red, cada nodo de la red puede proponer nuevas entradas al registro. Estos nodos validan transacciones y compiten entre ellos resolviendo un complejo problema computacional. En este proceso, tienen que reunir todas las transacciones recientes, incluyendo algunos metadatos adicionales, verificar las transacciones, adivina un número pseudo-aleatorio (el “nonce”), y pasa todos los datos en un algoritmo criptográfico (SHA-256) para encontrar el hash del nuevo bloque. Esto significa que tienen que realizar trabajo computacional, que es la razón por la cual el proceso es conocido como “Prueba-de-Trabajo”.
Si un nodo es el primero de la red en descubrir el valor del hash, puede agregar un bloque nuevo a su registro y transmitir el valor del hash del bloque nuevo al resto de la red, incluyendo todos los datos del bloque. Los otros nodos pueden ahora verificar la validez del hash. Si aceptan el nuevo bloque de transacciones agregado como un bloque válido, agregan este bloque a su copia del registro. Prueba-de-Trabajo está diseñado de un modo en que el hash es difícil de encontrar, mientras que las soluciones son fácilmente verificables como verdaderas. El nodo ganador es recompensado con la “recompensa por bloque” mediante la emisión de un nuevo token de la red (más potenciales comisiones por transacción). Esta es la razón por la que el proceso es conocido como “mindo”. El hash de un bloque válido representa el trabajo hecho por un minero. Al momento de publicarse este libro, la recompensa por la creación exitosa de un bloque en la red de bitcoin es 6.25 BTC por bloque. La recompensa por bloque se reduce en un 50% cada 210.000 bloques, más o menos cada cuatro años. El próximo “halving” de las recompensas por bloques será en 2024.
Encontrar el valor correcto del hash requiere cierto trabajo, en la forma de tiempo de procesamiento de una computadora, lo que se denomina “función de costo de CPU”. Si un minero corrupto fuera la computadora más rápida en encontrar el hash, el resto de la red no aceptaría su bloque de transacciones. Por ello, el minero corrupto no obtendría la recompensa por bloque, a pesar de haber invertido poder de cómputo y energía. Esta es una medida económica para desincentivar ataques a la red. Un actor económicamente racional no le haría trampa al sistema, ya que ello implicaría costos hundidos en energía e inversiones en infraestructura. A través del callejón de los costos de infraestructura y electricidad, se vuelven prohibitivamente caros los ataques a la red. Un ataque exitoso requeriría mucho poder de cómputo, consumo de energía y tiempo. Debido a su intensidad computacional, la red de Bitcoin es muy energía-intensiva.
La “dificultad” de encontrar el valor del hash, para poder crear un bloque, se ajusta de tiempo en tiempo para mantener un tiempo entre bloques de 10 minutos [^2] relativamente constante. Se ajusta periódicamente como una función de cuánto poder de hasheo ha sido desplegado en la red por los mineros. Si los bloques se crean en menos de 10 minutos, la dificultad aumenta. Igualmente, si un bloque demora más de 10 minutos en ser creado, la dificultad decrece. La dificultad también aumenta con el nivel de competencia -el número de otras computadoras compitiendo por validar un bloque.
La red de Bitcoin es (i) de código fuente abierto, (ii) pública, y (iii) no permisionada. La naturaleza de código abierto refiere al hecho de que cualquiera con las habilidades necesarias puede contribuir al protocolo en una manera pública. Es más, cualquiera puede usar el código, modificarlo, y crear su propia versión de una red de pagos P2P. “Pública” refiere al hecho de que cualquiera puede usar la red como un sistema de pagos (usuario), y que cualquiera puede descargar el protocolo y el registro y verificar transacciones (nodos completos). “No permisionada” refiere al hecho de que cualquiera puede descargar el protocolo y el registro y escribir transacciones en el registro (mineros). En la red de Bitcoin, hay cuatro tipos de nodos: nodos completos, nodos mineros, pooles de mineros, y nodos livianos.
Los nodos completos gestionan el historial completo de la red de Bitcoin (el registro) y validan nuevas transacciones a medida que se agregan al registro. Cualquiera que sea un nodo completo puede enviar y recibir tokens de Bitcoin, y verificar la integridad de las transacciones, sin tener que depender en un tercero. Verificar transacciones es una función complementaria del minado de Bitcoin. Mientras que el minado de Bitcoin se hace casi exclusivamente con hardware específico, un nodo completo que solo valida transacciones puede correr en una computadora normal del hogar con hardware estándar de procesamiento. En los inicios de la red de Bitcoin, todos tenían que descargar el registro completo para poder enviar transacciones. Hoy, los desarrolladores de softwares de billeteras ofrecen la opción de nodos livianos (ver abajo).
Los nodos mineros (mineros) compiten por el derecho a crear un nuevo bloque y agregar transacciones al registro. Solo pueden “minar” o “agruparse para minar”. Si minan solos, necesitan mantener su propia copia completa del registro. Los mineros ganadores son recompensados con tokens de Bitcoin por crear bloques nuevos (recompensa por bloques). El preciso mecanismo de recompensa está especificado en el protocolo. Además de la recompensa por bloque, los mineros también pueden ganar comisiones por transacciones. Sin embargo, estas comisiones no son obligatorias según el protocolo, pero pueden ser cobradas por un minero en el libre mercado. Las comisiones por transacción generalmente aumentan cuando el tráfico de la red es alto y la red se congestiona.
Grupos de Minería: Con el paso de los años, los mineros individuales comenzaron a colaborar y a formar cárteles de nodos mineros. En un escenario de grupos de minería, los mineros individuales colaboran con otros mineros para agregar bloques y recibir recompensas por bloques. El operador del grupo de minería mantiene un nodo completo y los mineros individuales contribuyen su CPU (también denominado poder de hasheo). Al usar el poder de hasheo acumulado por todos los mineros individuales, tienen más chances de ser la computadora más rápida en resolver el acertijo y agregar un bloque nuevo al registro. Sin embargo, el white paper de Bitcoin no contempló esta forma de colaboración entre los mineros. Las asunciones económicas fueron hechas sobre la teoría simple de los juegos, y no sobre la teoría de juegos colaborativos. Como resultado, la red de Bitcoin se ha convertido en un sistema mucho más centralizado que el originalmente previsto. Algunos afirman que esta realidad del mecanismo de consenso de Bitcoin puede ser llamada “Prueba-de-Trabajo Delegada”, y se ha convertido en un oligopolio de un puñado de grupos de minería, lo que puede no reflejar la intención original del creador de Bitcoin, Satoshi Nakamoto.
Los nodos livianos son creados para verificación simplificada de pagos (VSP) en aplicaciones de billetera para teléfonos inteligentes. Por esta razón se los conoce como Nodos-VSP, o Clientes-VSP. A diferencia de los nodos completos, los nodos livianos no mantienen todo el registro, y solo almacenan copias de los títulos de todos los bloques de transacciones. No pueden verificar transacciones autónomamente, dado que no tienen acceso a toda la información almacenada en el registro. Los nodos livianos dependen de la información dada por otros pares n la red que sí tienen acceso a todos los datos del registro.
A diferencia de los nodos mineros, los nodos completos no tienen un incentivo económico directo para validar transacciones. Sin embargo, hay incentivos indirectos para correr nodos completos en lugar de nodos livianos. En el caso probable de una mejora de protocolo, sólo los que corren nodos completos tienen derecho a votar en cómo debiera ser la mejora. Otra razón de correr un nodo completo es el mayor grado de privacidad dado que los nodos completos mantienen el registro completo y todo el historial de transacciones en su propio dispositivo. Esto es muy distinto a cómo funcionan los nodos livianos. Los nodos livianos dependen de servidores de terceros para transmitir transacciones a la red, lo que significa que los servidores de esos terceros conocen el historial de transacciones de un nodo liviano.
Todas las entradas del registro sólo pueden leerse. Una vez que un bloque de transacciones es aceptado por la red, no puede ser fácilmente modificado o borrado. Para borrar o modificar un bloque, todos los bloque debieran ser re-computadoras, lo que requiere que una mayoría de los participantes de la red acuerden en tales cambios. Un atacante tendría que re-hacer todo el trabajo computacional de los bloques siguientes, en la mayoría de los nodos de la red. Esto implicaría controlar, o sobornar, a la mayoría de los nodos de la red. Aún si fuera posible realizar toda esa computación en el período de creación de bloques, el costo sería mucho mayor que las recompensas por atacar la red. Mientras que la manipulación es posible, el mecanismo está diseñado para hacerla improbable.
Estos sitios de Internet dan información en tiempo real sobre cuánto cuesta en este momento atacar diferentes redes de blockchain con un llamado “ataque del 51%”. Una red de Prueba-de-Trabajo es segura mientras más del 50% del trabajo sea hecho por mineros honestos. Un ataque del 51% ocurre cuando una sola persona o institución puede controlar a la mayoría del poder de hash o poder computacional para manipular la red. En los 10 años de historia de Bitcoin, ninguna manipulación por parte de un atacante externo ha sido exitosa.
-
Herramienta online para verificar cuánto costaría atacar la red de Bitcoin:
https://gobitcoin.io/tools/cost-51-attack/ -
Herramienta online para verificar cuánto costaría atacar diferentes redes de blockchain:
https://www.crypto51.app/
Un ataque exitoso del 51% podría tener el siguiente impacto: te permitiría (i) cambiar bloques agregando o borrando transacciones, lo que requiere una Prueba-de Trabajo adicional (mientras más antigua la transacción, más difícil el ataque); (ii) excluir participantes y transacciones hechas por tales participantes; (iii) hacer transacciones y luego revertirlas; y (iv) cambiar las reglas del protocolo.
Lo que un ataque del 51% no puede hacer es cambiar transacciones existentes o falsas, como (i) modificando la cantidad enviada en una transacción existente; (ii) modificando al destinatario de una transacción; o (iii) enviar los tokens de alguien sin su permiso. Esto se debe a que todas las transacciones tienen que ser firmadas por la llave privada del tenedor del token, la que no puede ser revelada por un acuerdo de la mayoría de la red. Modificar un detalle de una transacción existente volvería “ilegítimo” el registro, dado que una transacción sin firma válida estaría incluida en el registro. Este tipo de modificaciones sólo puede hacerse forzando la llave privada de un actor de la red. Alternativamente, uno podría atacar el algoritmo criptográfico (SHA) para atacar a la red, que es la razón por la cual es esencial usar algoritmos criptográficos que sean propiamente testeados contra ataques (leer más: Seguridad del Token: Criptografía).
En la ingeniería de software, las “bifurcaciones de software” refieren al hecho de que cualquier software libre y de código abierto puede ser copiado y modificado sin permiso previo del equipo original de desarrollo y sin violar la ley de derecho de autor. El término a veces se refiere también a la división de la comunidad de desarrollo sobre un proyecto existente, antes que sólo al código. La naturaleza de código abierto de las redes públicas de blockchain permite a cualquier descargar el código, modificarlo, y comenzar a crear una red separada basada en un pieza distinta de código.
De este modo, uno puede (i) crear una nueva red desde cero simplemente copiando el código base existente y modificandolo para crear una nueva red (“Zcash” y “Litecoin,” por ejemplo, están basadas en el código de Bitcoin), o (ii) bifurcar una red existente, incluyendo el registro existente y su comunidad, en una continuación diferente con la finalidad de actualizar el protocolo. Estas actualizaciones de protocolo pueden causar una división de la red como resultado de disputas sobre las actualizaciones del protocolo (como sucedió con “Bitcoin Cash” y “Ethereum Classic”) o una secesión intencional basada en razones económicas, las que frecuentemente están diseñadas para extraer valor económico más que por discusiones filosóficas sobre el protocolo (como fue el caso con “Bitcoin Gold,” “Bitcoin Diamond,” y “Bitcoin Platinum”). Las clases y las reglas de las bifurcaciones de software dependen de los protocolos formales e informales de cada red. La red de Bitcoin y otras redes similares distinguen entre “bifurcaciones duras” y “bifurcaciones blandas”:
Una “bifurcación dura” (hard fork)** es un tipo de cambio de protocolo que no es compatible hacia atrás. Los nodos que no actualicen hacia la nueva versión del protocolo no podrán procesar transacciones. Todos los nodos que validen transacciones según el viejo protocolo tratarán a los bloques producidos de acuerdo al nuevo protocolo como inválidos. Los nodos que quieran adoptar el nuevo protocolo deberán actualizar su software.
Una bifurcación blanda (soft fork) es un tipo de cambio de protocolo que es compatible hacia atrás. Los nodos que no actualicen el protocolo podrán seguir procesando transacciones si no rompen las reglas del nuevo protocolo. Los bloques producidos por mineros que usan el protocolo actualizado son aceptados por todos los nodos de la red. Los bloques producidos por mineros que usan el viejo protocolo son rechazados por los nodos que usan la nueva versión del protocolo. Si los mineros de la versión vieja ven que sus bloques son rechazados por parte de la red, se podrían inclinar a actualizarse. Las bifurcaciones blandas son, en consecuencia, un poco más graduales en su proceso de votación que las bifurcaciones duras e insumen varias semanas. Si una mayoría de mineros se actualiza al nuevo protocolo, se lo denomina bifurcación blanda activada-por-mineros (MASF). Si los nodos completos se coordinan, sin apoyo de los mineros, se lo denomina bifurcación blanda activada-por-usuarios (UASF).
Una división puede ocurrir cuando algunos nodos de la red continúan usando el viejo protocolo mientras que otros usan el nuevo protocolo. Las actualizaciones técnicas de protocolo ocurren muy frecuentemente, y generalmente no generan mucha discusión, especialmente cuando involucran pequeñas mejoras técnicas. La cadena más corta muere y el token pierde su valor de mercado. Sin embargo, la corta historia de las redes de blockchain ha demostrado que las decisiones más politizadas sobre actualizaciones de protocolo pueden generar una división de la red, en la cual la cadena minoritaria tiene suficientes seguidores o una narrativa política que le permite mantener una economía propia. Un aspecto clave de esto es la división del poder intelectual de los desarrolladores que soportan una red, o la otra. A medida que la comunidad se divide, los desarrolladores deben optar por una u otra red, lo que puede producir un faltante de poder de desarrollo. Los mineros también deben elegir con qué red continuarán trabajando (leer más: Parte 2 - Economía y Gobernanza Institucional de las DAOs).
En el caso de las bifurcaciones duras, cualquiera que haya tenido tokens de la vieja red tendrá también una cantidad equivalente de los tokens de la nueva red minoritaria, que pueden vender o mantener. Esto, sin embargo, requiere que al menos un Exchange de tokens liste el nuevo token de la red minoritaria; de lo contrario, no habría mercado para el token de esa red, y como resultado, la red caerá en el olvido. Una bifurcación dura politizada es un evento de tipo cisne negro, y puede causar serios efectos en el valor de los tokens que uno otenga, dependiendo de cuál red ganará tracción en el largo plazo. Ejemplos de bifurcaciones duras politizadas que dividieron la red son “Ethereum Classic” (ETC)[^3] y “Bitcoin Cash” (BCH)[^4]. Como resultado de estas bifurcaciones célebres en las redes de Bitcoin y de Ethereum, la cuestión sobre la gobernanza ha generado debate en la comunidad, y parece ser uno de los aspectos de mayor investigación en los años por venir (leer más: Parte 2 – Economía Institucionas de las DAOs & Gobernanza On-Chain vs. Off-Chain).
Aún más, divisiones temporales de la red pueden ocurrir accidentalmente, debido a las latencias de la red. Si dos mineros encuentran diferentes soluciones para el mismo bloque al mismo tiempo, y ambas son válidas, es posible que la red se divida temporalmente. Cuando esto ocurre, los nodos de la red tienen dos versiones alternativas del registro en diferentes partes de la red. Esto crea dos redes de blockchain paralelas. El protocolo de Bitcoin tiene una provisión para resolver estas divisiones temporales de modo tal que solo una de las divisiones sobreviva. En una red con Prueba-de-Trabajo como Bitcoin, la red con la mayor “Prueba-de-Trabajo acumulada”, también llamado “poder de hasheo” o “poder de red”, será siempre considerada la válida por los nodos de la red. En este proceso, la versión ganadora del registro es determinada por el “voto” mayoritario de la red. Los nodos votan por una versión mediante la actualización (o no) del protocolo. El “largo de la blockchain” se refiere a la rama con mayor Prueba-de-Trabajo acumulada, y no a la que tiene más bloques.
Las bifurcaciones mencionadas arriba son el resultado de actualizaciones de protocolo de una red existente de blockchain, todas las cuales causaron una división de los nodos existentes de la red en dos grupos. Tales divisiones pueden influir en el precio de mercado de los tokens de la red, dado que ambas redes son más pequeñas que la red original. Otra forma de bifurcación puede ser una bifurcación simple del software típica de proyectos de código abierto. Como el código base de Bitcoin es de código abierto, cualquiera puede usar este código como un modelo y crear una red de blockchain alternativa adaptando algunas variables, parámetros o funciones.
Con el correr de los años, el protocolo de Bitcoin ha sido modificado cientos de veces para crear versiones alternativas de Bitcoin que son más rápidas o más anónimas, como “Litecoin” o “Zcash.” En algún punto se volvió claro que un protocolo de blockchain provee un sistema operativo que permite a un grupo de personas que no se conocen o no se confían recíprocamente organizarse en miras de objetivos específicos, y no solo “dinero sin bancos”. De allí que muchos proyectos modificaran el código base de Bitcoin para facilitar otro tipo de transferencias de valor P2P, como el almacenamiento descentralizado de archivos sin Amazon Web Services, como es el caso de “Sia” o redes sociales sin Facebook, Twitter o similares, como es el caso de “Steemit”. Emergió la idea de dejar de lado las redes de propósito único que solo tienen un contrato inteligente [^5], y en su lugar crear un protocolo que permita realizar todo tipo de transacciones de valor P2P en la misma red. Algunos de los primeros proyectos más interesantes fueron “Colored Coins” y “Mastercoin.” Usaron el token de Bitcoin como un vehículo para toda clase de transferencias de valor o contratos legales. Vitalik Buterin, que estuvo involucrado en esos proyectos por un breve período de tiempo, descubrió que estas adaptaciones del protocolo de Bitcoin eran posibles pero no eran suficientemente eficientes o flexibles. Seguidamente, introdujo la idea de desacoplar las funcionalidades de contratos inteligentes de las funcionales de procesamiento y comenzó el proyecto Ethereum. Esto permitió un ambiente de desarrollo más flexible que la red de Bitcoin y que otras redes de blockchain de propósito especial. La red Ethereum, por primera vez, introdujo una red descentralizada que permite procesar todo tipo de transferencias de valor usando contratos inteligentes. Estos contratos inteligentes pueden ser fácilmente creados con pocas líneas de código, y son procesados por la red de Ethereum, sin necesidad de crear tu propia infraestructura de blockchain de propósito especial. A diferencia de la red de Bitcoin, que está diseñada para un solo smart contract que liquida envíos P2P, la red de Ethereum está diseñada como una red descentralizada de computación en la cual cualquier clase de contrato inteligente puede ser procesado usando la Máquina Virtual de Ethereum (EVM) y todo tipo de valor tokenizado puede ser transferido (leer más: Parte 2 - Contratos Inteligentes, Parte 3 - Tokens).
La irrupción de Ethereum inspiró a muchos otros proyectos de blockchain a desarrollar redes de contratos inteligentes similares. Ejemplos de tales proyectos incluyen: “Cardano” “Neo” “EOS” “Hyperledger Fabric” “Ontology” y muchos otros. Hay varios factores que serán relevantes para determinar su viabilidad, tales como técnicos, económicos, y legales. Todavía no está claro cuál solución alternativa a la red de Ethereum se volverá popular, y si habrá un escenario del “ganador que se lleva todo”, o co-existirán múltiples redes. Por ahora, la comunidad de Ethereum parece tener la mayor tracción, y la ventaja del pionero con muchos desarrolladores, pero esto puede cambiar.
Más aún, sistemas alternativos de registro distribuido han irrumpido con mecanismos de consenso completamente diferentes, tales como grafos acíclicos dirigidos (DAGs) que no requieren la creación de una blockchain, y en cambio usan mecanismos alternativos de criptoeconomía para alcanzar consenso. Ejemplos de redes que usa DAGs como mecanismo de consenso son “IOTA” “Byteball” o “Nano.”
Por otro lado, instituciones privadas como bancos, aseguradoras y muchas industrias con cadenas de suministro intensivas han descubierto que el concepto de gestión colectiva de datos en un sistema de registro distribuido puede ser una útil herramienta de colaboración industrial. De manera opuesta a las redes de blockchain públicas y no permisionadas, la industria comenzó a diseñar “redes permisionadas”, donde todos los validadores son miembros de un consorcio industrial, o entidades independientes de la misma organización. Sin embargo, el término “blockchain” en el contexto de redes privadas y permisionadas es muy controvertido y discutido. Los críticos cuestionan que un registro permisionado, donde hay “confianza por autoridad” pueda ser considerado una red de blockchain. Los que proponen registros permisionados argumentan que el término “blockchain” aplica a toda estructura de datos distribuida donde las transacciones son hasheadas como bloques vinculados, y por ello aplica también a redes permisionadas que agrupan transacciones a una blockchain.
Las redes públicas usan mecanismos de criptoeconomía (confianza por matemática) para mantener segura la red con mecanismo de consenso que incentiva el comportamiento individual (esfuerzos computacionales) para alcanzar un objetivo colectivo. El mecanismo de incentivo está vinculado al token de la red. Es esencial para que esta red de actores no confiables sea segura contra ataques y manipulaciones. Las redes permisionadas, por otro lado, son colectivamente gestionadas por un conjunto de actores que se conocen y confían mutuamente y no necesitan mecanismos de consenso intensos en computación, como la Prueba-de-Trabajo, y tampoco necesitan un token. La confianza se genera por el sistema legal y la reputación de los actores conocidos de la red (confianza por contrato legal). El mínimo común denominador de estas redes es la existencia de un registro distribuido. Por ello el término “registro distribuido” ha emergido como un término más general que describe tecnologías que derivan de la red de Bitcoin. Pueden ser permisionadas o no permisionadas, agrupar transacciones en cadenas de bloques, o, como en el caso de IOTA, no usar una blockchain.
Los protocolos de blockchain y registros distribuidos similares operan sobre Internet y pueden ser conceptualizados por varios componentes: (i) red física: representada por una red de computadoras P2P que usan el mismo protocolo; (ii) protocolo: define la reglas de la red y las hace cumplir por consenso [^5] de todos los nodos de la red. Esto incluye incentivos económicos atados al token nativo; (iii) registro: gestionando todos los activos en la forma de un registro público y compartido de todas las transacciones desde el bloque génesis hasta la actualidad; (iv) identidad y direcciones: los activos son de identidades que necesitan tener una dirección para que podamos transferir valores desde una hacia otra. Estas identidades pueden ser más o menos anónimas, dependiendo del tipo de algoritmo criptográfico que se use; en el caso de redes de contratos inteligentes como Ethereum, (v) los contratos inteligentes gestionan las relaciones entre los actores involucrados, y contienen la lógica de negocio o de gobierno.
La Prueba-de-Trabajo de Bitcoin fue disruptiva, pero tiene su costo. Mientras que garantiza la seguridad en una red no confiable, es lento, intensivo en energía, y favorece a quienes tengan más recursos económicos para gastar. Es por esto que muchos investigadores y desarrolladores empezaron a explorar mecanismos de consenso alternativos para resolver alguno de los grandes desafíos de Bitcoin. Las preguntas de investigación a resolver son:
-
¿Cómo alcanzamos un consenso sobre una versión de la historia que una mayoría acepte como verdadera?
-
¿Cómo se pueden alinear recursos naturales escasos (como electricidad y CPUs) con recursos de la red para prevenir a actores maliciosos que saturen el sistema con malos comportamientos ?
-
¿Cuáles son los riesgos de seguridad y los vectores de ataque?
A pesar de que se está experimentando con muchos diferentes mecanismos de consenso, Prueba-de-Trabajo y Prueba-de-Participación (PdP) son actualmente los más utilizados. Sin embargo, es importante resaltar que las redes de blockchain que usan el mismo mecanismo general de consenso pueden tener diferentes especificaciones [^7]. Las redes de Bitcoin y Ethereum usan diferentes variaciones de Prueba-de-Trabajo.
Lo mismo es cierto respecto a Prueba-de-Participación, un mecanismo de consenso donde sólo los actores de la red que tienen una participación financiera en la red pueden agregar bloques al registro. Al contrario de la Prueba-de-Trabajo, los validadores no compiten entre sí para crear un bloque de transacciones. En lugar de sacrificar energía para validar un bloque, los usuarios deben demostrar que tienen una cierta cantidad de los tokens de la red para poder generar un bloque. Los tokens en tu billetera representan tu participación. Hay muchas variaciones en la implementación de la Prueba-de-Participación.
Las primeras propuestas de Prueba-de-Participación asumían que quienes tuvieran más participación en el sistema tienen un incentivo natural para actuar de manera honesta a la hora de validar transacciones y agregar bloques. Se asumía que los tenedores de tokens tendrían un interés natural en el éxito de largo plazo de la red; de lo contrario su participación en el sistema se devaluaría si contribuyesen de formas deshonestas. Era también asumido que mientras más tokens uno tuviera, mayor es el riesgo que se corre si la red es atacada. Los derechos de voto se diseñaron entonces de manera proporcional a la cantidad de tokens de la red que se tuviera. Sin embargo, hay un problema en el mecanismo original de la Prueba-de-Participación: a diferencia de la Prueba-de-Trabajo, donde minar es costoso, y no es inteligente invertir energía en una bifurcación que no te hará ganar dinero, en la Prueba-de-Participación no se requiere trabajo computacional intensivo para crear un bloque. Se asume que el validador no tiene nada que perder y mucho que ganar.
La red “Peercoin” fue la primera en introducir la Prueba-de-Participación. Otras redes la siguieron con su propia variación de la Prueba-de-Trabajo, tales como “Tendermint” (“Cosmos”), “Ouroboros” (“Cardano”), “Tezos” “Dfinity”, “Nxt”, “BlackCoin”, “NuShares/NuBits” y “Qora”, cada una de las cuales tiene diferentes propiedades. Algunas, como “Decred” combinan elementos de la Prueba-de-Trabajo y la Prueba-de-Participación. El proyecto Ethereum está planeando una transición desde Prueba-de-Trabajo hacia Prueba-de-Participación con una bifurcación dura (Casper). Los desarrolladores de Ethereum han desarrollado distintas propuestas de cómo esto debiera ser hecho.
Prueba-de-Participación Delegada (DPoS) es una variación de Prueba-de-Participación, implementada por ver primera por “BitShares”. Es una variación más radical, una especie de democracia representativa donde los tenedores de tokens pueden transferir sus derechos de voto a delegados para que validen en su nombre. Hay generalmente entre 21 y 101 delegados elegidos que pueden validar bloques de manera periódica y aleatoria o según un orden predeterminado. Estos delegados pueden crear bloques y prevenir que partes no confiables creen bloques. No pueden modificar transacciones, pero pueden vetar que transacciones específicas sean incluidas en el próximo bloque de la red. Diferentes redes han adaptado variaciones propias al DPoS, como por ejemplo “Steemit”, “EOS”, y “Lisk”. En lugar de competir por validar bloques, cada delegado tiene un espacio de tiempo para publicar sus bloques. Los tenedores de tokens pueden retirar su delegación de voto, si los delegados continuamente pierden sus bloques o si publican transacciones inválidas. Esta centralización parcial en la creación de bloques resulta en un mejor rendimiento de transacciones (también conocido como “escalabilidad”) comparado a otros mecanismos de consenso.
Existen más variaciones de Prueba-de-Participación, la mayoría de las cuales son sólo conceptuales o solo han sido implementadas por una única red: “Leased Proof-of-Stake”, “Transactions as Proof-of-Stake”, “Proof-of-Importance”, “Proof-of-Capacity”, “Proof-of-Weight”, “Proof-of-Authority”, and “Proof-of-Elapsed-Time”.
Resistente a Faltas Bizantinas (BFT): Otro grupo de mecanismos de consenso son variaciones del Byzantine Fault Tolerance (BFT) como Federated Byzantine Agreements (FBA), implementada por “Ripple” o “Stellar”, Practical Byzantine Fault Tolerance (pBFT) implementado por “Hyperledger Fabric” y el Delegated Byzantine Fault Tolerance (dBFT) usado por “NEO”. Otro grupo de protocolos usa una combinación de mecanismos, como el “Hashgraph” que combina BFT asincrónico con “gossip protocols” y mecanismos de “virtual voting”.
Grafos Acíclicos Dirigido: En adición, hay un grupo de protocolos que usan Grafos Acíclicos Dirigidos, como “IoT Chain”, “Byteball”, “Nano” (Block Lattice), y IOTA (Tangle). El mecanismo de consenso de DAGs es fundamentalmente diferente a los de las blockchaines. En lugar de agrupar datos en bloques que son luego confirmados uno otras otro, los Grafos Acíclicos Dirigidos requieren que los nuevos datos hagan referencia y validen los datos anteriores. usualmente , cada nueva transacción tendría que referir y validar las dos transacciones anteriores. Al hacerlo, la red toma una forma de grafo con transacciones convergentes y confirmadas. Si un nodo incorrectamente valida una transacción pasada, la transacción de ese nodo no sería confirmada por los demás participantes.
Explicar en detalle cada mecanismo de consenso descrito arriba excede el alcance de este libro y requeriría una o varias publicaciones específicas. La literatura sobre estos protocolos en el contexto de registros distribuidos es todavía escasa pero está creciendo. Sin embargo, muchos de estos protocolos están aún en etapa conceptual, sin documentación de respaldo adecuada. En muchos casos son implementados por un solo proyecto, a veces sin haberse hecho la investigación adecuada, o sin haber pasado por un proceso académico de revisión entre pares.
Con el advenimiento de tecnologías derivadas usando reglas de gobierno modificadas del protocolo original de Bitcoin, parece necesario clasificar los diferentes tipos de sistemas de registro distribuido. La principal distinción gira en torno a la pregunta de quién: (i) puede validar transacciones, (ii) escribir transacciones en el registro y (iii) leer transacciones, y (iv) usar la red. Dependiendo del tipo de registro, la respuesta variará. Para mantener las cosas simples, podemos decir que en las redes públicas cualquiera puede leer, escribir y validar transacciones y usar la red. Mientras que en las redes privadas, solo los miembros invitados pueden leer, escribir, validar transacciones y usar la red. Variaciones híbridas también son posibles. Un ejemplo sería que sólo puedan validar y escribir transacciones quienes tienen permiso, pero leer (ciertas) transacciones sea público. En las redes públicas y no permisionadas, todos los nodos participantes en el protocolo de consenso no son confiables, ya que no son conocidos previamente. Sin el permiso de una entidad central, todos pueden descargar el protocolo y la versión actual del registro para:
-
Correr un nodo completo en su dispositivo local, validando transacciones en la red.
-
Minar un bloque de transacciones, agregar datos al registro, por ende participar del proceso de consenso (Prueba-de-Trabajo) y ganar tokens de la red en el proceso.
-
Enviar tokens a través de la red y esperar ver incluidos tales envíos en el registro si la transacción es válida.
-
Usar software público de exploración de bloques para ver todos los datos relacionados a transacciones de la red, o hacer análisis de la cadena (big data) sobre todos los datos relacionados a la blockchain almacenados en un nodo completo.
El mecanismo de consenso para tal configuración tiene que resolver la deshonestidad. El token es un elemento esencial para hacer que esta red de actores no confiables pueda resistir ataques. Mientras que los incentivos tokenizados vuelven segura a una red no confiable, también la hacen muy lenta. Las redes públicas y no permisionadas sólo pueden gestionar pocas transacciones por segundo, lo que no las hace adecuadas para aplicaciones a gran escala con mucho volumen de transacciones. Sin embargo, varias soluciones tecnológicas están siendo actualmente propuestas e implementadas para resolver estos problemas de escalabilidad (leer más: Anexo - Soluciones de Escalabilidad).
Por otro lado, los registros privados y permisionados tienen una configuración federada con contratos bilaterales. Es un club donde sólo se aceptan invitados. La red no es accesible por parte de participantes arbitrarios. Los miembros se confían mutuamente porque tienen contratos bilaterales entre ellos, y si algo sale mal, saben a quién demandar. Los registros permisionados, por ello, no necesitan un token para incentivar la acción coordinada, mientras que ello es integral a las redes no permisionadas. El hecho de que las identidades de todos los nodos participantes sea conocida de antemano otorga una protección natural contra los “ataques sybil”. Los registros privados y permisionados pueden por tal razón gestionar muchas más transacciones por segundo, al no tener que lidiar con una cantidad incierta de nodos anónimos. También otorgan mayor privacidad que las actuales redes públicas de blockchain, dado que los datos del registro no son públicamente accesibles. Los registros permisionados están siendo desarrollados principalmente por consorcios industriales. La verificación de transacciones es realizada por un conjunto pre-determinado de participantes, por ejemplo, sesenta instituciones financieras, cada una de las cuales opera un nodo, y a donde cuarenta y cinco de ellas deben firmar cada bloque para que el bloque sea válido. Dependiendo de la industria y del caso de uso, el derecho a leer los datos del registro puede ser público, parcialmente público o restringido sólo para los participantes.
Mientras que la mayoría de la literatura sobre blockchain hace una distinción binaria entre registros permisionados y no permisionados, quisiera argumentar que no existe tal cosa como una red “100% no permisionada”. Cada mecanismo de consenso requiere un umbral mínimo de inversión que uno debe hacer para poder validar transacciones o escribir en el registro. Sin embargo, la mayoría de la población mundial no tiene los medios económicos para adquirir el hardware especializado suficientemente potente para minar tokens de Bitcoin. Incluso para un nodo completo que solo valide transacciones en una red de blockchain pública, y que no requiere el mismo nivel de inversión en hardware como un nodo minero, uno debe invertir en una PC. Al momento de escribir este libro, comprar una PC significa que uno debe gastar al menos unos cientos de €[^8] para validar transacciones. Si bien 500€ no es mucho dinero para una familia tipo europea, sobrepasa el ingreso mensual de una parte considerable de la población mundial. Ni hablar de los costos que requiere una computadora minera.
Además, si bien por ejemplo los consensos basados en “Prueba-de-Participación” son públicos, no son enteramente no permisionados. El mecanismo de consenso requiere que poseas una mínima cantidad de los tokens de la red para poder ser elegible para validar transacciones. “No permisionada” es por tanto un término relativo que no se puede usar en forma binaria sino más bien como una escala, que va desde “menos permisionada” a “totalmente permisionada”. En tan temprana edad de los sistemas de registro distribuido, las soluciones permisionadas pueden ser útiles en industrias altamente reguladas que quieren usar registros distribuidos pero que están sujetas a regulación estatal. Los defensores de la industria sostienen que las soluciones federadas pueden dar mayores grados de eficiencia y seguridad y reducir los problemas de fraude de las instituciones financieras tradicionales. No es muy probable que las blockchains privadas revolucionarán al sistema financiero, pero pueden reemplazar sistemas heredados, haciendo más eficiente a la industria. Los registros permisionados también podrían ser un paso más hacia la adopción masiva de las redes públicas y no permisionadas, una vez que la tecnología subyacente sea más escalable y madura, y mejor entendida por los reguladores.
No está claro cómo la tecnología evolucionará en el mediano y largo plazo. Algunos predicen que los registros permisionados sufrirán la misma suerte que las “Intranets” a principios de 1900, cuando empresas privadas construyeron sus propias redes, porque estaban asustadas de conectarse con la Internet pública. Con el tiempo, este temor desapareció. Hoy, las Intranets son usadas en muy pocos casos, cuando se requieren niveles de seguridad altos.
Las redes de blockchain y los sistemas de registro distribuido derivados proveen una infraestructura para gestión de derechos. Cada proceso, tarea y pago tendría un registro digital y una firma que puede ser identificada, validada, almacenada y compartida. Muchas tareas de intermediarios como abogados, brokers, banqueros y administradores públicos pueden ser reemplazadas por sistemas de registro distribuido. Los individuos, las organizaciones, las máquinas y los algoritmos pueden ahora interactuar entre ellos con poca fricción y a una fracción de los costos actuales de transacción. Esta nueva infraestructura permite muchas nuevas aplicaciones, las más importantes son:
Transparencia & control: Las redes de blockchain y otros registros distribuidos permiten mayor transparencia y control a lo largo de la cadena de suministros de bienes y servicios, incluyendo servicios financieros que han sido tokenizados, lo que resolvería muchos interrogantes en torno a la transparencia en la cadena de suministros, reducción de corrupción, y mayor control sobre qué pasa con nuestros datos privados.
Reducción de burocracia: Los contratos inteligentes y soluciones similares de gestión de derechos tienen el potencial de reducir la burocracia y los costos de coordinación de transacciones comerciales (leer más: Parte 2 - Contratos Inteligentes).
Resolver el dilema organizacional del principal-agente: Los registros distribuidos también ofrecen una herramienta de coordinación global para nuevos tipos de entidades descentralizadas y en algunos casos autónomas (leer más: Parte 2 - Economía y Gobernanza Institucional de las DAOs).
Tokens como la aplicación líder: Los tokens criptográficos como una aplicación de las redes de blockchain y registros derivados podrían ser tan revolucionarios como la irrupción de la WWW, que permitió la creación de sitios de Internet visualmente llamativos con pocas líneas de código, y navegar por Internet siguiendo hipervínculos en lugar de usar interfaces de usuario command-line. Se ha vuelto muy fácil crear un token con pocas líneas de código para contratos inteligentes (leer más: Parte 3 & Parte 4).
Uno de los casos de uso más grandes de los registros distribuidos es dar transparencia y procedencia en las cadenas de suministro de bienes y servicios. Las cadenas de suministro representan redes complejas de entidades geográficamente distantes y legalmente independientes que intercambian bienes, pagos y documentos a través de una red dinámica. Su arquitectura es bastante similar a la de una red de blockchain, pero a diferencia de éstas, todos los documentos son gestionados en silos de datos. Como resultado, los sistemas de gestión documental en estas cadenas de suministro son generalmente ineficientes, tienen interfaces complejas, y son costosos. Es difícil seguir el comportamiento sustentable de empresas y de individuos y además no es algo que se recompense. Los compradores y los vendedores tienen poca o ninguna información sobre la procedencia de los productos que compran, incluyendo el fraude potencial, la contaminación o el abuso de derechos humanos.
Los registros distribuidos permiten que un grupo dispar de actores de la red a lo largo de la cadena de suministros puedan intercambiar datos de manera sencilla. Documentos y transacciones pueden ser procesadas casi en tiempo real, lo que permite automatizar la auditoría y el cumplimiento, disminuyendo riesgos tales como múltiples copias de documentos e inconsistencia de datos. La trazabilidad de la procedencia de bienes y servicio en cadenas de suministro globales puede ser mucho más practicable que en la actualidad. Soluciones basadas en la Web3 ofrecen: (i) más transparencia en el impacto ambiental y (ii) acceso al origen, a los tipos de producción y a los ingredientes de la comida que comemos, y a las condiciones bajo las cuales las plantas son cultivadas o cómo se trata a los animales. Muchas compañías e iniciativas de la industria, tales como “Provenance”, “Ambrosus”, “Modum”, “OriginTrail”, “Vechain”, “Wabi”, o “Wantonchain” han empezado a desarrollar infraestructuras basadas en la Web3 para optimizar sus cadenas de valores, mejorar sus ineficiencias, liberar capital de trabajo, y hacer más accesibles los bienes y servicios. Estas soluciones, sin embargo, siempre necesitan una combinación de un conjunto de tecnologías, incluyendo algoritmos de machine learning y datos de la Web física, la Internet de las Cosas (leer más: Parte 2 - Oráculos para Contratos Inteligentes). Aplicaciones de registro distribuido también ofrecen mejor control sobre los derechos humanos, tales como las condiciones de trabajo, trabajo infantil, o salarios justos. Proyectos que trabajan en tales soluciones son: “bext360”, “fairfood”, y “Namahe”. Pueden también ser usados para darnos más control sobre nuestros datos privados (leer más: Parte 1 - Identidades centradas en el Usuario - Protección de Datos) y crear mercados de datos P2P (Ocean Protocol). Mientras que en teoría este nivel de transparencia sobre qué ocurre con nuestros datos privados también puede alcanzarse con las soluciones actuales, tendríamos que confiar en una institución centralizada.
Las redes de blockchain son infraestructuras públicas que colectivamente mantienen un registro compartido y distribuido, donde copias inmutables y encriptadas de la información son almacenadas en cada computadora de la red. \
El registro contiene todas las transacciones hechas. Las transacciones se almacenan de modo resistente a la manipulación: la modificación de un bloque cambiará los bloques sucesivos. El registro, almacenado en todas las computadoras de la red, garantiza que cada token es transferido solo una vez. Actúa como un notario digital, y una estampa de tiempo públicamente verificable. \
Todos los participantes de la red tienen igual acceso a los mismos datos en tiempo real. Las transacciones procesadas por la red son transparentes para todos los actores y pueden ser trazadas hasta su origen. \
A diferencia de las bases de datos distribuidas, las blockchains permiten control distribuido, donde diferentes partes que no se confían mutuamente pueden compartir información sin requerir un administrador central. La administración algorítmica de la lógica de negocio y reglas de gobierno, con protocolos de consenso y contratos inteligentes permitirán el próximo nivel de automatización de nuestras actividades socio-económicas. \
El concepto de blockchain se desarrolla sobre la idea de las redes P2P y provee un conjunto de datos universal en el que todo actor puede confiar, aún si los actores no se conocen entre sí o no se confían entre sí. Las personas y las instituciones que no se conocen o no se confían y residen en diferentes países, sujetos a diferentes jurisdicciones, y que no tienen contratos legalmente exigibles entre ellos pueden ahora interactuar en Internet sin necesidad de terceros de confianza como bancos, plataformas de Internet u otro tipo de instituciones compensadoras. \
Ideas sobre redes P2P con seguridad criptográfica se vienen discutiendo en el ambiente académico con distinta evolución desde 1980. Sin embargo, antes de la irrupción de Bitcoin, nunca había habido una implementación práctica de una red P2P que pudiera evitar el problema del doble-gasto sin la necesidad de un intermediario de confianza que garantizara los intercambios de valor. \
El “problema del doble-gasto” refiere al hecho de que en la Internet actual, el dinero digital, en la forma de un archivo, puede ser copiado y las copias de ese mismo archivo pueden ser enviadas de una computadora a muchas otras al mismo tiempo. \
Los mecanismos de consenso, como Prueba-de-Trabajo, permiten un control distribuido. Están basados en una combinación de incentivos económicos y criptografía. La teoría de los juegos aplicada es usada para recompensar a los actores de la red con un token nativo de la red. Este mecanismo de recompensa está diseñado de un modo tal que es económicamente improbable hacerle trampa a la red. Hace excesivamente difícil falsificar la blockchain, debido a la inmensa cantidad de poder de cómputo que se requeriría para hacerlo. \
A diferencia de las redes públicas y no permisionadas, las redes permisionadas sólo admiten a partes invitadas, lo que significa que todos los validadores son miembros de un consorcio. \
Los “registros distribuidos” han irrumpido como un término paraguas usado para describir tecnologías que distribuyen información o archivos entre todos los que los utilizan, sean permisionados o no permisionados, e independientemente del mecanismo de consenso o de la estructura de datos. \
- Agreda, Victor: “Taxonomy of Blockchain Consensus,” https://strategiccoin.com/taxonomy-of-blockchains-consensus-2018/
- Antonopoulos, Andreas; „Bitcoin security model: trust by computation“. Radar. O‘Reilly, 2014, Archived from the original on 31 October 2018: http://radar.oreilly.com/2014/02/bitcoin-security-model-trust-by-computation.html
- Antonopoulos, Andreas M.; “Mastering Bitcoin. Unlocking Digital Cryptocurrencies”, Sebastopol, CA: O‘Reilly Media, 2014
- Back, Adam; „A partial hash collision based postage scheme“, October 2014 http://www.hashcash.org/papers/announce.txt
- Ballandies, Mark C.; Dapp, Marcus M.; Pournaras, Evangelos: “Decrypting Distributed Ledger Design - Taxonomy, Classification and Blockchain Community Evaluation”, 2018: https://arxiv.org/pdf/1811.03419.pdf
- Bitcoin.Wiki contributors: “Softfork”, Bitcoin Wiki: https://en.bitcoin.it/wiki/Softfork (accessed Nov 30, 2018).
- Buterin, Vitalik: “The Meaning of Decentralization”, Feb 6, 2017: https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274
- Buterin, Vitalik: “On Public and Private Blockchains”, Aug 6, 2015: https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/
- Catalini, Christian; Gans, Joshua S.; „Some Simple Economics of the Blockchain“. SSRN Electronic Journal, 2016
- Ethereum White Paper: https://github.com/ethereum/wiki/wiki/White-Paper
- Ethereum Yellow Paper: https://ethereum.github.io/yellowpaper/paper.pdf
- Gervais, Arthur; Karame, Ghassan O.; Capkun, Vedran; Capkun, Srdjan. „Is Bitcoin a Decentralized Currency?“, InfoQ & IEEE computer society, Archived from the original on 10 Nov 2018: https://www.researchgate.net/publication/270802537_Is_Bitcoin_a_Decentralized_Currency
- Golden, Sara; Price, Allison: “Sustainable Supply Chains. Better Global Outcomes with Blockchain.” Jan 2018, retrieved from: https://www.newamerica.org/documents/2067/BTA_Supply_Chain_Report_r2.pdf
- Jackson, Matthew O.: “Mechanism Theory”, Humanities and Social Sciences 228-77, California Institute of Technology Pasadena, California 91125, U.S.A. October 12, 2000, revised December 8, 2003
- Kravchenko, Pavel: “Ok, I need a blockchain, but which one?”, Sep 26, 2016: https://medium.com/@pavelkravchenko/ok-i-need-a-blockchain-but-which-one-ca75c1e2100
- Nakamoto, Satoshi: “Bitcoin: A Peer-to-Peer Electronic Cash System”, 2008: https://bitcoin.org/bitcoin.pdf
- N.N. “A Crash Course in Mechanism Design for Cryptoeconomic Applications - Understanding the Basic Fundamentals of “Cryptoeconomics”, BlockChannel, Oct 17, 2017: https://medium.com/blockchannel/a-crash-course-in-mechanism-design-for-cryptoeconomic-applications-a9f06ab6a976
- N.N.: "Blockchains: The great chain of being sure about things", The Economist, 31 October 2015: https://www.economist.com/briefing/2015/10/31/the-great-chain-of-being-sure-about-things
- Poelstra, Andrew: “Mimblewimble”, 2016-10-06 (commit e9f45ec) diyhpl.us/~bryan/papers2/bitcoin/mimblewimble-andytoshi-draft-2016-10-20.pdf
- Satyawan, Tarar “A Crash Course on Consensus Protocols”, May 9, 2018: https://medium.com/@satyawan.tarar1985/a-crash-course-on-consensus-protocols-29264c393097
- Tasca, Paolo; Tessone, Claudio J,: “A Taxonomy of Blockchain Technologies: Principles of Identification and Classification”, Ledger, Vol 4, 2019: http://ledger.pitt.edu/ojs/index.php/ledger/issue/view/5
- Stark, Josh: “Making Sense of Cryptoeconomics”, Aug 19, 2017 https://www.coindesk.com/making-sense-cryptoeconomics
- Tomaino, Nick, “Cryptoeconomics 10”, Jun 4, 2017, https://thecontrol.co/cryptoeconomics-101-e5c883e9a8ff
- Wang, Wenbo; Dinh Thai Hoang, Hu, Peizhao; Xiong, Zehui; Niyato, Dusit; Wang, Ping; Wen, Yonggang; In Kim, Dong: “A Survey on Consensus Mechanisms and Mining Strategy Management in Blockchain Networks”: https://arxiv.org/pdf/1805.02707.pdf
- Wei, Bai: “Mechanism Design in Cryptoeconomics”, May 31, 2018: https://medium.com/secbit-media/mechanism-design-in-cryptoeconomics-6630673b79af
- Voshmgir, Shermin: “Blockchain & Sustainability,” Crypto3conomics blog, Medium, Aug 11, 2018, retrieved from: https://medium.com/crypto3conomics/blockchain-sustainability-7d1dd90e9db6
- Wikipedia contributors: "Blockchain," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/wiki/Blockchain (accessed Nov 11, 2018).
- Witherspoon, Zane :"A Hitchhiker’s Guide to Consensus Algorithms," November 28th 2017: https://hackernoon.com/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3
- Bitcoin 51% Attack Calculator: https://gobitcoin.io/tools/cost-51-attack/
- 51% Attack Calculator: https://crypto51.app/
- Ambrosus: https://ambrosus.com/
- Bitcoin Gold: https://bitcoingold.org/
- Bitcoin Diamond: https://www.bitcoindiamond.org/
- Bitcoin Cash: https://www.bitcoincash.org/
- Bitcoin Platinum: https://bitcoinplatinum.github.io/
- BitShares: https://bitshares.org/
- Block Lattice: https://docs.nano.org/integration-guides/the-basics/#block-lattice-design
- BlackCoin: http://blackcoin.co/
- Bitcoin Cash: https:bitcoincash.org/
- Byteball: https://byteball.org/
- Cardano: https://cardano.org/en/home/
- Colored Coins: http://coloredcoins.org/
- Cosmos: https://cosmos.com/
- Decred: https://decred.org/
- Dfinity: https://dfinity.org/
- fairfood: http://fairfood.nl/
- Ethereum Classic: https://ethereumclassic.org/
- EOS: https://eos.io/
- Hyperledger Fabric: https://hyperledger.org/projects/fabric
- Litecoin: https://litecoin.org/
- Lisk: https://lisk.io/
- IOTA: https://iota.org/
- IoT Chain: https://iotchain.io/
- Mastercoin: https://en.wikipedia.org/wiki/Mastercoin
- Modum: https://modum.io/
- Nano: https://nano.org/
- Neo: https://neo.org/
- Nxt: https://nxt.org/
- NuShares/NuBits: https://nubits.com/nushares
- Ocean: https://oceanprotocol.com/
- OriginTrail: https://origintrail.io/
- Provenance: https://provenance.org/
- Qora: http://www.qora.org/
- Ontology: https://ont.io/
- Ripple: https://ripple.com/
- Stellar: https://stellar.org/
- Steemit: https://steemit.com/
- Tezos: https://tezos.com/
- Vechain: https://www.vechain.org/
- Wabi: https://wacoin.io/
- Wantonchain: https://www.waltonchain.org/
[^1]: En una red anónima, el llamado ataque sybil es un ataque donde un solo usuario puede generar múltiples identidades (pseudónimas) para influir en el proceso de consenso.
[^2]: La red de Bitcoin, como una red mundial de computadoras, tiene latencias de red (demoras en el procesamiento de datos de la red). Para responder a las latencias, el protocolo de Bitcoin especifica que un bloque debiera ser creado cada 10 minutos en promedio.
[^3]: La bifurcación dura de Ethereum fue consecuencia del incidente “TheDAO” , donde alrededor de 50 millones de U$D fueron robados como consecuencia de una vulnerabilidad del código. La bifurcación dura que retroactivamente impidió la transacción que materializó el robo, fue muy politizada. Quienes se oponían a la bifurcación dura insistían en la inmutabilidad del registro. Como resultado, el token de la red minoritaria que se oponía a la bifurcación dura - Ethereum Classic- hizo historia por ser el primer token de una red minoritaria que fuera listado en un exchange.
[^4]:[^3]: El aumento de las comisiones por transacciones en la red de Bitcoin cuando la red estaba congestionada motivaron una propuesta de algunos desarrolladores a la comunidad para incrementar el tamaño del bloque en una actualización de protocolo que requería una bifurcación dura. La propuesta tuvo considerable oposición por parte de otros desarrolladores de la red. Después de dos años de debate, la bifurcación dura tuvo lugar en Julio de 2017, y generó el nacimiento de una nueva comunidad con una propuesta diferente, llamada Bitcoin Cash. El 1 de Agosto de 2017 Bitcoin Cash comenzó a cotizar a unos 240 U$D, mientras que Bitcoin cotizaba a unos 2700 U$D.
[^5]: Los contratos inteligentes son programas de computación que regulan, auditan y ejecutan reglas arbitrarias para la transferencia de tokens que han sido codificadas. Estas reglas se auto-ejecutan por consenso de todas las computadoras de la red, la red de blockchain (leer más: Parte 2 - Contratos Inteligentes).
[^6]: “Consenso” es un término usado en la ciencia de la computación para referirse a cómo una red distribuida de computadoras puede acordar en algo específico requerido durante un proceso de computación distribuida, en el cual una mayoría especificada de nodos de la red debe acordar en un mismo valor que fue propuesto al menos por otro nodo.
[^7]: La Prueba-de-Trabajo en Bitcoin y en Ethereum es diferente. Ejemplos de sus diferencias son: un tipo distinto de algoritmo de hasheo (SHA-256 vs. Ethash), tiempo objetivo promedio de creación de bloques distinto (10 minutos vs. 15 segundos), esquemas de pago distintos (solo el productor de un bloque que se incorpora vs. algunos bloques que no se incorporan pero son recompensados, e.g. Uncles).
[^8]: Es posible correr un nodo completo en una Raspberry PI (una mini computadora barata) y en una tarjeta SD, lo que cuesta menos de 100€. Sin embargo, necesitas una computadora normal para descargar la blockchain completa (al menos de BTC y ETH). Una vez que el registro completo está descargado, uno puede correr un nodo completo en una Raspberry PI.