No final de setembro,
introduzimos um novo chip ASIC desenvolvido especificamente para a mineração SHA256 na rede Bitcoin. Hoje vamos contar o que está dentro.
Imagem: Grupo BitfuryAlgumas palavras sobre mineração de bitcoin
O objetivo da mineração é proteger a rede blockchain. Os mineradores usam seu hardware para resolver problemas complexos de computação que garantem a integridade das transações na rede e eliminam
ataques de gastos duplos . Paralelamente, a mineração atua como um mecanismo para gerar criptomoeda, que os mineradores recebem como recompensa (agora -
12,5 bitcoins por bloco).
As tarefas computacionais em questão estão relacionadas à seleção de um hash que corresponde às transações no bloco. O valor desejado é formado com base no hash do bloco anterior, em um número aleatório (chamado nonce) e na soma da transação nos últimos dez minutos. Nesse caso, duas condições devem ser atendidas: o hash deve estar em conformidade com a complexidade de mineração declarada e ter um número estritamente definido de zero bits no início. Para avaliar a complexidade
, a expansão em uma série de Taylor modificada é usada.
Hashes na blockchain Bitcoin são calculados usando o algoritmo SHA256. Inclui 64 iterações, durante as quais os bits de transação são “misturados” no bloco usando operações de deslocamento e “adição do módulo 2”. O resultado da aplicação da função SHA256 é considerado irreversível; por esse motivo, o hash alvo é encontrado pela força bruta.
Escrevemos com mais detalhes sobre mineração e pools de mineração, nos quais os participantes das redes blockchain se unem para acelerar a decisão dos blocos.
Anteriormente, CPU e GPU eram usadas para classificar nonce e hash, mas com o tempo, devido à crescente complexidade da mineração (ela muda dependendo do poder de computação agregado de todos os participantes da rede bitcoin),
ASICs especializados foram projetados.
Nós da Bitfury também estamos desenvolvendo essas soluções. No total, criamos cinco gerações de chips de mineração e, em setembro, apresentamos o sexto - estamos falando do ASIC Clarke, projetado especificamente para resolver os hashes SHA256.
Como está Clarke
O Clarke é fabricado usando uma tecnologia de processo de 14 nm e é implementado no fator de forma de 6x6 mm
FC- LGA 35L. O segundo gabinete possui um layout mais eficiente de circuitos de potência na placa. O chip resolve 120 gigabytes por segundo, mas
torna possível ajustar o desempenho, dependendo do que o mineiro precisa agora - um maior hashrate ou baixo consumo de energia. Em particular, é possível obter um fator de eficiência energética de 55 mJ / gigahesh, uma vez que 0,3 volts é suficiente para alimentar o chip. A estrutura Clarke é assim:
Clock Generator Ele define o relógio para o chip.
Níveis de tensão : VSS = 0, VDD = 1.
Interface de controle serial conectada ao controlador externo por barramento serial. Parece um
barramento SPI com contatos de transferência de dados MOSI e MISO (usados para transferir dados do mestre para o escravo e vice-versa), conectados pela linha SDATA.
A interface é responsável pela transmissão de comandos. Aqui estão alguns deles: task write para escrever uma nova tarefa, forçar a alternância de tarefas para forçar a alternância de buffer, ler nonces para ler valores nonce, etc. Todos os comandos possuem um modelo e contêm código, comprimento, campo de dados, byte de status do chip, dados do buffer nonce e checksums.
As somas de verificação são a soma aritmética dos bytes, começando com zero.
Por exemplo, a soma de verificação do comando 04 03 03 8c 18 00 será igual a AE.Sistema de controle Nonce. Controla o processo de cálculo de hash com base na máscara. A máscara “fica” no buffer da tarefa e é usada para definir o intervalo de cálculos. Ele define bits in nonce que permanecerão inalterados ao procurar um novo valor.
Buffers de tarefas. Necessário para calcular hashes (seu comprimento é de 20 palavras duplas). Existem dois buffers no total, o que permite alternar rapidamente entre tarefas. Enquanto o primeiro buffer está ocupado com uma solução de hash, o segundo grava dados para os cálculos a seguir.
8154 núcleos de hash de anel. Eles usam o algoritmo duplo SHA256.
Buffer Nonce. Este é um buffer de anel de 12 palavras duplas, onde as decisões de hash são gravadas. Como
exemplo, demos o processo de troca de dados em um chip que ocorre durante o cálculo de hashes (no spoiler abaixo):
Troca de dados por chip (em inglês)// Programe o gerador de clock para o valor 0x20 e prescaler = 1 (desativado) Send: 0803038c1800
Recv: f0b200b2
// Defina a máscara de nonce como 0x00000000
Enviar: 200300000000 Recv: f0230023
// Forçar comutador de tarefas Enviar: 020000
Recv: f0020002
// Enviar tarefa
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 = 0BAD7CA196 NONCE = D5D0E8B9
Enviar: _014fa607d67b614925737be76bce53a41ba12b3c8b659f27ef6726be6049f924522d2b3c8b659c78616c779 a13c81a609
35067953386a9d52b3d0f24a3b0a607d67bb2a8cc5326708e0ef55b267700000000 Recv: 0fb200b2
// Forçar alternância de tarefas
Enviar: 020000
Recv: 0f020002
// Ler 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 alternância de tarefas
FIFO [A] = 1ffffffc <- marcador de alternância de tarefas
FIFO [B] = aaab5515
Onde o chip será usado
Agora estamos instalando novos dispositivos em nossos próprios servidores de mineração e data centers móveis do
BlockBox . Também estamos modificando fazendas de bitcoin no Canadá, Islândia, Geórgia e Noruega (
lançada no início do ano ).
Os chips Clarke estarão disponíveis como um produto comercial. Em particular, eles vêm com os
mineradores Bitfury Tardis projetados para grandes organizações. Na Tardis, cabem de 5 a 8 placas, capazes de calcular até 80 terhes por segundo. Esse mineiro pode ser atualizado - no futuro, o ASIC Clarke instalado nele será substituído por novos chips.
Este é o nosso pequeno vídeo que apresenta o conceito do novo chip: