lunes, 22 de marzo de 2021

A minar Ethers

🎵 Cavar cavar cavar cavar, en la mina quiero yo... 🎵

Creo que la mayor parte de la gente que trabaja en tecnología ya sabe que es una blockchain, por tanto no vamos a centrarnos en contar qué es, sino como es el proceso de minado en la blockchain de Ethereum. El proceso de minado es aquel con el que se van a realizar una serie de cambios en los datos que se almacenan en la blockchain. 

Todo empieza enviando transacciones a los nodos de la blockchain. Una transacción consiste en una modificación de la blockchain, por ejemplo para cambiar el saldo de las cuentas o para cambiar el estado de los smart contracts.

En el caso de Ethereum podemos enviar estas transacciones a dos tipos de cuentas:

  • Cuenta de contrato: cuenta donde se encuentra el código de un smart contract. Se envían transacciones a este tipo de cuentas con el propósito de ejecutar una parte del código.
  • Cuenta externa: una cuenta donde se almacenan los Ethers y que controla una persona. Se usa para enviar, recibir y almacenar criptomonedas.

Ambas transacciones quedan registradas en la blockchain, y podemos verlas en tiempo real desde la página de Etherscan.


Al enviar las transacciones, estas se quedan en estado pendiente hasta que los mineros las seleccionan para añadirlas al siguiente bloque. Esta selección se basa en el beneficio que les vayan a reportar las transacciones elegidas. Siempre escogerán primero aquellas que más gas vayan a utilizar y en las que el precio dispuesto a gastar por cada unidad de gas sea mayor, para obtener el mayor beneficio posible por bloque.




El gas es básicamente una unidad que mide la capacidad de computación necesaria para realizar las transacciones y podemos encontrar el coste en unidades de gas de cada operación que haya que utilizar al realizar la transacción en el Apéndice G del yellow paper de Ethereum. Este concepto permite que la blockchain sea más segura evitando por ejemplo el ataque del 51% además de que las unidades de gas * precio de gas es una parte de la recompensa que se va a llevar el minero por minar un bloque.



Un bloque es un almacén donde se van a guardar permanentemente las transacciones que no se han añadido anteriormente en otro bloque. Se puede ver como una una hoja de un libro de contabilidad donde se van apuntando las entradas y salidas y se lleva un control del saldo de cada cuenta.

No solo se guardan las transacciones, también se guarda otra serie de datos como el número del bloque, el total del gas utilizado, el nonce (que ahora explicaré), el hash del bloque anterior...



Una vez que se han añadido las transacciones al bloque, comienza el proceso de minado. En Ethereum se usa el algoritmo de consenso de Proof of Work (PoW) o prueba de trabajo, por tanto los mineros tienen que calcular un hash a partir de toda la información que guarda el bloque. El problema matemático a resolver para que el bloque se considere minado correctamente es que dicho hash tiene que representar un valor numérico menor a un número X dado, y para ello solo pueden ir modificando el campo del nonce.

El número X va cambiando dependiendo de la dificultad del bloque, que a su vez va cambiando según el tiempo medio de minado de un bloque que debería de estar entre 10 y 15 segundos. Si el tiempo medio de los bloques supera los 15 segundos entonces la dificultad del bloque baja, y por el contrario, si el tiempo medio baja de 10 segundos, la dificultad aumentará haciendo que la X sea un número más grande o más pequeño.

Debido a que este algoritmo de consenso no es muy sostenible, Ethereum cambiará próximamente su algoritmo de consenso dejando atrás el  de PoW para empezar a utilizar el de Proof of Stake (PoS) o prueba de participación.


Resuelto el problema que se pide, el minero tiene que avisar al resto de nodos de que ya ha terminado para que los demás comprueben que el bloque es válido. Para ello les envía el nuevo bloque.

El resto de nodos según van recibiendo el bloque minado, tienen que validar que el problema se ha resuelto correctamente, además de comprobar que las transacciones que van en el bloque se pueden realizar, es decir, que tienen el saldo necesario para realizar el cambio de estado en la blockchain.


Si el resto de nodos validan el bloque entonces este se añade definitivamente a la blockchain y el minero recibirá su recompensa: 2 Ethers + el gas total utilizado para realizar los cambios de estado en la blockchain.

Y una vez terminado este proceso, los nodos empiezan de nuevo la carrera por ser los primeros en minar el siguiente bloque de la blockchain para llevarse su recompensa.

Uyy, esto me gusta, voy a poner mi ordenador a minar... Dado que actualmente hay empresas que se dedican exclusivamente a la minería, no tiene mucho sentido poner nuestros ordenadores a minar en esta blockchain ya que es muy improbable que una única máquina consiga resolver el problema propuesto antes que todas aquellas que trabajan en armonía para estas empresas mineras.

🎵 Ay ho, ay ho la hora ya llegó... ay ho, ay ho, a casa vuelvo yo..🎵 

1 comentario:

  1. And the presence of same-day withdrawals is one other big plus for these fond of the ‘reverse’ button. For help, you'll be able to|you probably can} reach their buyer support 24/7 via live 1xbet chat or e-mail. Bovada additionally has a massive library of FAQs that answers typical casino queries.

    ResponderEliminar