A finales de septiembre,
presentamos un nuevo chip ASIC desarrollado específicamente para la minería SHA256 en la red Bitcoin. Hoy te diremos lo que hay dentro.
Imagen: Grupo BitfuryAlgunas palabras sobre la minería de bitcoin
El propósito de la minería es proteger la red blockchain. Los mineros usan su hardware para resolver problemas informáticos complejos que garantizan la integridad de las transacciones en la red y eliminan
los ataques de doble gasto . Paralelamente, la minería actúa como un mecanismo para generar criptomonedas, que los mineros reciben como recompensa (ahora -
12.5 bitcoins por bloque).
Las tareas computacionales en cuestión están relacionadas con la selección de un hash que coincida con las transacciones en el bloque. El valor deseado se forma en función del hash del bloque anterior, un número aleatorio (llamado nonce) y la suma de los hashes de la transacción en los últimos diez minutos. En este caso, se deben cumplir dos condiciones: el hash debe cumplir con la complejidad de minería declarada y tener un número estrictamente definido de cero bits al principio. Para evaluar la complejidad
, se utiliza la expansión en una serie de Taylor modificada.
Los hashes en la cadena de bloques de Bitcoin se calculan utilizando el algoritmo SHA256. Incluye 64 iteraciones, durante las cuales los bits de transacción se "mezclan" en el bloque utilizando operaciones de desplazamiento y "adición de módulo 2". El resultado de aplicar la función SHA256 se considera irreversible, por esta razón el hash objetivo se encuentra por la fuerza bruta.
Escribimos con más detalle sobre la minería y los grupos de minería, en los que los participantes de las redes blockchain se unen para acelerar la decisión de los bloques.
Anteriormente, las CPU y GPU se usaban para clasificar nonce y hash, pero con el tiempo, debido a la complejidad cada vez mayor de la minería (cambia dependiendo de la potencia informática total de todos los participantes en la red bitcoin), se diseñaron
ASIC especializados.
En Bitfury también estamos desarrollando tales soluciones. En total, creamos cinco generaciones de chips de minería, y en septiembre presentamos el sexto : estamos hablando de ASIC Clarke, diseñado específicamente para resolver hash SHA256.
Como es clarke
Clarke se fabrica utilizando una tecnología de proceso de 14 nm y se implementa en el factor de forma
FC- LGA 35L de 6x6 mm. El segundo caso tiene un cableado más eficiente de los circuitos de alimentación en el tablero. El chip resuelve 120 gigabytes por segundo, pero
permite ajustar el rendimiento en función de lo que el minero ahora necesita: un mayor hashrate o un bajo consumo de energía. En particular, es posible lograr un factor de eficiencia energética de 55 mJ / gigahesh, ya que 0.3 voltios son suficientes para alimentar el chip. La estructura de Clarke se ve así:
Generador de reloj Configura el reloj para el chip.
Niveles de voltaje : VSS = 0, VDD = 1.
Interfaz de control en serie conectada al controlador externo mediante bus serie. Parece un
bus SPI con contactos de transferencia de datos MOSI y MISO (utilizados para transferir datos del maestro al esclavo y viceversa), conectados por la línea SDATA.
La interfaz es responsable de transmitir los comandos. Estos son algunos de ellos: escritura de tareas para escribir una nueva tarea, forzar el cambio de tareas para forzar el cambio de búfer, leer nonces para leer valores nonce, etc. Todos los comandos tienen una plantilla y contienen código, longitud, campo de datos, byte de estado del chip, datos del búfer nonce y sumas de comprobación.
Las sumas de verificación son la suma aritmética de bytes, comenzando con cero.
Por ejemplo, la suma de verificación del comando 04 03 03 8c 18 00 será igual a AE.Sistema de control Nonce. Controla el proceso de cálculo de hash en función de la máscara. La máscara "se encuentra" en el búfer de tareas y se utiliza para establecer el rango de cálculos. Define bits en nonce que permanecerán sin cambios al buscar un nuevo valor.
Tampones de tareas. Necesario para calcular hashes (su longitud es de 20 palabras dobles). Hay dos buffers en total, lo que le permite cambiar rápidamente entre tareas. Mientras que el primer búfer está ocupado con una solución hash, el segundo escribe datos para los siguientes cálculos.
8154 núcleos de hash de anillo. Usan el algoritmo dual SHA256.
Nonce buffer. Este es un búfer de anillo de 12 palabras dobles donde se escriben las decisiones hash. Como
ejemplo, hemos dado el proceso de intercambio de datos en un chip que ocurre durante el cálculo de los hashes (en el spoiler a continuación):
Intercambio de datos de chip (en inglés)// Programe el generador de reloj al valor 0x20 y prescaler = 1 (deshabilitado) Enviar: 0803038c1800
Recv: f0b200b2
// Establecer máscara nonce en 0x00000000
Enviar: 200300000000 Recv: f0230023
// Forzar cambio de tarea Enviar: 020000
Recv: f0020002
// Enviar tarea
Wi 0 = CD3F992C 1 = 037F8197 2 = A58E091A
MS0 A = 0CAD7CD1 B = CBE38FD9 C = D14DC164 D = F90EB10B E = 819621CF F = 358D45CD G = 8C14CAE3 H = 538EF887 MS3 A = 5FF18CDD B = 8CDA24A4 C = 180266F9 D = 0CAD7CA76F9B = 36 NONCE = D5D0E8B9
Enviar: _014fa607d67b614925737be76bce53a41ba12b3c8b659f27ef6726be6049f924522d2b3c8b659c78616c779 a13c81a609
35067953386a9d52b3d0f24a3b0a607d67bb2a8cc5326708e0ef55b267700000000 Recv: 0fb200b2
// Forzar cambio de tarea
Enviar: 020000
Recv: 0f020002
// Leer el buffer nonce
Enviar: 040000 Recv: _0f04000000000000000000000000000000000000000000000000000000003ffffffc7f7a42132ffffffc 1ffffffc0001ffbf8c
FIFO [0] = aaaaaaaa
FIFO [1] = aaaaaaaa
FIFO [2] = aaaaaaaa
FIFO [3] = aaaaaaaa
FIFO [4] = aaaaaaaa
FIFO [5] = aaaaaaaa
FIFO [6] = aaaaaaaa
FIFO [7] = 3ffffffc
FIFO [8] = d5d0e8b9 <- valor nonce
FIFO [9] = 2ffffffc <- marcador de cambio de tarea
FIFO [A] = 1ffffffc <- marcador de cambio de tarea
FIFO [B] = aaab5515
¿Dónde se usará el chip?
Ahora estamos instalando nuevos dispositivos en nuestros propios servidores de minería y centros de datos móviles de
BlockBox . También estamos modificando granjas de bitcoins en Canadá, Islandia, Georgia y Noruega (
lanzadas a principios de año ).
Los chips Clarke estarán disponibles como producto comercial. En particular, vienen con
mineros Bitfury Tardis diseñados para grandes organizaciones. En Tardis, caben 5–8 tablas, capaces de calcular hasta 80 teraheshes por segundo. Este minero puede actualizarse; en el futuro, el ASIC Clarke instalado en él será reemplazado por nuevos chips.
Este es nuestro breve video que presenta el concepto del nuevo chip: