Con este punto podemos Generar cualquier clave pública Pk multiplicando por la clave privada Sk
El punto obtenido al multiplicar el punto generador G por la clave privada es la clave pública la cual se suele representar en dos formatos diferentes, comprimida y descomprimida. En el ejercicio, cogeré la clave Privada Sk = 1, y esta la multiplicaré por G, obteniendo la clave Pública Pk
Es decir Pk = G * Sk siendo: Pk la clave Pública y Sk la clave Privada
La clave pública descomprimida inicia con “04” seguido de la coordenada X en hexadecimal y luego la coordenada Y en formato hexadecimal, mientras que la clave pública comprimida inicia con “02” o “03” (si la coordenada Y es par inicia con “02”, en caso contrario inicia con “03”) seguido de la coordenada X en hexadecimal.
ESTO LO VEREMOS BIEN CUANDO ESTUDIEMOS LAS CURVAS ELÍPTICAS. AHORA QUEREMOS RESOLVER UN EJERCICIO DE HASHES TAL COMO LO HACE BITCOIN.
Inicio del Ejercicio
Tenemos el punto o la coordenada (x,y) mod (P) de la curva con el módulo que utiliza Bitcoin, Estas coordenadas son el punto de partida G y lo multiplicamos por la clave Privada Ps =1 Nos sale:
Convertimos X en hexadecimal y añadimos el byte 02 al principio porque la Y es par (ya que acaba en 24). Al coger solo la coordenada X, estamos haciendo la clave pública reducida. El valor de la coordenada X en hexadecimal es:
A la salida anterior se añade al principio el byte 00 porque se trata de la red Mainnet o la red principal
00751e76e8199196d454941c45d1b3a323f1433bd6
Paso 4 OK
Para calcular el checksum (mecanismo de verificación para asegurarse que la dirección bitcoin está bien escrita) se aplica el algoritmo SHA-256 dos veces al resultado obtenido en el paso 3, se seleccionan los primeros 4 bytes del último hash SHA-256 los cuales representan el checksum de la dirección bitcoin.
Double SHA256 de (00751e76e8199196d454941c45d1b3a323f1433bd6)
Double hash sale 510d1634d943109b69da527ef5948106f22b655fb5193b4e9ef7e4dcd342d245
El Checksum es igual a los primeros 4 bytes = 510d1634
Paso 5 OK-Se concatena la dirección obtenida en el paso 3 con el checksum obtenido en el paso 4.
Paso 6 OK-Se convierte el resultado obtenido utilizando la codificación Base58Check agregando un 1 a la dirección bitcoin.
1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH
Ahora queda ir a un explorador de Bitcoin como https://www.blockchain.com/explorer y buscamos la dirección final que es 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH y veremos sus Transacciones. Vemos que no solo aplica una función de hash como SHA256 (256 bits o 32 bytes), sino que luego la trunca con otra función de hash como ripemd160 (160 bits o 20 bytes), y al final utiliza el algoritmo Base58 para conseguir la dirección final. Un sistema muy seguro y si fallase porque se encuntran en un futuro colisiones, tenemos funciones de hash muchísimo mas seguras como SHA384 o SHA512. El pilar mas fuerte de la Blockchain es su seguridad, el que disienta de esto es que no conoce la criptografía matemática, que nos rodea en todo lo que hacemos y utilizamos en Internet.
Voy a intentar responder de forma sencilla que hacen los mineros para resolver la fórmula para validar y crear los bloques de Bitcoin en la Blockchain.
Blockchain es una cadena de bloques (cada uno contiene alrededor de 2400 transacciones, las cuales pueden variar, no es fijo). Esos bloques están enlazados porque todo bloque tiene un enlace o puntero al bloque anterior.
Son los mineros los que resuelven la famosa fórmula (en la prueba de trabajo PoW). ¿Cómo lo hacen?. Todos los mineros construyen el nuevo bloque aún sin validar. Cada minero crea su bloque con transacciones diferentes que obtienen de la Mempool. Ese bloque tiene un HASH, la Merkle root que representa o es la cúspide de todo el árbol de Merkle. Además tienen el HASH del bloque anterior y lo que hacen es ir moviendo un número (se llama NONCE) hasta conseguir un HASH con 68,72,76, etc. CEROS a la IZQUIERDA (esto depende de la dificultad). Gráficamente sería:
Pensemos que en la realidad cada 0 son 4 bits, por eso si vemos 18 ceros, son 18*4 = 72 ceros o bits a cero.
Es decir todos los nodos van moviendo el NONCE 1,2,3,4,…..456789, etc. hasta conseguir 19 ceros a la izquierda. Pueden ser 72, 76 ceros u 80 bits, eso depende de la dificultad, la cual se revisa cada 2 semanas (exactamente cada 2016 bloques). Esa revisión se llama el famoso HASH RATE. https://www.blockchain.com/charts/hash-rate
El minero que resuelva el problema del bloque 631.419, lo primero que ha de hacer es: a) Avisar al resto de nodos de su solución b) el resto de nodos le dan el OK. Los mineros añaden ala cadena el nuevo bloque minado (el 631.4199 y empiezan a trabajar en el nuevo bloque 631.420, incorporando las Tx de la mempool y creando la cabecera del bloque que tendrá (Versión del protocolo de Bitcoin, el hash del bloque anterior, la raiz de Merkle, el Timestamp, la dificultad y el NONCE).
Que ocurre con el premio que recibirá el minero que de con la fórmula. Es decir, ¿cómo y qué cobra, el minero, por dar con dicha fórmula?:
El minero que dio con la fórmula del bloque 631.419 pone su premio de 6,25BTC, en estos momentos, mas las fees de todas las transacciones que van en el bloque, en la primera Transacción. Es decir, el minero que da con la fórmula cobra dos cosas: a) La recompensa de 6,25BTC en estos momentos, mas 2) las fees que se han generado en todas las Transacciones del bloque minado. Es su recompensa por haber minado el bloque 631.419. y en cuanto tiene la confirmación del resto de mineros que ha acertado en el minado del bloque. Es decir, los mineros miraran si su bloque cumple los requisitos de la dificultad, etc. y miraran si las Tx son correctas (hay saldo, etc.).
¿Qué ocurre entonces cuando el minero que acierta el bloque 631.419?, Los demás mineros dan por bueno el blqoue minado 631.419, y empiezan a trabajar en el nuevo bloque 631.420. Ya pone en el bloque nuevo el Hash anterior. Envia ese registro a todos. TODOS PONEN SU RECOMPENSA DE 6,25 BTC en la primera transacción. Empiezan a colocar el resto de transacciones y, cuando se acaban de poner todas (hay un tiempo) empieza la fiesta de la formulita. Cada minero lleva su fiesta particular porque el HASH es diferente entre ellos, debido a que la transacción Nº 1 es diferente porque cada uno pone su recompensa de 6,25 BTC a su dirección pública propia, y tambien las fees generadas en todas las Transacciones. Además los mineros no tienen porqué tener las mismas Transacciones (las cuales vienen de la mempool).
Es decir el minero que resuelve un bloque y es validado por los otros mineros. Los demás mineros añaden dicho blqoue a la cadena y empiezan a crear el siguiente bloque. Todos los mineros ya tiene el bloque minado en su BD y también el bloque siguiente donde irán colocando las nuevas transacciones e irán validándolas hasta completar el nuevo bloque. Cuando se acabe este nuevo bloque, con sus transacciones validadas, comenzará el PoW del bloque.
Mas o menos creo que queda explicado el proceso de creación de bloques y como se crean o minan los Bitcoins (eso es por la recompensa). El minero que encuentra la solución no solo percibe los 6,25BTc actuales sino que también hay que sumar las comisiones (fees) que se cobran por las transacciones. Por ejemplo, mirar este bloque minado:
La primera transacción es de 6.37981271 BTC, es decir 6,25 + 0,12981271 que son las comisiones (fees) de las 593 transacciones que hubo.
En realidad es una simplificación de la realidad. La realidad es que tiene un encabezado de 80 bytes con 6 datos: 1) La versión de bitcoin 4 bytes, 2) el hash del bloque anterior (32 bytes), 3) LA Merkle root o la copa del árbol de Merkle de su bloque (otros 32 bytes), 4) El timeline o el tiempo que se mina y que lo puede variar un poco porque tiene cierto márgen (4 bytes) 5) La dificultad (que yo la represento por eso 18, 19, 20 ceros a la izquierda que en realidad son 72, 76, 80 bits) Son 4 bytes y 6) el Nonce ese numero que va variando hasta conseguir ser menor que la dificultad. Ese es el objetivo principal: SER MENOR QUE LA DIFICULTAD QUE SE REVISA CADA 2 SEMANAS porque el promedio es 10 minutos por bloque. Si minan más rápido se aumenta la dificultad y al revés. Este último párrafo explica mejor la realidad de como trabaja el protocolo PoW, el cual es uno de los pilares de Bitcoin.
Un árbol de Merkle es una estructura de datos en árbol binario, en el que cada nodo se une con otro para calcular un nodo superior. Cada dos hojas se crea una de orden superior. Por eso se le llama binario, «bi» de dos. Cada dos hijos se crea un nodo superior. La base del árbol son las transacciones A,B,C,D,E,F,G,H que hacen los usuarios. De cada Transacción se hace el hash SHA256 correspondiente. Con los dos hashes de dos transacciones se crea un hash de un nodo superior. Por ejemplo el nodo AB del gráfico es el hash que se resuelve de la union del hash de A + el hash de B, y así sucesivamente hasta llegar a la copa del árbol. Toda la información está encriptada con el algoritmo SHA-256
Esta estructura de Merkle permite que gran número de datos separados puedan ser ligados a un único valor de hash, el hash del nodo raíz del árbol, llamado Merkle root. De esta forma proporciona un método de verificación segura y eficiente de los contenidos de grandes estructuras de datos. En sus aplicaciones prácticas normalmente el hash del nodo raíz va firmado (con clave pública y privada) para asegurar su integridad, para que la verificación sea totalmente fiable. La demostración de que un nodo hoja es parte de un árbol hash dado requiere una cantidad de datos proporcional al logaritmo en base 2 del número de nodos del árbol. En el bloque solo se guarda la Merkle root y las Transacciones porque los hashes de los nodos superiores de todo el árbol son deducibles y calculados en el momento que los necesite.
Log22400 = 11,228
En nuestro caso como que el logaritmo en base 2 de 2400 es menor de 12. De esta forma, para verificar si una transacción existe en el bloque o verificar que es correcta y no la han modificado, es muy fácil: 1) el algoritmo nos envía la Merkle proof, la cual es un resumen pequeñito con la transacción y sus parientes hasta llegar a la merkle root o la cúpula del árbol. 2) Si el cálculo de la root de esa Merkle proof, coincide con la Merkle root, todo es perfecto. Este arbolito de Merkle proof es muy pequeñito (unas 12 hojas). El esquema de abajo es una imagen metafórica de la Merkle proof. La realidad de la Merkle proof variará dependiendo de la Transacción a buscar o comprobar y sus parientes hasta llegar a la copa del árbol (Merkle root). La imagen puede ser engañosa, pero se cogen la Tx a buscar y todos los nodos parientes hasta llegar a la cúpula o merkle root.
Gracias a esta estructura única, los árboles de Merkle permiten comprobar una gran cantidad de datos en un único punto (Merkle root) y unos pocos nodos. De esta forma, la verificación y validación de esos datos puede pasar a ser muy eficiente, al tener que verificar únicamente el Merkle root y unos pocos nodos en lugar de toda la estructura.
Este diseño fue creado por Ralph Merkle, en el año 1979, con el fin de agilizar el proceso de verificación de grandes cantidades de datos.
Los árboles de Merkle son muy eficientes a la hora de verificar grandes cantidades de información. Esto es así gracias a que su estructura estratificada permite relacionar un único punto (nodo raíz o Merkle root) junto a unos pocos nodos del árbol con una serie de datos superiores. De esta forma, al verificar la validez de la raiz de Merkle o raiz del árbol podemos estar seguros de la validez del resto del árbol.
¿Cómo funcionan?
El funcionamiento de un árbol de Merkle reside en la capacidad de resumir una gran cantidad de datos en un único bloque de datos verificable. Para lograr esto, los árboles de Merkle hacen uso intensivo de las funciones de hashing entre todos sus nodos, hasta llegar a un único hash derivado del resto. Dicho hash o resumen de todo el árbol es la cabecera del árbol.
Este proceso de hashing se realiza desde abajo hacia arriba, a partir de los hashes que identifican a cada nodo. Es decir las 2400 transacciones tienen un solo hash cada una. Cogiendo de 2 en 2 se va creando el árbol binario hasta llegar a la raiz del árbol o Merkle root.
A cada nodo, se le aplica el algoritmo SHA-256 para calcular el hash del nodo. De esta forma el hash es único e irrepetible.
Se le llama algoritmo SHA 256 porque son 256 bits. Es decir 256/8 = 32 bytes Esos 32 bytes estarán representados en 64 caracteres en código hexadecimal porque cada letra ( 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f) son 4 bits. Aquí tenéis un enlace para calcular el hash, con el algoritmo SHA 256, de cualquier cosa que escribáis. https://cutt.ly/UxSzsU0
Por ejemplo la palabra Hola en SHA 256 es el hash E633F4FC79BADEA1DC5DB970CF397C8248BAC47CC3ACF9915BA60B5D76B0E88F
que son 64 caracteres. Cada carácter son 4 bits:
La E6 es el byte 1110 0110 porque: la E es el número 14 . El 14 en binario es el 1110 y el 6 en binario es el 0110
La primera columna es en código decimal, la segunda en hexadecimal y la tercera en binario con 4 bits.
.- 900*365 = 328.500 bitcoins anuales o 52.560 bloques anuales.
El total de Bitcoins que se podrán minar es de 21 millones de bitcoins a lo largo de la vida, esto hace que Bitcoin ha de subir de precio porque la oferta es MUY PEQUEÑA, y el valor de la unidad más pequeña de bitcoin, llamado satoshi (0,00000001BTC) forzosamente subirá de precio. Este es uno de los motivos por los cuales el precio de Bitcoin es ahora en marzo de 2924 superior a los 60.000$.
A este ritmo de minado, y recuerdo que cada 210.000 bloques se produce un halving (se reduce a la mitad el premio por encontrar la fórmula matemática que se pide para poder crear el bloque). Ahora el premio es de 6,25BTC Aproximadamente en 2024 será de la mitad, unos 3,0833. El halving se producirá cuando lleguemos al bloque 840.000. Ahora vamos por el bloque 832.555.
Se calcula que el último Bitcoinse minará en 2140, pero hay un dato importantísimo. Hoy día se calcula que se han perdido unos 4 millones de bitcoins de forma aproximada. Personalmente creo que cuando llegue ese año abrirán el grifo para poder minar esos cerca de 4 millones de bitcoins que hoy día están perdidos. Se perdieron bitcoins en los primeros años de minería. Por ejemplo hay 1 millón de bitcoins que minó Satoshi Nakamoto que no se han movido desde finales de 2010 o nunca. Con esa ampliación de minado podemos llegar al año 2200. De aquí a esa época ¿Cuál será la situación del oro digital bitcoin? ¿Qué precio tendrá? ¿Habrá mineros estatales que protegerán la red? ¿Los mineros estarán gestionando las criptomonedas nuevas y tendrán mas que suficiente, pero la red de Bitcoin estará mas que protegida estatalmente?. En fin, son muchas preguntas que tienen o tendrán su respuesta.
A medida que disminuya la recompensa de los mineros por minar bitcoins, por los diferentes halving que se irán produciendo, aumentará el precio de bitcoin irremediablemente.
Cuando no hayan mas bitcoins por minar, los mineros cobraran mas comisiones por las transacciones, pero quien no espera que en esa época habrá minería oficial de cada país porque los Estados han ADOPTADO BITCOIN y las CRIPTOMONEDAS. De la misma forma que protegen hoy día las bolsas y el dinero, ¿Por qué no van a proteger también la cadena de las BD de la Blockchain desde los Estados?. Estoy convencido que esa adopción llegará a los Estados y querrán proteger las Bases de Datos.
Hay que tener en cuenta que Bitcoin nació físicamente el 3 de enero de 2009. Llevamos 12 años desde que nació. ¿Qué ocurrirá en el transcurso de 120 años?.
En cuanto al consumo eléctrico y la seguridad de la cadena, me hago una pregunta: ¿Por qué dentro de unos 50 o 60 años no se cambie del protocolo PoW al PoS?. Dicho de otra forma, el protocolo PoW o Prueba de Trabajo, que es muy exigente en el consumo eléctrico, pueden cambiar al protocolo PoS o Prueba de Confianza. O por ejemplo, ¿por qué los Estados no pueden tener un nodo en la cadena de la minería?. La minería es libre para Todos. Cualquiera puede hacer minería.
Uno de los problemas de Bitcoin es la escalabilidad o la capacidad de transferir las transacciones. VISA tiene una capacidad para transferir de 24.000 transferencias por segundo. Hoy por hoy se transfieren 2400 transacciones cada 10 minutos. Se mejorará la escalabilidad, por ejemplo con la Lightning Network (LN).
LN básicamente es una pasarela de pagos que pueden abrir los usuarios fuera de la propia blockchain de Bitcoin. Este canal se abrirá y se registrará en la blockchain, pero las transacciones se realizaran fuera de esta blockchain hasta que se cierre el canal. Los usuarios depositaran los BTC en este canal y realizaran todas las transacciones que quieran. Las condiciones son que las transacciones deben ser inferiores a 100$ y estas pasarelas duran unos diez minutos, lo que tarda en generarse un nuevo bloque. Cuando se cierre el canal, cada usuario recibe los BTC que le toquen y todo se registrará en la blockchain. Esto permitirá aumentar la velocidad de las transacciones.
Bitcoin ha crecido en popularidad y ha traído consigo el problema de que los bloques tienen un tamaño insuficiente. Los desarrolladores de Bitcoin Core trabajaron y crearon la solución denominada Segregated Witness o SegWit, como se la conoce. Al principio de Bitcoin el tamaño era de 1MB pero con el tiempo se amplió a 2MB.
Hoy día el tamaño máximo del Bloque de Bitcoin es de 2MB.
Unspect Transaction Output o Transacción de salida no gastada. Fue la solución que encontró Satoshi Nakamoto para evitar el doble gasto, y la verdad que fue muy ingeniosa. Trataré de explicarla:
¿Qué es el doble gasto? Con el dinero FIAT, tenemos muy claro que un billete es imposible hacer un doble gasto porque en el momento que pagamos algo, el billete deja de estar en nuestras manos. Esto no ocurre con el dinero electrónico, como lo es Bitcoin. Satoshi encontró una solución muy ingeniosa, para impedir el doble gasto.
La solución que encontró al doble gasto fue: Cuando hacemos un pago, una transferencia con BTC, tenemos un input y uno o varios outputs. Es como un asiento contable: el debe y el haber. Pongamos un ejemplo de una Transacción de un bloque:
En este ejemplo sencillo, hay una UTXO a la izquierda con 0,22893527 BTC, la cual le envía 0,22843527 BTC a la dirección o UTXO de la derecha. Los BTC que faltan son fees (comisiones de la TX) que cobrará el minero que mine el Bloque. Pues bien, la UTXO de la izquierda se gasta totalmente, y aparece una nueva UTXO (la de la derecha u output), la cual se gastará posteriormente.
A veces hay UTXOs a la izquierda que no desaparecen del todo porque vuelve a aparecer en el output. Pongo un ejemplo. La dirección pública bc1qwqdq6… está como input (a la izquierda) y como output (a la derecha). Es decir la UTXO del input no se gasta entera porque vuelve a aparecer como UTXO en el output. Si miramos el balance de esta UTXO será diferente de 0 BTC. Espero haberme explicado. De hecho el Estado de Bitcoin, serán todas las UTXO que no están gastadas. En otro Post ya explicaré como guarda dicho Estado.
Cada vez que una transacción de #Bitcoin, es enviada a la red, ésta va a una colección llamada Mempool, y se pone a disposición de los mineros para ser verificada y confirmada para incluirla en el siguiente bloque.
La Mempool es una pieza fundamental para entender el procesamiento de las transacciones de toda red y de todas las criptomonedas.
Es decir, cuando un usuario de criptomonedas realiza una transacción, primero se anota en la una memoria temporal llamada Mempool, y los mineros las van seleccionando para incorporalas al bloque activo que aún no se ha validado. En cuanto se validen dichas transacciones ya estarán en la BD Blockchain de la criptomoneda que se trate. Recuerdo que cada criptomoneda tiene su Base de Datos.
La Mempool, ¿Cómo funciona?¿Qué utilidad tiene?
Funcionamiento
Una Mempool es un almacenamiento temporal para las transacciones de criptomonedas. Esta es una tarea bastante sencilla de realizar. En Bitcoin, la Mempool se regula por el BIP-35. Un BIP, es un documento que estandariza diversos procedimientos o funciones dentro de Bitcoin.
Recepción de la transacción.
Primero se reciben todas las transacciones de los usuarios que van a parar a la Mempool.
Se pueden recibir cientos como miles de transacciones no van directamente al bloque que se esté procesando, esto va a depender de los mineros que irán cogiendo las transacciones. Los mineros priorizarán las transacciones que tienen mayor comisión.
Acceso a las transacciones
Los mineros acceden a la Mempool y comienzan a seleccionar las transacciones a incluir en el siguiente bloque de la blockchain. Con cada transacción elegida, la Mempool se libera en espacio y la red se equilibra. Si la Mempool está llena, las confirmaciones suelen tardar más.
Los mineros irán escogiendo las transacciones que mas paguen comisiones. Por eso a veces hay transacciones que tardan más tiempo en ser confirmadas.
Los usuarios pagarán más comisión con el fin de que los mineros estén mas predispuestos a dar prioridad a su transacción. A mayor comisión, mayor la probabilidad de ser elegido rápidamente para procesar su transacción.
La principal utilidad, es su capacidad de almacenar las transacciones de la red para que puedan ser procesadas luego. Esto permite a los usuarios realizar sus operaciones con total comodidad y saber que las mismas recibirán la respuesta adecuada en su momento.
La Mempool es un buen medio para ecualizar el nivel de comisiones de la red. Con una Mempool poco utilizada y una red descongestionada, el valor de las comisiones desciende. Pero con el aumento de las transacciones y una mayor ocupación de la Mempool, las comisiones ascienden. Esto debido a que los usuarios empiezan a pagar mayores comisiones para que sus transacciones tomen prioridad.
De esta forma la Mempool puede limitarse para recibir una cantidad determinadas de transacciones, evitando que la red se sobresature y se vulnere el acceso a la misma por parte de quienes usan la red.
La Mempool en las criptomonedas es de gran utilidad para capturar las transacciones dentro de la red, pero esta puede representar un grave riesgo bajo ciertas condiciones. Esto es especialmente cierto si los usuarios aceptan como definitivas las transacciones que están aún en ella.
Cuando enviamos una transacción, la enviamos a la red pero estamos a la espera de que se procese, esto no significa que se haya realizado.
Si alguien nos envía una transacción con un baja comisión, esta llegará a la Mempool. Pero mientras este allí, es posible que dicho usuario pueda invalidarla o hacer un “doble gasto” de esas monedas. Esto porque habrá realizado una transacción de pago a nosotros, pero por otro lado, puede hacer una transacción de pago a un tercero con un mayor fee (tarifa, gasto). Esto haría que la transacción al tercero y con un fee más alto sea procesada por la red en primer lugar, haciendo que nuestra transacción con más bajo fee se vea invalidada.
Solo se deben aceptar como definitivas las transacciones que hayan sido confirmadas y este en la BD de la blockchain. Para el caso de Bitcoin, esto significa que las transacciones como mínimo deben tener 3 o 6 confirmaciones como mínimo y en Ethereum al menos unas 20 o 30 confirmaciones, para considerar a las mismas totalmente realizadas.
Una buena forma de aprender Criptografía es consultar las informaciones que vaya colgando en la web. En el enlace podrás ver el apartado sobre la matemática, respecto a la seguridad, que se utiliza en la Blockchain: La Criptografía.
A las 6:15 de la de la mañana del domingo en Europa se ha minado el bloque 709.632 y que producirá un cambio en una parte del software (Taproot) de Bitcoin que básicamente implementará cambios importantes: 1) mejorar la eficiencia de las transacciones, 2) la privacidad de la red y 3) su capacidad para soportar iniciativas de contratos inteligentes. No todos los mineros producirán dichos cambios, solo lo harán aquellos que hayan actualizado el Taproot en sus máquinas. Habrá transacciones que quedarán registradas con la opción anterior y otras que incorporarán dicho cambio. Una cuestión muy interesante y que vale la pena seguir. En 2017 fue el anterior cambio, y en el que se añadió la Lightning Network. El proyecto del siguiente cambio de una parte del nucleo de Bitcoin se inicia en 2018. Dicho proyecto lo podríamso bautizar como Taproot.
Taproot es una tecnología que tiene como objetivo mejorar la privacidad y la capacidad de Bitcoin para crear complejos contratos inteligentes (Smart Contracts). Esto hace que Bitcoin y Cardano, se acerque a Ethereum en el liderazgo de los Smart Contract.Este proyecto se inicia en 2018 y ha culminado hoy 14-11-2021 a las 6:15 de la madrugada en Europa.
¿Cómo funciona Taproot?
Taproot busca mejorar la privacidad y la implementación de los scripts de Bitcoin, eliminando la necesidad de revelar información o datos importantes contenidos dentro de los scripts completos. Solo muestra la condición activada en el momento en que se realiza la transacción. ¿Cómo funcionan las transacciones y los scripts dentro de la red Bitcoin?
Las transacciones de Bitcoin están definidas por una serie de scripts o condiciones de pagos, conocidos como P2SH. Las transacciones están protegidas por medio de una clave pública, donde el destinatario debe proporcionar una firma para demostrar que es el propietario de esas monedas, y por tanto, puede gastarlas. Es lo que se conoce como criptografía Asimétrica o criptografía d clave pública y clave privada. Hay dos claves.
Por otro lado, los scripts P2SH tendrían la capacidad para modificar o ajustar sus acciones. Es decir, se podrían establecer ciertas restricciones que condicionan el gasto de los bitcoins o acciones dentro de la Blockchain. Por ejemplo, se pueden establecer funciones de time lock o bloqueos de tiempo, para determinar el momento en que podrán ser gastados los bitcoins, como una fecha o altura de bloque exactas. También pueden establecerse condiciones de multisig o multifirma, donde varios usuarios serán los propietarios de un monedero. Y por tanto se necesita de varias firmas para autorizar y realizar una transacción.
Taproot mejora la privacidad de la red. Taproot impide que se revelen todas las condiciones establecidas dentro de las operaciones. Taproot solo revela la condición final activada de la transacción. Taproot mostrará dichas transacciones como transacciones normales o convencionales, haciendo que sea imposible distinguir unas de otras.
Firmas Schnorr y MAST, parte esencial de Taproot. Taproot combina las tecnologías de las firmas Schnorr y MAST (Merkelized Abstract Syntax Tree). En este sentido, las firmas Schnorr permiten añadir múltiples firmas en las transacciones, y que dichas firmas puedan ser unificadas en una sola.
Taproot permite la combinación de claves públicas y las firmas en una transacción multisig. Con lo cual serán indistinguibles de una transacción convencional. Por su parte, las firmas Schnorr son consideradas como una de las versiones más seguras y confiables de la criptografía de curva elíptica, y está codificada en BIP 340. Además, estas firmas son muy rápidas de verificar, por lo que las confirmaciones de las transacciones podrán realizarse de forma mucho más rápida, mejorando los tiempos de transacción.
Usar MAST, nos permite hacer que Taproot pueda ocultar las condiciones que no se activaron en una transacción. En su lugar, solo se muestran aquellas condiciones que sí fueron activadas dentro de la red. La solución MAST utiliza la estructura de árbol de Merkle para dividir de forma individual todas las condiciones establecidas para el uso de los bitcoins. Por lo que no las agrupa dentro de un solo hash, sino que las incluye dentro del Árbol de Merkle. Que a su vez, proporciona una raíz de Merkle, donde son guardadas todas las monedas. Así, al revelar algún dato contenido dentro del árbol de Merkle, se puede verificar esta información. Para ello solo basta verificar si dichos datos están dentro de la raíz Merkle
Taproot permite revelar sólo la condición que se cumple cuando se hace una transacción. Manteniendo todos los demás datos ocultos y protegidos. Haciendo que la red Bitcoin pueda implementar smart contracts de forma mucho más segura, privada y eficiente.
El precio de Bitcoin y las criptomonedas no son únicos. Cada Exchange es una plataforma que tiene sus precios. Por ejemplo, si miramos el precio de Bitcoin en Binance, Kraken o Coinbase no coincidirán.
En la Bolsa en España el precio de las acciones es único. Viene marcado por un sistema llamado SIBE (Sistema InformáticoBursátil Español) que unifica la contratación y los precios de las 4 bolsas españolas (Barcelona, Madrid, Valencia y Bilbao) permitiéndoles operar como un solo mercado, llamado Mercado Continuo.
Kraken tiene sus precios de las criptomonedas y no coinciden exactamente con los precios de Binance. Algunos Exchange están adheridos a otro en el precio. Por ejemplo Quantfury lo está con Binance.
Cuando hacemos una operación de trading, por ejemplo una Compra o una Venta, lo hacemos con nuestro dinero en cuenta en un Exchange, en frente tenemos otra persona que hace la operación contraria. Es decir:
Si A Compra 0,2bitcoins, la persona B los Vende. En ese caso el Exchange_A se limita a poner la plataforma para que estas transferencias se produzcan o mejor dicho, para que la Compra de A, se aplique con la Venta de B. El Exchange_A (Binance, Coinbase, Kraken, Gemini, https://cutt.ly/XvigVP8
El beneficio del Exchange_A es la comisión que cobra por dichas transacciones, pero no es el único beneficio que tiene. Hay otros beneficios que no se ven a simple vista y no son tan “transparentes” como la comisión que cobran por la transacción. Me gustaría abordar esto, así como el tema del apalancamiento como uno de los problemas mas serios contra el Retail o pequeño inversor.
¿Qué es el apalancamiento?
En el caso que nos ocupa, apalancarse es apostar un dinero que no tenemos y que el Exchange nos presta. Imaginemos que el usuario A Vende 0,2BTC con un apalancamiento de 10x. Es decir Vende 0,2*10 = 2BTC, Vende 10 veces mas de lo que apuesta que son 0,2BTC . Si solo tiene 0,5BTC en su cuenta, y si en esa apuesta apalancada su pérdida se aproxima a los 0,5BTC, el Exchange, le LIQUIDARÁ LA CUENTA, como así está sucediendo día tras día. Pero ¿Por qué se producen esas liquidaciones?. Es muy simple: cuando uno se apalanca, el dinero del apalancamiento lo pone el Exchange_A, pero con el dinero que hay en el Exchange_A que son los BTC de otros clientes que han depositado la custodia de sus Bitcoins en dicho Exchange_A.
En nuestro ejemplo el cliente A pone 0,2BTC pero la apuesta total son 2 BTC porque se ha apalancado 10x, los 1,8BTC restantes los presta el Exchange_A con los Bitcoins que custodia de otros clientes. Ese préstamo no es gratis. Algunas veces será gratis pero muchas otras le costará la cuenta entera al pequeño inversor o Retail. Como mínimo la comisión por la C/V es mayor porque no es la misma comisión que se paga por 0,2BTC que por 2 BTC.
Veamos otra forma como el Exchange _A gana dinero de los clientes, se apalanquen o no. Supongamos que una persona A Vende 0,2BTC en el Exchange_A. Normalmente, la gran mayoría ponemos stop loss para protegernos.
Compro 0,2 BTC a 60.000$ = 12.000$
Si el precio se va para arriba perfecto. Si llega a 65.000$ ganaré 1000$ que es el 8,333% de los 12,000$ apostados, menos la comisión que me cobre el Exchange_A, el cual también le cobrará la misma comisión al cliente B.
Supongamos que pongo un stop loss al 1% de pérdida.
Compro 0,2 BTC a 60.000$ = 12.000$
Stop loss al 1% de los 60.000 = 59.400$
Es decir, si el precio baja a los 59.400 (60.000-60000*1%) saltará el stop loss y habremos perdido el 1% de los 12.000$ apostados + la comisión que nos cobren. Mas o menos 120$ + la comisión. El Exchange_A ganará las comisiones de los clientes A y B. La posición perdida por A quedará cerrada por B. Si apostamos apalancados la comisión que se gana el Exchange_A será mayor porque se lleva un porcentaje de lo apostado.
Pensemos que al Exchange_A le interesa cuantas mas operaciones de Compra/Venta se hagan mucho mejor por las comisiones.
¿Qué gana y/o pierde el Exchange_A con el apalancamiento?
No pierde nada porque presta Bitcoins que no son suyos, son de los clientes que tienen sus Bitcoins custodiados en el Exchange_A , y esos Bitcoins están asegurados porque a mal menor pueden y liquidan cuentas sin perder absolutamente nada. Es un negocio redondo.
Con el apalancamiento implica una mayor apuesta del cliente A, e implica mayores comisiones para el Exchange_A.
Muchas veces vemos esas bajadas y/o subidas bruscas para barrer los stop loss. ¿Provocan o influyen los Exchange en esas bajadas y/o subidas bruscas o lo hace el mercado de forma libre?. Estoy convencido que la mano del Exchange es patente.
Cuando A compra BTC es porque B Vende y al revés. Aquí el Exchange_A se lleva las comisiones, pero, ¿Qué ocurre cuando se liquida una cuenta?. Siempre hay unas “migajas”, ¿A quien van a parar?. Tengo mas que dudas, preguntas porque quien parte y reparte, se lleva la mejor parte.
Por último he de decir que lo mas importante es la información. El Exchange tiene información de todo:
Sabe perfectamente las posiciones de Compra y Venta de cada criptomoneda. Conoce los apalancamientos de las posiciones.
Con toda esta información la aprovechará ejecutando procesos automáticos con gráficas de todo tipo. A nadie le amarga un dulce.
Presta Bitcoins para permitir los apalancamientos de un dinero que no es suyo pero que tiene en su custodia.
Los Exchange son imprescindibles porque sin ellos no se podría hacer trading. Custodian las criptomonedas para producir los intercambios y han de tener un sistema muy seguro para proteger la custodia de las criptomonedas, etc.
La información en los intercambios de criptomonedas es oro y el Exchange no lo desaprovechará.
Voy a tratar de explicar de forma sencilla que es congelar bitcoins. El concepto de congelar bitcoins significa convertir bitcoins en una moneda estable, por ejemplo $ para que cuando baje el valor de Bitcoin poder hacer lo contrario, y volver a comprar los bitcoins con el dinero que tenemos en la moneda estable escogida. Por ejemplo en dólares. Pondré un ejemplo.
Tenemos 2,58 ethers en la cuenta. Creemos que el valor de la moneda ether, así como BTC va a bajar y lo que queremos hacer es CONGELAR esas monedas en una moneda estable, como el dólar, para que esa bajada del ether o el Bitcoin no le afecten. En la cuenta de abajo tenemos 2,58 ethers. Para congelarlos debemos apretar la opción Convertir.
Después nos aparecerá la pantalla de abajo, en la que debemos seleccionar De que moneda quieres convertir, que cantidad, y a que moneda la quieres convertir.
He escogido convertir 2 ethers a USDT, moneda estable del $ porque 1 USDT = 1$ La operación está hecha en la plataforma Binance.
También podríamos convertir cualquier criptomoneda en Bitcoins, o al revés.
Esto es congelar una moneda cripto en USDT. Otra cosa diferente es hacer una operación de Venta de Bitcoins a USDT, esto último NO es congelar, es hacer una operación de trader. Espero haberlo explicado.
Cuando hacemos una transacción de Bitcoins, pasa a la Mempool. Pero, ¿Cómo es la Mempool? Lo dibujaré:
Entonces, si hacemos una transacción, irá a parar a la Mempool mas grande. En nuestro ejemplo a la Mempool-3. Aquí se ordenan de mayor a menor Fee (Comisión que se cobra por la transacción). Si la Comisión es alta irá a la Mempool 1. La Mempool 1 y la 2 serán los siguientes bloques a aprobar. El número de transacciones en esas dos Mempool serán parecidos a las transacciones de un bloque. La Mempool 3 es diferente. Dicha Mempool tendrá el resto de transacciones que quedan, por ejemplo 75.000. Los mineros cogen las transacciones de la Mempool 3 para validarlas y ponerlas en las Mempool 2 y Mempool 1, dependiendo del Fee.
Los bloques verdes ya están aprobados, el siguiente bloque será la Mempool 1y se desplazará desde la izquierda a la derecha. Es decir:
Así es como creo que actúan los protocolos cuando hacemos las transacciones.
Pero, veamos una aproximación mas cercana a la realidad de la Mempool. Una imagen vale mas que 1000 palabras.
Hay dos grupos: 1) los bloques ya confirmados y que están en la cadena (bloques azules) y 2) bloques de la mempool que están sin validar o confirmar. En nuestro caso tenemos 6 mempool. Las 5 primeras mempool son equivalentes a los bloques de la cadena y la mempool 6 tiene el resto de transacciones (en este caso tiene 52.728 transacciones con un fee de 8 satoshis de media). Digamos que el protocolo que se encarga de manejar la mempool, coloca las transacciones en la mempool-6, ordena las transacciones por fee y una vez validada la transacción (que no sea un doble gasto, etc.) coloca dicha transacción en una mempool mas adelantada, la 1, 2, 3, 4, 5 todo dependiendo del fee. En otras palabras, el fee es el que marca donde va a ir colocada la transacción porque se trata de una subasta. A mayor fee, coloca a la transacción en el bloque de la mempool mas próxima a validarse como bloque.
Vemos que hay 6 mempool, ordenadas de mayor a menor fee. Esto es debido a que en realidad se produce una subasta. A mayor fee implica que la transacción estará mas próxima a validarse y por tanto a estar en la cadena de bloques ya confirmada.
El primer bloque de #Bitcoin con fecha 3-1-2009, fue el CERO posteriormente Satoshi Nakamoto minó 170 bloques obteniendo 50 BTC como recompensa por cada bloque, hasta que el 10 de enero de 2009, le envió a Hal Finney 10 BTC. Veamos las 2 Transacciones que se produjeron en ese bloque 170, y vemos como lo hace. Es muy interesante porque esa es la forma como está ese gran libro de contabilidad. El bloque 170 lo podéis ver si pulsáis aquí
Todas son Transacciones reales, pero las 170 primeras, son Transacciones en las que solo se da la recompensa de 50BTC al minero que encontró la fórmula matemática y en los 4 primeros años (mejor dicho cada 210.000 bloques), la recompensa era de 50BTC. Es en el Bloque 170, cuando Satoshi Nakamoto, decide darle 10BTC a un amigo suyo, el cual era un gran informático. Le explicó la tecnología y se enganchó. Satoshi le envió 10BTC y posteriormente se hizo minero. Veamos esas Transacciones:
El bloque 170 tiene 2 transacciones: la primera transacción es la recompensa de los 50 BTC, que van a parar al único minero que había entonces: Satoshi Nakamoto.
La segunda transacción son los 10 BTC que le da Satoshi Nakamoto a Hal Finney. Mirar como lo hace: en la entrada (el apunte de la izquierda) son 50 BTC, le da 10 BTC a Hal Finney y le devuelve 40 BTC a Satoshi Nakamoto. Es como si pagamos 10€ por algo, pagamos con un billete de 50€ y nos devuelven 40€.
Para darle 10 BTC a Hal Finney , lo ha de hacer con una cuenta que tenga dinero y eso lo hace con un hash (12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S) que apunta a 50 BTC. NO LE DA LOS 10 BTC DE LA NADA, le da los 10 BTC a Hal Finney que tiene una @pública (1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3) y le devuelve los 40 BTC a (12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S) que es la de Satoshi Nakamoto.
Es igual que cuando vamos a comprar algo de 10€ con 1 billete de 50€. Lo pagamos y nos devuelven 40€. El billete de 50€ ya no lo tenemos, y no lo podemos gastar otra vez. Solo podremos gastar los 40€ que nos devuelven. De esta forma evitamos el DOBLE GASTO. Satoshi lo hizo de forma parecida. Ya veremos mas adelante como se las ingenió para crear un protocolo para impedir esos dobles gastos.
Sencillo pero magnífico. De esta forma irá controlando el doble gasto, etc. etc.
Veamos una transacción (imagen de abajo) del 4 de marzo de 2021.
Es muy interesante. Una persona se ha enviado a si misma 0,24BTC de una cuenta que tiene en 2gether (es una empresa FINTECH en la que se pueden comprar Bitcoins, etc.) a una cartera fría (exactamente una Trezor-T). Se envía 0,24BTC. La cuenta de la izquierda (la Entrada o el DEBE del asiento contable) salen 5,14323104 A la derecha o en el HABER o Salida la persona recibe 0,24BTC y el resto ya que ha de cuadrar recibe la misma cuenta que salieron los 5,14323104, DEBE 5,14323104 = 4,90296888 + 0,24 + 0,00026216 que es el Fee o la comisión que se cobra por la transacción en el HABER.
Pero, ¿quién es el propietario de los 5,14323104?, para mi es 2 gether, NO la persona que envia los BTC. Es 2 gether, él es el intermediario y a través de él se hacen las transacciones. Las hace un cliente suyo, pero las hace 2gether. Después nos lo descontará de nuestra cuenta. Esto sin duda, pero esos 5,14323104 son de 2 gether. Maravilloso.
De momento quedaros con la forma brillante en como resolvió las entradas y salidas de ese gran libro de contabilidad.
Extraordinario por lo sencillo que es. Muy elegante.
La creación de Bitcoins, se produce cada 10 minutos, mas o menos, mediante la solución de un problema matemático que requiere mucho esfuerzo pero que es muy sencillo. El esfuerzo es un consumo eléctrico importante. Dentro de la cabecera del Bloque tenemos 6 datos importantes: 1.- Versión del protocolo de Bitcoin 2.- El hash del Bloque anterior. 3.- El hash representativo de todo el árbol de Merkle de las Tx. Que se llama la Merkle root. 4.- El Timestamp o el tiempo en que se registró el bloque. Empieza en el primer segundo del 1-1-1970. En el Time stamp hay una cierta permisividad para los mineros definida en el protocolo. 5.- Los bits que representan la dificultad que hay que conseguir. Se revisa cada 2016 bloques con el objetivo de minar 1 bloque cada 10 minutos en promedio. 6.- Un número que le llamamos NONCE que irá variando hasta conseguir el objetivo del punto 5.
Es sencillo porque se trata de ir cambiando un número, se llama NONCE, y al cambiarlo el hash ha de contener mínimo 19 o 18 ceros a la izquierda. El número de ceros es la dificultad. SI son 19 ceros es mucha mas dificultad que tenga 16 ceros. Os muestro uno de los últimos. En realidad son 19*4 = 76 ceros porque cada 0 son 4 bits 0000. Pensar que son 64 caracteres en hexadecimal = 64*4 = 256 bits
¿Cuántos ceros ha de tener?, esa es la dificultad, la cual se revisa cada 2 semanas. En realidad los ceros es una metáfora muy acorde a la dificultad que hay que cumplir. La realidad es que hay que conseguir un número que sea menor que la dificultad en bits que se revisa cada 2016 bloques (2 semanas). Eso es el HASH RATE o el ratio del HASH.
¿Por qué se revisa?, se revisa porque en promedio se ha de aprobar un bloque cada 10 minutos, y si:
Si se hacen bloques cada 8 minutos, se ha de aumentar el HASH RATE ( es decir más ceros a la izquierda)
Si se hacen más bloques por cada 10 minutos, se ha de disminuir el HASH RATE (quitar ceros a la izquierda), es decir la dificultad de encontrar la formulita mágica.
¿Quién ha de encontrar esa formulita?, por supuesto los mineros (es decir los nodos en la red). El minero que de con la formulita, creará el bloque y si el resto de nodos le dan el aprobado, creará el BLOQUE y percibirá 6,25 BTC en su cuenta pública, mas las comisiones que se hayan cobrado por validar las transacciones que van en el bloque.
Mañana 20 de mayo se revida el HASH RATE a las 22h o 23h PM, y ya se sabe que disminuirá la dificultad, es decir disminuirá el HASH RATE o los números de ceros (los ceros los explicaré en otro momento, en una entrada. Ahora es demasiado y os podéis perder en lo importante).
¿Cómo calcula la dirección pública Bitcoin de un punto de la curva elíptica. Ejercicio real?
Seguiremos el Esquema:
Aplicación a un caso concreto (podéis verlo en Youtube)
Un poco de contexto: La curva elíptica de bitcoin y2 = x3 + 7 el punto generador G es el siguiente:
X=55066263022277343669578718895168534326250603453777594175500187360389116729240
Y=32670510020758816978083085130507043184471273380659243275938904335757337482424
Con este punto podemos Generar cualquier clave pública Pk multiplicando por la clave privada Sk
El punto obtenido al multiplicar el punto generador G por la clave privada es la clave pública la cual se suele representar en dos formatos diferentes, comprimida y descomprimida. En el ejercicio, cogeré la clave Privada Sk = 1, y esta la multiplicaré por G, obteniendo la clave Pública Pk
Es decir Pk = G * Sk siendo: Pk la clave Pública y Sk la clave Privada
La clave pública descomprimida inicia con “04” seguido de la coordenada X en hexadecimal y luego la coordenada Y en formato hexadecimal, mientras que la clave pública comprimida inicia con “02” o “03” (si la coordenada Y es par inicia con “02”, en caso contrario inicia con “03”) seguido de la coordenada X en hexadecimal.
ESTO LO VEREMOS BIEN CUANDO ESTUDIEMOS LAS CURVAS ELÍPTICAS. AHORA QUEREMOS RESOLVER UN EJERCICIO DE HASHES TAL COMO LO HACE BITCOIN.
Inicio del Ejercicio
Tenemos el punto o la coordenada (x,y) mod (P) de la curva con el módulo que utiliza Bitcoin, Estas coordenadas son el punto de partida G y lo multiplicamos por la clave Privada Ps =1 Nos sale:
X=55066263022277343669578718895168534326250603453777594175500187360389116729240
Y=32670510020758816978083085130507043184471273380659243275938904335757337482424
Paso 1 OK
Convertimos X en hexadecimal y añadimos el byte 02 al principio porque la Y es par (ya que acaba en 24). Al coger solo la coordenada X, estamos haciendo la clave pública reducida.
El valor de la coordenada X en hexadecimal es:
0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
Hacemos ripemd160(sha256(del código en hexadecimal anterior). Primero sha256.
Hacemos el hash SHA256 de este valor(0279….1798). Nos queda:
0f715baf5d4c2ed329785cef29e562f73488c8a2bb9dbc5700b361d54b9b0554
Paso 2 OK
Se aplica la función de hash RIPEMD 160,
751e76e8199196d454941c45d1b3a323f1433bd6
Paso 3 OK
A la salida anterior se añade al principio el byte 00 porque se trata de la red Mainnet o la red principal
00751e76e8199196d454941c45d1b3a323f1433bd6
Paso 4 OK
Para calcular el checksum (mecanismo de verificación para asegurarse que la dirección bitcoin está bien escrita) se aplica el algoritmo SHA-256 dos veces al resultado obtenido en el paso 3, se seleccionan los primeros 4 bytes del último hash SHA-256 los cuales representan el checksum de la dirección bitcoin.
Double SHA256 de (00751e76e8199196d454941c45d1b3a323f1433bd6)
Double hash sale 510d1634d943109b69da527ef5948106f22b655fb5193b4e9ef7e4dcd342d245
El Checksum es igual a los primeros 4 bytes = 510d1634
Paso 5 OK-Se concatena la dirección obtenida en el paso 3 con el checksum obtenido en el paso 4.
00751e76e8199196d454941c45d1b3a323f1433bd6510d1634
Paso 6 OK-Se convierte el resultado obtenido utilizando la codificación Base58Check agregando un 1 a la dirección bitcoin.
1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH
Ahora queda ir a un explorador de Bitcoin como https://www.blockchain.com/explorer y buscamos la dirección final que es 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH y veremos sus Transacciones. Vemos que no solo aplica una función de hash como SHA256 (256 bits o 32 bytes), sino que luego la trunca con otra función de hash como ripemd160 (160 bits o 20 bytes), y al final utiliza el algoritmo Base58 para conseguir la dirección final. Un sistema muy seguro y si fallase porque se encuntran en un futuro colisiones, tenemos funciones de hash muchísimo mas seguras como SHA384 o SHA512. El pilar mas fuerte de la Blockchain es su seguridad, el que disienta de esto es que no conoce la criptografía matemática, que nos rodea en todo lo que hacemos y utilizamos en Internet.
Fórmula de PoW que han de resolver los mineros cada 10′
Voy a intentar responder de forma sencilla que hacen los mineros para resolver la fórmula para validar y crear los bloques de Bitcoin en la Blockchain.
Pensemos que en la realidad cada 0 son 4 bits, por eso si vemos 18 ceros, son 18*4 = 72 ceros o bits a cero.
Es decir todos los nodos van moviendo el NONCE 1,2,3,4,…..456789, etc. hasta conseguir 19 ceros a la izquierda. Pueden ser 72, 76 ceros u 80 bits, eso depende de la dificultad, la cual se revisa cada 2 semanas (exactamente cada 2016 bloques). Esa revisión se llama el famoso HASH RATE. https://www.blockchain.com/charts/hash-rate
El minero que resuelva el problema del bloque 631.419, lo primero que ha de hacer es: a) Avisar al resto de nodos de su solución b) el resto de nodos le dan el OK. Los mineros añaden ala cadena el nuevo bloque minado (el 631.4199 y empiezan a trabajar en el nuevo bloque 631.420, incorporando las Tx de la mempool y creando la cabecera del bloque que tendrá (Versión del protocolo de Bitcoin, el hash del bloque anterior, la raiz de Merkle, el Timestamp, la dificultad y el NONCE).
Que ocurre con el premio que recibirá el minero que de con la fórmula. Es decir, ¿cómo y qué cobra, el minero, por dar con dicha fórmula?:
El minero que dio con la fórmula del bloque 631.419 pone su premio de 6,25BTC, en estos momentos, mas las fees de todas las transacciones que van en el bloque, en la primera Transacción. Es decir, el minero que da con la fórmula cobra dos cosas: a) La recompensa de 6,25BTC en estos momentos, mas 2) las fees que se han generado en todas las Transacciones del bloque minado. Es su recompensa por haber minado el bloque 631.419. y en cuanto tiene la confirmación del resto de mineros que ha acertado en el minado del bloque. Es decir, los mineros miraran si su bloque cumple los requisitos de la dificultad, etc. y miraran si las Tx son correctas (hay saldo, etc.).
¿Qué ocurre entonces cuando el minero que acierta el bloque 631.419?, Los demás mineros dan por bueno el blqoue minado 631.419, y empiezan a trabajar en el nuevo bloque 631.420. Ya pone en el bloque nuevo el Hash anterior. Envia ese registro a todos. TODOS PONEN SU RECOMPENSA DE 6,25 BTC en la primera transacción. Empiezan a colocar el resto de transacciones y, cuando se acaban de poner todas (hay un tiempo) empieza la fiesta de la formulita. Cada minero lleva su fiesta particular porque el HASH es diferente entre ellos, debido a que la transacción Nº 1 es diferente porque cada uno pone su recompensa de 6,25 BTC a su dirección pública propia, y tambien las fees generadas en todas las Transacciones. Además los mineros no tienen porqué tener las mismas Transacciones (las cuales vienen de la mempool).
Es decir el minero que resuelve un bloque y es validado por los otros mineros. Los demás mineros añaden dicho blqoue a la cadena y empiezan a crear el siguiente bloque. Todos los mineros ya tiene el bloque minado en su BD y también el bloque siguiente donde irán colocando las nuevas transacciones e irán validándolas hasta completar el nuevo bloque. Cuando se acabe este nuevo bloque, con sus transacciones validadas, comenzará el PoW del bloque.
Mas o menos creo que queda explicado el proceso de creación de bloques y como se crean o minan los Bitcoins (eso es por la recompensa). El minero que encuentra la solución no solo percibe los 6,25BTc actuales sino que también hay que sumar las comisiones (fees) que se cobran por las transacciones. Por ejemplo, mirar este bloque minado:
https://www.blockchain.com/btc/block/0000000000000000000cffa760e54171b5e08290b58b0a0546bae6efc177a6b9
La primera transacción es de 6.37981271 BTC, es decir 6,25 + 0,12981271 que son las comisiones (fees) de las 593 transacciones que hubo.
En realidad es una simplificación de la realidad. La realidad es que tiene un encabezado de 80 bytes con 6 datos: 1) La versión de bitcoin 4 bytes, 2) el hash del bloque anterior (32 bytes), 3) LA Merkle root o la copa del árbol de Merkle de su bloque (otros 32 bytes), 4) El timeline o el tiempo que se mina y que lo puede variar un poco porque tiene cierto márgen (4 bytes) 5) La dificultad (que yo la represento por eso 18, 19, 20 ceros a la izquierda que en realidad son 72, 76, 80 bits) Son 4 bytes y 6) el Nonce ese numero que va variando hasta conseguir ser menor que la dificultad. Ese es el objetivo principal: SER MENOR QUE LA DIFICULTAD QUE SE REVISA CADA 2 SEMANAS porque el promedio es 10 minutos por bloque. Si minan más rápido se aumenta la dificultad y al revés. Este último párrafo explica mejor la realidad de como trabaja el protocolo PoW, el cual es uno de los pilares de Bitcoin.
Árbol de Merkle
Un árbol de Merkle es una estructura de datos en árbol binario, en el que cada nodo se une con otro para calcular un nodo superior. Cada dos hojas se crea una de orden superior. Por eso se le llama binario, «bi» de dos. Cada dos hijos se crea un nodo superior. La base del árbol son las transacciones A,B,C,D,E,F,G,H que hacen los usuarios. De cada Transacción se hace el hash SHA256 correspondiente. Con los dos hashes de dos transacciones se crea un hash de un nodo superior. Por ejemplo el nodo AB del gráfico es el hash que se resuelve de la union del hash de A + el hash de B, y así sucesivamente hasta llegar a la copa del árbol. Toda la información está encriptada con el algoritmo SHA-256
Esta estructura de Merkle permite que gran número de datos separados puedan ser ligados a un único valor de hash, el hash del nodo raíz del árbol, llamado Merkle root. De esta forma proporciona un método de verificación segura y eficiente de los contenidos de grandes estructuras de datos. En sus aplicaciones prácticas normalmente el hash del nodo raíz va firmado (con clave pública y privada) para asegurar su integridad, para que la verificación sea totalmente fiable. La demostración de que un nodo hoja es parte de un árbol hash dado requiere una cantidad de datos proporcional al logaritmo en base 2 del número de nodos del árbol. En el bloque solo se guarda la Merkle root y las Transacciones porque los hashes de los nodos superiores de todo el árbol son deducibles y calculados en el momento que los necesite.
Log22400 = 11,228
En nuestro caso como que el logaritmo en base 2 de 2400 es menor de 12. De esta forma, para verificar si una transacción existe en el bloque o verificar que es correcta y no la han modificado, es muy fácil: 1) el algoritmo nos envía la Merkle proof, la cual es un resumen pequeñito con la transacción y sus parientes hasta llegar a la merkle root o la cúpula del árbol. 2) Si el cálculo de la root de esa Merkle proof, coincide con la Merkle root, todo es perfecto. Este arbolito de Merkle proof es muy pequeñito (unas 12 hojas). El esquema de abajo es una imagen metafórica de la Merkle proof. La realidad de la Merkle proof variará dependiendo de la Transacción a buscar o comprobar y sus parientes hasta llegar a la copa del árbol (Merkle root). La imagen puede ser engañosa, pero se cogen la Tx a buscar y todos los nodos parientes hasta llegar a la cúpula o merkle root.
Gracias a esta estructura única, los árboles de Merkle permiten comprobar una gran cantidad de datos en un único punto (Merkle root) y unos pocos nodos. De esta forma, la verificación y validación de esos datos puede pasar a ser muy eficiente, al tener que verificar únicamente el Merkle root y unos pocos nodos en lugar de toda la estructura.
Este diseño fue creado por Ralph Merkle, en el año 1979, con el fin de agilizar el proceso de verificación de grandes cantidades de datos.
Los árboles de Merkle son muy eficientes a la hora de verificar grandes cantidades de información. Esto es así gracias a que su estructura estratificada permite relacionar un único punto (nodo raíz o Merkle root) junto a unos pocos nodos del árbol con una serie de datos superiores. De esta forma, al verificar la validez de la raiz de Merkle o raiz del árbol podemos estar seguros de la validez del resto del árbol.
¿Cómo funcionan?
El funcionamiento de un árbol de Merkle reside en la capacidad de resumir una gran cantidad de datos en un único bloque de datos verificable. Para lograr esto, los árboles de Merkle hacen uso intensivo de las funciones de hashing entre todos sus nodos, hasta llegar a un único hash derivado del resto. Dicho hash o resumen de todo el árbol es la cabecera del árbol.
Este proceso de hashing se realiza desde abajo hacia arriba, a partir de los hashes que identifican a cada nodo. Es decir las 2400 transacciones tienen un solo hash cada una. Cogiendo de 2 en 2 se va creando el árbol binario hasta llegar a la raiz del árbol o Merkle root.
A cada nodo, se le aplica el algoritmo SHA-256 para calcular el hash del nodo. De esta forma el hash es único e irrepetible.
Se le llama algoritmo SHA 256 porque son 256 bits. Es decir 256/8 = 32 bytes Esos 32 bytes estarán representados en 64 caracteres en código hexadecimal porque cada letra ( 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f) son 4 bits.
Aquí tenéis un enlace para calcular el hash, con el algoritmo SHA 256, de cualquier cosa que escribáis.
https://cutt.ly/UxSzsU0
Por ejemplo la palabra Hola en SHA 256 es el hash E633F4FC79BADEA1DC5DB970CF397C8248BAC47CC3ACF9915BA60B5D76B0E88F
que son 64 caracteres. Cada carácter son 4 bits:
La E6 es el byte 1110 0110 porque: la E es el número 14 . El 14 en binario es el 1110 y el 6 en binario es el 0110
La primera columna es en código decimal, la segunda en hexadecimal y la tercera en binario con 4 bits.
Datos importantes de Bitcoin
A fecha 29 de febrero de 2024 hay minados 832.555 bloques que representan 19.640.968 bitcoins.
En esta fase que durará hasta el 20 o 21 de abril de 2024 se minarán 6,25 bitcoins cada 10 minutos. Es decir:
.- 6,25 * 6 = 37,5 bitcoins cada hora. o 6 bloques cada hora.
.- 37,5 * 24 = 900 bitcoins diarios o 144 bloques diarios.
.- 900*365 = 328.500 bitcoins anuales o 52.560 bloques anuales.
El total de Bitcoins que se podrán minar es de 21 millones de bitcoins a lo largo de la vida, esto hace que Bitcoin ha de subir de precio porque la oferta es MUY PEQUEÑA, y el valor de la unidad más pequeña de bitcoin, llamado satoshi (0,00000001BTC) forzosamente subirá de precio. Este es uno de los motivos por los cuales el precio de Bitcoin es ahora en marzo de 2924 superior a los 60.000$.
A este ritmo de minado, y recuerdo que cada 210.000 bloques se produce un halving (se reduce a la mitad el premio por encontrar la fórmula matemática que se pide para poder crear el bloque). Ahora el premio es de 6,25BTC Aproximadamente en 2024 será de la mitad, unos 3,0833. El halving se producirá cuando lleguemos al bloque 840.000. Ahora vamos por el bloque 832.555.
Se calcula que el último Bitcoin se minará en 2140, pero hay un dato importantísimo. Hoy día se calcula que se han perdido unos 4 millones de bitcoins de forma aproximada. Personalmente creo que cuando llegue ese año abrirán el grifo para poder minar esos cerca de 4 millones de bitcoins que hoy día están perdidos. Se perdieron bitcoins en los primeros años de minería. Por ejemplo hay 1 millón de bitcoins que minó Satoshi Nakamoto que no se han movido desde finales de 2010 o nunca. Con esa ampliación de minado podemos llegar al año 2200. De aquí a esa época ¿Cuál será la situación del oro digital bitcoin? ¿Qué precio tendrá? ¿Habrá mineros estatales que protegerán la red? ¿Los mineros estarán gestionando las criptomonedas nuevas y tendrán mas que suficiente, pero la red de Bitcoin estará mas que protegida estatalmente?. En fin, son muchas preguntas que tienen o tendrán su respuesta.
A medida que disminuya la recompensa de los mineros por minar bitcoins, por los diferentes halving que se irán produciendo, aumentará el precio de bitcoin irremediablemente.
Cuando no hayan mas bitcoins por minar, los mineros cobraran mas comisiones por las transacciones, pero quien no espera que en esa época habrá minería oficial de cada país porque los Estados han ADOPTADO BITCOIN y las CRIPTOMONEDAS. De la misma forma que protegen hoy día las bolsas y el dinero, ¿Por qué no van a proteger también la cadena de las BD de la Blockchain desde los Estados?. Estoy convencido que esa adopción llegará a los Estados y querrán proteger las Bases de Datos.
Hay que tener en cuenta que Bitcoin nació físicamente el 3 de enero de 2009. Llevamos 12 años desde que nació. ¿Qué ocurrirá en el transcurso de 120 años?.
En cuanto al consumo eléctrico y la seguridad de la cadena, me hago una pregunta: ¿Por qué dentro de unos 50 o 60 años no se cambie del protocolo PoW al PoS?. Dicho de otra forma, el protocolo PoW o Prueba de Trabajo, que es muy exigente en el consumo eléctrico, pueden cambiar al protocolo PoS o Prueba de Confianza. O por ejemplo, ¿por qué los Estados no pueden tener un nodo en la cadena de la minería?. La minería es libre para Todos. Cualquiera puede hacer minería.
Uno de los problemas de Bitcoin es la escalabilidad o la capacidad de transferir las transacciones. VISA tiene una capacidad para transferir de 24.000 transferencias por segundo. Hoy por hoy se transfieren 2400 transacciones cada 10 minutos. Se mejorará la escalabilidad, por ejemplo con la Lightning Network (LN).
LN básicamente es una pasarela de pagos que pueden abrir los usuarios fuera de la propia blockchain de Bitcoin. Este canal se abrirá y se registrará en la blockchain, pero las transacciones se realizaran fuera de esta blockchain hasta que se cierre el canal. Los usuarios depositaran los BTC en este canal y realizaran todas las transacciones que quieran. Las condiciones son que las transacciones deben ser inferiores a 100$ y estas pasarelas duran unos diez minutos, lo que tarda en generarse un nuevo bloque. Cuando se cierre el canal, cada usuario recibe los BTC que le toquen y todo se registrará en la blockchain. Esto permitirá aumentar la velocidad de las transacciones.
Bitcoin ha crecido en popularidad y ha traído consigo el problema de que los bloques tienen un tamaño insuficiente. Los desarrolladores de Bitcoin Core trabajaron y crearon la solución denominada Segregated Witness o SegWit, como se la conoce. Al principio de Bitcoin el tamaño era de 1MB pero con el tiempo se amplió a 2MB.
Hoy día el tamaño máximo del Bloque de Bitcoin es de 2MB.
UTXO (solución de Satoshi Nakamoto al doble gasto)
Unspect Transaction Output o Transacción de salida no gastada. Fue la solución que encontró Satoshi Nakamoto para evitar el doble gasto, y la verdad que fue muy ingeniosa. Trataré de explicarla:
En este ejemplo sencillo, hay una UTXO a la izquierda con 0,22893527 BTC, la cual le envía 0,22843527 BTC a la dirección o UTXO de la derecha. Los BTC que faltan son fees (comisiones de la TX) que cobrará el minero que mine el Bloque. Pues bien, la UTXO de la izquierda se gasta totalmente, y aparece una nueva UTXO (la de la derecha u output), la cual se gastará posteriormente.
A veces hay UTXOs a la izquierda que no desaparecen del todo porque vuelve a aparecer en el output. Pongo un ejemplo. La dirección pública bc1qwqdq6… está como input (a la izquierda) y como output (a la derecha). Es decir la UTXO del input no se gasta entera porque vuelve a aparecer como UTXO en el output. Si miramos el balance de esta UTXO será diferente de 0 BTC. Espero haberme explicado. De hecho el Estado de Bitcoin, serán todas las UTXO que no están gastadas. En otro Post ya explicaré como guarda dicho Estado.
¿Qué es la Mempool?
Cada vez que una transacción de #Bitcoin, es enviada a la red, ésta va a una colección llamada Mempool, y se pone a disposición de los mineros para ser verificada y confirmada para incluirla en el siguiente bloque.
La Mempool es una pieza fundamental para entender el procesamiento de las transacciones de toda red y de todas las criptomonedas.
Es decir, cuando un usuario de criptomonedas realiza una transacción, primero se anota en la una memoria temporal llamada Mempool, y los mineros las van seleccionando para incorporalas al bloque activo que aún no se ha validado. En cuanto se validen dichas transacciones ya estarán en la BD Blockchain de la criptomoneda que se trate. Recuerdo que cada criptomoneda tiene su Base de Datos.
La Mempool, ¿Cómo funciona? ¿Qué utilidad tiene?
Una Mempool es un almacenamiento temporal para las transacciones de criptomonedas. Esta es una tarea bastante sencilla de realizar. En Bitcoin, la Mempool se regula por el BIP-35. Un BIP, es un documento que estandariza diversos procedimientos o funciones dentro de Bitcoin.
Primero se reciben todas las transacciones de los usuarios que van a parar a la Mempool.
Se pueden recibir cientos como miles de transacciones no van directamente al bloque que se esté procesando, esto va a depender de los mineros que irán cogiendo las transacciones. Los mineros priorizarán las transacciones que tienen mayor comisión.
Los mineros acceden a la Mempool y comienzan a seleccionar las transacciones a incluir en el siguiente bloque de la blockchain. Con cada transacción elegida, la Mempool se libera en espacio y la red se equilibra. Si la Mempool está llena, las confirmaciones suelen tardar más.
Los mineros irán escogiendo las transacciones que mas paguen comisiones. Por eso a veces hay transacciones que tardan más tiempo en ser confirmadas.
Los usuarios pagarán más comisión con el fin de que los mineros estén mas predispuestos a dar prioridad a su transacción. A mayor comisión, mayor la probabilidad de ser elegido rápidamente para procesar su transacción.
La principal utilidad, es su capacidad de almacenar las transacciones de la red para que puedan ser procesadas luego. Esto permite a los usuarios realizar sus operaciones con total comodidad y saber que las mismas recibirán la respuesta adecuada en su momento.
La Mempool es un buen medio para ecualizar el nivel de comisiones de la red. Con una Mempool poco utilizada y una red descongestionada, el valor de las comisiones desciende. Pero con el aumento de las transacciones y una mayor ocupación de la Mempool, las comisiones ascienden. Esto debido a que los usuarios empiezan a pagar mayores comisiones para que sus transacciones tomen prioridad.
De esta forma la Mempool puede limitarse para recibir una cantidad determinadas de transacciones, evitando que la red se sobresature y se vulnere el acceso a la misma por parte de quienes usan la red.
La Mempool en las criptomonedas es de gran utilidad para capturar las transacciones dentro de la red, pero esta puede representar un grave riesgo bajo ciertas condiciones. Esto es especialmente cierto si los usuarios aceptan como definitivas las transacciones que están aún en ella.
Cuando enviamos una transacción, la enviamos a la red pero estamos a la espera de que se procese, esto no significa que se haya realizado.
Si alguien nos envía una transacción con un baja comisión, esta llegará a la Mempool. Pero mientras este allí, es posible que dicho usuario pueda invalidarla o hacer un “doble gasto” de esas monedas. Esto porque habrá realizado una transacción de pago a nosotros, pero por otro lado, puede hacer una transacción de pago a un tercero con un mayor fee (tarifa, gasto). Esto haría que la transacción al tercero y con un fee más alto sea procesada por la red en primer lugar, haciendo que nuestra transacción con más bajo fee se vea invalidada.
Solo se deben aceptar como definitivas las transacciones que hayan sido confirmadas y este en la BD de la blockchain. Para el caso de Bitcoin, esto significa que las transacciones como mínimo deben tener 3 o 6 confirmaciones como mínimo y en Ethereum al menos unas 20 o 30 confirmaciones, para considerar a las mismas totalmente realizadas.
Criptografía
Una buena forma de aprender Criptografía es consultar las informaciones que vaya colgando en la web. En el enlace podrás ver el apartado sobre la matemática, respecto a la seguridad, que se utiliza en la Blockchain: La Criptografía.
Presentació de la Blockchain
Alumnes de l’ESCOLA TÉCNICO PROFESSIONAL XAVIER
La presentació es fa a la seu d’Aicec-Adicae al carrer Creus del Molers 13 (Poble Sec de Barcelona)
Actualización en Bitcoin: Habemus Taproot
A las 6:15 de la de la mañana del domingo en Europa se ha minado el bloque 709.632 y que producirá un cambio en una parte del software (Taproot) de Bitcoin que básicamente implementará cambios importantes: 1) mejorar la eficiencia de las transacciones, 2) la privacidad de la red y 3) su capacidad para soportar iniciativas de contratos inteligentes. No todos los mineros producirán dichos cambios, solo lo harán aquellos que hayan actualizado el Taproot en sus máquinas. Habrá transacciones que quedarán registradas con la opción anterior y otras que incorporarán dicho cambio. Una cuestión muy interesante y que vale la pena seguir. En 2017 fue el anterior cambio, y en el que se añadió la Lightning Network. El proyecto del siguiente cambio de una parte del nucleo de Bitcoin se inicia en 2018. Dicho proyecto lo podríamso bautizar como Taproot.
Bloque 709.632
https://www.blockchain.com/btc/block/0000000000000000000687bca986194dc2c1f949318629b44bb54ec0a94d8244
1) ¿Qué es Taproot?
Taproot es una tecnología que tiene como objetivo mejorar la privacidad y la capacidad de Bitcoin para crear complejos contratos inteligentes (Smart Contracts). Esto hace que Bitcoin y Cardano, se acerque a Ethereum en el liderazgo de los Smart Contract.Este proyecto se inicia en 2018 y ha culminado hoy 14-11-2021 a las 6:15 de la madrugada en Europa.
¿Cómo funciona Taproot?
Taproot busca mejorar la privacidad y la implementación de los scripts de Bitcoin, eliminando la necesidad de revelar información o datos importantes contenidos dentro de los scripts completos. Solo muestra la condición activada en el momento en que se realiza la transacción. ¿Cómo funcionan las transacciones y los scripts dentro de la red Bitcoin?
Las transacciones de Bitcoin están definidas por una serie de scripts o condiciones de pagos, conocidos como P2SH. Las transacciones están protegidas por medio de una clave pública, donde el destinatario debe proporcionar una firma para demostrar que es el propietario de esas monedas, y por tanto, puede gastarlas. Es lo que se conoce como criptografía Asimétrica o criptografía d clave pública y clave privada. Hay dos claves.
Por otro lado, los scripts P2SH tendrían la capacidad para modificar o ajustar sus acciones. Es decir, se podrían establecer ciertas restricciones que condicionan el gasto de los bitcoins o acciones dentro de la Blockchain. Por ejemplo, se pueden establecer funciones de time lock o bloqueos de tiempo, para determinar el momento en que podrán ser gastados los bitcoins, como una fecha o altura de bloque exactas. También pueden establecerse condiciones de multisig o multifirma, donde varios usuarios serán los propietarios de un monedero. Y por tanto se necesita de varias firmas para autorizar y realizar una transacción.
Taproot mejora la privacidad de la red. Taproot impide que se revelen todas las condiciones establecidas dentro de las operaciones. Taproot solo revela la condición final activada de la transacción. Taproot mostrará dichas transacciones como transacciones normales o convencionales, haciendo que sea imposible distinguir unas de otras.
Firmas Schnorr y MAST, parte esencial de Taproot. Taproot combina las tecnologías de las firmas Schnorr y MAST (Merkelized Abstract Syntax Tree). En este sentido, las firmas Schnorr permiten añadir múltiples firmas en las transacciones, y que dichas firmas puedan ser unificadas en una sola.
Taproot permite la combinación de claves públicas y las firmas en una transacción multisig. Con lo cual serán indistinguibles de una transacción convencional. Por su parte, las firmas Schnorr son consideradas como una de las versiones más seguras y confiables de la criptografía de curva elíptica, y está codificada en BIP 340. Además, estas firmas son muy rápidas de verificar, por lo que las confirmaciones de las transacciones podrán realizarse de forma mucho más rápida, mejorando los tiempos de transacción.
Usar MAST, nos permite hacer que Taproot pueda ocultar las condiciones que no se activaron en una transacción. En su lugar, solo se muestran aquellas condiciones que sí fueron activadas dentro de la red. La solución MAST utiliza la estructura de árbol de Merkle para dividir de forma individual todas las condiciones establecidas para el uso de los bitcoins. Por lo que no las agrupa dentro de un solo hash, sino que las incluye dentro del Árbol de Merkle. Que a su vez, proporciona una raíz de Merkle, donde son guardadas todas las monedas. Así, al revelar algún dato contenido dentro del árbol de Merkle, se puede verificar esta información. Para ello solo basta verificar si dichos datos están dentro de la raíz Merkle
Taproot permite revelar sólo la condición que se cumple cuando se hace una transacción. Manteniendo todos los demás datos ocultos y protegidos. Haciendo que la red Bitcoin pueda implementar smart contracts de forma mucho más segura, privada y eficiente.
Podéis ver más información en criptonoticias.
También poder consultar en cointelegraph
https://es.cointelegraph.com/news/bitcoin-taproot-upgrade-improves-the-network-as-btc-price-impact-may-be-limited
El apalancamiento
El precio de Bitcoin y las criptomonedas no son únicos. Cada Exchange es una plataforma que tiene sus precios. Por ejemplo, si miramos el precio de Bitcoin en Binance, Kraken o Coinbase no coincidirán.
En la Bolsa en España el precio de las acciones es único. Viene marcado por un sistema llamado SIBE (Sistema Informático Bursátil Español) que unifica la contratación y los precios de las 4 bolsas españolas (Barcelona, Madrid, Valencia y Bilbao) permitiéndoles operar como un solo mercado, llamado Mercado Continuo.
Kraken tiene sus precios de las criptomonedas y no coinciden exactamente con los precios de Binance. Algunos Exchange están adheridos a otro en el precio. Por ejemplo Quantfury lo está con Binance.
Cuando hacemos una operación de trading, por ejemplo una Compra o una Venta, lo hacemos con nuestro dinero en cuenta en un Exchange, en frente tenemos otra persona que hace la operación contraria. Es decir:
Si A Compra 0,2bitcoins, la persona B los Vende. En ese caso el Exchange_A se limita a poner la plataforma para que estas transferencias se produzcan o mejor dicho, para que la Compra de A, se aplique con la Venta de B. El Exchange_A (Binance, Coinbase, Kraken, Gemini, https://cutt.ly/XvigVP8
El beneficio del Exchange_A es la comisión que cobra por dichas transacciones, pero no es el único beneficio que tiene. Hay otros beneficios que no se ven a simple vista y no son tan “transparentes” como la comisión que cobran por la transacción. Me gustaría abordar esto, así como el tema del apalancamiento como uno de los problemas mas serios contra el Retail o pequeño inversor.
¿Qué es el apalancamiento?
En el caso que nos ocupa, apalancarse es apostar un dinero que no tenemos y que el Exchange nos presta. Imaginemos que el usuario A Vende 0,2BTC con un apalancamiento de 10x. Es decir Vende 0,2*10 = 2BTC, Vende 10 veces mas de lo que apuesta que son 0,2BTC . Si solo tiene 0,5BTC en su cuenta, y si en esa apuesta apalancada su pérdida se aproxima a los 0,5BTC, el Exchange, le LIQUIDARÁ LA CUENTA, como así está sucediendo día tras día. Pero ¿Por qué se producen esas liquidaciones?. Es muy simple: cuando uno se apalanca, el dinero del apalancamiento lo pone el Exchange_A, pero con el dinero que hay en el Exchange_A que son los BTC de otros clientes que han depositado la custodia de sus Bitcoins en dicho Exchange_A.
En nuestro ejemplo el cliente A pone 0,2BTC pero la apuesta total son 2 BTC porque se ha apalancado 10x, los 1,8BTC restantes los presta el Exchange_A con los Bitcoins que custodia de otros clientes. Ese préstamo no es gratis. Algunas veces será gratis pero muchas otras le costará la cuenta entera al pequeño inversor o Retail. Como mínimo la comisión por la C/V es mayor porque no es la misma comisión que se paga por 0,2BTC que por 2 BTC.
Veamos otra forma como el Exchange _A gana dinero de los clientes, se apalanquen o no. Supongamos que una persona A Vende 0,2BTC en el Exchange_A. Normalmente, la gran mayoría ponemos stop loss para protegernos.
Compro 0,2 BTC a 60.000$ = 12.000$
Si el precio se va para arriba perfecto. Si llega a 65.000$ ganaré 1000$ que es el 8,333% de los 12,000$ apostados, menos la comisión que me cobre el Exchange_A, el cual también le cobrará la misma comisión al cliente B.
Supongamos que pongo un stop loss al 1% de pérdida.
Compro 0,2 BTC a 60.000$ = 12.000$
Stop loss al 1% de los 60.000 = 59.400$
Es decir, si el precio baja a los 59.400 (60.000-60000*1%) saltará el stop loss y habremos perdido el 1% de los 12.000$ apostados + la comisión que nos cobren. Mas o menos 120$ + la comisión. El Exchange_A ganará las comisiones de los clientes A y B. La posición perdida por A quedará cerrada por B. Si apostamos apalancados la comisión que se gana el Exchange_A será mayor porque se lleva un porcentaje de lo apostado.
Pensemos que al Exchange_A le interesa cuantas mas operaciones de Compra/Venta se hagan mucho mejor por las comisiones.
¿Qué gana y/o pierde el Exchange_A con el apalancamiento?
No pierde nada porque presta Bitcoins que no son suyos, son de los clientes que tienen sus Bitcoins custodiados en el Exchange_A , y esos Bitcoins están asegurados porque a mal menor pueden y liquidan cuentas sin perder absolutamente nada. Es un negocio redondo.
Con el apalancamiento implica una mayor apuesta del cliente A, e implica mayores comisiones para el Exchange_A.
Muchas veces vemos esas bajadas y/o subidas bruscas para barrer los stop loss. ¿Provocan o influyen los Exchange en esas bajadas y/o subidas bruscas o lo hace el mercado de forma libre?. Estoy convencido que la mano del Exchange es patente.
Cuando A compra BTC es porque B Vende y al revés. Aquí el Exchange_A se lleva las comisiones, pero, ¿Qué ocurre cuando se liquida una cuenta?. Siempre hay unas “migajas”, ¿A quien van a parar?. Tengo mas que dudas, preguntas porque quien parte y reparte, se lleva la mejor parte.
Por último he de decir que lo mas importante es la información. El Exchange tiene información de todo:
¿Qué es congelar bitcoins o ethers?
Voy a tratar de explicar de forma sencilla que es congelar bitcoins. El concepto de congelar bitcoins significa convertir bitcoins en una moneda estable, por ejemplo $ para que cuando baje el valor de Bitcoin poder hacer lo contrario, y volver a comprar los bitcoins con el dinero que tenemos en la moneda estable escogida. Por ejemplo en dólares. Pondré un ejemplo.
Tenemos 2,58 ethers en la cuenta. Creemos que el valor de la moneda ether, así como BTC va a bajar y lo que queremos hacer es CONGELAR esas monedas en una moneda estable, como el dólar, para que esa bajada del ether o el Bitcoin no le afecten. En la cuenta de abajo tenemos 2,58 ethers. Para congelarlos debemos apretar la opción Convertir.
Después nos aparecerá la pantalla de abajo, en la que debemos seleccionar De que moneda quieres convertir, que cantidad, y a que moneda la quieres convertir.
He escogido convertir 2 ethers a USDT, moneda estable del $ porque 1 USDT = 1$ La operación está hecha en la plataforma Binance.
También podríamos convertir cualquier criptomoneda en Bitcoins, o al revés.
Esto es congelar una moneda cripto en USDT. Otra cosa diferente es hacer una operación de Venta de Bitcoins a USDT, esto último NO es congelar, es hacer una operación de trader. Espero haberlo explicado.
¿A dónde van a parar las transacciones que hacemos?
Cuando hacemos una transacción de Bitcoins, pasa a la Mempool. Pero, ¿Cómo es la Mempool? Lo dibujaré:
Entonces, si hacemos una transacción, irá a parar a la Mempool mas grande. En nuestro ejemplo a la Mempool-3. Aquí se ordenan de mayor a menor Fee (Comisión que se cobra por la transacción). Si la Comisión es alta irá a la Mempool 1. La Mempool 1 y la 2 serán los siguientes bloques a aprobar. El número de transacciones en esas dos Mempool serán parecidos a las transacciones de un bloque. La Mempool 3 es diferente. Dicha Mempool tendrá el resto de transacciones que quedan, por ejemplo 75.000. Los mineros cogen las transacciones de la Mempool 3 para validarlas y ponerlas en las Mempool 2 y Mempool 1, dependiendo del Fee.
Los bloques verdes ya están aprobados, el siguiente bloque será la Mempool 1y se desplazará desde la izquierda a la derecha. Es decir:
Así es como creo que actúan los protocolos cuando hacemos las transacciones.
Pero, veamos una aproximación mas cercana a la realidad de la Mempool. Una imagen vale mas que 1000 palabras.
Hay dos grupos: 1) los bloques ya confirmados y que están en la cadena (bloques azules) y 2) bloques de la mempool que están sin validar o confirmar. En nuestro caso tenemos 6 mempool. Las 5 primeras mempool son equivalentes a los bloques de la cadena y la mempool 6 tiene el resto de transacciones (en este caso tiene 52.728 transacciones con un fee de 8 satoshis de media). Digamos que el protocolo que se encarga de manejar la mempool, coloca las transacciones en la mempool-6, ordena las transacciones por fee y una vez validada la transacción (que no sea un doble gasto, etc.) coloca dicha transacción en una mempool mas adelantada, la 1, 2, 3, 4, 5 todo dependiendo del fee. En otras palabras, el fee es el que marca donde va a ir colocada la transacción porque se trata de una subasta. A mayor fee, coloca a la transacción en el bloque de la mempool mas próxima a validarse como bloque.
Vemos que hay 6 mempool, ordenadas de mayor a menor fee. Esto es debido a que en realidad se produce una subasta. A mayor fee implica que la transacción estará mas próxima a validarse y por tanto a estar en la cadena de bloques ya confirmada.
Es muy interesante saber como hacen los protocolos, en este caso de Bitcoin, para controlar el doble gasto, así como cuando tenemos dos mineros que encuentran la solución al mismo tiempo del ejercicio de encontrar 16,17,18 o 19 ceros a la izquierda en el hash del bloque.
¿Cuál fue el primer bloque de #Bitcoin que tuvo Transacciones reales?
El primer bloque de #Bitcoin con fecha 3-1-2009, fue el CERO posteriormente Satoshi Nakamoto minó 170 bloques obteniendo 50 BTC como recompensa por cada bloque, hasta que el 10 de enero de 2009, le envió a Hal Finney 10 BTC. Veamos las 2 Transacciones que se produjeron en ese bloque 170, y vemos como lo hace. Es muy interesante porque esa es la forma como está ese gran libro de contabilidad. El bloque 170 lo podéis ver si pulsáis aquí
Todas son Transacciones reales, pero las 170 primeras, son Transacciones en las que solo se da la recompensa de 50BTC al minero que encontró la fórmula matemática y en los 4 primeros años (mejor dicho cada 210.000 bloques), la recompensa era de 50BTC. Es en el Bloque 170, cuando Satoshi Nakamoto, decide darle 10BTC a un amigo suyo, el cual era un gran informático. Le explicó la tecnología y se enganchó. Satoshi le envió 10BTC y posteriormente se hizo minero. Veamos esas Transacciones:
El bloque 170 tiene 2 transacciones: la primera transacción es la recompensa de los 50 BTC, que van a parar al único minero que había entonces: Satoshi Nakamoto.
La segunda transacción son los 10 BTC que le da Satoshi Nakamoto a Hal Finney. Mirar como lo hace: en la entrada (el apunte de la izquierda) son 50 BTC, le da 10 BTC a Hal Finney y le devuelve 40 BTC a Satoshi Nakamoto. Es como si pagamos 10€ por algo, pagamos con un billete de 50€ y nos devuelven 40€.
Para darle 10 BTC a Hal Finney , lo ha de hacer con una cuenta que tenga dinero y eso lo hace con un hash (12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S) que apunta a 50 BTC. NO LE DA LOS 10 BTC DE LA NADA, le da los 10 BTC a Hal Finney que tiene una @pública (1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3) y le devuelve los 40 BTC a (12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S) que es la de Satoshi Nakamoto.
Es igual que cuando vamos a comprar algo de 10€ con 1 billete de 50€. Lo pagamos y nos devuelven 40€. El billete de 50€ ya no lo tenemos, y no lo podemos gastar otra vez. Solo podremos gastar los 40€ que nos devuelven. De esta forma evitamos el DOBLE GASTO. Satoshi lo hizo de forma parecida. Ya veremos mas adelante como se las ingenió para crear un protocolo para impedir esos dobles gastos.
Sencillo pero magnífico. De esta forma irá controlando el doble gasto, etc. etc.
Veamos una transacción (imagen de abajo) del 4 de marzo de 2021.
Es muy interesante. Una persona se ha enviado a si misma 0,24BTC de una cuenta que tiene en 2gether (es una empresa FINTECH en la que se pueden comprar Bitcoins, etc.) a una cartera fría (exactamente una Trezor-T). Se envía 0,24BTC. La cuenta de la izquierda (la Entrada o el DEBE del asiento contable) salen 5,14323104 A la derecha o en el HABER o Salida la persona recibe 0,24BTC y el resto ya que ha de cuadrar recibe la misma cuenta que salieron los 5,14323104, DEBE 5,14323104 = 4,90296888 + 0,24 + 0,00026216 que es el Fee o la comisión que se cobra por la transacción en el HABER.
Pero, ¿quién es el propietario de los 5,14323104?, para mi es 2 gether, NO la persona que envia los BTC. Es 2 gether, él es el intermediario y a través de él se hacen las transacciones. Las hace un cliente suyo, pero las hace 2gether. Después nos lo descontará de nuestra cuenta. Esto sin duda, pero esos 5,14323104 son de 2 gether. Maravilloso.
De momento quedaros con la forma brillante en como resolvió las entradas y salidas de ese gran libro de contabilidad.
Extraordinario por lo sencillo que es. Muy elegante.
Bravo por Satoshi.
Hash Rate
La creación de Bitcoins, se produce cada 10 minutos, mas o menos, mediante la solución de un problema matemático que requiere mucho esfuerzo pero que es muy sencillo. El esfuerzo es un consumo eléctrico importante. Dentro de la cabecera del Bloque tenemos 6 datos importantes:
1.- Versión del protocolo de Bitcoin
2.- El hash del Bloque anterior.
3.- El hash representativo de todo el árbol de Merkle de las Tx. Que se llama la Merkle root.
4.- El Timestamp o el tiempo en que se registró el bloque. Empieza en el primer segundo del 1-1-1970. En el Time stamp hay una cierta permisividad para los mineros definida en el protocolo.
5.- Los bits que representan la dificultad que hay que conseguir. Se revisa cada 2016 bloques con el objetivo de minar 1 bloque cada 10 minutos en promedio.
6.- Un número que le llamamos NONCE que irá variando hasta conseguir el objetivo del punto 5.
Es sencillo porque se trata de ir cambiando un número, se llama NONCE, y al cambiarlo el hash ha de contener mínimo 19 o 18 ceros a la izquierda. El número de ceros es la dificultad. SI son 19 ceros es mucha mas dificultad que tenga 16 ceros. Os muestro uno de los últimos. En realidad son 19*4 = 76 ceros porque cada 0 son 4 bits 0000. Pensar que son 64 caracteres en hexadecimal = 64*4 = 256 bits
00000000000000000002eea9138377fd7039677cc0ac0265d6f7d2b75308767b
Esto lo podéis ver en un explorador de Blockchain. Hay varios.
https://www.blockchain.com/explorer
¿Cuántos ceros ha de tener?, esa es la dificultad, la cual se revisa cada 2 semanas. En realidad los ceros es una metáfora muy acorde a la dificultad que hay que cumplir. La realidad es que hay que conseguir un número que sea menor que la dificultad en bits que se revisa cada 2016 bloques (2 semanas). Eso es el HASH RATE o el ratio del HASH.
¿Por qué se revisa?, se revisa porque en promedio se ha de aprobar un bloque cada 10 minutos, y si:
¿Quién ha de encontrar esa formulita?, por supuesto los mineros (es decir los nodos en la red). El minero que de con la formulita, creará el bloque y si el resto de nodos le dan el aprobado, creará el BLOQUE y percibirá 6,25 BTC en su cuenta pública, mas las comisiones que se hayan cobrado por validar las transacciones que van en el bloque.
Mañana 20 de mayo se revida el HASH RATE a las 22h o 23h PM, y ya se sabe que disminuirá la dificultad, es decir disminuirá el HASH RATE o los números de ceros (los ceros los explicaré en otro momento, en una entrada. Ahora es demasiado y os podéis perder en lo importante).
Aquí tenéis un punto de vista mas comercial de esta noticia https://bit.ly/3dZtuZm