Author

Topic: [Tutorial] Como assinar uma mensagem (carteiras/serviços variados) (Read 278 times)

hero member
Activity: 1498
Merit: 556
Esqueci de falar no meu post anterior que o link para a BrainWalletX está indo para o https://bither.net/
Obrigado mais uma vez, Loga! Como montei o Sign primeiro, nele ficou errado e acabei replicando o erro para o Verify Roll Eyes ambos corrigidos!  Wink
hero member
Activity: 1764
Merit: 881
Esqueci de falar no meu post anterior que o link para a BrainWalletX está indo para o https://bither.net/
hero member
Activity: 1498
Merit: 556
Parabens.
EU adicionaria a Samourai a lista.
Melhor carteira mobile pra bitcoin. Permite assinar, open surge, segwit , coin control, etc.
Na verdade eu a testei e ela está na lista, bit. Fiz o teste com a carteira Android e pelo que vi não encontrei a versão iOS. Na Android confesso que de prima não encontrei não. Vou tentar mais uma vez e encontrando o módulo eu movo para a seção de assinatura Wink
@bitmover entendi porque não havia encontrado a opção na Samourai Wallet! Como o próprio tutorial da carteira indica:

Quote
"Currently you can only sign messages with addresses that contain an unspent balance of bitcoin."

Ou seja, neste momento apenas endereços que contenham algum valor podem ser assinados. Como importei o endereço do teste em diversas carteiras, o entendo como comprometido e para o processo dela mantive apenas os direcionamentos ali descritos. Se alguém tiver a imagem dos passos, posso segmentá-las e incluir ao procedimento depois, seguindo o padrão das restantes. Wink

Ah, incluí também um quadro de updates ao final, para manter um tracking do que tivermos de atualizações daqui pra frente.
hero member
Activity: 1498
Merit: 556
(...)
Muitíssimo bem lembrado, Loga! Na verdade, o assunto chegou a ser brevemente coberto no tópico do shorena, mas no esforço sobre as wallets esqueci de adicionar a informação quanto à inexistência de um padrão para esta validação, ainda que ocorra no âmbito da Electrum. Acabei de fazer uma menção na seção de Assinatura, referenciando justamente o seu post para validações de endereços Segwit.

Obrigado, mais uma vez, pela agregada!  Smiley
hero member
Activity: 1764
Merit: 881
Parabéns pelo tutorial @cryptobaboon!

Gostaria de lembrar que as vezes as carteiras não conseguem verificar uma transação que foi assinada por um endereço Segwit. O da BrainWalletX, que o pessoal costuma utilizar naquele tópico pra "guardar" o endereço em caso de possível perda/roubo de conta, não suporta. Uma solução nesse caso é apagar o endereço que ele vai identificar o endereço legacy correpondente ao segwit que a pessoa assinou e vai dar como verificado.

Por exemplo, assinei usando um endereço Segwit:



BrainWalletX dá como falha ao colocar o endereço Segwit:



Ao apagar o endereço ele consegue verificar como se fosse um endereço legacy correspondente:



Se quiser "transformar" o endereço Segwit em Legacy para fazer a verificação, é só seguir esse tutorial aqui do @lulucrypto

How to verify SegWit signature with Brainwallet ?

Você vai ver que vai dar o mesmo endereço que o BrainWalletX achou ao "advinhar" qual é
hero member
Activity: 1498
Merit: 556
~
Ninguém falou em utilizar a seed da hardware wallet. Isso é acabar com qualquer rastro de segurança da hardware wallet.

A Electrum permite utilizar a Ledger Nano S perfeitamente do mesmo jeito que você utiliza a Ledger Live, conectando-a normalmente.
Ah, entendi! Não sou muito conhecedor das hardware wallet pelo meu escopo de utilização mesmo, não imaginei que haveria uma tratativa direta com ela por um software terceiro. É, faz bem mais sentido do que usar a seed Grin

Dei uma furunfada aqui e encontrei este artigo no próprio site de suporte da Ledger, acabei de re-formatar o fragmento e inclui-lo. Só não o adiciono ao tutorial porque vai acabar abrindo o leque demais. Mas para quem tem a bichinha por aí, talvez fosse interessante traduzir ou mesmo fazer um breve tutorial do processo - se ocorrer, deixem-me saber que eu o linko por aqui (e no Guia também), claro!
legendary
Activity: 2758
Merit: 6830
~
Ninguém falou em utilizar a seed da hardware wallet. Isso é acabar com qualquer rastro de segurança da hardware wallet.

A Electrum permite utilizar a Ledger Nano S perfeitamente do mesmo jeito que você utiliza a Ledger Live, conectando-a normalmente.
hero member
Activity: 1498
Merit: 556
Ela realmente tinha, mas hoje em dia nem sei se ainda funciona. De qualquer forma, não recomendo nem tentar utilizá-la. Caso queira assinar uma mensagem da sua Ledger, tem como utilizá-la através da Electrum e assinar por lá. Talvez seja uma boa colocar um OBS sobre isso para os usuários da hardware wallet.
O grande problema desse processo, ninja, é a inclusão de um ponto de falha para a utilização da hardware wallet, já que a idéia seria justamente de não haver a necessidade de transacionar as seeds em ambientes que não os envolvidos pelo dispositivo, certo? De qualquer forma, foi o que você disse, na ausência de uma alternativa, essa com certeza é uma opção exequível! Desta forma, adicionei uma pequena nota no seção dos não testados indicando a possibilidade mas, claro, destacando a ainda maior diligência quando neste cenário.

Ah, claro, obrigado a todos pela força (e merits)! Smiley
legendary
Activity: 2758
Merit: 6830
Quanto a Ledger, dei uma fuçada aqui e parece que na versão antiga que rodava ainda como um complemento/extensão do Chrome tinha esse recurso.
Essa wallet foi descontinuada e por segurança eu nem arisco abrir ela aqui.

Já na Ledger live procurei por tudo e não encontrei a opção, também pesquisei e ao que descobri de fato não há o suporte para esse procedimento.
Ela realmente tinha, mas hoje em dia nem sei se ainda funciona. De qualquer forma, não recomendo nem tentar utilizá-la. Caso queira assinar uma mensagem da sua Ledger, tem como utilizá-la através da Electrum e assinar por lá. Talvez seja uma boa colocar um OBS sobre isso para os usuários da hardware wallet.
hero member
Activity: 1498
Merit: 556
(...)
Valeu, ale! Inicialmente pensei em buscar algumas referências em outros tutoriais, como estes presentes no fórum, mas a quantidade de carteiras e serviços é tão absurda que preferi eu mesmo girar a roleta e escolher algumas e fazer. Quando percebi que já não cabiam no primeiro post, achei que era hora de parar... ia acabar seguindo com a lista até que as verificações anteriores já estivessem defasadas  Grin

Sobre o host de imagens, então, acho que foi algum problema no proxy do fórum (talvez pelo número de imagens carregadas ao mesmo tempo?), você pode verificar clicando diretamente na imagem e sendo direcionado para a imagem em proporção real. Sempre utilizei o imgbox e o imgur para as hospedagens, justamente por deixaram fazer o hyperlink sem problema. O bom do imgbox é a organização do quadro com as tags bbcode; não sai exatamente como você precisa (como eu uso ao menos) mas já ajuda bastante Smiley


Parabens.
EU adicionaria a Samourai a lista.
Melhor carteira mobile pra bitcoin. Permite assinar, open surge, segwit , coin control, etc.
Na verdade eu a testei e ela está na lista, bit. Fiz o teste com a carteira Android e pelo que vi não encontrei a versão iOS. Na Android confesso que de prima não encontrei não. Vou tentar mais uma vez e encontrando o módulo eu movo para a seção de assinatura Wink


Quanto a Ledger, dei uma fuçada aqui e parece que na versão antiga que rodava ainda como um complemento/extensão do Chrome tinha esse recurso.
Essa wallet foi descontinuada e por segurança eu nem arisco abrir ela aqui.

Já na Ledger live procurei por tudo e não encontrei a opção, também pesquisei e ao que descobri de fato não há o suporte para esse procedimento.
Vale mais uma vez, ale! Inclui a Ledger Live na lista de não suportados, então. Mas a manterei a Ledger Wallet na lista não testada ainda também, vai que aparece alguém que utiliza a versão antiga e pode nos confirmar?!  Wink

Aliás, você testou com a última disponível? Pelo que chequei é a 1.20.0, certo?
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
Quanto a Ledger, dei uma fuçada aqui e parece que na versão antiga que rodava ainda como um complemento/extensão do Chrome tinha esse recurso.
Essa wallet foi descontinuada e por segurança eu nem arisco abrir ela aqui.

Já na Ledger live procurei por tudo e não encontrei a opção, também pesquisei e ao que descobri de fato não há o suporte para esse procedimento.
legendary
Activity: 2212
Merit: 5622
Non-custodial BTC Wallet
Parabens.
EU adicionaria a Samourai a lista.
Melhor carteira mobile pra bitcoin. Permite assinar, open surge, segwit , coin control, etc.
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
Poxa vida @cryptobaboon Shocked que material incrível você produziu, meus parabéns cara.

Você baixou todas essas wallets para montar o tutorial? Que empenho.

Uma pequena dica, use sempre o Imgur para hospedar suas imagens, até onde sei ele é o único que não estraga o seu trabalho enviando as imagens para o espaço (ele mantém ela nas nuvens Grin )

Digo isso porque algumas imagens do seu tutorial já deram problemas em menos de 24 horas após publicadas....


Faltam me sMerits nesse momento, volto aqui assim que os conseguir Wink
hero member
Activity: 1498
Merit: 556
hero member
Activity: 1498
Merit: 556
    • Coinomi v1.8.5 (LINK)  

      1) Clique em "Bitcoin";
      2) Clique nos três pontos no canto superior direito superior direito;
      3) Clique na opção "Assinar/verificar mensagem (Sign/Verify Message)";
      4) Na tela seguinte preencha o endereço (Endereço para assinar (Address to sign)), a mensagem (Mensagem (Message)), a assinatura  (Assinatua (Signature)) e clique em Verificar (Verify));
      5) Na janela pop-up entre com a senha da carteira e clique em "OK";
      6) A assinatura será exibida no campo Assinatura.

      1>2>3>4>5>6>



    • Electrum v3.3.8 (LINK)  

      1) Clique em Tools > Sign/Verify message...
      2) Entre com a mensagem (Message), o endereço (Address) e clique em Verify
      3) Sendo a assinatura válida, uma mensagem indicando o sucesso (Signature verified) será exibida.

      1>2>3>



      7. CARTEIRAS/SERVIÇOS QUE NÃO DISPÕEM DA FUNC. DE ASSINATURA OU NÃO FORAM TESTADOS  

      Infelizmente, nem todos as carteiras/serviços possuem um módulo para geração e/ou validação de assinaturas. Todas as carteiras/serviços testadas e que não dispuserem da função serão listados aqui, já formatados para serem movidos para a seção de detalhamento do processo (Assinando uma mensagem e/ou Verificando uma assinatura), caso em algum momento o fluxo seja implementado:

      PLATAFORMAS UTILIZADAS
      Windows 10 Pro b10319 | Tor Browser v9.0.5 | Android 10 v1.190825.002 | iOS 13 v13.2.2

      • Não possuem
        dt = data de acesso (não possui uma versão atrelada) | v = versão testada

        • Atomic Wallet v2.13.1 (LINK)
        • Atomic Wallet v0.55.1 (LINK)
        • Atomic Wallet v0.55.1 (LINK)
        • BitGo dt.21.02.2020 (LINK)
        • BitPay v8.2.6 (LINK)
        • BitPay v8.2.6 (LINK)
        • BitPay v8.2.5 (LINK)
        • Breadwallet (BRD) v3.14.4 Build 3 (LINK)
        • BTC.com Wallet dt.23.02.2020 (LINK)
        • BTC.com Wallet v4.4.7 (LINK)
        • BTC.com Wallet v4.4.9 (LINK)
        • Cobo Wallet v4.13.0 (LINK)
        • Cobo Wallet v4.13.0 (LINK)
        • Coinomi v1.2.2 (LINK)
        • Coins.ph dt.22.02.2020 (LINK)
        • Coins.ph v3.3.89 (LINK)
        • Copay v8.2.6 (LINK)
        • Copay v8.2.6 (LINK)
        • Eidoo dt.22.02.2020 (LINK)
        • Eidoo v2.6.1 (LINK)
        • EO.Finance dt.21.02.2020 (LINK)
        • EO.Finance v1.4.1 (LINK)
        • Exodus v20.2.19 (LINK)
        • Exodus v20.2.14 (LINK)
        • Exodus v20.2.14 (LINK)
        • Free Wallet dt.23.02.2020 (LINK)
        • Free Wallet v1.6.1 (LINK)
        • Free Wallet v1.6.0 (LINK)
        • GreenAddress v0.1.04 (LINK)
        • GreenAddress v3.3.4 (LINK)
        • Guarda Wallet v1.0.0 (LINK)
        • Guarda Wallet dt.22.02.20 (LINK)
        • Guarda Wallet v1.16.2 (LINK)
        • Guarda Wallet v1.16.2 (LINK)
        • Jaxx Liberty v2.3.9 #251 (LINK)
        • Jaxx Liberty v2.3.9 #251 (LINK)
        • Ledger Live v1.20.0 (LINK) [testado por @alegotardo]
        • Lumi Wallet dt.23.02.2020 (LINK)
        • Luno Wallet dt.22.02.2020 (LINK)
        • Luno Wallet v6.7.0 (LINK)
        • Mycelium Wallet v14 (LINK)
        • Pungo Wallet dt.22.02.2020 (LINK)
        • Pungo Wallet v0.98 (LINK)
        • Quppy Wallet v1.0.21 (LINK)
        • Quppy Wallet v1.0.21 (LINK)
        • Samourai Wallet v0.99.88 (LINK)
        • SpectroCoin Wallet dt.21.02.2020 (LINK)
        • SpectroCoin Wallet v0.12.1 (LINK)
        • SpectroCoin Wallet v0.12.1 (LINK)
        • StrongCoin Wallet dt.21.02.2020 (LINK)
      .
      • Não testados

        Estes serviços/carteiras estão diretamente ligados à necessidade de utilizar algum componente/dispositivo físico da própria companhia para utilizar o software relacionado:


        OBS.: Como o @TryNinja apontou outras ferramentas podem ser utilizadas para trabalhar com algumas hardware wallet, como é o caso da Ledger Nano S com a Electrum - saiba como fazê-lo através deste artigo na próprio seção de suporte da Ledger.

        Caso alguém possua um ou mais dispositivos e deseje incluir esta(s) entrada(s) no tutorial, basta me encaminhar as imagens e os direcionamentos que ficarei feliz em atualizá-lo Smiley


      ATUALIZAÇÕES
      [/list][/list]
      Code:
      28/02/2020 - Links para BrainWalletX dt.23.02.20 em "Assinando uma mensagem" e "Verificando uma mensagem" corrigidos
      27/02/2020 - Adicionada Samourai Wallet 0.99.88 [Android] em "6. Assinando uma mensagem"
      25/02/2020 - Incluído workaround para assinatura de endereços Segwit em  "6. Assinando uma mensagem"
      25/02/2020 - Incluído Ledger Live 1.20.0 em "7. Carteiras/Serviços que não dispõem da funci. de assinatura ou não foram testados" > "Não possuem"
      hero member
      Activity: 1498
      Merit: 556
      Buscando um tema para um novo tutorial para postar por essas bandas, identifiquei que temos pouquíssimo material que contemple a assinatura de mensagens (parte integrante, inclusive, do procedimento para restauração de contas aqui no BTT. O único tutorial que temos e que já está listado em nosso Guia de Postagens é o do @textgeek (Como assinar uma transação BTC usando Carteira Electrum) mas que, como o título indica, é dedicado ao processo apenas com a Electrum.

      Pensei em fazer algo mais abrangente e, durante as pesquisas, acabei encontrando este tópico do usuário @shorena que se mostrou bem completo! No entanto, com sua última atualização tendo ocorrido já há algum tempo (Set/18), achei que seria uma oportunidade de montar algo na mesma linha, porém, mais atualizado, detalhado e buscando uma melhor diagramação dos passos e das imagens - penso que a visualização completa de todas as aplicações no corpo do próprio tópico acaba por dificultar a leitura do todo, então a idéia é detalhar cada um dos passos e, caso exista alguma dificuldade, imagens em proporção real (clique nelas para visualizá-las sob esta condição) podem ser referenciadas ao final de cada um dos procedimentos.

      Seguirei esporadicamente atualizando o tópico e até incluindo outras carteiras/serviços. Afinal, os aqui listados elencam apenas algumas das opções que temos no mercado.



      BITCOIN
      COMO ASSINAR UMA MENSAGEM

      Í N D I C E

      1. Introdução
      2. Como Funciona?
      3. Indicações
      4. Assinando uma mensagem
      5. Apresentação
      6. Verificando uma assinatura
      7. Serviços/carteiras que não dispõem da funcionalidade de assinatura ou não foram testados



      1. INTRODUÇÃO?  

      Estamos acostumados a passar referências bancárias quando necessário. Nesta ocasiões, normalmente informações como o nome/código do banco, agência, conta, etc. são suficientes para estabelecer uma ligação da pessoa física com a mesma. Mas... como fazer isso quando estamos falando do Bitcoin e sua economia descentralizada? Em um ambiente onde não há um link direto entre o mundo real e o digital, como garantir a alguma parte que um determinado endereço realmente lhe pertence?

      Para estas situações, a função de assinatura pode ser utilizada. A idéia aqui é que, em posse da chave privada de um determinado endereço, você consiga customizar uma mensagem em particular que poderá ser utilizada para aquele um fim em especial ou mesmo para generalizadamente exprimir a posse da daquele endereço e, consequentemente, dos fundos ali contidos.

      Seguindo a analogia inicial, poderíamos dizer que seria algo como um cheque de seu banco, onde apenas com o vínculo de sua assinatura, o mesmo seria validado - identificando-o como o real titular e liberando o montante ali indicado. A diferença no Bitcoin é que não há margem para erros, estamos falando de uma verificação matemática, assim como ocorre em todas as operações da moeda.

      Dentre algumas utilidades do processo, podemos citar alguns possíveis exemplos de objetivos com a ação, como:




      2. COMO FUNCIONA?  

      Como sabemos, o Bitcoin utiliza o Algoritmo de Assinatura Digital de Curva Elíptica, mais conhecido como ECDSA para assinar as transações. Mas como isso funciona exatamente? Diversos cálculos são realizados sobre os valores de entrada, sofrem uma compressão, gerando um hash que é justamente o ponto a ser validado. As etapas resumem-se da seguinte forma:

      1) Gera-se a chave
      2) Codifica-se
      3) Gera-se o hash
      4) Compara-se o hash obtido com o extraído através do endereço original


      Para um melhor entendimento sobre a criptografia de curva elíptica, referencie o documento oficial do SEC (não, não estamos falando aqui da Securities and Exchange Comission dos EUA Roll Eyes).



      3. INDICAÇÕES  

      Como estamos falando de um "método de validação", é sumariamente importante que ela seja realizada da melhor maneira, sem que existam lacunas para indivíduos de má índole tirarem proveito das informações. Sendo a idéia da assinatura uma forma comprobatória de posse de um endereço, dados não tão específicos podem dar margem à interpretações incorretas e apoderamento por terceiros do propósito original.

      Partindo dessa premissa, existem alguns apontamentos que devem ser seguidos e alguns outros que devem ser evitados de toda forma:

      • NUNCA baixe uma carteira sem verificar o hash do arquivo e confrontá-lo com a informação oficial do desenvolvedor. Para checá-lo no Windows, você pode utilizar o WinMD5Free, seguindo as simples etapas:

        1) Baixe o arquivo desejado e abra-o no WindMD5Free clicando em "Browse..":

        2) Uma vez aberto, o campo "Current file MD5 checksum value" será preenchido com o valor MD5 do arquivo. Copie o MD5 fornecido pelo site do desenvolvedor e o insira no último campo ("Original file MD5 checksum value") e clique em Verify:

        3) Se o valor estiver de acordo, uma janela pop-up será exibida confirmando a informação, o inverso ocorrerá se os valores não forem os mesmos (obs.: o próprio arquivo do WinMD5Free foi utilizado no exemplo):


      • NUNCA assine uma mensagem sem que a data e o propósito sejam minuciosamente expressos. Quanto mais informações, mais difícil fica para o agente externo deturparem/desviarem seu objetivo original
      • NUNCA utilize uma máquina pública e/ou que não possua proteção suficiente para que você execute a operação. Lembre-se que você está lidando com a chave de acesso de sua carteira e, assim como em processos de transferência de moedas, todo cuidado é pouco! Atente-se à presença de keyloggers, malwares e qualquer componente malicioso que possa vir a se apossar das informações ali utilizadas. Isso é válido para todos os ambientes, seja ele desktop ou mobile.
      • NUNCA forneça a sua chave privada para um terceiro que você não confie plenamente - e, talvez, nem ele(a), afinal quanto mais vias de comunicação com a informação, mais pontos de falha!
      • NUNCA forneça seus dados para algum serviço que informa gerar assinaturas. O processo é extremamente simples e depende única e exclusivamente do portador da chave: você!
      • NUNCA assine mensagens com carteiras/serviços que você não conhece. Se você não tem conhecimento da idoneidade da ferramenta que utilizará, pesquise/se informe antes de utilizá-la com as suas chaves. Se desejar, pode postar aqui no tópico que certamente o pessoal te dará uma mão, seja por experiência ou ajudando a garimpar informações a respeito.

      Obs.: Indico a utilização de um live CD/USB e, se possível, de forma offline nos serviços e carteiras que permitam a operação neste estado.



      4. ASSINANDO UMA MENSAGEM  

      Como vocês deverão notar, o procedimento é extremamente parecido na maior parte das carteiras/serviços, usualmente os campos são tratados da mesma forma e, inclusive, pelo mesmo nome. Em algumas situações o módulo fica um pouco mais escondido, mas se ele existe, a gente encontra Smiley

      Para os exemplos, usualmente utilizaremosum endereço vanity (criada especialmente para este tutorial, utilizando o VanitySearch - quer saber como criar o seu próprio? Confira o tutorial dedicado para este fim. É extremamente fácil!) e a mesma mensagem:

      Endereço:
      Code:
      1BRAS1LEnc9tduTm6QT8awP3F5gpHX5KZe

      Mensagem:
      Code:
      Este é um teste feito por cryptobaboon em uma carteira teste para a comunidade luso-brasileira do Bitcointalk em 16/02/2020.
      This is a test done by cryptobaboon in a test wallet for the portuguese/brazilian community from Bitcointalk on Feb 16, 2020.

      A segmentação segue cada uma das carteiras com suas respectivas versões. Lembrando apenas que se a sua versão não é a abaixo descrita, dê uma conferida mesmo assim! Muitas vezes as atualizações são apenas de caráter técnico e não refletem no ambiente gráfico da aplicação, ou seja, a disposição das opções/campos podem ser exatamente iguais ou ao menos extremamente similares.

      IMPORTANTE: Se o endereço a ser assinado é um endereço Segwit (iniciado por 3 ou bc1q), por não haver um padrão responsável por este confrontamento, uma conversão para legacy é necessária. Nosso amigo @Loganota postou abaixo dando maiores detalhes de como executar o procedimento e, desta forma, ter um workaround para este tipo de endereçamento.

      Devido a quantidade um pouco elevada de itens, indico a utilização do índice caso você esteja procurando por alguma ferramenta em particular.



      • Armory v0.96.5 (LINK)

        1) Clique em Tools > Message Signing/Verification...;
        2) Na janela que surgir, selecione o endereço desejado (Sign with Address), a mensagem (Message to sign) e clique em uma dos tipos de formato disponíveis;
        3) Na janela pop-up que surgir, entre com a senha da carteira;
        4) A assinatura será exibida no campo Message Signature.

        1>2>3>4>




      • Bitcoin Core v0.19.0.1 (LINK)

        1) Clique em File > Sign Message...
        2) Entre com o endereço a ser assinado (Address), a mensagem (Message), clique no botão Sign message e entre com a senha na janela que surgir.
        3) A assinatura será exibida no campo Signature.

        1>2>3>



      • Bitcoin Knots v0.19.0.1knots20200104 (LINK)  

        1) Clique em File > Sign Message...
        2) Entre com o endereço a ser assinado (Address), a mensagem (Message). clique no botão Sign message e entre com a senha na janela que surgir.
        3) A assinatura será exibida no campo Signature.

        1>2>3>



      • Bither v1.4.7 (LINK)

        1) Clique em More... > Sign Message;
        2) Na janela que surgir, clique no endereço desejado;
        3) Preencha os campos adequadamente, com a mensagem (Original message) e a senha da carteira (Password) e clique em Sign;
        4) A assinatura será exibida no campo Signature.

        1>  2>3>4>



      • Bither v1.8.8 (LINK)

        1) Clique na engrenagem no canto superior direito;
        2) Clique em "Advanced options > Message Signing";
        3) Clique em "Sign Message";
        4) Selecione o endereço a ser assinado;
        5) Preencha com a mensagem (Message) e clique em Sign;
        6) Entre com a senha da carteira e clique em OK;
        [b7)[/b] A assinatura será exibida em um novo campo logo abaixo da mensagem.

        1>2> 3>4>5>6>7>



      • Blockchain.com v1.0.6.0 (LINK)  

        1) Clique em Settings > Wallet & Addresses;
        2) Clique na opção More Options > Sign Message;
        3) Na janela pop-up que surgir, entre com a mensagem desejada (Message) e clique em Sign;
        4) A assinatura será exibida no campo Signature.

        1>2>3>4>



      • BrainWalletX dt.23.02.20 (LINK)

        1) Clique em Sign no menu superior;
        2) Na janela que surgir, preencha os campos adequadamente, com o chave privada (Private Key), a mensagem (Message), o tipo de assinatura (Signature Type) e clique em Sign;
        4) A assinatura será gerada e populará o campo Signed Message. DICA: Compartilhe o link contido no botão Permalink para uma direção direta para a validação da assinatura em questão no ambiente da BrainWalletX, sem que nenhum download seja necessário por parte do agente verificador.

        1>2>3>



      • Coinomi v1.18.7 (LINK)  

        1) Clique em "Bitcoin";
        2) Clique nos três pontos no canto superior direito superior direito;
        3) Clique na opção "Assinar/verificar mensagem (Sign/Verify Message)";
        4) Na tela seguinte preencha o endereço (Endereço para assinar (Address to sign)), a mensagem (Mensagem (Message)) e clique em Assinar(Sign));
        5) Na janela pop-up entre com a senha da carteira e clique em "OK";
        6) A assinatura será exibida no campo Assinatura.

        1>2>3>4>5>6>



      • Coinomi v1.8.5 (LINK)  

        1) Clique em "Bitcoin";
        2) Clique nos três pontos no canto superior direito superior direito;
        3) Clique na opção "Assinar/verificar mensagem (Sign/Verify Message)";
        4) Na tela seguinte preencha o endereço (Endereço para assinar (Address to sign)), a mensagem (Mensagem (Message)) e clique em Assinar(Sign));
        5) Na janela pop-up entre com a senha da carteira e clique em "OK";
        6) A assinatura será exibida no campo Assinatura.

        1>2>3>4>5>6>



      • Electrum v3.3.8 (LINK)  

        1) Clique em Tools > Sign/Verify message...
        2) Entre com a mensagem (Message), o endereço (Address) e clique em Sign
        3) Na janela pop-up que surgir, entre com a senha da carteira no único campo disponível e clique em OK
        4) A assinatura será exibida no campo Signature.

        1>2>3>4>



      • Magnum Wallet dt.21.02.20 (LINK)  

        1) Clique em BTC no menu principal no canto superior esquerdo;
        2) Clique nos três pontos logo abaixo da opção de logout no canto superior direito e escolha a opção (Sign Message);
        3) Na janela que surgir, entre com a mensagem (Message), a senha da carteira (Password) e clique em Sign Message;
        4) Um novo campo surgirá (Signature) contendo a assinatura.

        1>2>3>4>



      • Magnum Wallet v1.0.12 (LINK)  

        1) Clique em "Bitcoin";
        2) Clique nos três pontos no canto superior direito;
        3) No menu que surgir, clique na opção "Sign Message";
        4) Entre com a mensagem (Message), a senha da carteira (Password) e clique em Sign Message.
        5) Um novo campo surgirá (Signature) contendo a assinatura.

        1>2>3>4>5>



      • Mycelium Wallet v3.3.1.1 (LINK)  

        1) Clique em "Conta (Account)";
        2) Selecione a conta desejada e, em seguida, clique no ícone de contexto no canto superior direito;
        3) Nas opções que surgirem, clique em "Assinar mensagem (Sign Message)";
        4) Na tela seguinte escolha qual endereço terá a mensagem assinada;
        5) Na tela seguinte preencha o único campo disponível com a mensagem e clique em Assinar Mensagem (Sign Message);
        6) A assinatura será exibida na parte inferior da tela. Você pode clicar em um dos botões para copiá-la de acordo com o desejado.

        1>2>3>4>5>6>



      • Samourai Wallet v.0.99.88 (LINK)  

        1) Clique em "Show unspent outputs";
        2) Selecione o endereço a ser verificado e em "Sign message";
        3) Entre com a mensagem no campo Message e clique em "Yes" quando concluir;
        4) A assinatura será exibida no campo Entre com a mensagem Signature.



      5. APRESENTAÇÃO  

      Mas como expressar essa assinatura? Basta informá-la sem qualquer vínculo com o endereço? Existe algum padrão para o fornecimento deste tipo de informação? Sim! Existe uma "estrutura padrão" utilizada para a transmissão destas validações e usada até mesmo em algumas ferramentas. Usualmente, aqui no fórum o seguinte modelo é utilizado:

      Code:
      -----BEGIN BITCOIN SIGNED MESSAGE-----

      -----BEGIN SIGNATURE-----


      -----END BITCOIN SIGNED MESSAGE-----

      Alterando-se, logicamente, as 3 informações indicadas (mensagem / endereço / assinatura). Usando o exemplo utilizado anteriormente, teríamos:

      Code:
      -----BEGIN BITCOIN SIGNED MESSAGE-----
      Este é um teste feito por cryptobaboon em uma carteira teste para a comunidade luso-brasileira do Bitcointalk em 16/02/2020.
      This is a test done by cryptobaboon in a test wallet for the portuguese/brazilian community from Bitcointalk on Feb 16, 2020.
      -----BEGIN SIGNATURE-----
      1BRAS1LEnc9tduTm6QT8awP3F5gpHX5KZe
      H/NiN1wzJhrBuHoPV8D8xJNADPZQFAWdns67AS4ttlkXdIsFdHoksQIGZCWt1yjDZK69oeIWfYtYwLRyHgRGdqo=
      -----END BITCOIN SIGNED MESSAGE-----

      IMPORTANTE: Utilize as tags CODE ao invés de QUOTE, isso garante que todas as informações (principalmente referente a mensagem, que usualmente envolve espaço) sejam contabilizadas para a correta verificação da assinatura gerada.



      6. VERIFICANDO UMA ASSINATURA  

      Se há um cálculo para gerar uma assinatura com base em algumas informações, logicamente para fazer a prova real um cálculo inverso também pode ser operado. Felizmente, assim como na ação original, temos ferramentas que possuem módulos de validação destas informações. Esta seção contará com os que consegui testar até o momento, os elecando da mesma forma (nome do app/serviço + versão).

      Seguindo o teste realizado na criação (naqueles onde a importação do endereço foi possível), a assinatura gerada para a mesma composição foi esta:

      Code:
      H/NiN1wzJhrBuHoPV8D8xJNADPZQFAWdns67AS4ttlkXdIsFdHoksQIGZCWt1yjDZK69oeIWfYtYwLRyHgRGdqo=

      Que será utilizada como parâmetro para a devida validação nos procedimentos abaixo.



      • Armory v0.96.5 (LINK)

        1) Clique em Tools > Message Signing/Verification...;
        2) Na janela que surgir, clique na aba Verify Bare Signature
        3) Preencha os campos com os respectivos dados: endereço (Signing Address), mensagem (Signed message), assinatura (Signature) e clique em Verify Signature;
        4) Sendo a assinatura válida, uma mensagem indicando o sucesso (The supplied signature is valid) será exibida.

        1>2>




      • Bitcoin Core v0.19.0.1 (LINK)

        1) Clique em File > Verify Message...
        2) Entre com o endereço a ser assinado (Address), a mensagem (Message) e clique no botão Verify Message.
        3) Sendo a assinatura válida, uma mensagem indicando o sucesso (Message verified.) será exibida.

        1>2>3>



      • Bitcoin Knots v0.19.0.1knots20200104 (LINK)  

        1) Clique em File > Verify Message...
        2) Entre com o endereço a ser assinado (Address), a mensagem (Message) e clique no botão Verify Message.
        3) Sendo a assinatura válida, uma mensagem indicando o sucesso (Message verified.) será exibida.

        1>2>3>



      • Bither v1.4.7 (LINK)

        1) Clique em More... > Verify Message Signature;
        2) Na janela que surgir, clique no endereço desejado;
        3) Preencha os campos adequadamente, com o endereço (Address), a mensagem (Original Message), a assinatura (Signature) e clique em Verify;
        4) Sendo a assinatura válida, uma mensagem indicando o sucesso (Signature is correct) será exibida.

        1>  2>3>



      • Bither v1.8.8 (LINK)

        1) Clique na engrenagem no canto superior direito;
        2) Clique em "Advanced options > Message Signing";
        3) Clique em "Verify Message";
        5) Preencha  (Address), a mensagem (Message), a assinatura (Signature) e clique em Verify;
        6) A confirmação da validade da assinatura será exibida em uma barra de mensagem na parte superior e um marcador verde ao lado do botão Verify.

        1>2> 3>4>5>6>




      • BrainWalletX dt.23.02.20 (LINK)

        1) Clique em Verify no menu superior;
        2) Selecione a opção Bitcoin QT e Verify From;
        3) Na janela que surgir, preencha os campos adequadamente, com o endereço (Address), a mensagem (Message), assinatura (Signature) e clique fora dos campos para que a validação ocorra;
        4) Havendo a validação, uma mensagem será exibida na parte superior da página (Message verified to be from ) seguido pelo permalink para a validação sem que as informações precisem ser entradas novamente).

        1>2>3>4>



      • Coinomi v1.18.7 (LINK)  

        1) Clique em "Bitcoin";
        2) Clique nos três pontos no canto superior direito superior direito;
        3) Clique na opção "Assinar/verificar mensagem (Sign/Verify Message)";
        4) Na tela seguinte preencha o endereço (Endereço para assinar (Address to sign)), a mensagem (Mensagem (Message)), a assinatura (Assinatura (Signature)) e clique em Verificar (Verify);
        5) Uma mensagem será exibida informando a validade da assinatura ("Mensagem verificada");

        1>2>3>4>5>
      Jump to: