O princípio central e o objetivo de design do Bitcoin era ser”uma versão puramente peer-to-peer do dinheiro eletrônico”. Embora essa declaração do whitepaper seja tradicionalmente vista como relacionada apenas ao processamento de pagamentos independente de uma instituição financeira, há outros aspectos do Bitcoin que são incrivelmente importantes para manter um sistema ponto a ponto que capacita seus usuários para manter o controle sobre suas próprias finanças. A autovalidação é uma das coisas mais importantes para um Bitcoiner fazer para manter sua própria soberania sobre seu dinheiro. A privacidade é outra coisa que também é incrivelmente importante em relação à auto-soberania. Obviamente, além desses dois aspectos, gerenciar suas próprias chaves é a chave (entendeu?) para ter controle total sobre seu próprio bitcoin.

Spectre é uma família de projetos de código aberto que vem trabalhando para dessas importantes qualidades acessíveis e fáceis de usar para Bitcoiners desde 2018. Moritz Wietersheim da Spectre teve a gentileza de dar algum tempo para responder a perguntas sobre o passado, estado presente e planos futuros da equipe Spectre em expandir seus dispositivos de software e hardware para continuar simplificando o processo de uso do Bitcoin da forma mais soberana possível.

O projeto começou em 2018 em Lisboa durante um jantar de bifes após a conferência Building on Bitcoin. Wietersheim conheceu Stepan Snigirev durante a conferência, onde Snigirev venceu o evento de hackathon com um protótipo de uma carteira de hardware com suporte integrado ao Lightning Network. Durante o jantar, Wietersheim e Snigirev decidiram começar a trabalhar juntos no que se tornaria a carteira de hardware Spectre DIY (Do-It-Yourself). Isso se tornou a peça central de todo um ecossistema de diferentes ferramentas para interagir com o Bitcoin.

Spectre DIY

A Spectre DIY Wallet foi projetada em uma época em que o espaço da carteira de hardware era muito menos maduro. Um detalhamento abrangente de muitas das vulnerabilidades descobertas durante esse período pode ser encontrado no site de Saleem Rashid, bem como no Apresentação do Wallet.Fail no Chaos Communication Congress. Na época, era uma ocorrência quase mensal de vulnerabilidades bastante desagradáveis ​​serem encontradas em diferentes dispositivos de hardware. Embora o espaço tenha amadurecido bastante desde aquele período, acho importante observar o ambiente na época para contextualizar o pensamento por trás do Spectre DIY.

O Spectre DIY é construído em torno do microcontrolador STM32, o mesmo (microcontrolador unit) usado por carteiras de hardware como Coldcard, Trezor, Bitbox, etc. Ele é montado em uma placa de desenvolvedor Discovery que possui um slot para cartão SD e USB para comunicação com carteiras de software. Ele também possui suporte opcional para um scanner de código QR. A noção original de um dispositivo de assinatura”sem estado”-um que não armazena persistentemente a semente mnemônica ou as chaves privadas no dispositivo-foi iniciada pelo Spectre DIY. Essa decisão de design foi tomada devido à falta de segurança física do’s ao armazenar dados confidenciais (o STM32 foi fisicamente comprometido para extrair segredos muitas vezes no passado).

Ao não armazenar persistentemente suas chaves privadas em o dispositivo, você limita a superfície de ataque que qualquer agente mal-intencionado pode explorar se conseguir obter acesso físico ao dispositivo. Sem a semente, o máximo que um invasor pode esperar fazer é acessar seu dispositivo, comprometê-lo para persistir ou transmitir suas chaves em vez de limpá-las e depois substituí-lo e esperar que você não perceba que foi adulterado antes da próxima vez que você carregar suas chaves no dispositivo. Isso não é perfeito, mas no mundo da segurança nada é, e isso é uma grande melhoria em comparação com simplesmente armazenar persistentemente suas chaves no STM32, onde elas podem ser acessadas por qualquer pessoa com tempo para comprometer o chip. Você pode desativar esse modo e armazenar os dados da chave privada no arquivo , mas, a menos que possa proteger fisicamente seu dispositivo com um alto grau de certeza, isso deve ser algo que você deve considerar cuidadosamente antes de fazer. Além disso, sem um elemento seguro, seria aconselhável usar uma senha com essa configuração.

O lado do software do projeto é construído usando a biblioteca embit. É uma biblioteca MicroPython/Python 3 para interagir com dados Bitcoin que foi construída especificamente para uso com o Spectre DIY (também é usado por SeedSigner e krux, ambos são projetos de dispositivos de assinatura sem estado; uma extensão LNBits somente para relógio; o Spectre carteira de software de desktop). A biblioteca suporta BIP39/BIP32 (geração de semente mnemônica e caminhos de derivação para chaves), suporte PSBT para as versões um e dois, suporte a sinalizador SIGHASH personalizado (assinando diferentes partes da transação em vez da coisa toda) e descritores de saída e miniscript (strings de dados para armazenar o que é necessário para que as carteiras encontrem UTXOs que ela controla e uma linguagem de alto nível para facilitar a criação de scripts Bitcoin). Ele também tem suporte experimental para Shamir Secret Sharing, Liquid Network e Taproot (ainda em andamento). Para funções criptográficas ele usa a biblioteca libsecp256k1 mantida pelo Bitcoin Core. A biblioteca é muito completa com recursos necessários para atender às necessidades básicas das carteiras atuais, bem como recursos que estabelecem as bases para futuras melhorias nas funcionalidades existentes e a incorporação de recursos expandidos ainda não amplamente implantados na maioria das carteiras. No geral, é uma base muito sólida para construir e foi tudo inicialmente montado para o Spectre DIY.

Além do Spectre DIY básico, uma versão estendida chamada Spectre Shield é um grande aumento na segurança física. Esta é uma placa de extensão personalizada para a placa principal STM32 Discovery em que o modelo básico é construído. Os arquivos necessários para ter um produzido por um fabricante de placas PCB estão disponíveis em seu repositório Github (link acima). A placa Shield possui um scanner de código QR, uma bateria e um slot para leitor de smart card. Este último recurso é realmente o que torna esta placa de extensão importante. Com a placa de extensão e um cartão inteligente equipado com um elemento de segurança, a carteira pode funcionar com o mesmo modelo de segurança de algo como um Coldcard. O material da chave pode ser armazenado no elemento seguro em um cartão inteligente e carregado no dispositivo durante o uso, mas apenas armazenado de forma persistente no cartão inteligente. A comunicação entre o e o elemento seguro no cartão é criptografada, de modo que as informações passadas entre eles não são acessíveis ao microcontrolador que manipula a interface do cartão inteligente.

O fluxo da carteira (com ou sem a extensão Shield) ao persistir as chaves é o mesmo da maioria das outras carteiras de hardware. O gera um segredo exclusivo que é armazenado na memória flash e, em combinação com um pino fornecido pelo usuário, criptografa as chaves privadas reais (novamente, independentemente de armazená-las no elemento seguro do cartão inteligente ou no STM32) para que um invasor tenha que acesse seu pin e o segredo no para descriptografar suas chaves bitcoin. Isso coloca os dois modelos dominantes de dispositivos de hardware bitcoin – signatários sem estado e dispositivos de armazenamento de chaves – nas mãos das pessoas de maneira DIY. Se você preferir não confiar em um elemento seguro e depender puramente de um código aberto, o Spectre DIY pode ser construído dessa maneira. Se você preferir a segurança aditiva de um elemento seguro além de uma abertura, isso pode ser feito com o uso da placa de extensão Shield. Para completar, ele também aceita entropia de entrada do usuário de lançamentos de moedas para não depender do gerador de números aleatórios do hardware. Interrupções nas cadeias de suprimentos internacionalmente tornaram um pouco difícil colocar as mãos no hardware necessário, mas se você puder, o projeto vale a pena.

Wietersheim e Snigirev realmente realizaram um grande feito ao montar o Spectre DIY. Não é de forma alguma a primeira carteira de hardware DIY por aí, mas é a primeira que suporta modularmente em termos leigos qualquer coisa entre o modelo de segurança de algo como um Trezor para algo como um Coldcard com base no que o usuário quer. Havia apenas um problema pendente: software de carteira para usá-lo.

Spectre Desktop

Ao olhar para aplicativos complementares para a carteira de hardware, tudo lá fora parecia ficar aquém do que Weitersheim e Snigirev estavam procurando. Eles gostaram da funcionalidade do Bitcoin Core, mas apesar da estabilidade trazida à mesa pelos desenvolvedores, o Bitcoin Core tem uma interface de usuário muito minimalista e, de certa forma, não intuitiva. No entanto, ele possui uma interface agradável para PSBTs (Transações Bitcoin parcialmente assinadas) e a interface HWI (Hardware Wallet Integration), então Stepan hackeou a primeira versão do Spectre como uma melhoria mínima da interface do usuário para interagir com o Bitcoin Core.

Pense no Spectre Desktop como um “wrapper” para o Bitcoin Core. Inclui uma interface gráfica agradável com suporte multisig; integração de carteira de hardware Comunicação PSBT sobre códigos QR, cartão SD ou USB; verificação de endereços de recebimento por QR code e USB; Suporte RBF (Substituir por taxa); um sistema de rotulagem para acompanhar seus UTXOs e de onde eles vieram; e controle de moedas para selecionar UTXOs específicos ao gastar (assim como a capacidade de congelar UTXOs específicos para se proteger de erros ao gastar). Eles até integraram uma solução de um clique fácil de usar para instalar o Bitcoin Core diretamente de dentro do Spectre Desktop (embora, instalar o Bitcoin Core de forma independente e conectar o Spectre seja algo até mesmo Peter McCormack foi capaz de realizar sozinho).

Além da flexibilidade do recurso, o fato de o Spectre exigir a ativação de seu próprio nó completo como back-end é um grande benefício de privacidade em comparação com muitas carteiras disponíveis para os usuários. A maioria das carteiras nesse ecossistema utiliza um back-end de terceiros para rastrear seus UTXOs, o que significa que o operador desse back-end pode correlacionar todos os seus UTXOs a uma única identidade. Além disso, se não estiver se comunicando com o back-end pelo Tor ou por meio de um serviço VPN, o operador poderá correlacionar todas essas moedas ao seu endereço IP. Este é um vazamento de privacidade horrível que é remediado pela insistência de Spectre em uma instância local do Bitcoin Core para rastrear seu saldo de Bitcoin.

O Spectre também suporta a Liquid Network, uma cadeia lateral de Bitcoin federada, que também tem suporte de instalação com um clique para um nó completo do Liquid Elements na GUI do Spectre. Ele suporta carteiras líquidas usando o Blockstream Jade, Spectre DIY, bem como carteiras quentes diretamente no Spectre. A Liquid oferece alguns benefícios interessantes com algumas compensações em comparação com a própria rede Bitcoin principal. A sidechain é um sistema federado, o que significa que utilizar a cadeia requer depositar seu BTC em uma carteira multisig controlada pela federação que opera a sidechain e, em seguida, receber L-BTC, um token emitido na sidechain apoiado pelo BTC custodiado pela federação. Para a compensação de confiar na federação, os usuários têm a capacidade de aproveitar as Transações Confidenciais, um esquema básico de prova de conhecimento zero que oculta os valores (e tipo de ativo, no caso da implementação da Liquid) sendo transacionados no blockchain. Ele utiliza uma”prova de alcance”que prova criptograficamente que o dinheiro não está sendo impresso do nada sem revelar os valores que estão sendo transacionados.

Liquid também suporta a emissão de outros ativos. Um exemplo útil são as stablecoins como o Tether (L-USDT), uma stablecoin denominada em dólar que permite aos usuários evitar a volatilidade do Bitcoin de uma forma”auto-custódia”(o token ainda exige que o emissor honre o resgate para adquirir”real dinheiro”no final do dia). A emissão de ativos líquidos também permite a criação de outros tipos de tokens, como ações que podem ser autocustizadas e a funcionalidade de script do Liquid suporta mais recursos do que o próprio Bitcoin, permitindo contratos inteligentes mais avançados, como empréstimos lastreados em BTC, todos tratados diretamente por um usuário através de sua própria carteira. A Spectre optou por oferecer suporte à Liquid para permitir que os usuários interajam com a Liquid da mesma maneira que a cadeia principal: com privacidade e total auto soberania.

Spectre Enterprise

Projetos como a carteira Bitcoin Beach usam o Spectre como backend para gerenciar seus fundos multisig on-chain. Eles não são a única empresa que usa o Spectre no back-end para gerenciar os fundos da empresa e, de acordo com Wietersheim, eles nem sabiam das empresas que usavam o Spectre até serem abordados para obter assistência. Uma grande parte da receita que mantém o projeto à tona é, na verdade, de tais empresas que pagam à equipe Spectre por firmware personalizado para o Spectre DIY e outros serviços de desenvolvimento, permitindo que eles trabalhem em tempo integral na manutenção de todo o conjunto de software.

É interessante pensar que o mesmo conjunto de ferramentas desenvolvido para oferecer aos usuários individuais o caminho para a autossoberania e segurança também está sendo usado por empresas reais para os mesmos fins. É comum pensar em cada grupo como mercados totalmente separados com necessidades completamente diferentes, mas como demonstrado aqui com Spectre, a sobreposição é muito maior do que se poderia pensar à primeira vista.

Centro de Comando de um Bitcoiner

A equipe da Spectre conseguiu algo realmente espetacular com o projeto. Tudo, desde dispositivos de hardware que gerenciam com segurança chaves privadas e operações de assinatura até software para validar suas transações, foi desenvolvido pela equipe de maneira perfeita e interoperável. É realmente um canivete suíço de ferramentas para o Bitcoiner auto-soberano, seja você um usuário individual ou uma empresa profissional gerenciando fundos de outras pessoas, para lidar com tudo o que você precisa para interagir com a rede Bitcoin. O projeto é inestimável e a equipe deve ser elogiada pelo excelente trabalho que fizeram na criação deste conjunto de software e hardware de código aberto para todos neste espaço aproveitarem.

Esta é uma postagem de convidado de Shinobi. As opiniões expressas são inteiramente próprias e não refletem necessariamente as da BTC Inc ou da Bitcoin Magazine.

Categories: IT Info