Criptomonedas – Blockchain I (Cadena de bloques)
En yasonlasocho estamos interesados en difundir toda la información relevante vinculada al desarrollo tecnológico. A través de este Blog, aportamos nuestro granito de arena a la divulgación de todos estos conocimientos. Esperamos que lo disfruteis tanto como nosotors lo hemos hecho creando dicho contenido.
Consideremos la siguiente situación: Yo deseo realizar un envío de dinero desde España a mi hijo que se encuentra estudiando en Francia. La operación la realizaré normalmente a través de una transferencia desde mi cuenta a la cuenta de mi hijo. Esta transferencia por tanto se realiza a través de un banco. Ese banco actúa como intermediario de esa y otras muchas transacciones y centraliza de forma efectiva el movimiento de capital de un lado a otro. Esta gestión no ha necesitado del traslado de billetes de un lado a otro, sino que simplemente ha habido una comunicación entre uno o dos bancos (origen y destino del dinero) de manera que hay un simple cambio en los balances de las dos cuentas que refleja el traspaso de dinero entre ambas. Ahora es el momento de hacer notar el problema: ni mi hijo ni yo tenemos control alguno sobre el proceso y dependemos totalmente de la figura de esos bancos que, no lo dudes, van a establecer sus propias condiciones sobre las cuentas creadas, sobre la manera como van a realizar las operaciones, el tiempo que van a utilizar en completar el proceso y verificaciones posteriores y por último, van a aplicar sus nada asequibles comisiones.
Es ahí donde entra en juego la cadena de bloques, que básicamente elimina a los intermediarios, descentralizando toda la gestión. El control del proceso es de los usuarios, no de los bancos, y son ellos los que se convierten en parte de un enorme banco con miles, millones de nodos (usuarios), cada uno de los cuales se convierte en partícipe y gestor de los libros de cuenta de nuestro propio banco-blockchain
¿Qué es entonces la cadena de bloques? Pues un gigantesco libro de cuentas en los que los registros (los bloques) están enlazados y cifrados para proteger la seguridad y privacidad de las transacciones. Es, en otras palabras, una base de datos distribuida y segura (gracias al cifrado).
Esa cadena de bloques tiene un requisito importante: debe haber varios usuarios (nodos) que se encarguen de verificar esas transacciones para validarlas y que así el bloque correspondiente a esa transacción (en cada bloque hay un gran número de transacciones que eso sí, es variable) se registre en ese gigantesco libro de cuentas.
En resumen:
El Blockchain es una tecnología basada en una cadena de bloques de operaciones descentralizada y pública. Esta tecnología genera una base de datos compartida a la que tienen acceso todos sus participantes, los cuáles pueden rastrear cada transacción que hayan realizado. Es como un gran libro de contabilidad inmodificable y compartido que van escribiendo una gran cantidad de ordenadores de forma simultánea.
Cada vez que algún miembro de la red realiza una transacción digital, dicha transacción genera unos datos asociados que quedarán almacenados en uno de los bloques. Cuando ese bloque está completo de información, el bloque se acopla a la cadena de bloques ya existente o blockchain.
La diferencia que hay entre blockchain y una red centralizada (un servidor tradicional que almacena datos) es que la red de blockchain se ejecuta en múltiples ordenadores distribuidos por todo el mundo y no en un registro central único. Esto hace que la red blockchain presente una serie de ventajas como la privacidad, la seguridad y la descentralización o no dependencia de un controlador. El carácter programable y abierto de esta tecnología permite que los procesos sean más eficientes y transparentes, disminuyendo la burocracia y por tanto abaratando los costes y aumentando la rapidez de las transacciones.
La cadena de bloques es un registro de todas las transacciones, almacenadas y compartidas de forma pública. Los llamados mineros se encargan de verificar esas transacciones. Tras ello, estas transacciones se incluyen en la cadena y se distribuyen a los nodos que forman la red.
Definamos de manera adecuada estos elementos.
Bloques
Un bloque está constituido por un conjunto de transacciones. Cada uno de estos bloques integra la cadena de bloques. De manera independiente todo bloque está constituido por:
1.- Un código alfanumérico que enlaza con el bloque anterior.
2.- El “paquete” de transacciones que incluye (cuyo número suele ser elevado y viene determinado por diferentes factores).
3.- Otro código alfanumérico que enlazará con el siguiente bloque.
En el proceso de enlace a la cadena, cada bloque realiza el cálculo complejo del código alfanumérico que incorpora el bloque que le precede y realiza el cálculo complejo del código que cierra el bloque y le permitirá enlazar con el bloque que le seguirá.
Mineros
Los mineros son ordenadores conectados a la red de criptomonedas que se encargan de diversas funciones: por un lado se encargan de verificar todas las transacciones, manteniendo de esta manera la integridad de la cadena de bloques, por otro lado se encargan de generar nuevos bloques de transacciones y además finalmente se encargan de generar (minar) nuevas unidades de criptomoneda. A cambio de esa acción de generación de criptomoneda reciben un pago en la misma criptomoneda que están generando (minando).
Nodos
Un nodo es un ordenador que está conectado a la red Bitcoin. Se dedica a almacenar y distribuir una copia actualizada de la cadena de bloques. Por lo tanto, cada bloque nuevo que se confirma se añade a la cadena de bloques y a la copia que cada nodo almacena.
En este punto, es importante aclarar las sutiles diferencias entre mineros y nodos.
En primer lugar es necesario decir que un nodo completo es una copia completa del historial de transacciones de la cadena de bloques (blockchain) que puede mostrarse en cualquier dispositivo de la red.
Un minero siempre necesita ejecutar un nodo completo para seleccionar transacciones válidas para formar un nuevo bloque. Sin un nodo completo, no puede determinar qué transacciones propuestas son válidas de acuerdo con el historial de transacciones de la cadena de bloques (Blockchain) actual (es decir, si todos los saldos involucrados en las transacciones son suficientes para realizar las transacciones propuestas), porque sin ese nodo completo un minero no tiene acceso al historial completo de la cadena de bloques (Blockchain). Por lo tanto, un minero siempre es también un nodo completo.
Sin embargo, un nodo no es necesariamente simultáneamente un minero. Un dispositivo puede ejecutar un nodo completo al recibir, almacenar y transmitir todos los datos de transacción (al igual que un servidor) sin crear nuevos bloques de transacciones en sí. En este caso, funciona más como un punto de paso con un directorio, mientras que un minero actúa como un nodo pero al mismo tiempo intenta crear nuevos bloques de transacciones también y nuevas unidades de criptomoneda.
En el siguiente artículo continuaremos analizando en detalle el funcionamiento de las transacciones en la cadena de bloques.