¿Cómo funciona el Bitcoin? (1/2)
Estoy seguro de que ya existen muchos artículos que explican el funcionamiento del Bitcoin. Pero no todos ellos con el mismo detalle. Así que me gustaría exponer en profundidad el sistema que sustenta esta criptodivisa de la manera más simple y detallada posible. Lo haré en dos artículos. Este primero nos da una idea más superficial del Bitcoin, pero no por ello menos rigurosa. El segundo, no obstante, es más técnico y difícil. Así que, sin más dilación, pasemos al grano.
La idea intuitiva tras el Bitcoin
Imagínate que de costumbre intercambias dinero con tus amigos. Al ser una práctica frecuente, decidís que hacerlo con dinero en efectivo quizás no sea el mejor método, así que creáis un registro financiero en común para anotar todas las transacciones. Este documento se vería así:
- Juan le paga 30€ a Álex.
- Alex le paga 50€ a Juan.
- Sara le paga 20€ a Juan.
- Helena le paga 40€ a Sara.
...
Este registro sería accesible para todo el mundo y todo el mundo podría anotar operaciones. Una vez llegado final de mes, se contabilizarían todas las operaciones y se ajustarían las cuentas. Algunos tendrían que pagar dinero, y otros tendrían que recibirlo
Sin embargo, probablemente te preguntes «¿Y qué ocurre si anotas una operación por la que te debo dinero y esto no es cierto?». La respuesta es que sería muy fácil «hacer trampa» en este sistema. Pero aquí es donde entra en juego la criptografía, con la ayuda de las firmas digitales.
Enter cryptography
Si cada usuario del registro tuviese una firma digital, cada operación anotada solo se consideraría válida si en ella constase la firma digital de cada usuario. Esta firma se genera a partir de dos claves que poseen todos los usuarios del registro: una clave pública y una clave secreta. Estas claves son cadenas de bits aleatorias (unos y ceros). La forma de generar la firma es, lo que se conoce en matemáticas como una función. Se trata de una especie de máquina en la que introduces el mensaje que quieres anotar en el registro financiero y tu clave secreta (valor de entrada o input), y obtienes a cambio una firma digital totalmente personalizada (valor de salida o output). Esto se podría denotar como sigue:
De aquí deducimos que una firma digital cambia con cada mensaje, por mínima que sea la alteración en el mismo. Mientras que una firma manual varía muy poco siempre que la hacemos, la firma digital cambia con cada línea que se añade al registro, y, por supuesto es personal, ya que depende de la clave secreta de cada usuario. Para verificar la validez de la firma, sin embargo, existe otra función. En esta necesitamos introducir el mensaje en sí, la firma generada por la primera función, y la clave pública (que está relacionada con la privada). El valor de salida que obtendríamos sería lo que se conoce como el dominio booleano: T o F (verdadero, si la firma es válida, y falso si no lo es). Esta función la podríamos denotar como sigue:
Entrando más en detalle, una firma digital consta de 256 bits (unos y ceros). Algo que se vería así:
1010110110101101010100101010111110010101001010101001010010101001101011100110101011111001010001000101010100101010010101001011010100110010101010010101010100101010100101010010101001010101001010100101011111001010101000010101111001001010110010110101010100100010
Esto quiere decir que hay 2^256 firmas posibles. Es decir, 2 multiplicado 256 veces por sí mismo. Y este es un número tan sumamente grande que no se puede imaginar. Decir que es astronómico sería quedarse muy corto, ya que tiene más de 77 dígitos.
Así pues, cuando la función de verificación nos dice que la firma digital es verdadera, podemos estar muy seguros de que la única forma posible de haberla generado es con la clave secreta, que, como he dicho, es personal e intransferible. Sin embargo, este sistema tendría un pequeño fallo a pesar de todo. Aunque no se pueda copiar una firma digital, sí se pueden copiar mensajes enteros sin que su firma deje de ser válida. Por ejemplo, después de que Sara me haya pagado 30€:
- Sara paga 30€ a Alex [firma digital de Sara]
Puedo hacer copia y pega de forma indiscriminada:
Sara paga 30€ a Alex [firma digital de Sara]
Sara paga 30€ a Alex [firma digital de Sara]
Sara paga 30€ a Alex [firma digital de Sara]
...
Así que para evitar esto, las lineas que se añaden al registro se numeran, y la firma digital cambia en cada una de ellas:
Sara paga 30€ a Alex [firma digital de Sara]
Sara paga 30€ a Alex [firma digital de Sara 2]
Sara paga 30€ a Alex [firma digital de Sara 3]
Sara paga 30€ a Alex [firma digital de Sara 4]
Adiós a los billetes y monedas
Así, la posibilidad de fraude se reduce considerablemente. El problema es que, aunque el sistema pueda ser seguro, la gente no siempre es de fiar. De hecho, a mí nadie me impediría no pagar lo que debo a final de mes aunque mi deuda figurase en el registro. Pero esto tiene fácil solución. En lugar de pasar a dinero en efectivo todos los meses, todos los usuarios ingresarían una cantidad determinada al principio. De forma que las primeras lineas del registro se verían como sigue:
Helena obtiene 100€ [firma digital de Helena]
Alex obtiene 100€ [firma digital de Alex]
Sara obtiene 100€ [firma digital de Sara]
Juan obtiene 100€ [firma digital de Juan]
...
De esta forma, las operaciones que excediesen el saldo disponible dentro del sistema serían inválidas, asegurando así que todo el mundo recibe el dinero que le corresponde.
Lo importante en esta fase es que hemos desligado el dinero físico del virtual. De hecho, el dinero físico sería totalmente inútil en un sistema de estas características. Nos permitiría ahorrarnos los costes económicos de imprimir billetes y crear monedas (que son exagerados), y el impacto medioambiental que este proceso entraña – sí, fabricar dinero es muy perjudicial para nuestro planeta.
Esta independencia entre el dinero virtual y el dinero físico hace que los euros que se utilizan dentro del sistema, puedan ser una moneda completamente diferente. Llamémolsa, por ejemplo cripto-euros. De este cisma nace la criptodivisa que le da título al artículo. El Bitcoin no es más que el registro financiero de sus transacciones. No tiene valor per se; no es materia, sino forma.
Conclusion
Una de las diferencias fundamentales entre el Bitcoin y cualquier divisa ordinaria es que el Bitcoin está descentralizado. No lo controla ni lo emite ninguna entidad bancaria, cosa que sí ocurre con el dólar o el euro. El registro financiero del Bitcoin funciona a nivel mundial y se conoce como Blockchain, o, cadena de bloques. Cada bloque consta de una serie de operaciones numeradas e identificadas con la firma digital de cada usuario. Es accesible por todos sus usuarios y todo el mundo dispone de una copia particular del mismo. Es decir, en lugar de ser controlado por una empresa que dispone de un servidor propio, el poder está repartido entre todos. Con esto, las palabras anarquismo financiero puede que dejen de parecer un oxímoron.
Para que funcione el Blockchain correctamente, todas las operaciones que se anotan se hacen públicas automáticamente en las copias del Blockchain de todos los usuarios. Pero aquí surge un problema ¿qué ocurre si las diferentes copias no coinciden? ¿qué ocurre si hay operaciones que no figuran en todos los bloques?
Imaginémonos que Helena recibe 2 bitcoin (BTC a partir de ahora), de mi parte. ¿Cómo puede asegurarse de que el resto del mundo tiene constancia de esa operación? Esto lo veremos en la segunda parte del artículo.
Hyperion
Very informative post
greetings friendship from indonesia
muy buen post soy nueva en steemit
Congratulations @hyperion! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP