Si estás leyendo esto, es probable que hayas oído hablar de blockchain o, al menos, de las criptomonedas.
En el 2017 Bitcoin experimento un máximo histórico, que ha catapultado la criptomoneda y la tecnología de cadena de bloques a la vanguardia del ciclo de noticias de tecnología y finanzas.
Términos como “cadena de bloques”, “minería” y “consenso” están saliendo rápidamente de las conversaciones de círculo cerrado de los pioneros de la criptomoneda y están entrando en las discusiones cotidianas de personas de todo el mundo, independientemente de su experiencia técnica o participación en El ecosistema de cadena de bloques.
Actualmente, Internet está lleno de miles de personas diferentes que claman por una explicación simple y fácil de entender sobre qué es la cadena de bloques blockchain, cómo funciona y cómo está relacionada con la criptomoneda. Si está interesado en invertir en Bitcoin u otra criptomoneda, es esencial desarrollar una comprensión del funcionamiento detrás de escena de estas monedas digitales innovadora y disruptiva para garantizar que sepa en qué está invirtiendo.
Incluso si no planea invertir en criptomoneda, desarrollar una comprensión completa de cómo funciona la cadena de bloques puede ayudarlo a comprender mejor el flujo constante de noticias relacionadas con la criptografía y las medidas que los gobiernos de todo el mundo están tomando para regularlas.
Hay muchas guías diferentes disponibles en línea que intentan delinear y desmitificar el funcionamiento interno de la cadena de bloques. Muchos de estos suponen una cierta cantidad básica de conocimiento técnico por parte de los lectores, asumiendo que términos como “cifrado”, “hashing” y “consenso” significan. Si este eres tú, entonces puedes beneficiarte de la lectura de una de nuestras guías más detalladas, pero si ya te sientes perdido, sigue leyendo: esta guía es para ti.
En este artículo, intentaremos explicar el funcionamiento y la función de la cadena de bloques y cómo se relaciona con la criptomoneda en los términos más simples posibles. Sin juegos, sin complicaciones innecesarias y sin confusión. En esta guía, encontrará el desglose más simple y fácil de entender sobre la tecnología de la cadena de bloques.
¿Qué problema resuelve la cadena de bloques, Blockchain?
Muchas de las guías sobre la cadena de bloques en línea hoy saltan directamente a una explicación de los aspectos técnicos más finos de un sistema de contabilidad distribuida, sin explicar primero cuál es posiblemente el elemento más importante: qué problemas resuelve blockchain?
Para responder a esta pregunta, presentaremos un ejemplo simplificado. Nuestro ejemplo se establecerá en los días prehistóricos y antiguos de la banca con papel y lápiz por motivos de simplicidad.
Imagina que tienes un amigo, John. Actualmente, John está viajando al extranjero y, como John no es fiscalmente responsable, lo llama el cuarto día de sus vacaciones y le pide que le envíe algo de dinero, ya que no tiene.
Como eres un buen amigo, decides ayudar a John y decides enviarle algo de dinero. Para esto llamas a tu banco o vas a tu institución financiera. Y haces una transferencia “Por favor transfiera $ 1,000 de mi cuenta a la de John”.
El administrador de su cuenta responde con un rápido “¡sí, señor!” Y luego abre el registro bancario para determinar si posee los fondos para la transacción.
El administrador de su cuenta toma nota de la transferencia en el registro bancario y le notifica que la transacción se procesará. Luego llama a tu John y le informas que la próxima vez que vaya al banco podrá retirar los $ 1,000 que le enviaste.
En el escenario anterior, tanto usted como John confiaban en el banco para administrar la transferencia. Usted no transfirió ningún dinero físico para John, ni John recibió físicamente ningún dinero cuando se acreditó su cuenta. Ambas partes confiaban en que el banco realizaría un cambio en el registro que afectaría la transferencia de fondos entre ellas.
En este caso, ni usted ni John controlan el registro que actualiza el banco para facilitar las transferencias, que es la principal falla del sistema financiero actual.
Para establecer la confianza entre nosotros dependemos de terceros centralizados.
Para casi todos los antecedentes financieros registrados, hemos confiado en estos terceros para que confíen unos a otros en acuerdos financieros, sociedades comerciales y más.
Intercambios Descentralizados
El problema principal que se presenta al confiar en un tercero para facilitar transferencias y acuerdos financieros es que, por su naturaleza, están centralizados. Todo lo que requeriría para que una de estas organizaciones se corrompa o, en algunos casos, un individuo en una de estas organizaciones de terceros, con el fin de causar un caos generalizado, ya sea intencionalmente o no.
¿Qué pasa si el medio de almacenamiento en el que estas organizaciones recopilan datos financieros se destruye?
¿Qué pasa si el error de usuario cometido por su administrador bancario provocó una transferencia de 10,000 en lugar de 1,000?
¿Qué pasa si el administrador cometió este error a propósito?
Durante muchos años, hemos estado confiando en gran medida en las acciones de grupos individuales de individuos que tienen una cantidad increíble de poder sobre nuestras finanzas.
Es posible crear un sistema que facilite la transferencia de valor sin la necesidad de un banco centralizado?
Para responder a esta pregunta, tendremos que analizar más de cerca el significado de esta pregunta. ¿Qué significa realmente transferir dinero? Después de todo, la transferencia de valor digital esencialmente solo implica modificar entradas en un registro. Una mejor pregunta sería:
¿Hay alguna manera de mantener el registro entre pares en lugar de depender de terceros centralizados para que lo hagan por nosotros?
Esa pregunta es la razón por la cual las criptomonedas y la cadena de bloques se desarrollaron en primer lugar, y es una pregunta que definitivamente vale la pena explorar. La cadena de bloques es un método para mantener el registro sin la necesidad de una institución financiera centralizada.
¿Cómo funciona este método, sin embargo? Para averiguarlo, desglosaremos la función de la cadena de bloques paso a paso
¿Cómo funciona la cadena de bloques?
El requisito principal que se necesita para que funcione la cadena de bloques es que haya suficientes personas involucradas. Sin una cantidad suficiente de participantes, ninguna red de cadena de bloques puede funcionar. Cuando este grupo de personas es lo suficientemente grande, es posible que mantengan un registro sin un tercero.
“Podría tener sentido solo obtener un poco de Bitcoin en caso de que se ponga al día. Si suficientes personas piensan de la misma manera, eso se convierte en una profecía auto cumplida”. – Satoshi Nakamoto en 2009
¿Cuántas personas son suficientes para mantener una cadena de bloques, sin embargo? Al menos tres. En el siguiente ejemplo, asumiremos que diez personas diferentes desean abandonar el mantenimiento de registros de terceros y crear su propia cadena de bloques. A través del acuerdo mutuo, estas personas se han proporcionado entre sí todos los detalles específicos de su cuenta en todo momento, sin conocer las identidades de los demás.
- Una pizarra en blanco
Para empezar, cada uno de los miembros de nuestra cadena de bloques hipotética comienza con una carpeta vacía. A medida que avanza nuestro ejemplo, cada participante de la red seguirá agregando páginas a su carpeta. Esta colección de “páginas” forma el registro que realiza un seguimiento de las transacciones en la red.
- Las transacciones ocurren
Una vez que cada participante de la red está listo para comenzar a registrar datos de transacciones, las transacciones pueden comenzar.
Imaginemos que el participante # 2 quiere enviar $ 10 al participante # 9. Para facilitar esta transacción, el participante # 2 informará a los diez participantes de la red que desean transferir $ 10 a # 9. Todos los participantes de la red lo anotarán en una página.
Todos los participantes de la red verificarán que el # 2 tenga fondos suficientes para transferir $10 al # 9. Si los números se suman, todos anotarán la transacción en sus respectivas páginas en blanco. La transacción está completa.
- Transacciones Continuas
A medida que avanza el tiempo, las transacciones se producen con mayor frecuencia. Cuando se anuncian las transferencias, cada participante de la red registra la información de la transferencia. Este proceso continúa hasta que todos los participantes de la red se queden sin espacio para registrar las transacciones en la página que están usando.
Si asumimos que cada página tiene suficiente espacio para registrar 10 transacciones diferentes, todos se quedarán sin espacio después de que ocurran diez transacciones. En este punto, es hora de almacenar la página y comenzar con la siguiente.
- Asegurando los datos
Antes de almacenar la página que contiene los datos de la transacción, es necesario sellar la página con una clave única que todos los participantes de la red hayan acordado. Al sellar la página de esta manera, nos aseguramos de que nadie pueda realizar cambios en la página una vez que cada participante de la red haya almacenado la página en su carpeta. Este método de sellado hace que no se puedan realizar cambios en la página almacenada.
Es importante destacar que, si todos confían en el método utilizado para sellar la página, todos confían en el contenido de la página. Este método de sellado es la base de toda la cadena de bloques.
En el mundo criptográfico, este proceso se llama “minería”, pero para simplificar el proceso para esta explicación, lo llamaremos “sellado”.
En los sistemas tradicionales, las instituciones financieras externas proporcionaron a los participantes de la red la confianza de que todo lo que se registra en el registro es inmutable y no se puede modificar. En el sistema de cadena de bloques, el método de sellado reemplaza al tercero como garantía de integridad y confianza.
¿Cómo se aseguran los datos?
Antes de que podamos entender cómo sellar la página, primero debemos entender cómo funciona el proceso de sellado. Para entender cómo funciona este proceso, necesitamos entender cómo funciona algo llamado “función hash”. En un intento por limitar la complejidad técnica de esta guía, nos referiremos a “función hash” como la “máquina mágica”.
Función hash, o máquinas mágicas
Imagina una máquina almacenada en un lugar completamente seguro. Cuando a esta máquina se le proporciona una caja que contiene algo, tomará los contenidos y los transformará en otra cosa. Imaginemos que alimentamos un pedazo de papel con el número 4 escrito en la máquina mágica. La máquina luego modificará esta página y nos proporcionará una página que dice “DCBEA”.
Este proceso, llamado cifrado, es completamente opaco y es tan complejo que no es posible decodificarlo sin la máquina. Dados los datos que la máquina proporciona por sí misma, es imposible revertir la salida de “DCBEA” al número 4. Cuando le proporciona el número 4 a la máquina, sin embargo, siempre escupirá “DCBEA”.
Si proporcionamos a la máquina el número 26, por ejemplo, obtendremos un resultado diferente. Los datos que proporciona la máquina saldrán como “94C8E”. Los datos que proporciona la máquina pueden venir como una mezcla de letras y números.
Este proceso se vuelve importante cuando intentamos que la máquina nos proporcione datos que comiencen con tres ceros, como 000ab o 00098 o 000fa. No sabemos cómo la máquina hace lo que hace, así que solo hay una manera de intentar que nos brinde una respuesta específica:
Probando cada número en el universo, un número infinito de iteraciones, hasta que finalmente obtengamos una respuesta que comienza con tres ceros. Después de miles, cientos de miles, o incluso millones de intentos, finalmente obtendremos un resultado que comienza con tres ceros.
Con este proceso, es extremadamente difícil calcular la entrada dada la salida. Sin embargo, a la inversa, es extremadamente fácil verificar si la entrada predicha proporciona la salida deseada. Tenga en cuenta que la máquina mágica proporciona la misma respuesta cada vez que se envían los datos.
No es difícil determinar la respuesta a la pregunta “¿Qué respuesta le da la máquina al número 72533”? Todo lo que necesita hacer para responder esta pregunta es simplemente introducirlo en la máquina. El factor importante a recordar cuando se considera la función hash, o la máquina mágica, es que:
“Dada una salida, es extremadamente difícil calcular la entrada, pero dada la entrada y la salida, es bastante fácil de verificar si la entrada conduce a la salida”.
Cómo se utiliza la función de hash para proteger los datos
Los participantes de la red en nuestro ejemplo utilizan la función hash, o máquina mágica, para generar un sello para sus páginas. Usemos otro ejemplo para ilustrar cómo funciona esto:
Imaginemos que tenemos dos cajas. La primera casilla contiene el número 20893. Luego usaremos esta casilla para responder a la pregunta “¿Puedes determinar qué número, cuando se alimenta a la máquina mágica, da una respuesta que comienza con tres ceros?”
La única forma de responder a esta pregunta, como se ilustra anteriormente en esta guía, es probar cada combinación de números posible hasta que se logre la respuesta deseada. Después de miles, o cientos de miles de intentos, descubriremos que un número, digamos 21191, cuando se envía a la máquina, nos dará la respuesta que deseamos cuando se agregue a la entrada original de 20893.
Sumar estos dos números, 20893 y 21191 juntos, crea otro número, 42084. Cuando se envía a la máquina, este número nos da una solución que comienza con tres ceros. En este caso, el número 21191 se convierte en el “sello” para la entrada de 20893.
Para sellar una caja o página con la designación de 20893, la etiquetamos con la “insignia” de 21191. Tan pronto como esta caja se etiqueta con este número, se considera “sellada”. En el mundo de la criptomoneda, este número de sellado se conoce como “Prueba de trabajo”, lo que significa que este número representa la cantidad de esfuerzo que se ha gastado para determinarlo.
Si un participante de la red desea determinar si una página ha sido alterada, todo lo que deberá hacer es agregar el contenido de la página junto con el número de sellado y enviarlo a la máquina mágica. Si la máquina da una respuesta que comienza con tres ceros, el contenido puede considerarse intacto. Si la respuesta es diferente, la página se puede descartar y su contenido se considera incorrecto e irrelevante.
En nuestro ejemplo de una cadena de bloques a pequeña escala, usaremos un mecanismo de sellado similar para proteger las páginas de alteraciones y organizarlas correctamente.
Prevención de la manipulación de datos
Para sellar las páginas que contienen todas las transacciones en una red de cadena de bloques, debemos determinar el número que, cuando se agrega a la lista adjunta de transacciones y se envía a la máquina mágica, producirá una palabra que comienza con tres ceros
Tenga en cuenta que en nuestro ejemplo, utilizamos el requisito de tres ceros iniciales solo con fines ilustrativos. Los requisitos reales de las funciones de hash son mucho más estrictos y complejos en la realidad.
Una vez que ese número se calcula gastando una cantidad significativa de tiempo, energía, potencia de procesamiento y electricidad, la página se sella. Si alguien en algún momento intenta alterar el contenido de la página, el número de sellado se puede usar para verificar la integridad de su contenido.
Ahora que entendemos cómo funciona la función de hash, o máquina mágica, volveremos al punto en nuestro ejemplo en el que los diez participantes de la red se quedaron sin espacio en la página que usan para registrar transacciones.
Tan pronto como todos los participantes de la red se quedan sin espacio para registrar más transacciones, todos calculan el número de sellado para que pueda almacenarse de forma segura en la carpeta. Todos en la red intentan averiguar el número correcto al mismo tiempo, pero solo un participante lo hará bien primero. Ese participante luego anuncia ese número al resto de los participantes.
Después de recibir la notificación del número de sellado correcto, todos los participantes de la red verifican que el número sea correcto. Si es así, todos los participantes etiquetarán su página con este número y la guardarán.
¿Qué pasa si, hipotéticamente, un participante de la red no puede hacer que el número anunciado produzca la solución deseada? Esto no es inusual en el ecosistema de cadena de bloques. Hay una serie de razones por las que esto puede suceder:
- El participante puede haber oído mal la cantidad de transacciones anunciadas
- El participante puede haber registrado transacciones incorrectamente
- El participante puede haber intentado registrar las transacciones de manera deshonesta o fraudulenta para favorecer a sí mismo o a alguien más en la red
En este caso, el participante solo tiene una opción. Tendrá que descartar su página y copiar una página correcta de otra persona. Si no actualiza su página, se le prohibirá participar en la red hasta que lo haga.
¿Por qué todos los participantes querrían intentar calcular el número de sellado cuando otras personas en la red simplemente se lo anunciarán? ¿Por qué no simplemente sentarse y esperar el anuncio?
Aquí es donde entran en juego los incentivos. Todos los que participan en la red de cadena de bloques son elegibles para recibir recompensas. Al primer participante de la red que calcula el número de sellado se le proporciona una recompensa por el esfuerzo que ha gastado en energía y electricidad de la CPU.
Usando nuestra red de ejemplo, imagine que el participante # 5 calcula el número de sellado de una página y luego es recompensado con una cantidad de dinero, por ejemplo, $ 1. Este dinero se crea de la nada, lo que quiere decir que el saldo del participante # 5 aumenta en $ 1 sin afectar los saldos de otros participantes de la red.
Este proceso es cómo comenzó Bitcoin. Fue la primera criptomoneda en ser procesada utilizando la cadena de bloques, y fue la primera criptomoneda en ofrecer recompensas a los participantes por el mantenimiento de la red. Cuando aumenta la demanda de Bitcoin, el valor de Bitcoin también aumenta. Esto hace que el valor de Bitcoin crezca aún más, ya que más personas querrán poseerlos debido a su naturaleza de alto valor. Las recompensas mantienen a todos trabajando en la red.
Una vez que todos sellan una página con el número de sellado, almacenan la página en su carpeta y comienzan una nueva página, iniciando el proceso nuevamente. Piense en una sola página como un bloque de transacciones en la red, y en la carpeta en la que están almacenados como una cadena de páginas, y tiene una idea de cómo funciona la cadena de bloques.
Hay, sin embargo, otro punto importante que debe ser considerado.
Imagine que ahora hay cinco páginas en la carpeta que están selladas con diferentes números de sellado. ¿Qué pasa si un usuario vuelve a la segunda página y lo modifica para favorecerse? El número de sellado debería hipotéticamente evitar que esto ocurra y evitar que ocurran inconsistencias.
Sin embargo, ¿qué sucede si el participante se esfuerza por calcular un nuevo número de sellado que tenga en cuenta las modificaciones fraudulentas y que en su lugar etiquete la página?
Para evitar que esto ocurra, el proceso de generación del número de sellado tiene un pequeño giro que aún no hemos mencionado.
Prevención de modificaciones a los números de sellado
Recordará que anteriormente en esta guía le presentamos el concepto de dos casillas, una con el número 20893 y una vacía que se debe calcular. En realidad, para calcular el número de sellado en un escenario de cadena de bloques, hay tres casillas: dos precargadas y una que debe calcularse.
Cuando el contenido de los tres de estos cuadros se entrega a la máquina mágica, o función hash, la respuesta que proporciona debe satisfacer una serie de requisitos. Una caja contiene la lista de transacciones y otra contiene el número de sellado. El tercer cuadro, sin embargo, contiene la salida de la máquina mágica que se determinó para la página anterior en la carpeta.
Con este truco, la cadena de bloques se asegura de que cada página anterior se verifique durante el proceso de verificación de la nueva página que se está sellando. Por lo tanto, para modificar una página anterior, un participante de la red malintencionado o fraudulento tendría que cambiar el contenido y el número de sellado de todas las iteraciones entre la página histórica que desea modificar y la página actual para mantener el cambio consistente.
Si alguno de los participantes de la red en nuestro ejemplo original intentara engañar al sistema, necesitarían ajustar un número masivo de páginas y calcular el nuevo número de sellado para cada una de estas páginas individuales. Es obvio que sellar una sola página es difícil, por lo que esta tarea sería casi imposible. Un participante deshonesto de la red no puede vencer a nueve participantes honestos.
Si un participante deshonesto de la red intentara defraudar la red, esencialmente estaría creando una nueva cadena en la red. Esta nueva cadena, sin embargo, nunca podría mantenerse al día con la cadena honesta, porque los esfuerzos individuales de un individuo no pueden superar los esfuerzos acumulados de otros participantes.
La cadena más larga es la cadena más honesta.
¿Qué tomaría para que la cadena de bloques falle?
La única manera de que falle una red de cadena de bloques sería una situación en la que más de la mitad de los participantes de la red intenten defraudar el sistema al mismo tiempo. Esto se conoce como la “regla del 51%“. Esta es la única razón por la que una red de cadena de bloques puede fallar, y es un resultado extremadamente improbable.
La cadena de bloques se basa en el precepto de que la mayoría de la multitud es siempre honesta.
Esto concluye nuestra guía básica sobre cómo funciona la cadena de bloques. Si alguna vez necesita una explicación simple de cómo funciona la cadena de bloques, no dude en consultar esta página o compartirla con amigos que necesiten una aclaración.