Carteira de hardware barata abaixo de 15€ – Guia faça-você-mesmo

Ótima carteira de hardware para Bitcoin por um preço pequeno

Neste post, apresentamos um guia sobre como ter uma carteira de hardware por menos de 15 €, totalmente funcional e fácil de usar, sem ser volumosa ou de má qualidade. O processo é bastante acessível. Você só precisará de uma placa de desenvolvimento Arduino facilmente disponível e, seguindo as instruções passo a passo, podemos criar com sucesso nosso próprio dispositivo.

A placa recomendada é uma TTGO T-Display, custando menos de €15 no AliExpress, mas com ofertas, pode chegar a €10 (ou até mesmo cerca de €5 no AliExpress para novos usuários). A versão de 4 MB é adequada; nós usamos o CH9102F, mas ambos devem funcionar, incluindo o TELEC.

Carteira de hardware barata

Certo, com esta pequena placa e mais nada, vamos fazer o flash do software Blockstream JADE. É uma carteira APENAS PARA BITCOIN, mas é uma das nossas favoritas. Existe a opção de adicionar uma câmera e uma bateria, mas para minimizar custos e complexidades, este guia a utiliza sem câmera ou bateria, semelhante a um Ledger Nano S.

É essencial observar que o software que alimenta esta carteira de hardware (JADE) é de código aberto, permitindo-nos instalá-lo em qualquer dispositivo compatível. Como recomendação específica, o TTGO T-Display se mostra uma excelente escolha, oferecendo um equilíbrio ótimo entre desempenho e praticidade para esse propósito.

Flashing e Assinatura de Software:

Primeiro, aceda à página GitHub do Blockstream Jade: https://github.com/Blockstream/Jade. Todos os passos são explicados neste post, mas você pode querer verificar também a fonte oficial. Recomenda-se usar sistemas baseados em Linux, mas também é possível com Windows ou macOS, os mesmos comandos são usados. Linux é preferido devido a problemas anteriores com o gerador de números aleatórios do Windows.

Certifique-se de que o git e o python estão instalados. Se não tiver a certeza, execute o seguinte comando:

sudo apt install git python3-pip python3-venv

Em seguida, crie a pasta “esp” se ainda não existir:

mkdir esp

Agora, execute os seguintes comandos:

cd ~/esp git clone -b v5.1.1 --recursive https://github.com/espressif/esp-idf.git

cd ~/esp/esp-idf && git checkout e088c3766ba440e72268b458a68f27b6e7d63986 && ./install.sh esp32

Finalmente, execute este comando para configurar as variáveis de ambiente:

. $HOME/esp/esp-idf/export.sh

Compilar o firmware:

Agora é hora de compilar o firmware. Clone o repositório Jade:

git clone --recursive https://github.com/Blockstream/Jade.git $HOME/jade

Agora temos que garantir que saibamos qual dispositivo estamos usando e configurar o arquivo sdkconfig.defaults de acordo. Devemos procurar nosso arquivo dentro desta pasta:

sdkconfig

Procure o seguinte ficheiro e copie-o da subpasta configs da pasta JADE para a pasta raiz (/jade/).

sdkconfig2

Agora devemos excluir (ou renomear de forma diferente) o arquivo sdkconfig.defaults original, e renomear o que acabamos de copiar, nomeando-o “sdkconfig.defaults”.

Em seguida, execute o seguinte comando no terminal:

cd $HOME/jade

Agora, se não tiveres o cmake instalado, executa também este comando:

sudo apt install cmake

Por fim, execute este comando para atualizar o firmware:

idf.py flash monitor

A firmware será agora flashada, e o dispositivo está operacional. Você pode conectá-lo ao Sparrow, Electrum ou Blockstream Green.

Mas… como você pode ver, não aparece como um JADE normal ao usar o Blockstream Green; ele mostra DEV em vermelho. Em teoria, pode ser usado dessa forma, mas falta o Secure Boot. Para adicionar uma camada extra de segurança, é recomendável habilitar o Secure Boot.

jade dev

Inicialização segura

Para implementar o Secure Boot e configurar o dispositivo como um JADE regular, precisamos modificar o arquivo sdkconfig.defaults. Primeiro, precisamos adicionar esta linha ao arquivo:

CONFIG_LOG_DEFAULT_LEVEL_NONE=y

config1

Em seguida, devemos eliminar o modo de depuração:

config2

Além disso, se você deseja remover a funcionalidade Bluetooth (o que pode fazer sentido para este tipo de carteira de hardware, sem bateria), adicione estas linhas:

CONFIG_APP_NO_BLOBS=y
CONFIG_MBEDTLS_ECP_RESTARTABLE=y
CONFIG_MBEDTLS_CMAC_C=yCO

E eliminar o seguinte:

CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL=y
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
#CONFIG_BT_NIMBLE_ROLE_CENTRAL is not set
#CONFIG_BT_NIMBLE_ROLE_BROADCASTER is not set
#CONFIG_BT_NIMBLE_ROLE_OBSERVER is not set
CONFIG_BT_NIMBLE_NVS_PERSIST=y
#CONFIG_BT_NIMBLE_SM_LEGACY is not set
CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="j"
CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=11
CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=517
CONFIG_BTDM_CTRL_BLE_MAX_CONN=1
#CONFIG_BTDM_CTRL_FULL_SCAN_SUPPORTED is not set

Em seguida, para a configuração do arranque seguro, adicione estas linhas:

CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE=y
CONFIG_SECURE_DISABLE_ROM_DL_MODE=y
CONFIG_SECURE_BOOT_SIGNING_KEY="PATH TO YOUR SIGNING KEY"
CONFIG_SECURE_BOOT=y
CONFIG_SECURE_FLASH_ENC_ENABLED=y
CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE=y
CONFIG_ESP32_REV_MIN_3=y

E apagar este:

CONFIG_EFUSE_VIRTUAL=y

Também make sure that CONFIG_ESP32_REV_MIN_3=y is not already present with REV_MIN_1, nesse caso, elimine-a e deixe apenas a opção REV_MIN_3.

Na linha “Path to your signing key” (Caminho para a sua chave de assinatura), tem de colocar o caminho para uma chave de assinatura que ainda não tenha sido gerada:

CONFIG_SECURE_BOOT_SIGNING_KEY="hideyourkeys-v2.pem"

Guardar e fechar o ficheiro.

Agora é hora de gerar as chaves de assinatura. No terminal, execute o seguinte comando (note que você deve nomear seu arquivo da mesma forma que no arquivo sdkconfig.defaults modificado anteriormente, nós o chamamos de hideyourkeys-v2):

espsecure.py generate_signing_key --version 2 ~/jade/hideyourkeys-v2.pem

O arquivo de chave estará localizado na mesma pasta jade. Se você escolheu outro caminho, certifique-se de que ele seja consistente com o arquivo sdkconfig.defaults e que o caminho relativo esteja correto nesse arquivo. Agora execute o seguinte comando para configurar a compilação:

idf.py menuconfig

É apresentado o seguinte menu:

menu1

No menu, vá para as configurações de segurança, ative o Secure Boot de hardware no bootloader, escolha a versão, salve e feche. As outras funcionalidades (Ativar criptografia da flash na inicialização ou Verificar se a criptografia da flash está ativada na inicialização) também devem estar marcadas. Todas essas opções devem estar marcadas por padrão. Caso não estejam, baixe o nosso Manual da Carteira de Hardware, copie o arquivo de configuração do ANEXO A, substitua-o no arquivo sdkconfig.defaults e exclua quaisquer arquivos sdkconfig anteriores na pasta jade.

menuconfigV2

Observe que, dependendo do dispositivo que você está usando, pode ser possível escolher Secure Boot V1 ou V2. É preferível usar V2, caso esteja disponível. Nossos dispositivos suportam Secure Boot V2 (assim como um Blockstream Jade padrão), mas no caso de estar seguindo este guia com outro dispositivo ESP32 que suporte apenas Secure Boot V1.

menuconfigV2 2

Agora é altura de ligar o dispositivo. Quando o dispositivo estiver ligado, execute:

idf.py bootloader

Obterá um resultado semelhante a este:

bootloader

Mas o bootloader também fornecerá um comando que deveríamos executar. Deve ser semelhante a este. Remova a porta (-p (PORT)) e as informações sobre a taxa de baud (-b (460800)) antes de executá-lo:

/home/xxx/.espressif/python_env/idf5.1_py3.10_env/bin/python ../esp/esp-idf/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size 2MB --flash_freq 40m 0x1000 build/bootloader/bootloader.bin

Nota: Observamos que, em alguns casos, você pode não receber o prompt acima. Nesse caso, pode ser possível executar o passo ao executar o seguinte comando: idf.py bootloader bootloader-flash

Agora, sem desligar o dispositivo, execute o seguinte:

idf.py build

Se for bem sucedido, o terminal fornecerá dois comandos para fazer flash da compilação (note que o caminho marcado a negrito varia consoante o computador):

/home/xxx/.espressif/python_env/idf5.1_py3.10_env/bin/python ../esp/esp-idf/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after no_reset --chip esp32 write_flash --flash_mode dio --flash_size 4MB --flash_freq 40m 0x9000 build/partition_table/partition-table.bin 0xe000 build/ota_data_initial.bin 0x10000 build/jade.bin

or run "idf.py -p (PORT) flash

Agora você deve executar um dos dois comandos anteriores da saída da compilação. Recomendamos usar o primeiro e excluir manualmente a porta e a taxa de baud (marcadas em negrito), a menos que você conheça esses valores:

/home/xxx/.espressif/python_env/idf5.1_py3.10_env/bin/python ../esp/esp-idf/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after no_reset --chip esp32 write_flash --flash_mode dio --flash_size 4MB --flash_freq 40m 0x9000 build/partition_table/partition-table.bin 0xe000 build/ota_data_initial.bin 0x10000 build/jade.bin

Agora o dispositivo será atualizado, mas permanecerá no modo de carregador de arranque:

flash

Para reiniciar o dispositivo e sair do estado de bootloader, execute:

idf.py monitor

O dispositivo será reiniciado e já não deverá aparecer como um dispositivo de desenvolvimento no Blockstream Green. É muito importante aguardar até que o dispositivo seja reiniciado antes de desconectá-lo, caso contrário, o dispositivo ficará inoperante. Isso pode levar alguns minutos.

jade definitive

Prós e contras

DESVANTAGENS:

  • É fastidioso, requer ajustes, mas seguir os passos demora menos de 5 minutos.
  • Sem funcionalidade de câmara ou bateria, funciona como um Ledger Nano S, apenas ligado à corrente.
  • A atualização é mais entediante do que a original (embora só tenha de introduzir quatro comandos).

VANTAGENS:

  • Carteira de hardware muito compacta e barata, que não fica mal quando se utiliza um estojo.
  • Uma excelente carteira só para Bitcoin, por um preço muito baixo.
  • É uma boa alternativa como dispositivo de reserva.

Para melhorar a aparência, vários estojos estão disponíveis no AliExpress, variando de €4 a €8. Se você tiver uma impressora 3D, existem modelos online ao procurar por “ttgo t-display case”.

Atualizar o firmware

Caso seja necessário atualizar o firmware, ligue o dispositivo e execute os seguintes comandos:

cd $HOME/jade

git pull

idf.py build

python jade_ota.py --noagent

O dispositivo apresentará uma mensagem de atualização a confirmar, tal como um JADE normal.

Reset de fábrica

Caso deseje realizar uma restauração de fábrica (para configurar uma nova carteira e excluir a atual instalada, por exemplo), quando o logotipo Blockstream JADE aparecer, pressione ambos os botões e você terá a opção de realizar uma restauração de fábrica.

Conclusões

Na nossa opinião, esta é a forma mais acessível de ter uma carteira de hardware totalmente funcional para o Bitcoin. Não é a solução mais fácil, mas é uma abordagem razoável a um preço justo.

Se você tiver alguma dúvida ou problema, sinta-se à vontade para entrar em contato por e-mail em [email protected]. Você também pode querer verificar nosso Manual da Carteira de Hardware e nossa Carteira de Hardware, caso queira pular toda esta orientação.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Consentimento de Cookies com Real Cookie Banner