Revelando el Misterio de la Minería

PrincipianteJul 15, 2024
Este artículo proporciona una introducción detallada al proceso de "minería" en la cadena de bloques. Al hacer una analogía con las actividades mineras tradicionales, explica el concepto básico de la minería digital, que implica el uso de recursos computacionales para resolver problemas matemáticos para la validación de transacciones y la emisión de nueva moneda.
Revelando el Misterio de la Minería

adelantar el título original '白话区块链三:揭开挖矿神秘的面纱——挖矿是什么?为什么要挖矿?谁是我们买不起显卡的罪魁祸首?'

uno de los conceptos más conocidos relacionados con blockchain para todos es probablemente la minería. muchas personas pueden haber oído hablar de la minería en numerosas ocasiones, pero no están seguras de lo que realmente implica. en esta sección, interrumpiremos nuestra programación regular para presentar primero la “minería.”

un breve resumen del contenido de “blockchain simple 1: introducción a bitcoin (el pionero de la revolución blockchain y el desafiante de la moneda soberana)”, donde satoshi nakamoto diseñó el sistema monetario de bitcoin para vincular las recompensas por llevar registro con la emisión de moneda. este enfoque permite que la emisión de moneda se automatice a través del proceso de registro, resolviendo el problema de la emisión de moneda y alentando a los encargados del registro a participar activamente.

1. ¿Qué es la minería?

en el mundo real, la minería implica que los mineros usen varias herramientas para extraer metales preciosos ocultos en rocas de las minas. los mineros extraen valor de estos metales raros ocultos en la naturaleza a través del trabajo físico.

para proyectos de blockchain con recompensas por llevar los libros contables (por lo general, proyectos de monedas digitales), los nodos de la red gastan recursos computacionales para resolver problemas. Una vez que encuentran la solución, empaquetan el bloque y reciben una recompensa en forma de moneda recién emitida. Este proceso es análogo a extraer metales preciosos como el oro de la mena, por lo que comúnmente se le conoce como 'minería'. Aquí, los encargados de llevar los libros contables son los mineros, que compiten para empaquetar bloques utilizando hardware y electricidad, lo que resulta en la creación de nueva moneda.

2. ¿por qué es necesaria la minería?

la minería sirve para dos propósitos principales: validar transacciones recientes empaquetándolas en bloques y vinculándolas a la cadena de bloques, y emitir nueva moneda recompensando a los tenedores de libros. a continuación se detallan las funciones de la minería:

  1. selección de contables: se necesita una estrategia para seleccionar los contables reales entre numerosos candidatos. el resultado de la minería se utiliza como base para esta selección, asegurando que todas las transacciones sean reconocidas por todos los participantes, logrando consenso en toda la red.
  2. verificación de transacciones: cada transacción de bitcoin debe ser verificada por los mineros en la red. Este proceso confirma la validez de la transacción, incluyendo:
    • asegurando que el formato y tamaño de la transacción cumplan con las especificaciones.
    • verificar la validez de la firma de cada transacción para asegurar que fue iniciada por el usuario que posee la clave privada relacionada.
    • verificar que el monto de entrada exceda el monto de salida (con parte del monto tomado como tarifa), asegurándose de que los tokens utilizados para el pago no hayan sido gastados dos veces.
    • confirmar que la transacción no ha sido incluida previamente en un bloque.
  3. emisión de nueva moneda: la minería es también la forma en que entran en circulación los nuevos bitcoins. cuando un minero mina con éxito un nuevo bloque, recibe cierta cantidad de bitcoins como recompensa. este mecanismo de recompensa no solo incentiva a las personas a participar en la minería, sino que también sirve como un método de emisión de bitcoins. este método de emisión de moneda garantiza un aumento constante y controlado en la circulación de la moneda, lo que ayuda a gestionar la inflación.
  4. fomentar la participación: el mecanismo de recompensa motiva a más personas a participar en el mantenimiento del sistema de moneda, promoviendo su desarrollo continuo y robusto.
  5. mejorando la seguridad y la descentralización de la red: las recompensas de la minería llevan a un gran número de mineros, lo que resulta en una potencia computacional distribuida. Esta descentralización garantiza que ninguna entidad única pueda controlar el 50% de la potencia computacional, mejorando así la transparencia y la seguridad del sistema. Adherirse al principio de la cadena más larga mejora aún más la seguridad del sistema.

3. ¿por qué los mineros están dispuestos a participar en la minería?

los mineros son incentivados a participar en la minería porque reciben recompensas sustanciales por empaquetar exitosamente un bloque en la cadena de bloques. Estas recompensas provienen de dos fuentes principales:

  • recompensas por bloque (nueva moneda emitida): el sistema de moneda emite automáticamente nueva moneda, que va íntegramente al minero. Por ejemplo, en el sistema de Bitcoin, actualmente, los mineros reciben 3.125 bitcoins por cada bloque que empaquetan. Dado que cada bitcoin tiene un valor de alrededor de $65,000, empaquetar un solo bloque puede generar más de $200,000, aproximadamente 1.47 millones de RMB.
  • tarifas de transacción pagadas por los usuarios: debido a la capacidad limitada de un bloque para contener registros de transacciones, algunos usuarios pagan tarifas de transacción para incentivar a los mineros a priorizar sus transacciones para una confirmación más rápida. al seleccionar transacciones del grupo para incluirlas en el bloque, los mineros tienden a elegir aquellas con tarifas más altas. un bloque puede contener miles de transacciones, y todas las tarifas de estas transacciones van al minero, representando otra fuente significativa de ingresos. a medida que más personas usan bitcoin para transacciones, la competencia por la inclusión en los bloques se intensifica, lo que lleva a tarifas más altas que los usuarios están dispuestos a pagar.

con el tiempo, las recompensas por bloque disminuirán (por ejemplo, debido al mecanismo de reducción a la mitad de bitcoin, donde la recompensa se reduce a la mitad aproximadamente cada cuatro años). finalmente, después de que se hayan minado los 21 millones de bitcoins, se espera alrededor del año 2141, la recompensa automática por bloque dejará de existir y las tarifas de transacción se convertirán en la principal fuente de ingresos para los mineros.

consejos

Bitcoin genera un nuevo bloque aproximadamente cada 10 minutos. Inicialmente, cada nuevo bloque producía 50 bitcoins. Esta recompensa se reduce a la mitad cada cuatro años, y hasta la fecha, ha habido cuatro eventos de reducción a la mitad. Actualmente, cada bloque genera 3.125 bitcoins, con la reducción a la mitad más reciente ocurriendo en abril de 2024. Se prevé que la próxima reducción a la mitad sea alrededor de 2028. Hacia alrededor de 2141, Bitcoin alcanzará su límite de emisión.

la comisión de transacción no solo está influenciada por la oferta y la demanda, sino también por el tamaño de la transacción, ya que las comisiones son proporcionales al espacio que ocupa la transacción en el bloque.

4. cómo participar en la minería

Para los mineros, participar en la minería es sencillo. Descargue un cliente de billetera de moneda digital y, dentro del cliente, haga clic en el botón de minería para comenzar a minar.

para proyectos de blockchain con recompensas en bloques, el algoritmo de minería suele estar escrito en un script integrado en la billetera. los mineros simplemente necesitan hacer clic en un botón para iniciar el script.

el algoritmo de minería es determinista, lo que significa que mientras los mineros ejecuten continuamente el algoritmo, eventualmente obtendrán un resultado. sin embargo, debido a los recursos computacionales variables, el tiempo requerido para calcular este resultado puede diferir entre los mineros. una vez que un nodo calcula el valor objetivo, los esfuerzos de otros mineros durante ese período resultan inútiles, lo que genera retornos negativos debido a los recursos físicos gastados.

Para evitar el desperdicio de esfuerzos, los mineros a menudo agrupan sus recursos computacionales uniéndose a un nodo de grupo de minería. Este nodo funciona como cualquier otro nodo, pero tiene una potencia computacional significativamente mayor. Cuando el grupo extrae con éxito un bloque, las recompensas se distribuyen entre los mineros participantes en función de sus recursos computacionales aportados. Es importante tener en cuenta que en la cadena de bloques, el minero registrado como empaquetado del bloque es el nodo del grupo de minería, mientras que los mineros individuales reciben su parte de las recompensas asignadas por el grupo, no directamente del sistema monetario.

bitmain, una empresa que fabrica chips de minería especializados y de alta eficiencia, ha afianzado el papel de las piscinas de minería, contribuyendo a la centralización del poder de contabilidad.

5. los detalles del rompecabezas de minería

Diferentes proyectos de blockchain pueden tener rompecabezas mineros variables y niveles de dificultad. Aquí tomamos bitcoin como ejemplo. El algoritmo de minería utilizado por bitcoin se llama prueba de trabajo (PoW). La esencia de este algoritmo es que para obtener un resultado, se debe gastar una cierta cantidad de trabajo para demostrarlo.

El rompecabezas de minería no es un problema matemático tradicional, sino que implica encontrar un número aleatorio, conocido como nonce. Este nonce, cuando se combina con los datos del bloque y se procesa a través de una función hash, debe producir un valor hash que cumpla una condición específica. Por lo general, esta condición requiere que el valor hash sea menor que un valor objetivo (o, de manera equivalente, que los primeros n bits del valor hash sean cero). La ecuación es la siguiente: hash(nonce+datos_de_bloque)≤objetivo\text{hash}(\text{nonce} + \text{datos_de_bloque}) \leq \text{objetivo}hash(nonce+datos_de_bloque)≤objetivo

bitcoin utiliza la función hash sha-256, que convierte cualquier longitud de entrada en una salida de longitud fija de 256 bits (equivalente a 64 dígitos hexadecimales o 32 bytes). la salida es casi aleatoria pero garantizada de ser la misma para la misma entrada. la minería implica cambiar continuamente el nonce y hacer hash de los datos de la cabecera del bloque utilizando sha-256 hasta encontrar un valor de hash que cumpla con la condición objetivo.

por ejemplo, un valor hash sha-256 con los primeros 30 bits siendo ceros: 000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110

la conversión de esto a hexadecimal resulta en un valor que comienza con siete ceros: 00000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac90

para simplificar, la probabilidad de encontrar un hash con los primeros n bits siendo cero es de 12n\frac{1}{2^n}2n1​. cuanto más grande sea n, más bits serán cero y menor será la probabilidad:

  • n = 10n = 10n = 10: 1 en 1,024
  • n=20n = 20n=20: 1 in 1,048,576
  • n=30n = 30n=30: 1 en 1,073,741,824
  • n=40: 1 en 1,099,511,627,776
  • n=50n = 50n=50: 1 en 1,125,899,906,842,624

con n de hasta 256, encontrar un valor hash así con la potencia computacional humana actual, excluyendo las computadoras cuánticas, es virtualmente imposible antes de que la Tierra deje de existir.

debido a las propiedades de sha-256, el único método es la fuerza bruta, que implica probar continuamente diferentes nonces hasta que se cumpla la condición. esta necesidad de equipos informáticos de alto rendimiento es la razón por la que la minería requiere tales dispositivos.

debido a que no se puede predecir el valor hash generado al agregar el nonce a los datos del bloque y pasarlos a través de sha-256, el proceso es completamente aleatorio. por ejemplo, si el valor hash deseado es 10.000, no hay forma de saber qué nonce combinado con los datos del bloque producirá un valor hash menor que 10.000. Esta naturaleza impredecible y aleatoria significa que los mineros deben seguir enumerando posibilidades hasta que se cumpla la condición. Si varios valores cumplen con la condición, se elige el valor hash más pequeño, ya que un valor hash más pequeño indica una mayor dificultad y una menor probabilidad de ocurrencia.

verificar si un valor hash generado cumple con el requisito es fácil, solo requiere una operación de comparación. sin embargo, encontrar un valor hash menor o igual al valor objetivo solo se puede lograr a través de la enumeración por fuerza bruta. esta característica, donde verificar un resultado es fácil pero encontrar el resultado es difícil, se conoce como asimetría computacional.

6. simulación del algoritmo de minería de código

En el código siguiente se simula el proceso de minería de datos. Comienza con una cadena de datos de encabezado de bloque "geekbang" y busca de forma incremental desde un valor nonce de 10.000 hasta que encuentra un nonce que cumple la condición especificada.

aquí hay un script de Python que demuestra el proceso de minería:

import hashlib
def main():
    base_string = "geekbang"
    nonce = 10000
    count = 0
    while true:
        target_string = base_string + str(nonce)
        pow_hash = hashlib.sha256(target_string.encode()).hexdigest()
        count += 1
        if pow_hash.startswith("0000"):  # first 4 hex digits are 0, equivalent to the first 16 bits being 0
            print("hash:", pow_hash)
            print("nonce:", nonce, "scan times:", count)
            break
        nonce += 1

if __name__ == '__main__':
    main()

cuando el requisito es que los primeros 4 dígitos hexadecimales del resultado del hash sean cero (equivalente a los primeros 16 bits siendo cero), el número de cálculos es aproximadamente 58,000. si el requisito se incrementa a los primeros 5 dígitos siendo cero, el número de cálculos aumenta a 1.23 millones. cuando el requisito es que los primeros 7 dígitos sean cero, el número de cálculos alcanza los 160 millones. esto ilustra que cada cero adicional en el prefijo del hash aumenta el cálculo aproximadamente 16 veces.

aquí están los resultados para diferentes condiciones objetivo:

los primeros 4 dígitos hexadecimales son cero (16 bits):

import hashlib

def main():

base_string = "geekbang"
once = 10000
count = 0
while true:
    target_string = base_string + str(nonce)
    pow_hash = hashlib.sha256(target_string).hexdigest()
    count = count + 1
    if pow_hash.startswith("0000"): # The first 4 hexadecimal digits are 0, which means the first 16 bits are 0
        print pow_hash
        print "nonce: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/51d786353cf4ac886dbb869fc7abf883dac67ceb.png"  scan times: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/4ebdb22f10c27f8797a1c2ae7bbbd78f40220ed4.png"" % (nonce, count)
        break
    nonce = nonce + 1

si nombre == ‘principal‘:

main()

como se puede ver, aumentar el número requerido de ceros principales en el hash aumenta significativamente el número de intentos necesarios, siguiendo un patrón de crecimiento exponencial. esto demuestra la dificultad computacional y los recursos necesarios para la minería, subrayando la necesidad de dispositivos informáticos de alto rendimiento en el proceso de minería.

7. ajuste dinámico de dificultad

para asegurar que se genere aproximadamente un bloque cada 10 minutos, el sistema de bitcoin ajusta la dificultad de minería cambiando el número de ceros principales requeridos en el valor hash. Este mecanismo de ajuste de dificultad es una parte crucial del sistema de bitcoin. Evalúa el tiempo que se tardó en generar los últimos 2016 bloques, lo cual idealmente debería ser alrededor de dos semanas. Si estos bloques se minaron en menos de dos semanas, la dificultad aumenta agregando más ceros principales (disminuyendo el valor objetivo). Por el contrario, si se tardó más de dos semanas, la dificultad disminuye reduciendo el número de ceros principales (aumentando el valor objetivo). Este mecanismo asegura que el tiempo para generar un bloque se mantenga alrededor de 10 minutos, incluso cuando la tasa total de hash de la red fluctúa.

Este mecanismo de ajuste de dificultad, diseñado por el creador de Bitcoin, Satoshi Nakamoto, fue planificado desde el principio para adaptarse automáticamente a la potencia computacional total de la red. Mantiene un ritmo constante de minería y evita que la moneda sea emitida demasiado rápido, lo que podría perturbar la economía del mercado.

8. proceso de ejecución del algoritmo de minería

diferentes proyectos de blockchain pueden tener algoritmos de minería variables. aquí, describimos el más famoso: el algoritmo de minería de bitcoin.

el proceso de ejecución del algoritmo de minería subyacente de Bitcoin es el siguiente:

  1. selección de transacciones: elegir varias transacciones de la memoria compartida (generalmente priorizando aquellas con tarifas más altas). generar automáticamente una transacción especial (a menudo llamada transacción coinbase) donde el destinatario es el minero, y el monto de la transacción es la recompensa del bloque más todas las tarifas de transacción seleccionadas. colocar esta transacción especial al principio de las transacciones seleccionadas para formar el conjunto de transacciones para que el bloque sea empaquetado.
  2. construyendo el árbol de Merkle: construir un árbol de hash de Merkle a partir del conjunto de transacciones. Un árbol de Merkle es un árbol binario donde cada nodo hoja almacena el hash de una transacción, identificándola e indexándola de forma única. Cada nodo superior almacena el hash combinado de sus nodos hijos, culminando en el nodo raíz. El nodo raíz identifica de forma única el árbol de Merkle y, por extensión, todas las transacciones.
  3. construyendo el encabezado del bloque: ensamblar el encabezado del bloque a partir del valor de la raíz de merkle, un nonce, la versión del bloque, el hash del bloque anterior, la marca de tiempo, el objetivo de dificultad y el nonce. el tamaño del encabezado del bloque es de 80 bytes.
  4. hashear el encabezado del bloque: cambiar continuamente el valor del nonce en el encabezado del bloque y realizar un hash doble sha-256 en el contenido del encabezado del bloque (es decir, sha256(sha256(encabezado_del_bloque))). comparar el hash resultante con el valor objetivo actual de la red. si el resultado es menor que el valor objetivo (lo que indica que los primeros n bits son cero), el rompecabezas se resuelve y la prueba de trabajo está completa.
  5. transmitiendo el bloque: enviar el bloque recién minado a los nodos vecinos, informándoles que el bloque ha sido minado con éxito.
  6. verificación y propagación: al recibir el nuevo bloque, otros nodos realizan un doble hash en el encabezado del bloque para obtener el hash del bloque. verifican que los primeros n bits del hash del bloque sean cero, reconocen el bloque, cesan los cálculos para este bloque y lo propagan a sus nodos vecinos.

el tamaño de cada campo en la cabecera del bloque es el siguiente:

https://time.geekbang.org/column/article/5963

alt="">

la estructura del árbol de Merkle es la siguiente:

大后端私房菜]. alt="">

9. controversias en la minería

la principal controversia en torno a la minería involucra los algoritmos de prueba de trabajo (PoW) utilizados por bitcoin y sus derivados. Estos algoritmos requieren que los mineros asignen recursos computacionales sustanciales para resolver problemas acordados por la red. Muchas personas trabajan en estos cálculos simultáneamente, pero solo el primero en resolver el problema obtiene la recompensa. Los recursos computacionales y eléctricos de los demás participantes se desperdician efectivamente, sin generar valor adicional.

hay dos vías principales para optimizar este desperdicio de recursos:

  1. cambiando a algoritmos menos intensivos en recursos: ethereum, por ejemplo, ha hecho la transición del algoritmo de prueba de trabajo (pow) al algoritmo de prueba de participación (pos), lo que reduce significativamente el desperdicio de recursos.
  2. utilizando recursos eléctricos inactivos: los nodos mineros están experimentando con el uso de fuentes de energía renovable, como la energía eólica, para las operaciones de minería. otro desarrollo importante es la utilización del gas natural desperdiciado. además, algunas instituciones están explorando formas de reciclar el exceso de calor generado por la minería de bitcoins.

10. preguntas

¿Cuál es el valor de la minería? Parece ser un desperdicio de recursos y carente de significado para la sociedad.

Al revisitar la sección "¿Por qué es necesaria la minería?" de este artículo, la importancia directa de la minería es que respalda la emisión de monedas digitales. Las recompensas mineras incentivan a más personas a participar en el mantenimiento de las monedas digitales, haciéndolas más estables. Además, los algoritmos de minería sostienen la consistencia de las transacciones dentro de los sistemas de monedas digitales, haciéndolos más robustos y menos susceptibles a ataques internos y externos.

El significado indirecto de la minería se deriva de las propias monedas digitales. Las monedas digitales crean un sistema monetario global y sin confianza en el que las transacciones seguras pueden ocurrir sin la necesidad de instituciones centralizadas, evitando las desventajas de la centralización. Su naturaleza global también permite transacciones transfronterizas eficientes y de bajo costo.

¿Las ganancias de la minería disminuirán hasta el punto en que caigan por debajo de los costos, causando que los mineros dejen de minar y las transacciones cesen?

Es una preocupación común que los retornos de la minería dependan únicamente de las recompensas del sistema, que disminuyen con el tiempo. Sin embargo, la minería también genera ingresos significativos a través de las comisiones de transacción. A medida que las monedas digitales ganan una aceptación más amplia, el mercado de transacciones de moneda digital se expandirá. Este aumento en el volumen de transacciones intensificará la competencia para la inclusión de bloques, lo que conducirá a tarifas más altas que los usuarios están dispuestos a pagar para priorizar sus transacciones. En consecuencia, los mineros pueden seguir obteniendo comisiones de transacción sustanciales, lo que garantiza la viabilidad continua del procesamiento de transacciones.

si los costos de minería superan las tarifas de la cadena de bloques, ¿puede continuar la minería?

¿compensarán las tarifas de transacción los costos de minería?

sí, las tarifas de transacción pueden ayudar a compensar los costos de minería. a medida que las recompensas por bloque disminuyen con el tiempo, las tarifas de transacción se convierten en una fuente crucial de ingresos para los mineros. esto asegura que incluso si los costos de electricidad son altos, los mineros aún pueden sostener sus operaciones a través de las tarifas pagadas por los usuarios para el procesamiento de transacciones.

¿Qué sucede si varios mineros resuelven el rompecabezas simultáneamente?

¿Los múltiples mineros dividen las recompensas de minería si transmiten simultáneamente sus nuevos bloques?

No, si varios mineros resuelven el rompecabezas y transmiten sus nuevos bloques al mismo tiempo, se crea una bifurcación temporal en la cadena de bloques. Así es como funciona:

  1. bifurcaciones temporales: cuando algunos nodos reciben dos bloques válidos de la misma altura, almacenan temporalmente ambos bloques, causando una bifurcación temporal en la cadena de bloques.
  2. resolución de bifurcaciones: a medida que se extraen nuevos bloques, los nodos continuarán construyendo sobre la cadena más larga. La red finalmente converge en una sola cadena, descartando las más cortas.
  3. elegir la cadena principal: los nodos siguen la cadena más larga (la que tiene la mayor acumulación de pruebas de trabajo). El minero cuyo bloque termina en la cadena más larga recibe la recompensa, mientras que el otro bloque se convierte en un bloque “huérfano”.

ejemplo:

  • El minero a y el minero b minan un bloque a la misma altura y lo difunden.
  • Algunos nodos reciben primero el bloque del minero A, mientras que otros reciben el bloque del minero B.
  • Ambas cadenas existen temporalmente.
  • cuando el siguiente bloque es minado, si se agrega a la cadena del minero a, esa cadena se convierte en la más larga, y los nodos la adoptarán como la cadena principal.
  • El minero A recibe la recompensa y el bloque del minero B es descartado.

¿Por qué los nodos con más del 50% de la potencia de hash no hacen trampa?

¿Qué es un ataque del 51% y por qué los súper nodos no hacen trampa?

un ataque del 51% ocurre cuando una sola entidad o grupo controla más del 50% del poder computacional de la red. aquí está la razón por la que los super nodos generalmente no hacen trampa:

  1. imposibilidad práctica: poseer el 51% del poder de hash total de la red es muy poco probable debido a la escala y descentralización de las principales criptomonedas como el bitcoin.
  2. validación de red: incluso si un super nodo intenta hacer trampa, todos los nodos validan cada bloque de forma independiente. Las transacciones inválidas o los intentos de doble gasto son rechazados por la red, lo que hace inútiles los esfuerzos del super nodo.
  3. reputación e incentivos económicos: los super nodos obtienen más beneficios al mantener la integridad de la cadena de bloques que al atacarla. Los ataques exitosos podrían devaluar la criptomoneda, perjudicando la inversión del atacante.
  4. tipos de ataques:
    • doble gasto: intentar gastar las mismas monedas dos veces.
    • bloqueo de transacciones: evitando que ciertas transacciones sean incluidas en bloques.
    • minería egoísta: intentar obtener más recompensas de minería revelando selectivamente bloques.
    • manipulación de la marca de tiempo: alterar las marcas de tiempo de los bloques para obtener una ventaja en la minería.
    • ataque de bloque vacío: minar bloques sin transacciones para ralentizar la red.

Por qué blockchain no asume contadores fijos para evitar transacciones fraudulentas

¿Cómo previene blockchain las interrupciones intencionales y las transacciones fraudulentas?

  1. Verificación por nodos vecinos: Cuando un bloque se distribuye a nodos vecinos, estos nodos verificarán las transacciones dentro del bloque. Si encuentran alguna transacción no válida, rechazarán el bloqueo y no lo propaGate.io más.
  2. Mecanismo de consenso: El mecanismo de consenso de Bitcoin se basa en el principio de la cadena más larga. Todos los nodos de la red intentan extender la cadena válida más larga. Si alguien intenta alterar los registros históricos (por ejemplo, eliminar una transacción), debe modificar todos los bloques posteriores vinculados al bloque manipulado y asegurarse de que la cadena modificada sea más larga que la cadena principal actual. Esto requiere enormes recursos computacionales, lo que lo hace prácticamente imposible.

previniendo la distribución inconsistente de bloques por los mineros

  1. consistencia en la distribución de bloques: un minero no puede encontrar múltiples valores de nonce válidos dentro de un corto período de tiempo, lo que les impide distribuir diferentes bloques legítimos a diferentes nodos simultáneamente. Cualquier bloque ilegal será descartado por los nodos vecinos.

¿Qué es un conjunto de transacciones (mempool)?

definición y función: en una red blockchain, todas las transacciones transmitidas que aún no se han incluido en un bloque se almacenan temporalmente en el mempool (pool de memoria) de los nodos de la red. Los mineros monitorean su mempool para seleccionar las transacciones para construir nuevos bloques.

estrategia de selección de transacciones: los mineros pueden elegir transacciones del mempool basándose en su estrategia. generalmente, priorizan las transacciones con tarifas más altas, pero algunos también pueden considerar otros factores, como la antigüedad de la transacción (el tiempo que ha pasado en el mempool).

Fuentes de ingresos en el sistema Bitcoin

quienes participan y cómo ganan: aparte de los usuarios, los tres principales participantes en el sistema de bitcoin son los mineros, los desarrolladores y los operadores de nodos.

  1. Mineros: Gane recompensas y tarifas de transacción a través de la minería.
  2. los desarrolladores y operadores de nodos: generalmente no ganan directamente del sistema de bitcoin. sus contribuciones suelen ser idealistas, con el objetivo de mantener la integridad del sistema. pueden recibir ingresos a través de otros medios, como donaciones y patrocinios. su participación en la minería depende de las preferencias individuales.

¿Por qué han aumentado los precios de las GPUs? ¿Por qué las GPUs de minería son indeseables?

Aumento de los precios de las GPU: La alta demanda de GPU por parte de los mineros con fines mineros ha provocado una escasez de suministro, lo que ha provocado un aumento de los precios.

tarjetas gráficas de minería: las tarjetas gráficas de minería son aquellas que se utilizaron previamente para la minería de criptomonedas. Estas tarjetas gráficas se someten a una intensa computación, lo que produce un desgaste significativo. Debido a su rendimiento disminuido, la mayoría de las personas prefieren no comprar tarjetas gráficas de minería usadas.

¿Los mineros necesitan almacenar todos los datos del libro mayor?

Requisito de almacenamiento redundante completo: Sí, los mineros deben almacenar todo el libro mayor de la cadena de bloques para verificar si un token se ha gastado previamente y para garantizar la seguridad e integridad del libro mayor. Sin embargo, para bloques muy tempranos, los mineros solo necesitan almacenar los encabezados de los bloques, no el contenido completo del bloque. Esto ayuda a mantener la eficiencia de la cadena de bloques al tiempo que preserva su seguridad.

¿Qué sucede cuando se alcanza el límite de suministro de Bitcoin?

no hay recompensas automáticas más allá de los 21 millones de bitcoins: una vez que el suministro total de bitcoin alcance su límite de 21 millones, el sistema dejará de emitir nuevos bitcoins como recompensa para los mineros. Si los usuarios también se niegan a pagar tarifas de transacción, teóricamente, el sistema de transacciones podría enfrentar desafíos operativos. Sin embargo, es probable que los usuarios estén dispuestos a pagar tarifas de transacción para que sus transacciones se procesen, lo que garantiza la continuación del sistema.

la altura del bloque seguirá aumentando: incluso después de alcanzar la oferta máxima de 21 millones de bitcoins, la altura del bloque (el número total de bloques) seguirá aumentando siempre que los mineros estén dispuestos a minar y empaquetar transacciones en nuevos bloques. la altura del bloque no está limitada por el tope de suministro de bitcoins.

potencial de cambios de consenso: la comunidad podría proponer cambios en las reglas de consenso, como aumentar el suministro total de bitcoins, para permitir la generación de nuevas monedas si es necesario.

¿cómo son recompensados los mineros?

transacción de coinbase: en la cadena de bloques de Bitcoin, las recompensas de los mineros se distribuyen a través de una transacción especial conocida como la “transacción coinbase” o “recompensa de bloque”. Esta transacción tiene características únicas:

  1. no se requiere difusión: la transacción coinbase es la primera transacción en cada bloque, creada automáticamente por el algoritmo de minería y no necesita ser difundida a otros nodos.
  2. no inputs: a diferencia de las transacciones regulares de bitcoin, la transacción coinbase no tiene entrada (no remitente). genera nuevos bitcoins que se otorgan al minero.
  3. salidas: la transacción coinbase envía la recompensa a la dirección del monedero del minero, que incluye los bitcoins recién acuñados y todas las comisiones de transacción de las transacciones incluidas en el bloque.

¿Cómo se calcula la ganancia del minero?

cálculo de ingresos por bloque: los ingresos del minero se calculan cada vez que se mina con éxito un bloque y se confirma mediante el mecanismo de consenso de la red. El minero (o grupo minero) que mina el bloque recibe la recompensa del bloque y las tarifas acumulativas de transacción de todas las transacciones incluidas en el bloque.

proceso de recibir recompensas: una vez que un minero o un grupo de minería mina con éxito un bloque y es confirmado por la red, reciben la recompensa del bloque y las tarifas de transacción. esto se ejecuta a través de la transacción coinbase, que convierte las tarifas y recompensas en salidas de transacción no gastadas (UTXOs) acreditadas a la cuenta del minero.

¿Los bloques se crean secuencialmente o en paralelo?

creación secuencial: los bloques se crean de forma secuencial en la cadena de bloques. Un nuevo bloque solo puede ser creado después de que el bloque anterior haya sido minado con éxito y añadido a la cadena.

Transacciones de empaquetado

varias transacciones por bloque: los bloques generalmente contienen varias transacciones. Los mineros incluyen tantas transacciones como sea posible para maximizar sus ganancias por comisiones de transacción, en lugar de empaquetar las transacciones individualmente.

utilización del espacio de bloque

bloques parcialmente llenos: la mayoría de los bloques no se utilizan completamente. los mineros comienzan a trabajar en el siguiente bloque tan pronto como encuentran un hash válido que cumple con el requisito de dificultad, independientemente de si el bloque está completamente lleno.

minería sin transacciones

bloques vacíos: los bloques pueden ser minados incluso si no hay transacciones que incluir. Estos bloques, llamados bloques vacíos, aún proporcionan una recompensa del sistema al minero.

manejo de bifurcaciones de blockchain

regla de la cadena más larga: cuando ocurre un bifurcación, la red sigue la cadena con la mayor acumulación de pruebas de trabajo, que suele ser la cadena más larga. los nodos cambian a la cadena más larga una vez que queda claro cuál tiene más trabajo invertido en ella.

Evitar el doble gasto

resolución de doble gasto:

  • si un bloque contiene transacciones conflictivas (doble gasto), solo se considera válida la primera transacción válida que se incluya en un bloque. la otra transacción conflictiva se descarta.
  • si dos transacciones conflictivas se incluyen en diferentes bloques, se considera válida la que se confirme primero en el bloque.

Manejo detallado del doble gasto

Proceso de validación:

  • entre bloques: si dos transacciones que intentan gastar la misma moneda se incluyen en bloques separados, la transacción en el bloque que se confirme primero se considerará válida. el bloque que contiene la transacción en conflicto será rechazado.
  • Dentro de un solo bloque: Si se incluyen dos transacciones conflictivas en el mismo bloque, el minero incluirá solo una. Por lo general, el minero elige en función de la tarifa de transacción (se da preferencia a una tarifa más alta) o a la antigüedad de la transacción (se da preferencia a la transacción anterior).

¿Cómo controlan los usuarios la cantidad de tarifas de transacción que pagan?

cálculo de la comisión de transacción: los usuarios pueden controlar la comisión de transacción para acelerar la confirmación de sus transacciones. la comisión se determina mediante la siguiente fórmula:

tarifa de transacción=entrada total−salida total−cambio

Los usuarios establecen la tarifa de transacción ajustando la cantidad de entrada, la cantidad de salida y la cantidad de cambio.

el proceso de minería de la moneda digital

  1. preparar equipo de minería: configurar hardware de minería o dispositivos informáticos de alto rendimiento.
  2. Garantizar el acceso a Internet: Conecte el equipo de minería a Internet.
  3. Descargar billetera digital: obtenga una billetera digital y genere sus claves privadas y públicas.
  4. comenzar la minería: haga clic en el botón de minería en la billetera para empezar a minar.

minería en un pool

distribución de ganancias: al minar en un grupo, el nodo del grupo recibe la recompensa por bloque. luego, el grupo distribuye las ganancias a sus miembros en función de su poder computacional contribuido. esta distribución se ejecuta a través de transferencias a las billeteras de los mineros.

¿Qué es la minería egoísta?

Minería egoísta: La minería egoísta es una estrategia en la que un minero (o grupo de minería) encuentra un nuevo bloque pero no lo transmite de inmediato. En cambio, continúan minando de forma privada en su cadena (cadena oculta). Una vez que encuentran bloques adicionales, los transmiten todos a la vez. Esto puede invalidar el trabajo de otros mineros e inclinar el poder computacional y las recompensas hacia el minero egoísta. Bitcoin puede mitiGate.io el impacto de la minería egoísta mejorando el protocolo de transmisión.

validación de nodos al recibir transacciones y bloques

Validación de transacciones: Cuando una transacción se transmite a un nodo, se somete a varias comprobaciones para determinar si debe agregarse al mempool:

  1. Formato de transacción: verifique la corrección de la estructura de datos de la transacción.
  2. firma de transacción: validar la autenticidad de la firma de transacción.
  3. doble gasto: asegúrese de que la entrada no se haya gastado previamente en la mempool o blockchain.
  4. entradas y salidas: confirme que la cantidad total de entrada es mayor o igual que la cantidad total de salida.
  5. scripts de transacción: ejecutar y verificar scripts (principalmente en contratos inteligentes).
  6. LockTime: Compruebe si se cumple la condición LockTime (altura o tiempo del bloque).
  7. tamaño de la transacción y comisiones: asegúrese de que el tamaño de la transacción y la comisión sean adecuados.

validación de bloque: cuando un nodo minero recibe un nuevo bloque, realiza extensas comprobaciones en el bloque y sus transacciones:

  1. validez de la transacción: validar cada transacción dentro del bloque (mismas comprobaciones que la validación de la transacción)
  2. verificaciones específicas del bloque:
    • tamaño del bloque: asegúrese de que el tamaño del bloque esté dentro de los límites permitidos.
    • Recompensa por bloque: Verifique que la recompensa por bloque (bitcoins recién acuñados y tarifas de transacción) sea correcta.
    • Raíz de Merkle: calcule y valide la raíz de Merkle del bloque.
    • sello de tiempo: confirmar que la marca de tiempo del bloque está dentro de un rango razonable.
    • objetivo de dificultad: verifica que el bloque cumple con el objetivo de dificultad actual.

11. referencias

[1] conferencia 12 | tecnología blockchain en profundidad (4): explicación en profundidad del consenso pow de blockchain-geek tiempo:descargo de responsabilidad:

  1. este artículo ha sido reimpreso de[Gate.io aprenderequipo, y ellos lo manejarán rápidamente.
  2. exención de responsabilidad: las opiniones expresadas en este artículo son únicamente las del autor y no constituyen asesoramiento de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate.io Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

Revelando el Misterio de la Minería

PrincipianteJul 15, 2024
Este artículo proporciona una introducción detallada al proceso de "minería" en la cadena de bloques. Al hacer una analogía con las actividades mineras tradicionales, explica el concepto básico de la minería digital, que implica el uso de recursos computacionales para resolver problemas matemáticos para la validación de transacciones y la emisión de nueva moneda.
Revelando el Misterio de la Minería

adelantar el título original '白话区块链三:揭开挖矿神秘的面纱——挖矿是什么?为什么要挖矿?谁是我们买不起显卡的罪魁祸首?'

uno de los conceptos más conocidos relacionados con blockchain para todos es probablemente la minería. muchas personas pueden haber oído hablar de la minería en numerosas ocasiones, pero no están seguras de lo que realmente implica. en esta sección, interrumpiremos nuestra programación regular para presentar primero la “minería.”

un breve resumen del contenido de “blockchain simple 1: introducción a bitcoin (el pionero de la revolución blockchain y el desafiante de la moneda soberana)”, donde satoshi nakamoto diseñó el sistema monetario de bitcoin para vincular las recompensas por llevar registro con la emisión de moneda. este enfoque permite que la emisión de moneda se automatice a través del proceso de registro, resolviendo el problema de la emisión de moneda y alentando a los encargados del registro a participar activamente.

1. ¿Qué es la minería?

en el mundo real, la minería implica que los mineros usen varias herramientas para extraer metales preciosos ocultos en rocas de las minas. los mineros extraen valor de estos metales raros ocultos en la naturaleza a través del trabajo físico.

para proyectos de blockchain con recompensas por llevar los libros contables (por lo general, proyectos de monedas digitales), los nodos de la red gastan recursos computacionales para resolver problemas. Una vez que encuentran la solución, empaquetan el bloque y reciben una recompensa en forma de moneda recién emitida. Este proceso es análogo a extraer metales preciosos como el oro de la mena, por lo que comúnmente se le conoce como 'minería'. Aquí, los encargados de llevar los libros contables son los mineros, que compiten para empaquetar bloques utilizando hardware y electricidad, lo que resulta en la creación de nueva moneda.

2. ¿por qué es necesaria la minería?

la minería sirve para dos propósitos principales: validar transacciones recientes empaquetándolas en bloques y vinculándolas a la cadena de bloques, y emitir nueva moneda recompensando a los tenedores de libros. a continuación se detallan las funciones de la minería:

  1. selección de contables: se necesita una estrategia para seleccionar los contables reales entre numerosos candidatos. el resultado de la minería se utiliza como base para esta selección, asegurando que todas las transacciones sean reconocidas por todos los participantes, logrando consenso en toda la red.
  2. verificación de transacciones: cada transacción de bitcoin debe ser verificada por los mineros en la red. Este proceso confirma la validez de la transacción, incluyendo:
    • asegurando que el formato y tamaño de la transacción cumplan con las especificaciones.
    • verificar la validez de la firma de cada transacción para asegurar que fue iniciada por el usuario que posee la clave privada relacionada.
    • verificar que el monto de entrada exceda el monto de salida (con parte del monto tomado como tarifa), asegurándose de que los tokens utilizados para el pago no hayan sido gastados dos veces.
    • confirmar que la transacción no ha sido incluida previamente en un bloque.
  3. emisión de nueva moneda: la minería es también la forma en que entran en circulación los nuevos bitcoins. cuando un minero mina con éxito un nuevo bloque, recibe cierta cantidad de bitcoins como recompensa. este mecanismo de recompensa no solo incentiva a las personas a participar en la minería, sino que también sirve como un método de emisión de bitcoins. este método de emisión de moneda garantiza un aumento constante y controlado en la circulación de la moneda, lo que ayuda a gestionar la inflación.
  4. fomentar la participación: el mecanismo de recompensa motiva a más personas a participar en el mantenimiento del sistema de moneda, promoviendo su desarrollo continuo y robusto.
  5. mejorando la seguridad y la descentralización de la red: las recompensas de la minería llevan a un gran número de mineros, lo que resulta en una potencia computacional distribuida. Esta descentralización garantiza que ninguna entidad única pueda controlar el 50% de la potencia computacional, mejorando así la transparencia y la seguridad del sistema. Adherirse al principio de la cadena más larga mejora aún más la seguridad del sistema.

3. ¿por qué los mineros están dispuestos a participar en la minería?

los mineros son incentivados a participar en la minería porque reciben recompensas sustanciales por empaquetar exitosamente un bloque en la cadena de bloques. Estas recompensas provienen de dos fuentes principales:

  • recompensas por bloque (nueva moneda emitida): el sistema de moneda emite automáticamente nueva moneda, que va íntegramente al minero. Por ejemplo, en el sistema de Bitcoin, actualmente, los mineros reciben 3.125 bitcoins por cada bloque que empaquetan. Dado que cada bitcoin tiene un valor de alrededor de $65,000, empaquetar un solo bloque puede generar más de $200,000, aproximadamente 1.47 millones de RMB.
  • tarifas de transacción pagadas por los usuarios: debido a la capacidad limitada de un bloque para contener registros de transacciones, algunos usuarios pagan tarifas de transacción para incentivar a los mineros a priorizar sus transacciones para una confirmación más rápida. al seleccionar transacciones del grupo para incluirlas en el bloque, los mineros tienden a elegir aquellas con tarifas más altas. un bloque puede contener miles de transacciones, y todas las tarifas de estas transacciones van al minero, representando otra fuente significativa de ingresos. a medida que más personas usan bitcoin para transacciones, la competencia por la inclusión en los bloques se intensifica, lo que lleva a tarifas más altas que los usuarios están dispuestos a pagar.

con el tiempo, las recompensas por bloque disminuirán (por ejemplo, debido al mecanismo de reducción a la mitad de bitcoin, donde la recompensa se reduce a la mitad aproximadamente cada cuatro años). finalmente, después de que se hayan minado los 21 millones de bitcoins, se espera alrededor del año 2141, la recompensa automática por bloque dejará de existir y las tarifas de transacción se convertirán en la principal fuente de ingresos para los mineros.

consejos

Bitcoin genera un nuevo bloque aproximadamente cada 10 minutos. Inicialmente, cada nuevo bloque producía 50 bitcoins. Esta recompensa se reduce a la mitad cada cuatro años, y hasta la fecha, ha habido cuatro eventos de reducción a la mitad. Actualmente, cada bloque genera 3.125 bitcoins, con la reducción a la mitad más reciente ocurriendo en abril de 2024. Se prevé que la próxima reducción a la mitad sea alrededor de 2028. Hacia alrededor de 2141, Bitcoin alcanzará su límite de emisión.

la comisión de transacción no solo está influenciada por la oferta y la demanda, sino también por el tamaño de la transacción, ya que las comisiones son proporcionales al espacio que ocupa la transacción en el bloque.

4. cómo participar en la minería

Para los mineros, participar en la minería es sencillo. Descargue un cliente de billetera de moneda digital y, dentro del cliente, haga clic en el botón de minería para comenzar a minar.

para proyectos de blockchain con recompensas en bloques, el algoritmo de minería suele estar escrito en un script integrado en la billetera. los mineros simplemente necesitan hacer clic en un botón para iniciar el script.

el algoritmo de minería es determinista, lo que significa que mientras los mineros ejecuten continuamente el algoritmo, eventualmente obtendrán un resultado. sin embargo, debido a los recursos computacionales variables, el tiempo requerido para calcular este resultado puede diferir entre los mineros. una vez que un nodo calcula el valor objetivo, los esfuerzos de otros mineros durante ese período resultan inútiles, lo que genera retornos negativos debido a los recursos físicos gastados.

Para evitar el desperdicio de esfuerzos, los mineros a menudo agrupan sus recursos computacionales uniéndose a un nodo de grupo de minería. Este nodo funciona como cualquier otro nodo, pero tiene una potencia computacional significativamente mayor. Cuando el grupo extrae con éxito un bloque, las recompensas se distribuyen entre los mineros participantes en función de sus recursos computacionales aportados. Es importante tener en cuenta que en la cadena de bloques, el minero registrado como empaquetado del bloque es el nodo del grupo de minería, mientras que los mineros individuales reciben su parte de las recompensas asignadas por el grupo, no directamente del sistema monetario.

bitmain, una empresa que fabrica chips de minería especializados y de alta eficiencia, ha afianzado el papel de las piscinas de minería, contribuyendo a la centralización del poder de contabilidad.

5. los detalles del rompecabezas de minería

Diferentes proyectos de blockchain pueden tener rompecabezas mineros variables y niveles de dificultad. Aquí tomamos bitcoin como ejemplo. El algoritmo de minería utilizado por bitcoin se llama prueba de trabajo (PoW). La esencia de este algoritmo es que para obtener un resultado, se debe gastar una cierta cantidad de trabajo para demostrarlo.

El rompecabezas de minería no es un problema matemático tradicional, sino que implica encontrar un número aleatorio, conocido como nonce. Este nonce, cuando se combina con los datos del bloque y se procesa a través de una función hash, debe producir un valor hash que cumpla una condición específica. Por lo general, esta condición requiere que el valor hash sea menor que un valor objetivo (o, de manera equivalente, que los primeros n bits del valor hash sean cero). La ecuación es la siguiente: hash(nonce+datos_de_bloque)≤objetivo\text{hash}(\text{nonce} + \text{datos_de_bloque}) \leq \text{objetivo}hash(nonce+datos_de_bloque)≤objetivo

bitcoin utiliza la función hash sha-256, que convierte cualquier longitud de entrada en una salida de longitud fija de 256 bits (equivalente a 64 dígitos hexadecimales o 32 bytes). la salida es casi aleatoria pero garantizada de ser la misma para la misma entrada. la minería implica cambiar continuamente el nonce y hacer hash de los datos de la cabecera del bloque utilizando sha-256 hasta encontrar un valor de hash que cumpla con la condición objetivo.

por ejemplo, un valor hash sha-256 con los primeros 30 bits siendo ceros: 000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110

la conversión de esto a hexadecimal resulta en un valor que comienza con siete ceros: 00000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac90

para simplificar, la probabilidad de encontrar un hash con los primeros n bits siendo cero es de 12n\frac{1}{2^n}2n1​. cuanto más grande sea n, más bits serán cero y menor será la probabilidad:

  • n = 10n = 10n = 10: 1 en 1,024
  • n=20n = 20n=20: 1 in 1,048,576
  • n=30n = 30n=30: 1 en 1,073,741,824
  • n=40: 1 en 1,099,511,627,776
  • n=50n = 50n=50: 1 en 1,125,899,906,842,624

con n de hasta 256, encontrar un valor hash así con la potencia computacional humana actual, excluyendo las computadoras cuánticas, es virtualmente imposible antes de que la Tierra deje de existir.

debido a las propiedades de sha-256, el único método es la fuerza bruta, que implica probar continuamente diferentes nonces hasta que se cumpla la condición. esta necesidad de equipos informáticos de alto rendimiento es la razón por la que la minería requiere tales dispositivos.

debido a que no se puede predecir el valor hash generado al agregar el nonce a los datos del bloque y pasarlos a través de sha-256, el proceso es completamente aleatorio. por ejemplo, si el valor hash deseado es 10.000, no hay forma de saber qué nonce combinado con los datos del bloque producirá un valor hash menor que 10.000. Esta naturaleza impredecible y aleatoria significa que los mineros deben seguir enumerando posibilidades hasta que se cumpla la condición. Si varios valores cumplen con la condición, se elige el valor hash más pequeño, ya que un valor hash más pequeño indica una mayor dificultad y una menor probabilidad de ocurrencia.

verificar si un valor hash generado cumple con el requisito es fácil, solo requiere una operación de comparación. sin embargo, encontrar un valor hash menor o igual al valor objetivo solo se puede lograr a través de la enumeración por fuerza bruta. esta característica, donde verificar un resultado es fácil pero encontrar el resultado es difícil, se conoce como asimetría computacional.

6. simulación del algoritmo de minería de código

En el código siguiente se simula el proceso de minería de datos. Comienza con una cadena de datos de encabezado de bloque "geekbang" y busca de forma incremental desde un valor nonce de 10.000 hasta que encuentra un nonce que cumple la condición especificada.

aquí hay un script de Python que demuestra el proceso de minería:

import hashlib
def main():
    base_string = "geekbang"
    nonce = 10000
    count = 0
    while true:
        target_string = base_string + str(nonce)
        pow_hash = hashlib.sha256(target_string.encode()).hexdigest()
        count += 1
        if pow_hash.startswith("0000"):  # first 4 hex digits are 0, equivalent to the first 16 bits being 0
            print("hash:", pow_hash)
            print("nonce:", nonce, "scan times:", count)
            break
        nonce += 1

if __name__ == '__main__':
    main()

cuando el requisito es que los primeros 4 dígitos hexadecimales del resultado del hash sean cero (equivalente a los primeros 16 bits siendo cero), el número de cálculos es aproximadamente 58,000. si el requisito se incrementa a los primeros 5 dígitos siendo cero, el número de cálculos aumenta a 1.23 millones. cuando el requisito es que los primeros 7 dígitos sean cero, el número de cálculos alcanza los 160 millones. esto ilustra que cada cero adicional en el prefijo del hash aumenta el cálculo aproximadamente 16 veces.

aquí están los resultados para diferentes condiciones objetivo:

los primeros 4 dígitos hexadecimales son cero (16 bits):

import hashlib

def main():

base_string = "geekbang"
once = 10000
count = 0
while true:
    target_string = base_string + str(nonce)
    pow_hash = hashlib.sha256(target_string).hexdigest()
    count = count + 1
    if pow_hash.startswith("0000"): # The first 4 hexadecimal digits are 0, which means the first 16 bits are 0
        print pow_hash
        print "nonce: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/51d786353cf4ac886dbb869fc7abf883dac67ceb.png"  scan times: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/4ebdb22f10c27f8797a1c2ae7bbbd78f40220ed4.png"" % (nonce, count)
        break
    nonce = nonce + 1

si nombre == ‘principal‘:

main()

como se puede ver, aumentar el número requerido de ceros principales en el hash aumenta significativamente el número de intentos necesarios, siguiendo un patrón de crecimiento exponencial. esto demuestra la dificultad computacional y los recursos necesarios para la minería, subrayando la necesidad de dispositivos informáticos de alto rendimiento en el proceso de minería.

7. ajuste dinámico de dificultad

para asegurar que se genere aproximadamente un bloque cada 10 minutos, el sistema de bitcoin ajusta la dificultad de minería cambiando el número de ceros principales requeridos en el valor hash. Este mecanismo de ajuste de dificultad es una parte crucial del sistema de bitcoin. Evalúa el tiempo que se tardó en generar los últimos 2016 bloques, lo cual idealmente debería ser alrededor de dos semanas. Si estos bloques se minaron en menos de dos semanas, la dificultad aumenta agregando más ceros principales (disminuyendo el valor objetivo). Por el contrario, si se tardó más de dos semanas, la dificultad disminuye reduciendo el número de ceros principales (aumentando el valor objetivo). Este mecanismo asegura que el tiempo para generar un bloque se mantenga alrededor de 10 minutos, incluso cuando la tasa total de hash de la red fluctúa.

Este mecanismo de ajuste de dificultad, diseñado por el creador de Bitcoin, Satoshi Nakamoto, fue planificado desde el principio para adaptarse automáticamente a la potencia computacional total de la red. Mantiene un ritmo constante de minería y evita que la moneda sea emitida demasiado rápido, lo que podría perturbar la economía del mercado.

8. proceso de ejecución del algoritmo de minería

diferentes proyectos de blockchain pueden tener algoritmos de minería variables. aquí, describimos el más famoso: el algoritmo de minería de bitcoin.

el proceso de ejecución del algoritmo de minería subyacente de Bitcoin es el siguiente:

  1. selección de transacciones: elegir varias transacciones de la memoria compartida (generalmente priorizando aquellas con tarifas más altas). generar automáticamente una transacción especial (a menudo llamada transacción coinbase) donde el destinatario es el minero, y el monto de la transacción es la recompensa del bloque más todas las tarifas de transacción seleccionadas. colocar esta transacción especial al principio de las transacciones seleccionadas para formar el conjunto de transacciones para que el bloque sea empaquetado.
  2. construyendo el árbol de Merkle: construir un árbol de hash de Merkle a partir del conjunto de transacciones. Un árbol de Merkle es un árbol binario donde cada nodo hoja almacena el hash de una transacción, identificándola e indexándola de forma única. Cada nodo superior almacena el hash combinado de sus nodos hijos, culminando en el nodo raíz. El nodo raíz identifica de forma única el árbol de Merkle y, por extensión, todas las transacciones.
  3. construyendo el encabezado del bloque: ensamblar el encabezado del bloque a partir del valor de la raíz de merkle, un nonce, la versión del bloque, el hash del bloque anterior, la marca de tiempo, el objetivo de dificultad y el nonce. el tamaño del encabezado del bloque es de 80 bytes.
  4. hashear el encabezado del bloque: cambiar continuamente el valor del nonce en el encabezado del bloque y realizar un hash doble sha-256 en el contenido del encabezado del bloque (es decir, sha256(sha256(encabezado_del_bloque))). comparar el hash resultante con el valor objetivo actual de la red. si el resultado es menor que el valor objetivo (lo que indica que los primeros n bits son cero), el rompecabezas se resuelve y la prueba de trabajo está completa.
  5. transmitiendo el bloque: enviar el bloque recién minado a los nodos vecinos, informándoles que el bloque ha sido minado con éxito.
  6. verificación y propagación: al recibir el nuevo bloque, otros nodos realizan un doble hash en el encabezado del bloque para obtener el hash del bloque. verifican que los primeros n bits del hash del bloque sean cero, reconocen el bloque, cesan los cálculos para este bloque y lo propagan a sus nodos vecinos.

el tamaño de cada campo en la cabecera del bloque es el siguiente:

https://time.geekbang.org/column/article/5963

alt="">

la estructura del árbol de Merkle es la siguiente:

大后端私房菜]. alt="">

9. controversias en la minería

la principal controversia en torno a la minería involucra los algoritmos de prueba de trabajo (PoW) utilizados por bitcoin y sus derivados. Estos algoritmos requieren que los mineros asignen recursos computacionales sustanciales para resolver problemas acordados por la red. Muchas personas trabajan en estos cálculos simultáneamente, pero solo el primero en resolver el problema obtiene la recompensa. Los recursos computacionales y eléctricos de los demás participantes se desperdician efectivamente, sin generar valor adicional.

hay dos vías principales para optimizar este desperdicio de recursos:

  1. cambiando a algoritmos menos intensivos en recursos: ethereum, por ejemplo, ha hecho la transición del algoritmo de prueba de trabajo (pow) al algoritmo de prueba de participación (pos), lo que reduce significativamente el desperdicio de recursos.
  2. utilizando recursos eléctricos inactivos: los nodos mineros están experimentando con el uso de fuentes de energía renovable, como la energía eólica, para las operaciones de minería. otro desarrollo importante es la utilización del gas natural desperdiciado. además, algunas instituciones están explorando formas de reciclar el exceso de calor generado por la minería de bitcoins.

10. preguntas

¿Cuál es el valor de la minería? Parece ser un desperdicio de recursos y carente de significado para la sociedad.

Al revisitar la sección "¿Por qué es necesaria la minería?" de este artículo, la importancia directa de la minería es que respalda la emisión de monedas digitales. Las recompensas mineras incentivan a más personas a participar en el mantenimiento de las monedas digitales, haciéndolas más estables. Además, los algoritmos de minería sostienen la consistencia de las transacciones dentro de los sistemas de monedas digitales, haciéndolos más robustos y menos susceptibles a ataques internos y externos.

El significado indirecto de la minería se deriva de las propias monedas digitales. Las monedas digitales crean un sistema monetario global y sin confianza en el que las transacciones seguras pueden ocurrir sin la necesidad de instituciones centralizadas, evitando las desventajas de la centralización. Su naturaleza global también permite transacciones transfronterizas eficientes y de bajo costo.

¿Las ganancias de la minería disminuirán hasta el punto en que caigan por debajo de los costos, causando que los mineros dejen de minar y las transacciones cesen?

Es una preocupación común que los retornos de la minería dependan únicamente de las recompensas del sistema, que disminuyen con el tiempo. Sin embargo, la minería también genera ingresos significativos a través de las comisiones de transacción. A medida que las monedas digitales ganan una aceptación más amplia, el mercado de transacciones de moneda digital se expandirá. Este aumento en el volumen de transacciones intensificará la competencia para la inclusión de bloques, lo que conducirá a tarifas más altas que los usuarios están dispuestos a pagar para priorizar sus transacciones. En consecuencia, los mineros pueden seguir obteniendo comisiones de transacción sustanciales, lo que garantiza la viabilidad continua del procesamiento de transacciones.

si los costos de minería superan las tarifas de la cadena de bloques, ¿puede continuar la minería?

¿compensarán las tarifas de transacción los costos de minería?

sí, las tarifas de transacción pueden ayudar a compensar los costos de minería. a medida que las recompensas por bloque disminuyen con el tiempo, las tarifas de transacción se convierten en una fuente crucial de ingresos para los mineros. esto asegura que incluso si los costos de electricidad son altos, los mineros aún pueden sostener sus operaciones a través de las tarifas pagadas por los usuarios para el procesamiento de transacciones.

¿Qué sucede si varios mineros resuelven el rompecabezas simultáneamente?

¿Los múltiples mineros dividen las recompensas de minería si transmiten simultáneamente sus nuevos bloques?

No, si varios mineros resuelven el rompecabezas y transmiten sus nuevos bloques al mismo tiempo, se crea una bifurcación temporal en la cadena de bloques. Así es como funciona:

  1. bifurcaciones temporales: cuando algunos nodos reciben dos bloques válidos de la misma altura, almacenan temporalmente ambos bloques, causando una bifurcación temporal en la cadena de bloques.
  2. resolución de bifurcaciones: a medida que se extraen nuevos bloques, los nodos continuarán construyendo sobre la cadena más larga. La red finalmente converge en una sola cadena, descartando las más cortas.
  3. elegir la cadena principal: los nodos siguen la cadena más larga (la que tiene la mayor acumulación de pruebas de trabajo). El minero cuyo bloque termina en la cadena más larga recibe la recompensa, mientras que el otro bloque se convierte en un bloque “huérfano”.

ejemplo:

  • El minero a y el minero b minan un bloque a la misma altura y lo difunden.
  • Algunos nodos reciben primero el bloque del minero A, mientras que otros reciben el bloque del minero B.
  • Ambas cadenas existen temporalmente.
  • cuando el siguiente bloque es minado, si se agrega a la cadena del minero a, esa cadena se convierte en la más larga, y los nodos la adoptarán como la cadena principal.
  • El minero A recibe la recompensa y el bloque del minero B es descartado.

¿Por qué los nodos con más del 50% de la potencia de hash no hacen trampa?

¿Qué es un ataque del 51% y por qué los súper nodos no hacen trampa?

un ataque del 51% ocurre cuando una sola entidad o grupo controla más del 50% del poder computacional de la red. aquí está la razón por la que los super nodos generalmente no hacen trampa:

  1. imposibilidad práctica: poseer el 51% del poder de hash total de la red es muy poco probable debido a la escala y descentralización de las principales criptomonedas como el bitcoin.
  2. validación de red: incluso si un super nodo intenta hacer trampa, todos los nodos validan cada bloque de forma independiente. Las transacciones inválidas o los intentos de doble gasto son rechazados por la red, lo que hace inútiles los esfuerzos del super nodo.
  3. reputación e incentivos económicos: los super nodos obtienen más beneficios al mantener la integridad de la cadena de bloques que al atacarla. Los ataques exitosos podrían devaluar la criptomoneda, perjudicando la inversión del atacante.
  4. tipos de ataques:
    • doble gasto: intentar gastar las mismas monedas dos veces.
    • bloqueo de transacciones: evitando que ciertas transacciones sean incluidas en bloques.
    • minería egoísta: intentar obtener más recompensas de minería revelando selectivamente bloques.
    • manipulación de la marca de tiempo: alterar las marcas de tiempo de los bloques para obtener una ventaja en la minería.
    • ataque de bloque vacío: minar bloques sin transacciones para ralentizar la red.

Por qué blockchain no asume contadores fijos para evitar transacciones fraudulentas

¿Cómo previene blockchain las interrupciones intencionales y las transacciones fraudulentas?

  1. Verificación por nodos vecinos: Cuando un bloque se distribuye a nodos vecinos, estos nodos verificarán las transacciones dentro del bloque. Si encuentran alguna transacción no válida, rechazarán el bloqueo y no lo propaGate.io más.
  2. Mecanismo de consenso: El mecanismo de consenso de Bitcoin se basa en el principio de la cadena más larga. Todos los nodos de la red intentan extender la cadena válida más larga. Si alguien intenta alterar los registros históricos (por ejemplo, eliminar una transacción), debe modificar todos los bloques posteriores vinculados al bloque manipulado y asegurarse de que la cadena modificada sea más larga que la cadena principal actual. Esto requiere enormes recursos computacionales, lo que lo hace prácticamente imposible.

previniendo la distribución inconsistente de bloques por los mineros

  1. consistencia en la distribución de bloques: un minero no puede encontrar múltiples valores de nonce válidos dentro de un corto período de tiempo, lo que les impide distribuir diferentes bloques legítimos a diferentes nodos simultáneamente. Cualquier bloque ilegal será descartado por los nodos vecinos.

¿Qué es un conjunto de transacciones (mempool)?

definición y función: en una red blockchain, todas las transacciones transmitidas que aún no se han incluido en un bloque se almacenan temporalmente en el mempool (pool de memoria) de los nodos de la red. Los mineros monitorean su mempool para seleccionar las transacciones para construir nuevos bloques.

estrategia de selección de transacciones: los mineros pueden elegir transacciones del mempool basándose en su estrategia. generalmente, priorizan las transacciones con tarifas más altas, pero algunos también pueden considerar otros factores, como la antigüedad de la transacción (el tiempo que ha pasado en el mempool).

Fuentes de ingresos en el sistema Bitcoin

quienes participan y cómo ganan: aparte de los usuarios, los tres principales participantes en el sistema de bitcoin son los mineros, los desarrolladores y los operadores de nodos.

  1. Mineros: Gane recompensas y tarifas de transacción a través de la minería.
  2. los desarrolladores y operadores de nodos: generalmente no ganan directamente del sistema de bitcoin. sus contribuciones suelen ser idealistas, con el objetivo de mantener la integridad del sistema. pueden recibir ingresos a través de otros medios, como donaciones y patrocinios. su participación en la minería depende de las preferencias individuales.

¿Por qué han aumentado los precios de las GPUs? ¿Por qué las GPUs de minería son indeseables?

Aumento de los precios de las GPU: La alta demanda de GPU por parte de los mineros con fines mineros ha provocado una escasez de suministro, lo que ha provocado un aumento de los precios.

tarjetas gráficas de minería: las tarjetas gráficas de minería son aquellas que se utilizaron previamente para la minería de criptomonedas. Estas tarjetas gráficas se someten a una intensa computación, lo que produce un desgaste significativo. Debido a su rendimiento disminuido, la mayoría de las personas prefieren no comprar tarjetas gráficas de minería usadas.

¿Los mineros necesitan almacenar todos los datos del libro mayor?

Requisito de almacenamiento redundante completo: Sí, los mineros deben almacenar todo el libro mayor de la cadena de bloques para verificar si un token se ha gastado previamente y para garantizar la seguridad e integridad del libro mayor. Sin embargo, para bloques muy tempranos, los mineros solo necesitan almacenar los encabezados de los bloques, no el contenido completo del bloque. Esto ayuda a mantener la eficiencia de la cadena de bloques al tiempo que preserva su seguridad.

¿Qué sucede cuando se alcanza el límite de suministro de Bitcoin?

no hay recompensas automáticas más allá de los 21 millones de bitcoins: una vez que el suministro total de bitcoin alcance su límite de 21 millones, el sistema dejará de emitir nuevos bitcoins como recompensa para los mineros. Si los usuarios también se niegan a pagar tarifas de transacción, teóricamente, el sistema de transacciones podría enfrentar desafíos operativos. Sin embargo, es probable que los usuarios estén dispuestos a pagar tarifas de transacción para que sus transacciones se procesen, lo que garantiza la continuación del sistema.

la altura del bloque seguirá aumentando: incluso después de alcanzar la oferta máxima de 21 millones de bitcoins, la altura del bloque (el número total de bloques) seguirá aumentando siempre que los mineros estén dispuestos a minar y empaquetar transacciones en nuevos bloques. la altura del bloque no está limitada por el tope de suministro de bitcoins.

potencial de cambios de consenso: la comunidad podría proponer cambios en las reglas de consenso, como aumentar el suministro total de bitcoins, para permitir la generación de nuevas monedas si es necesario.

¿cómo son recompensados los mineros?

transacción de coinbase: en la cadena de bloques de Bitcoin, las recompensas de los mineros se distribuyen a través de una transacción especial conocida como la “transacción coinbase” o “recompensa de bloque”. Esta transacción tiene características únicas:

  1. no se requiere difusión: la transacción coinbase es la primera transacción en cada bloque, creada automáticamente por el algoritmo de minería y no necesita ser difundida a otros nodos.
  2. no inputs: a diferencia de las transacciones regulares de bitcoin, la transacción coinbase no tiene entrada (no remitente). genera nuevos bitcoins que se otorgan al minero.
  3. salidas: la transacción coinbase envía la recompensa a la dirección del monedero del minero, que incluye los bitcoins recién acuñados y todas las comisiones de transacción de las transacciones incluidas en el bloque.

¿Cómo se calcula la ganancia del minero?

cálculo de ingresos por bloque: los ingresos del minero se calculan cada vez que se mina con éxito un bloque y se confirma mediante el mecanismo de consenso de la red. El minero (o grupo minero) que mina el bloque recibe la recompensa del bloque y las tarifas acumulativas de transacción de todas las transacciones incluidas en el bloque.

proceso de recibir recompensas: una vez que un minero o un grupo de minería mina con éxito un bloque y es confirmado por la red, reciben la recompensa del bloque y las tarifas de transacción. esto se ejecuta a través de la transacción coinbase, que convierte las tarifas y recompensas en salidas de transacción no gastadas (UTXOs) acreditadas a la cuenta del minero.

¿Los bloques se crean secuencialmente o en paralelo?

creación secuencial: los bloques se crean de forma secuencial en la cadena de bloques. Un nuevo bloque solo puede ser creado después de que el bloque anterior haya sido minado con éxito y añadido a la cadena.

Transacciones de empaquetado

varias transacciones por bloque: los bloques generalmente contienen varias transacciones. Los mineros incluyen tantas transacciones como sea posible para maximizar sus ganancias por comisiones de transacción, en lugar de empaquetar las transacciones individualmente.

utilización del espacio de bloque

bloques parcialmente llenos: la mayoría de los bloques no se utilizan completamente. los mineros comienzan a trabajar en el siguiente bloque tan pronto como encuentran un hash válido que cumple con el requisito de dificultad, independientemente de si el bloque está completamente lleno.

minería sin transacciones

bloques vacíos: los bloques pueden ser minados incluso si no hay transacciones que incluir. Estos bloques, llamados bloques vacíos, aún proporcionan una recompensa del sistema al minero.

manejo de bifurcaciones de blockchain

regla de la cadena más larga: cuando ocurre un bifurcación, la red sigue la cadena con la mayor acumulación de pruebas de trabajo, que suele ser la cadena más larga. los nodos cambian a la cadena más larga una vez que queda claro cuál tiene más trabajo invertido en ella.

Evitar el doble gasto

resolución de doble gasto:

  • si un bloque contiene transacciones conflictivas (doble gasto), solo se considera válida la primera transacción válida que se incluya en un bloque. la otra transacción conflictiva se descarta.
  • si dos transacciones conflictivas se incluyen en diferentes bloques, se considera válida la que se confirme primero en el bloque.

Manejo detallado del doble gasto

Proceso de validación:

  • entre bloques: si dos transacciones que intentan gastar la misma moneda se incluyen en bloques separados, la transacción en el bloque que se confirme primero se considerará válida. el bloque que contiene la transacción en conflicto será rechazado.
  • Dentro de un solo bloque: Si se incluyen dos transacciones conflictivas en el mismo bloque, el minero incluirá solo una. Por lo general, el minero elige en función de la tarifa de transacción (se da preferencia a una tarifa más alta) o a la antigüedad de la transacción (se da preferencia a la transacción anterior).

¿Cómo controlan los usuarios la cantidad de tarifas de transacción que pagan?

cálculo de la comisión de transacción: los usuarios pueden controlar la comisión de transacción para acelerar la confirmación de sus transacciones. la comisión se determina mediante la siguiente fórmula:

tarifa de transacción=entrada total−salida total−cambio

Los usuarios establecen la tarifa de transacción ajustando la cantidad de entrada, la cantidad de salida y la cantidad de cambio.

el proceso de minería de la moneda digital

  1. preparar equipo de minería: configurar hardware de minería o dispositivos informáticos de alto rendimiento.
  2. Garantizar el acceso a Internet: Conecte el equipo de minería a Internet.
  3. Descargar billetera digital: obtenga una billetera digital y genere sus claves privadas y públicas.
  4. comenzar la minería: haga clic en el botón de minería en la billetera para empezar a minar.

minería en un pool

distribución de ganancias: al minar en un grupo, el nodo del grupo recibe la recompensa por bloque. luego, el grupo distribuye las ganancias a sus miembros en función de su poder computacional contribuido. esta distribución se ejecuta a través de transferencias a las billeteras de los mineros.

¿Qué es la minería egoísta?

Minería egoísta: La minería egoísta es una estrategia en la que un minero (o grupo de minería) encuentra un nuevo bloque pero no lo transmite de inmediato. En cambio, continúan minando de forma privada en su cadena (cadena oculta). Una vez que encuentran bloques adicionales, los transmiten todos a la vez. Esto puede invalidar el trabajo de otros mineros e inclinar el poder computacional y las recompensas hacia el minero egoísta. Bitcoin puede mitiGate.io el impacto de la minería egoísta mejorando el protocolo de transmisión.

validación de nodos al recibir transacciones y bloques

Validación de transacciones: Cuando una transacción se transmite a un nodo, se somete a varias comprobaciones para determinar si debe agregarse al mempool:

  1. Formato de transacción: verifique la corrección de la estructura de datos de la transacción.
  2. firma de transacción: validar la autenticidad de la firma de transacción.
  3. doble gasto: asegúrese de que la entrada no se haya gastado previamente en la mempool o blockchain.
  4. entradas y salidas: confirme que la cantidad total de entrada es mayor o igual que la cantidad total de salida.
  5. scripts de transacción: ejecutar y verificar scripts (principalmente en contratos inteligentes).
  6. LockTime: Compruebe si se cumple la condición LockTime (altura o tiempo del bloque).
  7. tamaño de la transacción y comisiones: asegúrese de que el tamaño de la transacción y la comisión sean adecuados.

validación de bloque: cuando un nodo minero recibe un nuevo bloque, realiza extensas comprobaciones en el bloque y sus transacciones:

  1. validez de la transacción: validar cada transacción dentro del bloque (mismas comprobaciones que la validación de la transacción)
  2. verificaciones específicas del bloque:
    • tamaño del bloque: asegúrese de que el tamaño del bloque esté dentro de los límites permitidos.
    • Recompensa por bloque: Verifique que la recompensa por bloque (bitcoins recién acuñados y tarifas de transacción) sea correcta.
    • Raíz de Merkle: calcule y valide la raíz de Merkle del bloque.
    • sello de tiempo: confirmar que la marca de tiempo del bloque está dentro de un rango razonable.
    • objetivo de dificultad: verifica que el bloque cumple con el objetivo de dificultad actual.

11. referencias

[1] conferencia 12 | tecnología blockchain en profundidad (4): explicación en profundidad del consenso pow de blockchain-geek tiempo:descargo de responsabilidad:

  1. este artículo ha sido reimpreso de[Gate.io aprenderequipo, y ellos lo manejarán rápidamente.
  2. exención de responsabilidad: las opiniones expresadas en este artículo son únicamente las del autor y no constituyen asesoramiento de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate.io Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
Empieza ahora
¡Regístrate y recibe un bono de
$100
!