Jan Čapek é um engenheiro checo que fundou a Braiins com Pavel Moravec. Minerar Bitcoin exige mais do que comprar uma máquina potente: o software tem de lhe fornecer trabalho e controlar o funcionamento. É nessa parte que Čapek trabalha. Participou no Braiins OS, o software dos equipamentos de mineração, e projetou o Stratum V2 com Moravec e Matt Corallo. Este protocolo define como comunicam os dispositivos e outros serviços de mineração. O seu percurso mostra como o software pode mudar aquilo que o proprietário de uma máquina realmente controla.
Čapek e Pavel Moravec criaram a Braiins para desenvolver software integrado, ou seja, programas que funcionam dentro de dispositivos. Paralelamente existia o Bitcoin.cz Mining Pool, criado em 2010 por Marek Palatinus, conhecido como Slush. Um pool permite juntar o trabalho de vários mineradores e repartir os rendimentos segundo as suas regras, em vez de cada um esperar por encontrar um bloco sozinho. Estas histórias acabaram por se cruzar. Čapek cofundou a empresa que adquiriu o pool; Palatinus continua a ser o criador do pool original. [1]
Em 2013, a Braiins adquiriu a maioria e assumiu toda a operação do pool, permitindo a Palatinus concentrar-se na Trezor. A empresa comprou a participação restante no primeiro dia de setembro de 2020. O anúncio apresenta a data de publicação de 29 de dezembro de 2021, mas o texto identifica a transação anterior. A distinção importa ao seguir a história: um artigo publicado depois não significa que a operação só tenha começado nessa altura. Assumir a operação e concluir a mudança de propriedade foram passos distintos. [1]
Pense num Antminer S9. Os chips repetem cálculos, mas um programa tem de preparar o trabalho e controlar o funcionamento. Esse software interno chama-se firmware. A história da empresa descreve como uma equipa dirigida por Čapek verificou o suporte para AsicBoost, uma forma de aproveitar melhor os cálculos de mineração, e desenvolveu o Braiins OS aberto, lançado em 2018. O código aberto permite aos programadores examinar o que o programa faz. A contribuição documentada de Čapek diz respeito ao software, não ao desenho do próprio chip. [1] [2]
Numa entrevista publicada em 2020, Čapek explica o autotuning: encontrar automaticamente frequências e tensões adequadas para cada chip com uma potência escolhida. A frequência relaciona-se com o ritmo de trabalho, a tensão com o funcionamento elétrico; procura-se utilizar melhor a energia disponível. Ao minerador interessam os custos de operação, além do valor do desempenho. Čapek ponderava uma camada proprietária paga sobre a base aberta do Braiins OS. A entrevista explica aquela ideia de negócio, não a licença nem o preço de todas as versões atuais. [2]
Além do programa dentro da máquina, é necessária uma linguagem comum para enviar trabalho e resultados. O protocolo de mineração fornece regras de mensagens que ambas as partes entendem. Jan Čapek, Pavel Moravec e Matt Corallo projetaram o Stratum V2 em conjunto. O site oficial atribui a manutenção a uma comunidade independente de código aberto. O contributo de Čapek ultrapassa, assim, os produtos da Braiins. É um padrão partilhado que permite a diferentes programadores criar programas compatíveis, não um protocolo pertencente a uma única empresa. [3]
Ao enviar resultados pela internet, o minerador não quer que alguém os leia ou altere pelo caminho. O Stratum V2 usa cifragem que verifica também a integridade das mensagens e autentica o servidor. A especificação exige um estabelecimento seguro nas ligações remotas aos serviços a montante, mas permite uma exceção a esse procedimento na rede local, por exemplo entre uma máquina e um intermediário local. Isto protege o percurso da mensagem. Não verifica as contas do pool nem garante um pagamento futuro: transporte seguro e operador de confiança são questões diferentes. [4]
Outra questão é quem prepara a proposta do próximo bloco, incluindo as transações. Essa proposta é o modelo de bloco. O Job Declaration permite ao cliente, o programa do minerador, coordenar trabalho próprio com um pool compatível. O Template Distribution fornece modelos e o Mining Protocol transporta trabalho e resultados. São componentes de uma instalação que têm de funcionar em conjunto. A indicação Stratum V2 no firmware não demonstra, por si só, que o minerador escolhe realmente as transações. É preciso verificar os componentes suportados e ativados. [5]
A especificação também prevê recusas: DeclareMiningJob.Error identifica uma declaração de tarefa rejeitada. O cliente deve então mudar para outro pool com JDS, ou Job Declarator Server, ou recorrer ao solo mining em último caso. Minerar sozinho já não reparte os rendimentos da mesma maneira que um pool. A mudança também exige uma configuração alternativa funcional; o nome do protocolo não garante continuidade. O objetivo é permitir que o minerador saia e continue a usar o modelo escolhido. A possibilidade real depende de toda a instalação. [5]
Para ter uma visão mais completa, leia este verbete junto com Braiins, Stratum V2, Mining Firmware. Também há referências a este verbete em Stratum V2.