¿Qué es la cadena de bloques?
En resumen, una cadena de bloques es una lista de registros de datos que funciona como un libro de contabilidad digital descentralizado. Los datos se organizan en bloques, que están ordenados cronológicamente y protegidos mediante criptografía.
El primer modelo de cadena de bloques se creó a principios de la década de 1990, cuando el científico informático Stuart Haber y el físico W. Scott Stornetta emplearon técnicas criptográficas en una cadena de bloques como una forma de proteger los documentos digitales contra la manipulación de datos.
El trabajo de Haber y Stornetta ciertamente inspiró el trabajo de muchos otros informáticos y entusiastas de la criptografía, lo que finalmente condujo a la creación de Bitcoin como el primer sistema de efectivo electrónico descentralizado (o simplemente la primera criptomoneda).
Aunque la tecnología blockchain es más antigua que las criptomonedas, no fue hasta después de la creación de Bitcoin en 2008 que se empezó a reconocer su potencial. Desde entonces, el interés en la tecnología blockchain ha ido creciendo gradualmente y las criptomonedas ahora están ganando reconocimiento a mayor escala.
La tecnología Blockchain se utiliza principalmente para registrar transacciones de criptomonedas, pero se adapta a muchos otros tipos de datos digitales y puede aplicarse a una amplia gama de casos de uso. La red blockchain más antigua, segura y grande es Bitcoin, que fue diseñada con una combinación cuidadosa y equilibrada de criptografía y teoría de juegos.
¿Cómo funciona la cadena de bloques?
En el contexto de las criptomonedas, una cadena de bloques consiste en una cadena estable de bloques, cada uno de los cuales almacena una lista de transacciones previamente confirmadas. Dado que la red blockchain es mantenida por una gran cantidad de computadoras repartidas por todo el mundo, funciona como una base de datos (o libro mayor) descentralizada. Esto significa que cada participante (nodo) mantiene una copia de los datos de la cadena de bloques y se comunican entre sí para garantizar que todos estén en la misma página (o bloque).
Por lo tanto, las transacciones blockchain ocurren dentro de una red global de igual a igual y esto es lo que hace de Bitcoin una moneda digital descentralizada, sin fronteras y resistente a la censura. Además, la mayoría de los sistemas blockchain se consideran no confiables porque no requieren ningún tipo de confianza. No existe una autoridad única que controle Bitcoin.
Una parte central de casi todas las cadenas de bloques es el proceso de minería, que se basa en algoritmos hash. Bitcoin utiliza el algoritmo SHA-256 (algoritmo hash seguro de 256 bits). Toma una entrada de cualquier longitud y genera una salida que siempre tendrá la misma longitud. La salida producida se llama "hash" y, en este caso, siempre está compuesta por 64 caracteres (256 bits).
Entonces, la misma entrada dará como resultado la misma salida, sin importar cuántas veces se repita el proceso. Pero si se realiza un pequeño cambio en la entrada, la salida cambiará por completo. Como tal, las funciones hash son deterministas y, en el mundo de las criptomonedas, la mayoría de ellas están diseñadas como una función hash unidireccional.
Ser una función unidireccional significa que es casi imposible calcular cuál fue la entrada y la salida. Uno sólo puede adivinar cuál fue la entrada, pero las probabilidades de acertar son extremadamente bajas. Esta es una de las razones por las que la cadena de bloques de Bitcoin es segura.
Ahora que sabemos qué hace el algoritmo, demostremos cómo funciona una cadena de bloques con un ejemplo simple de una transacción.
Imagine that we have Alice and Bob along with their Bitcoin balance. Let's say Alice owes Bob 2 Bitcoins.
For Alice to send Bob that 2 bitcoin, Alice broadcasts a message with the transaction that she wants to make to all the miners in the network.
En esa transacción, Alice les da a los mineros la dirección de Bob y la cantidad de Bitcoins que le gustaría enviar, junto con una firma digital y su clave pública. La firma se realiza con la clave privada de Alice, y los mineros pueden validar que Alice, de hecho, es la propietaria de esas monedas.
Una vez que los mineros están seguros de que la transacción es válida, pueden colocarla en un bloque junto con muchas otras transacciones e intentar minar el bloque. Esto se hace sometiendo el bloque a través del algoritmo SHA-256. La salida debe comenzar con una cierta cantidad de ceros para que se considere válida. La cantidad de ceros necesarios depende de lo que se llama "dificultad", que cambia según la potencia informática que haya en la red.
Para producir un hash de salida con la cantidad deseada de 0 al principio, los mineros agregan lo que se llama un "nonce" al bloque antes de ejecutarlo a través del algoritmo. Dado que un pequeño cambio en la entrada cambia completamente la salida, los mineros prueban nonces aleatorios hasta que encuentran un hash de salida válido.
Una vez que se extrae el bloque, el minero transmite ese bloque recién extraído a todos los demás mineros. Luego verifican que el bloque sea válido para poder agregarlo a su copia de la cadena de bloques y completar la transacción. Pero en el bloque, los mineros también deben incluir el hash de salida del bloque anterior para que todos los bloques estén unidos, de ahí el nombre blockchain. Esta es una parte importante debido a la forma en que funciona la confianza en el sistema.
Cada minero tiene su propia copia de la cadena de bloques en su computadora, y todos confían en la cadena de bloques que tenga el mayor trabajo computacional, la cadena de bloques más larga. Si un minero cambia una transacción en un bloque anterior, el hash de salida para ese bloque cambiará, lo que hace que todos los hashes posteriores también cambien debido a que a los bloques les gustan los hashes. El minero tendría que rehacer todo el trabajo para que cualquiera aceptara su cadena de bloques como la correcta. Entonces, si un minero quisiera hacer trampa, necesitaría más del 50% de la potencia informática de la red, lo cual es muy poco probable. Los ataques de red como este se denominan ataques del 51%.
El modelo de hacer que las computadoras funcionen para producir bloques se llama Prueba de trabajo (PoW). También existen otros modelos como Prueba de participación (PoS) que no requieren tanta potencia informática y están destinados a requerir menos electricidad. y al mismo tiempo poder escalar a más usuarios.