¿Como funcionan las criptomonedas? : Bien Comun

 https://learnmeabitcoin.com/

 Como funcionan las criptomonedas por Greg Walker con notas añadidas.

2021-12-11

¿Como funcionan las criptomonedas?

La primer criptomoneda fue Bitcoin, y aunque actualmente hay varias, todas funcionan de mas o menos la misma manera y son una forma de pago electrónico. En el caso de Bitcoin, fue creada en 2009. Las criptomonedas permiten enviar dinero a cualquiera en el mundo, sin necesidad de una autoridad central que cree cuentas y procese pagos. Yo prefiero la criptomoneda Monero (XMR).

Las criptomonedas fueron creadas como una solución al moderno sistema financiero, donde un número pequeño de grandes bancos controlan la creación de cuentas y el procesamiento de transacciones. Esto centraliza el control del dinero, y obliga a los usuarios a confiar que los bancos actuaran con responsabilidad.

Se debe confiar en los bancos para guardar nuestro dinero y transferirlo electrónicamente, pero lo prestan en olas, generando burbujas de crédito con apenas una fracción en reserva. – Satoshi Nakamoto

El abuso de esta confianza y la resultante crisis financiera de 2007 inspiró la creación de Bitcoin, que funciona como un sistema de pagos sin un punto central de autoridad. Bitcoin fue diseñada anónimamente bajo el seudónimo Satoshi Nakamoto, y fue lanzada en junio 2009.

Desde entonces diferentes criptomonedas han sido lanzadas con diferentes filosofías, aunque los principios básicos son los mismos. Aquí nos centraremos en Bitcoin (BTC) por ser la primera y Monero (XMR) por ser la que proporciona más privacidad.

En general cada criptomoneda funciona independientemente y no es intercambiable con las otras criptomonedas. Aunque existen diferentes esfuerzos como la reciente implementación de cambios atómicos (cambios directos) entre Bitcoin y Monero, pero eso esta fuera del alcance de este escrito.

La siguiente es una explicación sencilla de cómo trabajan, pero si realmente solo quiere el resumen, vaya a la sección "¿Como se adquieren las criptomonedas?" y lea ese y las siguientes secciones para ver la explicación abreviada.

¿Qué es una criptomoneda?

Las criptomonedas son solo programas de computadora. Puede descargarlos y ejecutarlos en su computadora o teléfono celular inteligente.

 


Vamos, inténtelo.

Cuando usted ejecuta el programa de la criptomoneda, este se conectará a otras computadoras que también están ejecutando el programa, y estas comenzarán a compartir un gran archivo con usted. Este archivo es llamado blockchain (cadena de bloques), y es básicamente una gran lista de transacciones, a manera de libro de contabilidad.


Cuando una transacción entra en la red, esta es retransmitida de computadora en computadora hasta que todos tienen una copia de la transacción. A intervalos de aproximadamente 10 minutos (en el caso de bitcoin), una computadora al azar (nodo) en la red agregara la última transacción que recibió al blockchain, y compartirá la actualización con todos los demás en la red.


Como resultado, los programas de criptomonedas crean grandes redes de computadoras que se comunican unas con otras para compartir y actualizar las transacciones.

¿Cuál es el problema que Bitcoin resolvió?

Era posible retransmitir transacciones a través de una red antes de Bitcoin. Sin embargo, el problema es que se pueden insertar transacciones conflictivas en la red de cómputo. Por ejemplo, puede crear dos transacciones separadas para gastar la misma moneda digital, y mandar ambas transacciones hacia la red al mismo tiempo.

Esto es llamado “doble gasto” (double-spend).


Así que, si está creando un sistema electrónico de pagos sin un punto central de control, tendrá el problema de distinguir cuál de estas transacciones llego “primero”, y esto es difícil de hacer cuando tiene una red de computadoras actuando todas independientemente. Algunas transacciones recibirán la transacción verde primero, y algunas computadoras recibirán la transacción roja primero.

¿Quién decide cual llego “primero” y debe ser escrita en el archivo?

Bitcoin resuelve este problema forzando a los nodos a mantener todas las transacciones en memoria antes de escribirlas al archivo. Entonces, a intervalos de 10 minutos, un nodo al azar en la red agrega la transacción en su memoria al archivo.


Este archivo actualizado es entonces compartido con la red, y los nodos aceptaran la transacción en el archivo como “correcta”, removiendo cualquier transacción conflictiva de su memoria. Como resultado, ninguna transacción de doble gasto será escrita en el archivo, y todos los nodos pueden actualizar sus archivos de acuerdo con los otros.


Este proceso de agregar transacciones al archivo es llamado minado, y es básicamente una competencia entre toda la red que no puede ser controlada por un solo nodo en la red. El como participar en un proceso de minado esta fuera del alcance de este escrito, puede comenzar leyendo: https://www.getmonero.org/es/get-started/mining/

¿Como funciona el minado?

Para comenzar, cada nodo guarda las ultimas transacciones que recibió en la memoria común, que es solo memoria temporal en la computadora. Cualquier computadora puede intentar y minar las transacciones de su memoria común al archivo (el blockchain).

Para hacer esto, un nodo tomara la transacción de su memoria común a un contenedor llamado bloque, y entonces usa el poder de procesamiento para intentar agregar esta transacción al blockchain.


¿Así que donde entra el poder de procesamiento? Para agregar el bloque al blockchain, usted debe alimentar el bloque de transacciones en algo llamado función hash. Una función hash es simplemente un mini programa de computadora que tomara una cantidad de datos, los revolverá, y los regresara como un número aleatorio (aunque único).


Para que su bloque sea exitosamente agregado al blockchain, este número (el block hash) debe estar debajo de un objetivo, que es un número limite que al que todos en la red están de acuerdo. En el caso de Monero es un poco mas elaborado para prevenir los problemas de que hablaremos mas adelante.


Si resulta que su block hash no está debajo del objetivo, puede hacer algún pequeño ajuste a los datos dentro del bloque y ponerlo dentro de la función hash de nuevo. Esto producirá un número completamente nuevo que con suerte estará debajo del objetivo. Si no, puede ajustar el bloque e intentar de nuevo.


En resumen, el proceso de minado usa poder de procesamiento para realizar las calculaciones hash debajo del objetivo. Si tiene éxito, agregará el bloque de transacciones al blockchain y lo compartirá con el resto de la red.

NOTA: Aunque aún es posible por cualquiera el tratar de minar bloques, ya no es competitivo hacerlo en una computadora casera para múltiples monedas (por ejemplo, Bitcoin). Ahora hay aparatos especializados diseñados para realizar los cálculos hash tan rápida y eficientemente como sea posible, lo que significa que el minado es principalmente realizado por aquellos con aparatos especializados (ASIC) y corriente eléctrica barata.

Monero combate este problema usando una función hash y un objetivo que es muy difícil de optimizar en aparatos especializados, por lo que sigue siendo competitivo minar con computadoras comunes.

¿De dónde vienen las criptomonedas?

Como un incentivo para usar poder de procesamiento para intentar agregar nuevos bloques de transacciones al blokchain, cada nuevo bloque hace disponible un número fijo de criptomonedas que antes no existía. Por ello, si usted puede minar exitosamente un bloque, usted podrá “enviar” a usted mismo estas nuevas criptomonedas como una recompensa por su esfuerzo.


Esta recompense de nuevos bitcoins es llamado recompensa de bloque (block reward), y es la razón por la cual es proceso es llamado “minar”, (quizá seria mejor llamarla acuñar o minting, pero así es como se ha conocido).

¿Porque es el archivo llamado “blockchain”?

Como hemos visto, las transacciones no so agregadas al archivo individualmente – son agrupadas y agregadas en bloques. Cada uno de estos bloques construye sobre uno existente, así que el archivo está compuesto de una cadena de bloques, por eso, blockchain.


Mas aun, cada nodo de esta red adoptara siembre la cadena de bloques más larga que recibe como la versión “oficial” del blockchain. Esto significa que los mineros tendrán siempre que construir en la punta de la cadena más larga de bloques, así cualquier bloque que no sea parte de la cadena más larga no será considerado como valido por los otros nodos.


Por lo tanto, si alguien intentara reescribir la historia de las transacciones, tendrían que reconstruir una cadena de bloques para crear una nueva cadena más larga para ser adoptada por los otros nodos. Sin embargo, para lograr eso, un solo minero necesitaría tener más poder de cómputo que el resto de la red combinada.


Como resultado, el esfuerzo combinado de la red hace difícil que un individuo “sobrepase” a la red y reescriba el blockchain.

¿Como funcionan las transacciones?

Puede pensar en el blockchain como un medio de almacenamiento para cajas de seguridad bancarias, que llamamos salidas (outputs). Estas salidas solo son contenedores que mantienen varias cantidades de criptomoneda.


Cuando realiza una transacción de criptomoneda, usted selecciona alguna salida y la desbloquea, entonces crea una nueva salida y pone candados en ella.


Así que cuando “envía” criptomonedas a alguien, usted está de hecho poniendo criptomonedas en una nueva caja de seguridad y poniendo un candado en ella que solo la persona a quien le “envía” las criptomonedas podrá abrir.

Por ejemplo, si yo quisiera enviarle algunas criptomonedas. Seleccionaría alguna salida del blockchain, la desbloquearía, crearía una nueva salida que solo usted podría desbloquear. También, si no quisiera enviarle todos las criptomonedas que desbloquee, crearía una salida extra como mi “cambio” y la bloquearía para mí mismo.


Continuando, si usted quiere enviar algunas criptomonedas a alguien más, usted repetiría el proceso de seleccionar alguna salida existente (que pueda desbloquear) y crearía una nueva para ellos. Como resultado, las transacciones de criptomonedas forman una estructura como un grafo, donde el movimiento de las criptomonedas se conecta con una serie de transacciones.


Finalmente, cuando la transacción es minada hacia el blockchain, las salidas que fueron usadas (gastadas) en la transacción no pueden ser usadas en otra transacción, y las salidas recientemente creadas estarán disponibles para ser movidas en una transacción futura.


Recordemos que el blockchain es compartido entre todas las computadoras de la red. Eso significa que contrario a lo que muchas personas suponen, las transacciones con muchas criptomonedas no son privadas. Cuantas criptomonedas posee una “cuenta” es del dominio público, lo mismo de la fuente y destino de sus criptomonedas. De ahí a asociar una persona con una cuenta solo requiere una investigación técnica.

Para evitar esto Monero implementa una serie de medidas donde la transacciones no la firma solo el que la envía, sino un conjunto de transacciones, e incluso el monto y destinatario quedan obscurecidos para proporcionar privacidad. El explicar como funcionan estos mecanismos esta fuera del alcance del presente escrito, pero se explican (en Ingles) con gran claridad en el libro “Mastering Monero

¿Como se poseen las criptomonedas?

Para poder “recibir” criptomonedas, usted necesita tener su propio conjunto de llaves (keys) de la criptomoneda que desee recibir. Este conjunto de llaves es como un número de cuenta y clave, excepto que en las criptomonedas son llamados llave pública (public key) y llave privada (private key).

Por ejemplo, si usted quiere que yo le envie algunas criptomonedas, primero necesita darme su llave pública. Cuando creo la transacción, yo podre su llave publica en el candado de la salida (la caja de seguridad). Usted entonces usaría su llave privada para desbloquear la salida cuando quiera enviar algunas criptomonedas a alguien más.


¿Así que donde puede obtener llaves públicas y privadas? Con la ayuda de la criptografía, las puede generar usted mismo.

Brevemente, su llave privada es solo un número aleatorio muy grande, y su llave publica es un número calculado en base a su llave privada. Pero la parte ingeniosa es; usted puede dar su llave publica a cualquiera, pero no pueden obtener su llave privada en base a la pública.


Ahora, cuando usted quiere desbloquear criptomonedas que están asignados a su llave pública, usted puede usar lo que se llama una firma digital. La firma digital provee al propietario de una llave publica (y por lo tanto puede desbloquear criptomonedas), sin tener que revelar su llave privada. Esta firma digital solo es válida para las transacciones para las que fue creada, así que no puede usarse para desbloquear otras criptomonedas bloqueadas con la misma lave pública.


Este sistema es llamado “Criptografía de llave pública”, y ha estado disponible desde 19781. Las criptomonedas usa este sistema para permitir que cualquiera cree llaves para enviar y recibir criptomonedas de manera segura, sin la necesidad de una autoridad central que cree cuentas y claves.

¿Como se adquieren las criptomonedas?

Como todo lo que se obtiene legalmente en este mundo hay que dar algo a cambio. Se puede dar dinero pesos o dólares, en efectivo en un intercambio directo o por medio de algún intermediario como https://localmoner.co o en algún exchange (una compañía que vende o cambia criptomonedas y acepta pagos, muchos con tarjeta de crédito/débito) el tipo de cambio, por tratarse todavía de algo novedoso es bastante cambiante; algunas billeteras (mas de esto adelante) tienen conexión con exchanges para comprar criptomoneda directamente. 

También se puede dar algún producto o servicio, de manera que se compre con criptomoneda, se puede intercambiar por otra criptomoneda, hay también un muy buen proyecto llamado Haveno para el intercambio de Monero sin intermediarios (pero aun no esta listo), etc. 

Otra alternativa, en algunas criptomonedas, es como se mencionaba en una sección anterior, es dar poder de procesamiento, el minado. Aportar poder de procesamiento y podría obtener una recompensa de bloque (recomendado en pool, mas que en solitario), las ventajas y desventajas varían según la criptomoneda y el costo de la electricidad.

Si alguno esta interesado, pueden contactarme por medio de matrix/element @rimugu:matrix.org (Android app: Element) y les paso un cachito de criptomoneda para que comiencen.

Poniéndolo todo junto

Para comenzar, usted debe generar sus propias llave privada y llave pública. Su llave privada solo es un gran número aleatorio, y su llave privada es calculado en base a él. Estas llaves pueden ser fácilmente generadas en su computadora. La mayoría de las personas usa un tipo de programa llamado billetera para ayudar a generar y manejar sus llaves.

Al usar una billetera este programa se encargará de generar y gestionar las llaves, y hacer el proceso necesario para enviar y recibir transacciones. En muchas de estas billeteras la llave privada tiene la forma de una serie de palabras llamadas semilla o seed. El propósito de estas palabras es que sea un poco más fácil de manejar que un largo conjunto de dígitos. Mantenga una copia de estas palabras en un lugar seguro y podrá abrir su “cuenta” usando alguna otra billetera si así lo desea.

Tenga en cuenta que algunas billeteras tienen la custodia (custodial) de sus semillas (llave privada), por lo que aunque ofrecen algunas ventajas, son menos seguras pues alguien mas tiene una copia de su llave privada. Use solo programas de billetera reconocidos.

Para recibir criptomonedas, necesita dar su llave publica a quien quiera enviarle bitcoins. Esta persona entonces creara una transacción que desbloqueara sus criptomonedas, y creará una nueva “caja de seguridad” de criptomonedas y pondrá su llave publica en el candado.

Con las billeteras modernas, puede compartir una larga serie de números y letras, como si diera su numero de cuenta para recibir depósitos bancarios, algunas billeteras le permiten generar números desechables para una única transacción o para un único tipo de transacción.

Las billeteras modernas también manejan códigos QR (como los que se muestran al fin de este escrito), de manera que no tengan que escribirse largos números. Por ejemplo, una billetera en un celular, puede con la cámara leer el código QR y con ello obtener la dirección de a donde enviar las criptomonedas sin tener que escribir mas que el monto a transferir (y quizá agregar una nota, o establecer la prioridad de la transacción).

Al realizar la transacción, algunas criptomonedas permiten definir una prioridad, al establecer la mayor prioridad, que permitiría que la transacción se verifique más rápido, pero se cobraría una comisión.

Esta transacción será enviada a cualquier nodo en la red de criptomonedas, donde será reenviada de computadora en computadora hasta que cada nodo en la red tenga una copia de la transacción. Desde ahí, cada nodo tendrá la oportunidad de minar la última transacción que recibieron en el blockchain.

Este proceso de minado involucre un nodo recolectando transacciones de su memoria compartida a un bloque, y repetidamente poniendo el bloque a través de una función hash (con pequeños ajustes cada vez) para intentar poner el bloque hash debajo del valor objetivo.

El primer minero que encuentre un bloque hash debajo del valor objetivo agregará el bloque al blockchain, y transmitirá este bloque a los otros nodos en la red. Cada nodo entonces tendrá este lo que es un blockchain (removiendo cualquier conflicto con la memoria compartida), y reiniciara el proceso de minado en la punta del nuevo bloque en la cadena.

Finalmente, el minero que minó el bloque tendrá su propia transacción especial dentro del bloque, que le permite hacerse con una cantidad de criptomonedas que no existían antes. Esta recompensa de bloque actúa como incentivo para los nodos para continuar construyendo el bockchain, al mismo tiempo distribuye las nuevas monedas a través de la red de la criptomoneda.


Conclusión

Una criptomoneda es un programa de computadora que comparte un archivo seguro con otras computadoras al rededor del mundo. Este archivo seguro está compuesto de transacciones, y estas transacciones usan criptografía para permitir a la gente enviar y recibir cajas de seguridad. Como resultado, esto crea un sistema de pagos que puede ser usado por cualquiera, y que se ejecuta sin ningún punto central de autoridad.

En el caso de Bitcoin, esta red ha estado siendo ejecutada ininterrumpidamente desde su lanzamiento en enero 2009. En 2009, la red Bitcoin proceso más de 112 millones de transacciones, moviendo un total de $15,577,763,114,629.34 (15.58 trillones anglosajones)2.

El programa Bitcoin propiamente está bajo desarrollo activo, con más de 600 individuos contribuyendo código desde su lanzamiento3. Esto es debido al hecho de que el software es “código libre” (open source), lo que significa que cualquiera puede ver el código y contribuir a mejorarlo

https://bitcoin.org/bitcoin.pdf (documento técnico de Bitcoin)

https://github.com/bitcoin/bitcoin/ (código fuente de Bitcoin)

 

El programa Monero también es “código libre” y constituye actualmente la criptomoneda mas usada con enfoque de seguridad y privacidad.

https://www.getmonero.org/resources/research-lab/ (documentos técnicos de Monero)

https://masteringmonero.com/free-download.html (Mastering Monero)

https://www.getmonero.org/es/downloads/ (billeteras y código fuente de Monero)

Para mas informacion: https://libreriacrisol.blogspot.com/2022/03/privacidad-y-finanzas-bien-comun.html

Propinas

Se aceptan donaciones de Bitcoing BTC:

bc1q72kaaazcpslsngfng4t2jq27dsz4p5h95ycegx


Se aceptan donaciones de Monero XMR:

86qbddtRdYzDVumgE6ov31AWBUzUgg43n3Lu4w9Q7inp7xGUER25KMERhgEXAH6J2iFodZoFaNzJATZRS65aXDbQ72xFGCm



Comentarios

Entradas más populares de este blog

Acertijos matemáticos : Libros

Lo se todo : Libros

Cifrado con libretas de un Solo Uso (OTP) : Libros