El mundo crypto se mueve demasiado deprisa. Hay tantos proyectos basados en blockchain que casi resulta imposible mantenerse al día. Pero creo que sí es posible ganar una buena base de conocimientos de forma rápida. En esta guía / glosario pretendo explicar cuáles son los conceptos que aprendería para entender Blockchain sin perderme en la cryptojungla.
Pero, ¿sería esto suficiente para convertirse en experto en blockchain?
Lo que define al Experto es su experiencia, y la experiencia a su vez se mide en tiempo. 15 minutos no hacen a ningún experto en ninguna materia, pero sí pueden acortar mucho el camino si nos enfocamos en lo fundamental.
Dicho sea de paso: los conocimientos por sí solos no pueden darte ese grado, y menos en el mundo blockchain / crypto. Olvídate de convertirte en experto si no estás dispuesto a pelearte en el barro contra el zorrito de Metamask, si no estás dispuesto a cruzar ciertos puentes, y por supuesto, si no estás dispuesto a cometer errores. Estos son sin duda el mejor maestro*.
¿Blockchain o criptomonedas?
Bien, supongamos que soy un novato absoluto, pero ya he escuchado hablar de Blockchain y criptomonedas porque están a todas horas hablando de eso en las noticias.
Lo primero que debemos hacer en este punto es diferenciar Blockchain y Criptomoneda. Son términos que están estrechamente ligados, pero no son sinónimos.
Aunque mucha gente tiende a usarlas indistintamente.
De hecho, no todas las blockchains tienen una criptomoneda. Ni todas las criptomonedas están basadas en blockchain.
Blockchain es una tecnología que resuelve un conjunto determinado de problemas, mientras que una criptomoneda es una de las muchas aplicaciones que puede tener la tecnología blockchain.
En concreto, muchas criptomonedas se consideran un activo o incluso dinero digital. Bitcoin es una criptomoneda que creó Satoshi Nakamoto con este objetivo.
En este artículo no voy a hablar de ninguna crypto en particular, sino de la tecnología Blockchain (recuerda: en este sitio no nos interesa la inversión/especulación sino el potencial tecnológico).
Sin duda habrá más artículos como este donde profundizaremos un poco más y descubriremos tecnologías nuevas y apasionantes. Suscríbete a nuestra newsletter gratuita para no perderte nada.
En resumen:
- Una blockchain sirve para registrar transacciones, mientras que una criptomoneda se utiliza para transferir y/o almacenar valor.
- Una blockchain en sí misma no tiene valor monetario, mientras que una criptomoneda sí.
¿Entonces qué es Blockchain?
La respuesta más plebeya es: Blockchain es una base de datos que permite registrar transacciones de forma inmutable.
No es una base de datos tradicional, cuyo objetivo puede ser almacenar, acceder y editar información relacional. Tampoco hay un superusuario admin que puede cambiarlo todo en cualquier momento.
Para entender blockchain como una base de datos, debemos pensar que se parece más a un log muy sofisticado. La integridad de los registros en este log puede ser validada hasta el primer bloque.
En el caso de las redes blockchain, la integridad es distribuida, validada y mantenida por todos los miembros de la red. Es decir, cada miembro o nodo mantiene una copia completa o parcial de toda la cadena de bloques.
Además, en el caso de las blockchain distribuidas como Bitcoin (hablaremos de eso), todos los nodos son un usuario root, pero ninguno por sí solo puede cambiar el registro de transacciones presentes o pasadas sin el consenso del resto de la red.
Una respuesta un poco más formal y abierta sería:
«Blockchain es un esfuerzo de introducir confianza y robustez en cualquier tipo de transacción digital, de tal forma que no sea necesaria la participación de una autoridad mediadora.»
Imagina que la cadena de bloques fuera el típico Libro Mayor de papel:
- Cada página haría referencia a un bloque que está conectado a la página anterior a mediante el número de página.
- Cada entrada escrita en el libro mayor sería una transacción.
- Sería fácil detectar si una página/bloque se ha arrancado.
- Sería fácil organizar las páginas para ver si ha habido alguna actividad maliciosa inspeccionando los números de página.
- Sería imposible manipular una entrada previa del libro mayor sin que nadie lo notara, dado que las páginas se construyen una sobre la otra.
- Cada contable de la empresa conservaría una copia del libro mayor idéntica y actualizada al instante.
Hay varios tipos de blockchains:
- Blockchain pública: cualquiera puede acceder a la red y participar en ella sin autorización. Necesitan más complejidad para alcanzar consenso y prevenir manipulación de las cadenas predecesoras, y por tanto requieren mayor nivel computacional. Los ejemplos más claros son Bitcoin y Ethereum.
- Blockchain privada y/o federada: también llamada «permisionada»; están controladas por una organización o un conjunto de organizaciones. El acceso a la red se realiza mediante permisos e identificación: es decir, los nodos están pre-autorizados. Los algoritmos de consenso son por tanto menos exigentes y esto les permite ser más ligeras y rápidas.
Conceptos básicos para entender la Cadena de Bloques
No voy a bombardearte a enlaces porque hay demasiado contenido de buena calidad ahí fuera. Mi objetivo aquí es darte un punto de entrada para que tú puedas profundizar en los conceptos. Google es tu amigo 😉
Si fuera novato y tuviera que empezar a googlear conceptos para entender blockchain de forma incremental, empezaría indagando en las siguientes ideas:
Sistemas descentralizados y distribuidos.
Comprender conceptos de redes P2P distribuidas te ayudará a entender cómo funcionan las redes blockchains: cada participante actúa simultáneamente como cliente y servidor de los otros nodos sin necesidad de una autoridad central.
Distributed Ledger Technology (DLT) o Tecnología de Libro Mayor Distribuido es una aplicación práctica de este concepto,y Blockchain es, de hecho, un caso particular de DLT.
Hashing
El hashing es un proceso que permite convertir cualquier item de una longitud indeterminada en un item de una longitud fija. Este es el corazón de muchas funciones criptográficas esenciales para la como autenticación, firma digital, time-stamping, etc.
Fundamentos de criptografía
La criptografía es el estudio de algoritmos, protocolos y sistemas utilizados para dotar de seguridad, confidencialidad e integridad a todos los elementos de en un sistema de comunicación.
Es un ámbito extenso y complejo, pero hay algunos conceptos que conviene conocer:
- Criptografía de clave simétrica: esquemas más rápidos y sencillos, como por ejemplo DES, AES, 3DES, Salsa, Seed o Aria.
- Criptografía de clave asimétrica: esquemas de clave pública/privada. Algunos ejemplos son Diffie Hellman, DSA, Elgamal o Curva Elíptica.
Algunos algoritmos habituales en blockchain son:
- SHA-256: permite transformar datos mediante un proceso de hashing.
- Elliptic Curve Cryptography (ECC): con tamaños menores de clave y con menos esfuerzo computacional, ofrece niveles de seguridad semejantes a RSA.
- RIPEMD-160: sus pilares son la Función de Compresión y el Padding, otros conceptos importantes de criptografía.
Claves públicas y privadas
El cifrado asimétrico utiliza una clave pública y una privada. La clave pública se deriva de la privada utilizando un algoritmo conocido. La clave privada es la que permite a los usuarios operar su cuenta. Este concepto es importante, porque los tokens nunca están «dentro» de una wallet, sino «asociados» a la clave pública que la representa en un momento determinado. Lo que la wallet «contiene» son las claves privadas, no las criptomonedas en sí mismas. Los tokens siempre «están» en la blockchain. Este es uno de los conceptos menos intuitivos de la cadena de bloques.
Árbol de Merkle (Merkle Tree)
Es una estructura en árbol basado en hash que permite validar la integridad de las transacciones de un bloque. Esta estructura permite que un gran número de datos separados puedan ser ligados a un único hash (nodo raíz del árbol).
Si un usuario malintencionado intentara modificar una transacción, esto provocaría un cambio en el nodo superior y seguidamente otro cambio en el nodo por encima de este, hasta llegar a la raíz del árbol. Esto haría que el protocolo tuviera que registrarlo como un bloque totalmente diferente, fallando así el desafío de su prueba de trabajo (PoW).
Bloques
Sin este concepto no se podría entender blockchain. El bloque es la unidad más pequeña en una blockchain. Cada bloque tiene una cabecera y un cuerpo. Al primer bloque de la cadena se le conoce como bloque génesis. Un concepto recurrente es la altura de bloque, es decir, número de bloques minados después del bloque génesis.
- Cabecera:
- Versión
- Hash del bloque previo
- Árbol de Merkle
- Nbits
- Nonce
- Marca temporal (timestamp)
- Cuerpo:
- Contiene todas las transacciones.
Wallets
Las carteras son un piezas de software (y a menudo también de hardware) que permiten a los usuarios la compra, venta y monitorización de sus criptomonedas. No todas las blockchain necesitan el uso de wallets. Cada wallet está identificada por una o varias direcciones, que a su vez se calculan a partir de la clave pública (en el caso de Bitcoin se calculan con el estándar P2PKH).
Como hemos comentado antes, la Wallet no debe verse como una cartera que contiene dinero, sino como un «manojo de llaves» (tus claves privadas) que permiten operar tus tokens y firmar tus transacciones.
Dicho esto, es importante que la clave pública (a pesar de su nombre) no se publique a los cuatro vientos, ya que todas las transacciones en una blockchain pública son verificables por cualquiera. Esto es: cualquiera podría conocer los fondos que tienes en tu cartera y todas las operaciones que has estado haciendo.
Transacciones
Las transacciones son estructuras de datos que codifican transferencias de valor y cambios de estado de forma inmutable. Las transacciones se aprueban por la red mediante un mecanismo de consenso. Las transacciones siguen habitualmente cuatro pasos:
- Un usuario crea y firma una transacción con su clave privada.
- La transacción se retransmite a la red.
- La transacción se verifica por los nodos autorizados. Si ésta es válida, se agrega al bloque. De lo contrario, se rechaza la transacción.
- La transacción se consolida una vez el bloque se agrega a la blockchain.
Modelo UTXO
Es un modelo de contabilidad para blockchain basado en el estado de las transacciones. El balance de cuentas no se hace a nivel de cuenta individual, sino a nivel de las transacciones como entradas y salidas. De esta forma, cada transacción genera dos outputs: la cantidad que se quiere transmitir, y un reintegro de la cantidad restante del saldo. Este es el modelo que sigue Bitcoin.
Modelo basado en cuentas
Este es el modelo que utiliza Ethereum. En éste hay dos tipos de cuentas:
- Cuentas privadas controlados por usuarios
- Cuentas controladas por código de contrato (smart contract).
Consenso y algoritmos de consenso
Los mecanismos de consenso permiten a los nodos acordar qué transacciones son legítimas y pueden ser añadidas a la cadena de bloques. En las cadenas públicas distribuidas estos mecanismos son extremadamente imporantes, pues tratan de resolver el problema de los generales bizantinos. El enunciado dice algo así, de forma resumida:
Unos generales quieren atacar una ciudad, pero sus respectivos ejércitos están lejos, de forma que un ataque coordinado es casi imposible. Un general o varios pueden ser traidores, por lo que el objetivo es lograr que el resto alcancen un acuerdo unánime sobre si atacar o retirarse al mismo tiempo.
Los algoritmos de consenso más importantes son:
- Proof of Work (PoW): se usa a menudo como equivalente de minería (ver más abajo).
- Proof of Stake (PoS): aquí no hay recompensas por bloque, sino por cantidad estacada (staking). Una variante de este mecanismo es Delegated Proof of Stake (DPoS).
- Proof of Importance (PoI): a cada cuenta se le asigna una puntuación de importancia, que influirá en cómo un usuario puede «cosechar» desde la blockchain.
- Proof of Elapsed Time (PoET): elimina la necesidad de minado utilizando una lotería en base al tiempo transcurrido. Se utiliza en blockchains privadas.
- Proof of Capacity (PoC): el nodo con más capacidad de almacenamiento tiene más probabilidades de generar el siguiente bloque.
- Proof of Activity (PoA): combinación de PoW y PoS utilizando lo mejor de los dos mundos. La característica principal es que los validadores deben confirmar su identidad real y poner su reputación en juego.
- Proof of Burn (PoB): otra forma de obligar a los nodos a poner «skin in the game». Los nodos deben quemar tokens a modo de inversión para poder minar el siguiente bloque.
- Proof of Weight (PoWeight): cada usuario tiene un peso (weight) determinado por la cantidad de dinero en la cuenta del usuario. La red permanecerá segura mientras 2/3 de los usuarios ponderados por dinero se mantenga honesta. Este mecanismo introduce un cierto nivel de centralización. No proporciona incentivos.
- Delegated Byzantine Fault Tolerance (dBFT): introducido por la criptomoneda NEO, se utiliza un sistema de elección de delegado por voto (nodos contables) y portavoz (elegido aleatoriamente).
- Practical Byzantine Fault Tolerance (pBFT): diseñado para operar eficientemente en sistemas asíncronos.
- Simplified Byzantine Fault Tolerance (sBFT) es una variante de pBFT en el que un sólo validador líder reunifica las transacciones propuestas y forma el nuevo bloque. El consenso se alcanza como resultado de un mínimo número de nodos ratificando el bloque nuevo.
Hay muchos más, normalmente variaciones de los que aquí se mencionan.
Minería
La minería es un proceso utilizado para grabar una transacción pendiente dentro de la cadena de bloques. La minería se puede ver como una competición computacional entre nodos mineros para obtener el siguiente bloque. El ganador se lleva una recompensa en tokens. Este esfuerzo es la mayor garantía contra ataques en los consensos de prueba de trabajo (en otro artículo formularemos esto).
La minería puede ser individual (Solo mining) o en grupo (Pool mining). No todas las blockchains requieren minado, de hecho esto se considera casi un sinónimo de prueba de trabajo (Proof of Work).
Halving
Es un proceso automático incorporado en el protocolo de minado, que reduce a la mitad las recompensas que perciben los mineros. El halving se repite cada cierto tiempo (en Bitcoin cada 210.000 bloques ~= 4 años), de forma que se va reduciendo la tasa de emisión de la criptomoneda (deflación). Esto a largo plazo va introduciendo escasez, lo cual hace que el valor monetario se incremente progresivamente.
Tokens fungibles y no-fungibles (NFT)
Un token es una representación de un valor (no tiene por qué ser sólo monetario). Además puede tener diferentes utilidades, no sólo como reserva de valor, sino también de gobernanza o control de acceso a aplicaciones descentralizadas (DApps). Otra cualidad de los tokens es que pueden ser intercambiados entre diferentes usuarios o convertidos. Los cryptotokens o tokens cripto son un caso particular de token que permiten representar activos o utilidades.
- Tokens fungibles: un token puede intercambiarse por otro semejante. Por ejemplo el ERC-20 de Ethereum.
- Tokens no fungibles (NFT): son únicos, en el sentido de que no pueden intercambiarse por otro token igual. Se utilizan para representar un coleccionable digital o incluso físico. Los protocolos de Ethereum son ERC-721 y ERC-1155.
Contratos inteligentes (Smart Contracts)
Programa informático autónomo que corre sobre la blockchain de forma descentralizada. Cuando se reunen ciertas condiciones en la red (sentencias IF-THEN) se realiza una operación predeterminada como si se tratara de un contrato (inteligente). La primera blockchain en incorporar esta funcionalidad fue Ethereum, aunque a día de hoy existen muchas más.
DeFi
DeFi viene de finanzas descentralizadas. Consiste en el uso de productos y servicios financieros sin necesidad de terceros. Elimina ineficiencias de la banca tradicional y reduce costes significativamente. También se puede definir como «dinero programable». Las DeFi están gobernadas por los usuarios, son fáciles de acceder y globales. Permiten prestar y hacer préstamos P2P de forma segura (cada préstamo está respaldado por una gran cantidad de colateral). Éste es uno de los puntos más candentes en términos de regulación, pues pone en jaque la mera existencia de la clase financiera tradicional.
CBDC (Central Bank Digital Currency)
Muchos bancos centrales ya están migrando su moneda fiat a la versión digital basada en blockchain. Lo bueno (y lo malo) es que son criptomonedas respaldadas oficialmente por los gobiernos. Esto puede acelerar la digitalización de la economía, reducir riesgos de impagos o blanqueamiento de dinero.
Web3
A la web que conocemos a día de hoy la podemos llamar web2: una Internet dominada por compañías que proveen servicios a cambio de tus datos personales.
La Web3, en cambio, hace referencia a las DApps que corren en la blockchain: aplicaciones en las que cualquiera puede participar sin tener que monetizar sus datos personales y sin que nadie pueda bloquearte o denegarte el acceso al servicio.
Oráculos
Los oráculos (en inglés oracles) son agentes que proporcionan información externa a la blockchain (y viceversa), actuando como un puente con el mundo exterior. Gracias a los oráculos un contrato inteligente podría ejecutar una cláusula si se da una condición exterior predeterminada. Por ejemplo, que la acción de TESLA alcance un precio de mercado concreto.
Los oráculos pueden ser automáticos (software) o manuales; de entrada (hacia la blockchain) o de salida (hacia el mundo exterior).
Los oráculos son fundamentales para que las DApps (aplicaciones descentralizadas) funcionen y sean usables en el futuro. Por otro lado pueden comprometer o corromper los contratos inteligentes si los datos de entrada son incorrectos. Éste es quizás uno de los mayores desafíos por resolver en el mundo blockchain.
Puentes
Un puente (blockchain bridge) es una conexión que permite transferir datos o tokens desde una cadena a otra diferente. Para ello es importante hacer una diferenciación: no es lo mismo un token que una criptomoneda. Todas las criptomonedas tienen su propia blockchain. Los tokens, sin embargo, son versiones virtuales construidas sobre la blockchain de otra moneda.
Por ejemplo, Ethereum y Binance Smart Chain tienen su propia red (cadena de bloques) y un token nativo para cada una de ellas. Sin embargo, es posible enviar Ether a una cuenta de Binance Smart Chain mediante la representación de un token de Ethereum sobre la red de BSC. Los bridges (o también cross-chain bridges) son entidades que permiten esta transacción. Por cierto, estas entidades no suelen estar descentralizadas, así que hay que tener cuidado con ellas.
Protocolo de Capa 2 (Layer-2 Protocol)
Las blockchains principales tienen graves problemas de escalabilidad y tarifas por transacción desorbitadas. Para resolver estos problemas se crearon las blockchains de capa 2, también denominadas soluciones «off-chain» (fuera de la cadena). Hay quienes también la llaman la «capa de ejecución». Algunas técnicas de descongestión como la Lighting Network de Bitcoin o Rollups en el caso de Ethereum tienen lugar en esta capa.
Cadena paralela (Sidechain)
Es una blockchain del mismo tipo (por ejemplo Ethereum), pública o privada, que corre paralela a una blockchain principal (por ejemplo Ethereum Mainnet) y que opera de forma independiente. Puede tener su propio mecanismo de consenso y conectarse a la blockchain principal mediante un puente bidireccional.
¿Qué son las Parachains?
Son un tipo especial de sidechain de capa 1 del ecosistema Polkadot y Kusama. Las parachains, que sólo habrá un número limitado, no sólo se conectan por puentes a la red principal (Relay Chain), sino también a cualquier otra blockchain como Bitcoin o Ethereum. Esto les permite aprovecharse de todas las ventajas de seguridad, escalabilidad, gobernanza e interoperabilidad de la Relay Chain central, ya que Polkadot se diseñó como una cadena multicadena de capa 0.
Fragmentación (Sharding)
Es el proceso de dividir una base de datos de forma horizontal para repartir la carga. En el contexto de una cadena de bloques, el sharding permite reducir la congestión en la red e incrementar las transacciones por segundo, usando para ello cadenas paralelas conocidas como shards. También permite aliviar la carga de cada validador, que no tendría que procesar enteramente todas las transacciones de la red. Ethereum tiene planeado introducir esta mejora en su Mainnet a lo largo de 2022. Gracias al sharding cualquiera podrá correr un nodo Ethereum sin grandes requerimientos de hardware.
Hay muchos más conceptos y los iremos incluyendo en sucesivas actualizaciones (o en base a vuestros comentarios), pero aquí estamos cubriendo una buena parte de todo lo que hace falta para empezar.
Empiezo a entender blockchain: ¿soy un experto ahora que sé todo esto?
Sin duda ahora sabes mucho más que la mayoría de la gente. Pero como dije al principio, para ser un experto hace falta mucho más. Sobretodo… práctica.
Y si quieres que te contemos más, suscríbete a la newsletter de BorrowBits y forma parte de nuestra comunidad tecnocrypto.
Una vez entres en esta madriguera de conejos empezarás a encontrar más y más recovecos de conocimiento.
De hecho te pido que comentes si hay algún concepto que eches en falta o me ayudes a corregir errores. Así podré ir actualizando y perfeccionando esta guía para nuestra comunidad. ¡Gracias! 🙏
Agradecimientos:
Iré completando esta sección con vuestros apuntes.
- A @Rodri, un verdadero experto, por las matizaciones sobre los conceptos de blockchain, consenso, wallets y los peligros de compartir la clave pública.
- A @Rafa por la detección de erratas.
Nota importante:
*Los errores con criptomonedas pueden salirte muy caros. Si estás experimentando con un token, cripto o ecosistema nuevo, utiliza siempre las redes de pruebas (testnets) y no utilices activos reales para operar a menos que sepas lo que estás haciendo. Recuerda que nada de lo que leas en este artículo ni en sucesivos va a ser consejo de inversión de ningún tipo. Estos posts tienen fines didácticos y lo que nos interesa es la tecnología para entender blockchain, no la especulación. Si hablamos de alguna criptomoneda o de algún token nunca será una recomendación de compra o venta. Nosotros no invertimos en ninguna criptomoneda en particular. Las criptomonedas tienen un alto riesgo y una volatilidad extrema, por lo que si decides operar con ellas es tu responsabilidad. ¡Haz siempre tu propia investigación!