La minería de Bitcoin es una parte crítica de la seguridad del sistema Bitcoin. El principio es que los mineros de Bitcoin agrupan un montón de transacciones de Bitcoin en un bloque y luego realizan repetidamente una operación de encriptación llamada Hash miles de millones de veces hasta que alguien encuentra un valor Hash objetivo especial. En este punto, el bloque se extrae y se convierte en parte de la cadena de bloques de Bitcoin. Las tareas hash no logran nada de valor por sí mismas, pero debido a que es muy difícil encontrar un valor objetivo exitoso a través de ellas, asegura que nadie tenga la capacidad y los recursos para hacerse cargo del sistema Bitcoin.
Una función Hash se refiere a tomar un bloque de datos y crear una salida más pequeña e impredecible. La función hash está diseñada para que no haya un "atajo" para obtener el resultado deseado: simplemente siga procesando bloques hasta que encuentre uno válido por fuerza bruta. Para Bitcoin, la función Hash es una función llamada SHA-256. Para brindar mayor seguridad, Bitcoin repetirá la función SHA-256 dos veces seguidas, proceso conocido como doble SHA-256.
En Bitcoin, un valor hash exitoso es un valor que comienza con suficientes ceros. Al igual que es raro encontrar un número de teléfono o una matrícula que termine con varios ceros, es raro encontrar un hash que comience con varios ceros. Pero la dificultad de Bitcoin aumenta exponencialmente. Actualmente, un hash exitoso debe comenzar con alrededor de 17 ceros. En otras palabras, encontrar un Hash exitoso es más difícil que encontrar un grano de arena entre todos los granos de arena de la tierra.
La siguiente figura muestra un bloque en la cadena de bloques de Bitcoin y su valor hash. Los bytes amarillos se codifican para generar un valor hash de bloque. En este caso, el valor hash generado comienza con suficientes 0, por lo que la extracción es exitosa. Sin embargo, Hash es difícil de obtener a la vez, en este caso, los mineros cambiarán el valor de nonce u otro contenido del bloque y luego intentarán una y otra vez.
El algoritmo hash SHA-256 utilizado por Bitcoin
El algoritmo Hash de SHA-256 toma un bloque de entrada de 512 bits (es decir, 64 bytes), cifra los datos y produce una salida de 256 bits (32 bytes). El algoritmo SHA-256 consiste en rondas relativamente simples repetidas 64 veces. La siguiente figura muestra una ronda que toma 8 entradas de 4 bytes: A a H, luego realiza algunas operaciones y genera nuevos valores de A a H.
Los cuadros azules mezclan los valores de forma no lineal, lo que dificulta el análisis criptográfico de los valores. Dado que el algoritmo utiliza varias funciones diferentes, es más difícil detectar el ataque. (Si puede encontrar un atajo matemático para generar un hash exitoso, puede hacerse cargo de la minería de Bitcoin).
Ma La mayoría de los cuadros miran los dígitos de A, B y C. Para cada posición, si la mayoría de los dígitos es 0, emite 0, de lo contrario, emite 1. Es decir, para cada posición de A, B, C, mire el número de 1 bits. Si es 0 o 1, salida 0, si es 2 o 3, salida 1.
El cuadro Σ0 invierte los dígitos de A para formar tres versiones invertidas, que luego se suman módulo 2. En otras palabras, la suma es 1 si el número de 1 bits es impar y 0 en caso contrario, y los tres valores de la suma son A invertidos 2 bits, 13 bits y 22 bits a la derecha, respectivamente.
El cuadro Ch "Select" selecciona el bit de salida de acuerdo con el valor de la entrada E. Si cierto bit de E es 1, el bit de salida es el bit correspondiente de F, y si cierto bit de E es 0, la salida bit es el bit correspondiente de G. De esta forma, los bits de F y G se seleccionan aleatoriamente según el valor de E.
El siguiente cuadro Σ1 invierte y suma los bits de E, y es similar a Σ0 excepto que el desplazamiento es de 6 bits, 11 bits y 25 bits.
El cuadro rojo realiza una suma de 32 bits para generar nuevos valores para A y E, y la entrada Wt se basa en los datos de entrada con un poco de procesamiento. (Aquí es donde el bloque de entrada se introduce en el algoritmo). La entrada Kt es una constante definida para cada ronda.
Como se puede ver en la figura anterior, solo A y E cambian en una ronda. Otros valores se pasan sin cambios, el antiguo valor A se convierte en el nuevo valor B, el antiguo valor B se convierte en el nuevo valor C, y así sucesivamente. Aunque cada ronda de SHA-256 no cambia mucho los datos, después de 64 rondas, los datos de entrada estarán completamente codificados.
¿Qué significa esto para el hardware de minería?
Cada paso de SHA-256 es muy fácil de implementar en lógica digital: operaciones booleanas simples y adiciones de 32 bits. (Si has estudiado electrónica, probablemente ya puedas visualizar circuitos). Por esta razón, los chips ASIC personalizados pueden implementar el algoritmo SHA-256 de manera muy eficiente en hardware, colocando cientos de rondas en paralelo en un solo chip.
Por el contrario, Litecoin, Dogecoin y altcoins similares utilizan el algoritmo Crypt Hash, que está diseñado intencionalmente para que sea difícil de implementar en el hardware. Almacena 1024 valores hash diferentes en la memoria y luego los combina de forma impredecible para obtener el resultado final. Por lo tanto, Scrypt requiere más circuitos y memoria que SHA-256 Hash. Puede ver el impacto mirando el hardware de minería, Scrypt (Litecoin, etc.) calcula miles de veces más lento que SHA-256 (Bitcoin).
El algoritmo SHA-256 es sorprendentemente simple y fácil de hacer manualmente. (El algoritmo de curva elíptica utilizado para firmar transacciones de bitcoin sería difícil de calcular a mano porque tiene muchas multiplicaciones de enteros de 32 bytes). Hacer una ronda de SHA-256 a mano me tomó 16 minutos y 45 segundos. A este ritmo, se necesitan 1,49 días para hacer hash de un bloque completo de Bitcoin (128 rondas), para una tasa de hash de 0,67 por día (aunque puede que sea más rápido con la práctica). Por el contrario, el hardware de minería de Bitcoin actual puede generar varios billones de hashes por segundo, lo que es unas 50 millones de veces más rápido que mi hash manual. No hace falta decir que la minería manual de bitcoins simplemente no es práctica.
Un lector de Reddit preguntó sobre mi gasto de energía. De hecho, no requiere mucho consumo de energía, por lo que suponiendo que la tasa metabólica en reposo es de 1500 kcal/día, el consumo de energía del hachís artificial es de casi 10 MJ/hachís. El consumo de energía del hardware de minería general es de 1000 MJ/Hash. Por lo tanto, soy 10¹⁶ menos eficiente energéticamente. El siguiente problema son los costos de energía. Una fuente económica de energía alimentaria son las donas, que cuestan $0,23 por 200 kcal. La electricidad aquí cuesta $0,15/kWh, que es 6,7 veces más barata, más cerca de lo que esperaba. Entonces, mi costo de energía por hash es aproximadamente 67 veces mayor que el del hardware de minería. Obviamente no me voy a hacer rico con la minería artificial, y ni siquiera he incluido el costo de todo el papel y los lápices que necesitaré.
Por Sayjad Hussain
Traducción: Li Hanbo
Editor: Olivia
Tags:
El artículo es una contribución de Biquan Beiming, columnista de Jinse Finance and Economics, y sus comentarios solo representan sus puntos de vista personales.
Según noticias oficiales, en el proyecto AMDC de la empresa multinacional The Value Group, junto con el desarrollador de blockchain de Corea del Sur, Jeon Medical.
Este artículo fue creado por Yueer, reportero de Jinse Finance and Economics. Se publicó por primera vez en Jinse Finance and Economics el 25 de septiembre de 2020. Clasifica sistemáticamente la ecología de Polkadot y.
La minería de Bitcoin es una parte crítica de la seguridad del sistema Bitcoin.
El contenido de este artículo es el siguiente: Un informe sobre la memoria polvorienta: la cadena de bloques pasada de Lenovo Group.
Recientemente, los proyectos DeFi han estado en auge y se han convertido en un punto caliente en el círculo monetario global.A partir de ahora.
¿Cuál es el proyecto más candente en el círculo de divisas este año? El primero debe ser Uniswap, y el otro es Filecoin. Sin duda, la popularidad de UNI acaba de pasar.