Minería
Introducción
La minería es el proceso en el que los nodos en la red de Bitcoin ensamblan las transacciones de Bitcoin recién emitidas en una estructura de datos llamada bloque . Luego, los nodos compiten para agregar su bloque a la cadena de bloques pública al mutar repetidamente la estructura de datos de encabezado del bloque, generalmente incrementando el campo nonce, y luego dividiéndolo en un intento de encontrar un valor que satisfaga una prueba de trabajo difícil.
Cuando un nodo encuentra un hash de prueba de trabajo válido para un bloque, transmite el bloque a todos los nodos. Otros nodos aceptan este bloque solo si todas las transacciones en él son válidas y aún no se han incluido en un bloque. Otros nodos en la red luego expresan su aceptación del bloque al construir sobre él para crear el siguiente bloque en la cadena.
Cada bloque tiene una marca de tiempo y hace referencia al hash del bloque que lo precede. Los bloques forman una cadena con marca de tiempo de refuerzo hacia atrás: una cadena de tiempo, precursora del término ‘cadena de bloques’.
La cadena de bloques se estructura a sí misma de una manera que es computacional y económicamente poco práctica de modificar por cualquier entidad. Debido a esto, las transacciones incluidas en la cadena de bloques se consideran inmutables. Además de esta calidad, la cadena de bloques establece un orden autorizado de estas transacciones en toda la red al establecer cuáles de las dos transacciones conflictivas se vieron primero, protegiendo así a los usuarios de los intentos de volver a gastar monedas que ya se han gastado en otro lugar. Esta es la innovación clave de la minería y de Bitcoin.
Nodos
Los nodos son entidades que ejecutan software que lleva a cabo las funciones de minería anteriores. Los nodos se comunican usando una red P2P con su propio protocolo, y son los autores del libro mayor de Bitcoin y los ejecutores de las reglas del protocolo .
Curiosamente, el documento técnico de Bitcoin no hace referencia al término ‘minero’ o al concepto de ‘minería’. Estos términos cubren las acciones descritas en la sección 5 del documento técnico de Bitcoin que describe las responsabilidades de los nodos en la red.
Es posible ejecutar el software de cliente de nodo sin realizar el ensamblaje de bloques o la prueba de trabajo. Dicha configuración se puede utilizar como interfaz de la red para otros sistemas, como exploradores de bloques, pasarelas de pago y archivos. Eventualmente, se espera que se desarrolle software de cliente personalizado para cada uno de estos servicios, de modo que ya no dependan del cliente de nodo para operar.
Las computadoras que ejecutan un cliente de nodo pero que no realizan pruebas de trabajo no pueden agregar nuevos bloques a la cadena de bloques. Esto significa que no pueden expresar la aceptación de bloques válidos al trabajar en extenderlos, ni rechazar bloques inválidos al negarse a trabajar en ellos. Estas computadoras existen como entidades pasivas que siguen a los guardianes de la red, los mineros.
Mempool
Antes de que una transacción de Bitcoin pueda comprometerse con la cadena de bloques, debe ser recibida y validada por un minero. Si el minero considera que la transacción es válida, agrega la transacción a uno de varios mecanismos . Los Mempools son almacenes de transacciones temporales y se pueden usar para mantener transacciones agrupadas de diferentes maneras, como las transacciones que se extraerán en el siguiente bloque, las transacciones que se verán o las transacciones que no se pueden extraer debido a un bloqueo de nLocktime / nSequence.
Es importante tener en cuenta que cada minero tiene sus propios mempools y que los mempools varían según los mineros. También es importante tener en cuenta que una transacción individual se puede incluir en diferentes mecanismos al mismo tiempo.
Un minero toma las transacciones que pretende incluir en el siguiente bloque y las agrupa en una estructura de árbol de merkle e incluye la raíz de merkle resultante dentro de un encabezado de bloque candidato. Luego, el minero procesa este encabezado de bloque candidato, intentando encontrar una prueba de trabajo válida.
Hashing
Un hash es una función que convierte una cadena de datos en un valor de longitud fija que representa la cadena original, llamada valor hash. Cada valor hash es único.
El hash es una función unidireccional, lo que significa que no es factible determinar cuáles son los datos de entrada al observar el hash producido a partir de ellos. Por el contrario, es trivial ejecutar los mismos datos de entrada a través de la misma función hash y reproducir el mismo hash. Debido a esto, un valor hash de los datos de entrada puede considerarse como la huella digital de esos datos. En la minería de Bitcoin, los datos de entrada son el encabezado del bloque de 80 bytes.
El algoritmo de hash utilizado en la minería de Bitcoin es SHA-256 . SHA-256 son las siglas de Secure Hash Algorithm – 256 bit. Pasar los mismos datos de encabezado de bloque a través de este algoritmo siempre generará el mismo número de 256 bits. Sin embargo, si los datos del encabezado se modifican incluso por un solo bit, se obtendrá un número de 256 bits completamente diferente y no relacionado.
La minería de Bitcoin pasa los datos del encabezado del bloque a través del algoritmo SHA-256 dos veces (SHA-256d).
Prueba de trabajo (Proof of Work – PoW)
Bitcoin utiliza una función de Prueba de trabajo basada en el trabajo anterior de hashcash .
Un minero no puede crear un nuevo bloque sin encontrar un hash de prueba de trabajo válido para el encabezado del bloque que está troquelando. Para ser válido, el hash SHA-256d (que es solo un número) del encabezado del bloque debe ser menor que otro número, llamado destino . El valor objetivo está definido por el campo Bits en el encabezado del bloque que se está dividiendo en hash.
El objetivo se ajusta de modo que el tiempo promedio que le lleva a toda la red encontrar un hash de prueba de trabajo válido es de diez minutos.
Debido al espacio objetivo SHA-256 extraordinariamente grande, es extremadamente improbable que un hash determinado esté por debajo del objetivo. Como resultado de esto, las entidades de hashing invierten grandes cantidades de capital en hardware de hashing especializado junto con los costos de electricidad asociados con el fin de producir la mayor cantidad posible de estos hashes en un período de tiempo determinado. Por lo tanto, la única forma en que un minero puede agregar un bloque a la cadena de bloques es a través de un compromiso sustancial de gasto operativo: prueba de trabajo.
Incentivo
La primera transacción en cada bloque se llama transacción de Coinbase . La transacción de Coinbase es una transacción especial que paga bitcoins al minero del bloque. El pago de Coinbase se compone del monto del subsidio y la suma de todas las tarifas de transacción pagadas por transacciones dentro del bloque minado.
Competencia
Propagación y validación
Si un minero encuentra una prueba de trabajo válida para el encabezado del bloque que está procesando, lo anuncian inmediatamente enviando el bloque completo a otros mineros. Mientras tanto, comienzan a trabajar para encontrar el siguiente bloque en la cadena.
Los mineros en competencia reciben este bloque e inmediatamente verifican que todas las transacciones dentro del bloque, así como la prueba de trabajo sean válidas. Si el bloque es válido, suspenden la extracción sobre el bloque anterior y comienzan a trabajar en el hash de un nuevo encabezado de bloque, construyendo en el bloque que acaba de encontrar su competidor.
Hay incentivos en juego aquí. Primero, el ‘minero A’ ganador se esfuerza por llevar su bloque ganador a todos los demás mineros lo más rápido posible. Esto reduce la posibilidad de que el ‘minero B’ competidor (que encontró un bloque válido aproximadamente al mismo tiempo) propague su bloqueo a algunos mineros antes de que el ‘minero A’ pueda hacerlo. Esto abre la posibilidad de que el bloque ‘minero A’ pueda quedar huérfano y la recompensa de Coinbase se vuelva inválida e inutilizable por ‘minero A’. El grado de ancho de banda y conectividad con otros mineros puede verse como una ventaja competitiva y, como tal, la red minera tiende a una estructura mundial pequeña y densamente conectada con un alto ancho de banda.
También existe una ventaja competitiva en la validación de transacciones. Al validar un bloque, las entradas de cada transacción deben buscarse en el conjunto UTXO del minero para verificar que no se hayan gastado y que la cantidad en satoshis sea correcta. Además, los scripts de bloqueo y desbloqueo de cada entrada deben ser ejecutados por el minero para evaluar si cada transacción es válida.
Bloques rechazados
En cualquier momento dado, dos o más mineros independientes pueden extraer un bloque al mismo tiempo. En esta situación, los nodos pueden estar en desacuerdo sobre cuál de estos bloques debería ser la punta de la cadena de bloques.
Los mineros siempre siguen la cadena más larga que consideran válida. Finalmente, se encontrará otro bloque que se basa en uno de los consejos de la cadena competidora. Los mineros luego cambian a este consejo siempre que lo consideren válido. Como tal, cualquier escenario de fork finalmente se resuelve en una cadena persistente a través de las acciones de la mayoría del poder hash.
En este escenario, un bloque que no termina formando parte de la cadena más larga es rechazado por la red y se llama un Bloque huérfano . Un bloque huérfano representa un esfuerzo desperdiciado en nombre de un minero y un incentivo para invertir en infraestructura para reducir la frecuencia de estos eventos. Sin embargo, los huérfanos no reducen los ingresos generales del sistema Bitcoin ya que el trabajo desperdiciado no se tiene en cuenta en el ajuste de dificultad, por lo tanto, si un cierto porcentaje del trabajo de hashing se desperdicia debido a los bloques huérfanos, la dificultad se ajustará hacia abajo en un porcentaje similar , manteniendo la misma tasa de producción de bloque válida en general. Además, las transacciones de pago de tarifas en el bloque huérfano seguirán siendo válidas e incluidas en el bloque competidor o sus descendientes.
Los bloques válidos competidores no son la única forma en que los bloques terminan siendo rechazados. Cualquier minero puede negarse a construir en cualquier bloque por cualquier motivo. Tal acción de un minero en particular solo tiene sentido si la mayoría de los mineros llevan a cabo la misma acción. Es a través de este mecanismo que la red minera puede establecer un consenso sobre las variables que son configurables por el minero, como el tamaño máximo de bloque. Esta es la base del Consenso de Nakamoto:
«Votan con su poder de CPU, expresando su aceptación de los bloques válidos al trabajar en extenderlos y rechazando los bloques inválidos al negarse a trabajar en ellos. Cualquier regla e incentivo necesarios se pueden hacer cumplir con este mecanismo de consenso».
El ecosistema minero
Minería asic
Un circuito integrado de aplicación específica, o ASIC, es un microchip diseñado y fabricado para un propósito muy específico. Los ASIC diseñados para la minería de Bitcoin se lanzaron por primera vez en 2013. Por la cantidad de energía que consumen, son mucho más eficientes que los enfoques anteriores de minería, ya que utilizan CPU, GPU o FPGA.
Minería agrupada
La minería agrupada es el uso de un sistema de asignación de plantillas de bloques que proporciona encabezados de bloques actualizados de infraestructura de hashing distribuido contra los cuales realizan pruebas de trabajo. Este sistema de asignación de hash a los nodos es una parte principal del Consenso de Nakamoto, ya que los operadores individuales de poder de hash pueden elegir reasignar su hash a los nodos que producen bloques que cumplen con sus expectativas en términos de rentabilidad maximizada y adherencia al conjunto de reglas de Bitcoin. Los mineros que distribuyen plantillas de bloques que no maximizan las ganancias o que intentan implementar conjuntos de reglas modificados corren el riesgo de que los propietarios de la maquinaria hash dependan de volver a implementarla en un nodo diferente en la red.
Estrato
Stratum es un protocolo de minería de código abierto utilizado por muchos grupos de minería. Stratum facilita la coordinación entre el operador de la piscina minera y las máquinas mineras individuales.
Ver también
+++ Mining +++
1- BitCoin BTC Mining News
https://t.me/joinchat/AAAAAERsmXwpVVBtbd2eGQ
2- BSV Mining
https://t.me/joinchat/AAAAAFf0yDnEMdMjhQgB7g
3- CSW Miner
https://t.me/joinchat/Xb_QfJONwEs2OWU0
MinerID
https://t.me/joinchat/W2RS7-zsHtk5NDE8
Mining rewards
https://t.me/joinchat/aHuWieskvdc3MGJk
Halving & Subsidy
https://t.me/joinchat/sdkhbdJqE_diOWI0
DAA Mining Difficulty Adjustment Algorithm
https://t.me/joinchat/EOCmuEYBWE9hOTBk
Nonce
https://t.me/joinchat/AAAAAEq_sdrArC4cXwszBQ
BSV SBI Holding Japan – Strategic Business Innovator
https://t.me/joinchat/AAAAAEsYRMdRFX_yYc7W8w
First Blocks Mined
https://t.me/joinchat/RzWOZKE4CZlU1KVj
Bitcoin 10 minutes mining
https://t.me/joinchat/AAAAAFh0ViwkoevBzb35Sw
CSW First seen Bitcoin mining rule
https://t.me/joinchat/VJFTnHb-SygMW3hb
Bitcoin Malleability
https://t.me/joinchat/kox6WG-H3hI3MDRk
Double Spending
https://t.me/Double_Spend
Double Hashing – Mining – Double hash function
https://t.me/joinchat/AAAAAE57KOuHTqq8bK7h7A
————————————–
Minería
https://es.ramonquesada.com/glossary/mineria/
https://wiki.bitcoinsv.io/index.php/Mining
Lesson Nº 2 – Minería.
https://es.ramonquesada.com/espanol-es/lesson-2-mineria/
Nodos y Minería
https://es.ramonquesada.com/glossary/nodos-y-mineria/
Nonce
https://ramonquesada.com/glossary/nonce/
Piscinas de transacciones – mempool
https://es.ramonquesada.com/glossary/piscinas-de-transacciones-mempool/
Dificultad de minado:
https://es.ramonquesada.com/glossary/dificultad/
Un discurso sobre los nodos (27 de mayo de 2020) por Craig Wright
Traducción de Igor Domsac
https://es.ramonquesada.com/espanol-es/un-discurso-sobre-los-nodos-por-craig-wright/
———————–
« Back to Glossary Index