Introducción

Podemos decir que una criptomoneda es, simplemente, una moneda digital pero nos quedamos muy cortos con lo que realmente son y nos permiten. Es necesario saber que las criptomonedas, en general, no están controladas por ningún gobierno ni institución y las transacciones son P2P, es decir, no hay intermediarios entre los dos implicados. Al igual que la moneda, el valor de las criptomonedas depende de la confianza y valor que los usuarios les quieran asignar.

gcHintroduccion_cry.png

En un banco tradicional tenemos un IBAN (número de cuenta) y luego unas credenciales para entrar y hacer nuestras gestiones. Pues en el mundo de las criptomonedas el funcionamiento es prácticamente igual. En vez de cuentas, se llaman carteras. Tenemos una clave pública que funciona igual que nuestro IBAN. Si queremos recibir dinero, debemos dar nuestra clave pública. Por otro lado, tendremos una clave privada que nos permitirá operar con los fondos de nuestra cartera. Como no hay ninguna entidad que gestione las criptomonedas, podemos decir que nosotros somos nuestro propio banco por lo que somos los responsables de mantener siempre segura nuestra clave privada porque si alguien toma el control, podrá acceder a nuestros fondos. Profundizaremos  en esto más adelante.

Es necesario saber que las criptomonedas se basan en una tecnología llamada blockchain (cadena de bloques), pues bien, para explicar estos conceptos tan básicos, primero vamos a repasar un poco algunos conceptos que seguramente ya tengamos bastante claros.

Las cualidades de una moneda (entendida como dinero) son:

  • Reserva de valor, por lo que el dinero permite aplazar el consumo hasta una fecha posterior - no caduca.
  • Unidad de cuenta, nos permite asignar un valor a diferentes bienes sin tener que compararlos. Así que en lugar de decir que un coche vale diez vacas, puedes decir que las vacas cuestan 20.000€.
  • Medio de intercambio, una forma fácil y eficiente para que tú, yo y otros intercambiemos bienes y servicios entre nosotros.

Por lo que toda moneda debe permitir a sus usuarios, por lo menos, esas tres cualidades. Por otro lado, un avance muy importante en la historia fueron los libros de cuentas los cuales realmente existen des de hace siglos. Hace más de 5.000 años, los antiguos mesopotámicos ya comenzaron a registrar cantidades en tablillas de arcilla. Dividían la tabla en filas y columnas. Dentro de cada celda, un dibujo del tipo de artículo y unos agujeros indicaban la cantidad del mismo.

Hace unos 700 años un nuevo método de contabilidad surgió entre los comerciantes y prestamistas del norte de Italia. Esta nueva tecnología de libro de cuentas general dio a sus entradas una relación lógica. Cada artículo debe ser registrado dos veces, una como crédito y otra como débito. Según algunos estudiosos, su difusión llevó a lo que ahora llamamos "capitalismo". Se coge la lista de transacciones del libro del comerciante (un libro de entrada simple, es decir solo se apuntan los ingresos/gastos) y se transfiriere al libro de entrada doble. Cada artículo entra en el sistema de doble entrada agregando un crédito en una cuenta y un débito correspondiente en otra.

Estos libros de cuentas ahora básicamente son los bancos. Llevan las cuentas de millones de clientes alrededor del mundo, quién paga a quién, cuando, cantidad, etc. Todo sin errores, ya que un error podría ser algo terrible en un sistema así.

Entonces, ¿Qué es el blockchain?

El blockchain funciona exactamente igual que un libro de cuentas. Se van apuntando transacciones en las páginas, cuando una página se acaba se pasa a la siguiente. En el blockchain las transacciones se apuntan en bloques de 1 MB de espacio, cuando se completa un bloque, se pasa al siguiente. Todos estos bloques en conjunto forman la blockchain. ¿Fácil verdad?

El primer experimento de blockchain se remonta a 1990 y ese experimento inspiró a Satoshi Nakamoto a inventar la primera moneda digital descentralizada. La tecnología blockchain se utiliza principalmente para registrar transacciones, pero se puede adaptar a muchos otros tipos de datos digitales y puede aplicarse a una amplia gama de casos de uso. La red blockchain más antigua, más segura y más grande es la de Bitcoin.

En resumen, una cadena de bloques es una lista de registros de datos que funciona como un libro de contabilidad digital y descentralizado. Los datos se organizan en bloques, que se ordenan cronológicamente y se aseguran mediante criptografía.

¿Cómo funciona la Blockchain?

La 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 muchos ordenadores repartidos por todo el mundo, funciona como una base de datos descentralizada (o libro de cuentas general). Esto significa que cada participante de la red (nodo) mantiene una copia de los datos de la cadena de bloques, y se comunican entre sí para asegurarse de que todos están en la misma página (o bloque) y con los mismos datos. Por eso las transacciones en cadena de bloques se producen dentro de una red mundial entre pares y esto es lo que hace las criptomonedas un tipo de moneda digital descentralizada sin fronteras, resistente a la censura. No hay una única autoridad que controle a Bitcoin, por ejemplo.

El pilar central de casi todas las blockchain es el proceso de minería, basado en algoritmos de "hashing". Si no sabes que es el hashing, es importante que leas esta página de la wiki dónde se explica de forma muy sencilla. Sabemos que el hashing es unidireccional y que es prácticamente imposible calcular el origen de un hash a partir de este. En Bitcoin, por ejemplo, se usa un algoritmo llamado SHA-256, uno de los hashes más seguros.

Ahora vamos a demostrar cómo funciona una cadena de bloques con un simple ejemplo de transacción. Imagina que tenemos a María y Juan junto con su balance de Bitcoin. Digamos que María le debe a Juan 2 Bitcoins.

Para que María le envíe a Juan esa moneda de 2 bits, María emite un mensaje con la transacción que quiere hacer a todos los mineros de la red.

En esa transacción, María da a los mineros la dirección de Juan y la cantidad de Bitcoins que le gustaría enviar, junto con una firma digital y su clave pública. La firma se hace con la clave privada de María y los mineros pueden validar que María es realmente la dueña de esas monedas porque es la única que tiene dicha clave privada.

Una vez que los mineros están seguros de que la transacción es válida la ponene dentro de un bloque junto con muchas otras transacciones y ese bloque ahora debe ser minado. El minado se hace pasando el bloque junto con una secuencia de números añadida a través del algoritmo SHA-256. La salida debe comenzar con una cierta cantidad de 0 para que se considere válida. La cantidad de 0's necesarios depende de lo que se llama la dificultad del bloque, que cambia dependiendo de cuánta potencia de computación hay en la red. Si los ordenadores se hacen más potentes o hay más ordenadores en la red, la dificultad va a aumentar.

Para producir un hash de salida con la cantidad deseada de 0's al principio, están obligados a usar el bloque con todas las transacciones y agregarle un número aleatorio (a su elección) delante. Como sabemos en hashing un pequeño cambio en la entrada cambia completamente la salida, por lo que los mineros prueban con números aleatorios hasta que encuentran un hash de salida válido y único, con el número de 0s requerido delante. Podríamos decir que los mineros juegan a una lotería y a quien le toca es quien va a minar ese bloque.

En resumen, la transacción de Maria una vez validada se va a añadir dentro de un bloque. Este bloque debe ser minado. Para minar un bloque, los mineros deben "adivinar" un hash concreto que se produce añadiendo unos ciertos números junto con el bloque de transacciones. El hash debe tener un cierto número de 0s delante, la cantidad de 0s es lo que llamamos dificultad. El primer minero en "adivinar" ese hash concreto será recompensado con una cierta cantidad de criptomonedas nuevas, que antes no existían: la recompensa de minado esta es la forma en la que se introducen criptomonedas nuevas en el mercado.

Para verlo de forma más simple, pondré un ejemplo. Imaginemos que nuestro bloque solo tiene espacio por una transacción (recordemos que un bloque está formado por muchas transacciones) y es la siguiente:

A paga 1BTC a B

Y el hash, usando el algoritmo MD5, de este "bloque" es el siguiente:

A paga 1BTC a B -> MD5 -> HASH: dcc70a12b358bb6b4dd526af001d72e8

 Como sabemos el hash del bloque por si solo, el más minimo cambio (por ejemplo un minero que quiere añadir una transacción maliciosa para robar fondos) produciría un hash diferente y el resto de los mineros sabrán que el bloque original ha sido modificado y por lo tanto que ese no es válido.

También es importante saber cuál es la dificultad de bloque, imaginemos que es 2. Eso significa que para considerarse que hemos minado el bloque debemos encontrar el número que, añadido a nuestro bloque, produce un hash con dos ceros delante. Así que conseguir un hash con ese número de ceros delante no nos queda más alternativa que ir probando.

84A paga 1BTC a B -> MD5 -> HASH: 9f8a6e4bc2444e637f5ce4602d0c75ae
63A paga 1BTC a B -> MD5 -> HASH: 55d856bd344b806bf3ec90ed07960d71
888A paga 1BTC a B -> MD5 -> HASH: 9df814a54cb82d14b446843336434580
. . .

Deberíamos ir probando a añadir números al bloque de forma aleatoria hasta que, por suerte, nos saliese un hash que empieza por 2 ceros. Entonces, si somos los primeros, habremos minado el bloque. Como todo el proceso de minería es automático y lo controla un programa específico los mineros no deben estar probando números constantemente sino que tienen un ordenador que lo hace automáticamente por ellos. Un ordenador puede probar millones de números distintos por segundo, por ese motivo la dificultad de minado se corrige en función de la potencia de los ordenadores; cuantos más ceros, más difícil sera encontrar ese número.

Por otro lado, tener un ordenador funcionando todo el rato a máxima potencia probando números consume mucha energía. Ese es el precio que pagan los mineros: energía.

Una vez que el bloque es minado, el minero transmite ese bloque recién minado a todos los demás mineros. A continuación, comprueban que el bloque es válido para poder añadirlo a su copia de la cadena de bloques (¡aqui es cuando comprueban que el hash original no ha cambiado!), es entonces cuando la transacción de María se completa. Además 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 de blockchain. Esta es una parte importante debido a la forma en que la confianza funciona en el sistema.

Cada minero tiene su propia copia de la cadena de bloques en su ordenador y todos confían en la cadena de bloques que tenga más trabajo de computación, la cadena de bloques más larga. Como ya hemos dicho, si un minero cambia una transacción en un bloque anterior por una transacción fraudulenta, el hash de salida de ese bloque cambiará por completo, lo que hará que todos los hashes después de él cambien también debido a que los bloques se enlazan con los hashes. Este minero malicioso tendría que recomputar todo el trabajo (conseguir todos los hashes que empiezan por X ceros) hasta el actual para que alguien acepte que su cadena de bloques es la correcta. Así que si un minero quisiera hacer trampas necesitaría más del 50% de la potencia de computación de la red, lo cual es muy poco probable. Los ataques a la red como este se llaman ataques del 51%. Además, el trabajo que cuesta recomputar toda una cadena de bloques tu solo es tan grande que a los mineros no les vale la pena intentar colar bloques maliciosos ya que gastarían más dinero en energía que el que ganarían al final.

Hacer que los mineros necesiten invertir energía para producir bloques se llama Proof of Work (Prueba de Trabajo o PoW). También hay otros modelos como Proof of Stake (PoS) que no requiere tanta potencia de computación y están destinados a requerir menos electricidad y a la vez poder escalar a más usuarios.

Los beneficios de la Blockchain y las criptomonedas

La blockchain trae consigo mismo algunos beneficios muy interesantes. Los vamos a mencionar en forma de lista simple, para tener en mente qué nos puede proporcionar una tecnología así:

  • Lo que se escribe en la blockchain es inmutable e irreversible.
  • Podemos guardar cualquier tipo de datos, no es necesario guardar solo transacciones.
  • Hay blockchains programables, como Ethereum. Eso significa que podemos programar las transacciones u otros eventos para que ocurran cuando determinadas circunstancias son dadas o como nos interese.
  • No hay que confiar en nadie. Nadie lo controla ni lo gestiona. Es descentralizado.
  • Existirá siempre que haya ordenadores manteniendo la red.
  • Las recompensas de los mineros, la cantidad total máxima de una criptomoneda, etc. Pueden ser determinadas. En el caso de Bitcoin, solo existirán 21.000.000 de Bitcoin, por lo que ayuda a controlar la inflación. Además la recompensa de los mineros se divide a la mitad cada 4 años. Ahora mismo está en 6.25 Bitcoins por bloque minado, por lo que este año se estima que se van a producir unos 1000 Bitcoins.
  • Las criptomonedas pueden ser divididas en partes más pequeñas. No es necesario tener 1 Bitcoin, puedes tener 0.1 o 0.001 o 0.0001. Cada unidad se puede denominar de alguna manera concreta. Por ejemplo, 1mBTC = 0.0001 BTC y 1 satoshi = 0.00000001

Leer siguiente página: ¿Como usar las criptomonedas?