Esta entrada será para explicarte cómo funcionan las criptomonedas. Para tener un mejor entendimiento te sugerimos que le des primero un vistazo a la entrada de arquitecturas centralizadas y descentralizadas. En este explicamos de forma general lo que es una arquitectura centralizada y una arquitectura descentralizada
Dinero digital
Todo comenzó en 2008, cuando un desconocido que se hacía llamar Satoshi Nakamoto propuso un sistema de creación de dinero digital. Una moneda que esté basada en bits. Pero la representación digital de dinero no es una novedad. Hoy en día puedes transferir dinero incluso desde tu móvil, sin necesidad de manejo de papeles o metal. Sin embargo, para que esto sea posible, hay una entidad central que verifica que todas las transacciones sean válidas. Es decir, al hacer una transacción esta entidad revisa si realmente tienes ese dinero y lo envía a otra cuenta que también este verificada previamente su existencia.
Como puedes ver, uno de los problemas es que se depende siempre de una entidad externa. Otro de los problemas, es que se pierde por completo la privacidad. Tus datos personales están registrados dentro de este sistema. Y, por último, este dinero, se devalúa por varios factores, uno de ellos es que al gobierno se le ocurra imprimir demasiado dinero. Estos son algunos de los problemas que soluciona lo propuesto por Satoshi. Busca desvincularse de las entidades centrales (bancos), de los gobiernos, y, además, las transacciones con este dinero son totalmente anónimas
Como funcionan
Satoshi escribió un artículo de cómo funcionaba este sistema en detalle. Unos meses después proporciono el software para poder realizar estas transacciones, después de esto, desapareció. Lo primero que debes saber es que el sistema de bitcoin funciona con P2P, si, como los Torrent. De esta forma ya no dependemos de una entidad única y centralizada que gestione cada transacción
Para saber, cuánto dinero tiene cada persona, se tiene un registro global de transacciones que incluye absolutamente todas las transacciones que han ocurrido en la historia de la moneda de todo el mundo, además, es público, cualquiera puede consultarlo. Y cada una de las cuentas en este registro, son anónimas, no existen datos personales dentro de él, de aquí que se mantenga el anonimato
Blockchain
Al registro que hemos mencionado se le conoce como blockchain. Este es una secuencia de datos encadenados en el que cada bloque hace referencia al anterior. Al ser distribuido y público, es imposible modificar los registros del pasado, ya que al venir de un sistema P2P, los registros pasados se recuperan de infinidad de equipos que tienen la misma información Para modificar un registro pasado tendrías que modificar la información de cada usuario, algo prácticamente imposible.
Los bloques, como ya mencionamos, contienen las transacciones realizadas, y cada uno de estos bloques esta creado por la comunidad. cualquier usuario puede crear un desde su computadora, a estos usuarios, se les llama mineros.
Considera que usuario «A» realiza una transacción a usuario «B». Es el minero el que se encarga de validar esta transacción, y una vez validada, se envía la información a los demás usuarios de la red
Reglas del bitcoin
El bitcoin tiene una serie de reglas que mencionaremos a continuación
- Los bloques están hechos de texto, este texto contiene las transacciones
- cada bloque tiene un megabyte aproximadamente de tamaño con todas las transacciones que quepan dentro de él, aproximadamente 2000-2200
- Aproximadamente cada 10 minutos se creará un bloque, sólo uno
- El minero que genere el bloque recibirá una recompensa (por eso los mineros compiten para generar los bloques)
- Cada bloque enviado por un minero tiene que ser aprobado por mayoría con los otros mineros
- El hash empieza con un numero de 0’s definidos
Hash
Hash función, es algo sencillo, básicamente se trata de una función. Una función a la que le metes un texto, y te arroja una serie de caracteres con una longitud fija. A continuación, te muestro ejemplos de textos introducidos y sus resultados correspondientes
Entrada: Texto corto
Salida: 9ede7a4b9f442daae835e74e917f6805e8dc90fc4ffb78a1058f11721b3c506f
Entrada : Este es un texto mucho más largo y finaliza en 1
Salida: 51c07794e40b1d8062dbc96a4345bc7c072cca729d1b7dfd9fad9986eb9a4a0b
Entrada: Este es un texto mucho más largo y finaliza en 2
Salida: a0bb2121347f367379330ba895957f55cf42728c182767684b57fc2a0d815fce
Como puedes ver, no importa la longitud del texto de entrada, siempre arroja el mismo número de caracteres. También puedes notar que el simple cambio de un carácter en la entrada cambia por completo la salida. La peculiaridad del hash es que si conoces la entrada, puedes generar la salida, esta siempre será la misma, sin embargo. No puedes crear la entrada a partir de la salida, es lo que lo hace tan seguro
¿Que contiene un bloque?
Un bloque en sí contiene el hash del bloque anterior, la fecha y hora de creación del bloque, la transacción de recompensa para el minero, todas las transacciones que quepan hasta llegar a 1 megabyte y un número final que se añade automáticamente.
Te acuerdas que los hashes de los bitcoins comienzan con un numero de 0’s definidos. Esto se logra añadiendo un numero al final de tu bloque, de esta forma si se modifica 1 solo carácter dentro de cualquier transacción, el resultado del hash cambiaría por completo. No comenzaría por ningún 0, por lo tanto, la transacción no es valida
¿10 minutos?
Seguramente te preguntaste, ¿por qué se crea solo 1 bloque cada 10 minutos? Esto tiene que ver directamente con la cantidad de 0’s al principio de los hashes. Encontrar un número que sumado a una transacción de como resultado un hash que comience con un 0, es complicado, con dos 0’s es aún más complicado. Entre más 0’s contenga el hash, más complicado será, y entre menos tenga, será más sencillo. Es decir, la cantidad de 0’s varían el poder de cómputo para encontrar el hash correcto. Cada 2016 bloque se ajusta la dificultad dependiendo del poder de cómputo minando mundialmente. El ajuste es para que se tarde unos 10 minutos aproximadamente en dar con el hash correcto. De esta manera, se evita monopolizar la acreditación de transacciones para una sola entidad