Hosted on ev.hyper.media via the Hypermedia Protocol.
Por Greg Walker. Traducido por Diego Soyu
Este artículo es una adaptación autorizada de un contenido creado por Greg Walker en https://learnmeabitcoin.com/
Introducción
Bitcoin es un sistema de pago electrónico que permite a cualquier persona crear una cuenta y enviar dinero a cualquier parte en el mundo.
Se creó como una alternativa al sistema financiero actual. Hoy tenemos un pequeño número de grandes bancos que controlan quién puede crear una cuenta y qué transacciones se pueden realizar. Esto centraliza el control del dinero, y no tenemos otra opción que confiar en que estos bancos actúen de forma justa y responsable.
Se debe confiar en que los bancos guarden nuestro dinero y lo transfieran electrónicamente, pero lo prestan en oleadas de burbujas crediticias con apenas una fracción en reserva. Satoshi Nakamoto, p2pfoundation.ning.com
Bitcoin se desarrolló en respuesta a la crisis financiera de 2007-2008 causada por la centralización del sistema actual. Fue diseñado por Satoshi Nakamoto y lanzado en enero de 2009 como un sistema de pagos que funciona sin un punto de control central.
Bitcoin es simplemente un programa informático . Puedes descargarlo y ejecutarlo en tu ordenador.
Al ejecutar el programa, se conectará a otras computadoras que también lo están ejecutando y comenzarán a compartir un archivo con usted. Este archivo se denomina cadena de bloques (blockchain) y es una gran lista de transacciones .
Cuando una nueva transacción entra en la red, se transmite de computadora a computadora hasta que todas tienen una copia. Cada 10 minutos, una computadora aleatoria ( nodo ) de la red añade las últimas transacciones recibidas a la cadena de bloques y comparte las actualizaciones con los demás.
Ej. de transacción: Diego le envía 2 bitcoin a Greg
Esto resulta en que el programa de Bitcoin crea una gran red de computadoras que se comunican entre sí para compartir un archivo y actualizarlo con nuevas transacciones .
Bitcoin resuelve el problema de tener un sistema de pagos que opere con un ente central de control (centralización del poder).
Antes de Bitcoin, era posible retransmitir transacciones a través de una red de computadoras. Sin embargo, el problema radica en que se pueden insertar transacciones conflictivas en la red . Por ejemplo, se podrían crear dos transacciones separadas que gasten la misma moneda digital y enviarlas a la red simultáneamente. Esto se llama " doble gasto ":
Algunas computadoras recibirán primero la transacción verde y otras recibirán primero la transacción roja .
Si se crea un sistema de pago electrónico sin una autoridad central, existe el problema de determinar cuál de estas transacciones se produjo "primero", y esto es algo difícil de determinar cuando se cuenta con una red de computadoras que actúan independientemente.
Entonces, ¿quién decide qué transacción llegó "primero" y debería ser la única que se escriba en el archivo?
Bitcoin resuelve este problema obligando a los nodos a guardar en una memoria (como una sala de espera) todas las transacciones que reciben antes de escribirlas en el archivo (blockchain). Luego, a intervalos de 10 minutos, un nodo aleatorio de la red añadirá las transacciones de su memoria al archivo.
Este archivo actualizado se comparte con el resto de la red. Los nodos aceptarán las transacciones del archivo actualizado como correctas y eliminarán de su memoria cualquier transacción conflictiva.
Como resultado, nunca se escribirán transacciones de doble gasto en el archivo y todos los nodos se actualizarán periódicamente a la misma versión del archivo compartido.
Este proceso de agregar transacciones al archivo se llama minería y es una competencia de toda la red que no puede ser controlada por un solo nodo.
La minería es el proceso de agregar nuevos bloques de transacciones a la cadena de bloques.
Para empezar, cada nodo almacena las últimas transacciones que ha recibido en su pool de memoria , que es simplemente una memoria temporal en su computadora.
Cualquier nodo puede entonces intentar extraer las transacciones de su grupo de memoria al archivo compartido (la cadena de bloques ).
Para hacer esto, un nodo reunirá las transacciones de su pool de memoria y lo empaquetará en un bloque y luego usará potencia de procesamiento para intentar agregar este bloque de transacciones a la cadena de bloques.
Entonces, ¿dónde entra en juego esta potencia de procesamiento? Pues bien, para añadir este bloque a la cadena de bloques, debes introducir tu bloque de transacciones en algo llamado función hash . Una función hash es básicamente un miniprograma informático que toma cualquier cantidad de datos, los codifica y genera un número completamente único (e impredecible).
Para que su bloque se agregue con éxito a la cadena de bloques, este número (o hash de bloque ) debe ser inferior al objetivo , que es un umbral que todos en la red acuerdan.
Si el hash del bloque resultante no es inferior al objetivo, el minero puede realizar un ajuste a los datos dentro del bloque y volver a pasarlo por la función hash. Esto generará un nuevo número completamente diferente que, con suerte, será inferior al objetivo. De lo contrario, ajusta el bloque y vuelve a intentarlo.
Eventualmente, uno de los nodos (o mineros) de la red encontrará un hash de bloque por debajo del objetivo, y este bloque de transacciones se agregará a la cadena de bloques.
Luego, el proceso de minería comienza nuevamente para agregar el siguiente bloque a la cadena.
En resumen, el proceso de minería utiliza la potencia de procesamiento para realizar cálculos de hash a la mayor velocidad posible e intentar ser el primer ordenador de la red en obtener un hash de bloque inferior al objetivo. Si lo consigue, puede añadir su bloque de transacciones a la blockchain y compartirlo con el resto de la red.
El incentivo para usar la capacidad de procesamiento e intentar añadir nuevos bloques, radica en que el minero ganador tendrá disposición una cantidad fija de bitcoins que no existían anteriormente. Por lo tanto, si logras minar un bloque con éxito, puedes "enviarte" estos nuevos bitcoins como recompensa por tu esfuerzo.
Las transacciones no se añaden individualmente al archivo, sino que se recopilan y se añaden en bloques. Cada uno de estos nuevos bloques se construye sobre uno existente, por lo que el archivo se compone de una cadena de bloques ; de ahí el nombre blockchain .
Además, cada nodo de la red siempre adoptará la cadena de bloques más larga que reciba como versión "oficial" de la blockchain.
Esto significa que los mineros siempre intentarán construir sobre la "punta" de la cadena de bloques más larga conocida, ya que cualquier transacción que no sea parte de la cadena más larga será inválida.
Por lo tanto, si alguien quisiera reescribir el historial de transacciones, necesitaría reconstruir una cadena de bloques más larga para crear una nueva cadena más larga que otros nodos pudieran adoptar. Sin embargo, para lograrlo, un solo minero necesitaría tener mayor capacidad de procesamiento que el resto de la red en conjunto.
Puedes pensar en la cadena de bloques como un lugar de cajas de seguridad , a las que llamamos salidas (output). Estas salidas contienen diversas cantidades de bitcoin.
Cuando realizas una transacción de bitcoin , seleccionas algunas salidas y las desbloqueas , luego creas nuevas salidas y les pones nuevos bloqueos .
Cuando envías bitcoins a alguien, en realidad está colocando una cantidad de bitcoins en una nueva caja de seguridad y poniéndole un candado que sólo la persona que esta recibiendo los bitcoins puede desbloquear.
Por ejemplo, si quisiera enviarte bitcoins, seleccionaría algunas salidas de la blockchain que pueda desbloquear y crearía una nueva salida a partir de ellas que solo puedas desbloquear. Además, si no quisiera enviarte todos los bitcoins que he desbloqueado, crearía una salida adicional como mi "cambio" y la bloquearía para mí.
De ahora en adelante, si quieres enviar tus bitcoins a otra persona, deberás repetir el proceso de seleccionar salidas existentes (que puedes desbloquear) y crear nuevas a partir de ellas. Como resultado, las transacciones de bitcoin forman una estructura similar a un gráfico, donde el movimiento de bitcoins está conectado por una serie de transacciones.
Para poder "recibir" bitcoins, es necesario tener un conjunto de claves .
Este conjunto de claves es como un número de cuenta y una contraseña , excepto que en Bitcoin se llaman su llave pública y llave privada .
Por ejemplo, si quisiera enviar bitcoins a otra persona, primero tendría que proporcionarme su llave pública . Al crear mi transacción, colocaría su llave pública dentro del candado de la salida (la caja de seguridad). Y cuando la otra persona quisiera enviar estos bitcoins a otra persona, usaría su llave privada para desbloquear esta salida.
En resumen, tu clave privada es simplemente un número aleatorio grande , y tu clave pública es un número calculado a partir de esta clave privada . Pero lo más ingenioso es que con criptografía puedes darle tu clave pública a otra persona, pero esta no puede usarla para obtener la clave privada .
Ahora, cuando quieras desbloquear bitcoins asignados a tu clave pública , usaras tu clave privada para crear lo que se llama una firma digital . Esta firma demuestra que eres el propietario de la clave pública (y, por lo tanto, que puedes desbloquear los bitcoins), sin tener que revelar tu clave privada . Esta firma solo es válida para la transacción para la que fue creada, por lo que no puede usarse para desbloquear otros bitcoins bloqueados con la misma clave pública .
Este sistema se conoce como Criptografía de Clave Pública y está disponible desde 1978 (véase RSA ). Bitcoin utiliza este sistema para permitir que cualquier persona cree claves para enviar y recibir bitcoins de forma segura, sin necesidad de una autoridad central que emita cuentas y contraseñas.
En Bitcoin convertimos la clave pública en una dirección (address) que es más fácil de usar , es lo que utilizararemos al enviar y recibir pagos.
Para usar Bitcoin, generas tu propia clave privada y tu clave pública . La mayoría de las personas usan una billetera Bitcoin (wallet) para generar y administrar sus claves.
Para recibir bitcoins, le das tu clave pública a quien te los envía . Esta persona crea una transacción donde desbloquea los bitcoins que posee, crea una nueva "caja de seguridad" de bitcoins y guarda tu clave pública dentro.
Esta transacción se envía a un nodo , donde se retransmite de computadora a computadora hasta que cada nodo de la red tiene una copia de la transacción. Desde aquí, cada nodo tiene la oportunidad de intentar minar las transacciones en la blockchain .
El proceso de minería implica que un nodo recopile transacciones de su grupo de memoria en un bloque y realice hash repetidamente del bloque (con un pequeño ajuste cada vez) para intentar obtener un hash de bloque por debajo del valor objetivo actual .
El primer minero que encuentre un hash de bloque inferior al objetivo añadirá el bloque a su blockchain y lo transmitirá a los demás nodos de la red. Cada nodo verificará y añadirá el bloque a su blockchain (eliminando cualquier transacción conflictiva de su memoria en el proceso) y reiniciará el proceso de minería para intentar construir sobre este nuevo bloque en la cadena.
Finalmente, el minero que extrajo este bloque habrá colocado su propia transacción especial dentro del bloque, lo que le permite recolectar una cantidad determinada de bitcoins que no existían previamente. Esta recompensa por bloque actúa como incentivo para que los nodos continúen construyendo la cadena de bloques, a la vez que distribuyen nuevas monedas en la red Bitcoin.
Agradezco a Greg por su generosidad al permitir la traducción de su trabajo de difusión sobre el conocimiento de Bitcoin.
Autor: Diego Soyu, entusiasta de Bitcoin. Este artículo busca acercar la comprensión de Bitcoin a la comunidad hispanohablante.
Seguime en X: @Diegosoyu
Activity