Entradas de Bitcoin

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:

  1. ¿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.
  2. 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.

,

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.

  • 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 y entonces  ese minero y no otro c)  crea el siguiente bloque 631.420.

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 la fórmula, crea el Bloque siguiente, el  631.420.

¿Qué ocurre entonces cuando el minero que acierta el bloque 631.419?, el y solo el crea el 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.

Es decir el minero que resuelve un bloque y es validado por los otros mineros, crea 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.

 

,

¿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?

  1. 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.

  1. 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.

  1. 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.

  1. Utilidad de la Mempool .

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.

  1. Riesgos de la Mempool

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.

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:

  • 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á.
,

¿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.

,

Datos importantes de Bitcoin

A fecha 18 de abril de 2021 hay minados 679.615  bloques que representan 18.685.094 bitcoins.

En esta fase que durará hasta 2024 se minarán 6,25 bitcoins cada 10 minutos. Es decir:

.- 6,25 * 6 = 37,5 bitcoins cada hora.

.- 37,5 * 24 = 900 bitcoins diarios o

.- 900*365 = 328.500 bitcoins anuales.

El total de Bitcoins que se podrán minar es de 21 millones de bitcoins, 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 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 cerca del 680.000.

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.

,

¿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.

 

,

Árbol de Merkle

Un árbol de Merkle  es una estructura de datos en árbol, binario o no, 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. Cada dos transacciones se crea un nodo superior, 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.

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 transaccó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, es todo perfecto. Esxe 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)

Gracias a esta estructura única, los árboles de Merkle permiten comproabr 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.

0 (en código decimal)0 (en código hexadecimal)0 (en binario con 4 bits)
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111
G-1NBLJNLNE7