Pages:
Author

Topic: Como usar paper wallet? (Read 12818 times)

hero member
Activity: 882
Merit: 1000
It's got electrolytes
September 17, 2014, 04:18:40 PM
#22
[...]
Fiz um programinha para brincar com essa situação.
[...]


Você não é normal não meu amigo Grin seu dia deve ter mais que 24h kkk  Cheesy
staff
Activity: 1286
Merit: 1085
September 17, 2014, 11:07:56 AM
#21
[...]

nuss! Seria fácil? Eu nem saberia nem por onde começar Embarrassed

Na verdade, acho que eu iria começar tentando com final 00000, depois iria incrementando 00001, etc, até ZZZZZ... mas iria demorar uns milhões de anos manualmente... Cry

Eu faria isso também, já que são 58 caracteres por posição e 5 posições, dariam 58^5 combinações = 656,356,768 tentativas, e em cada tentativa eu desconstruiria o base58 e faria a verificação do checksum da privkey, isso executa muito rápido.
Eu acho que levaria mais tempo pra escrever o programa do que pra executá-lo, e olha que são só 5 loops aninhados, umas 20 ou 30 linhas de código.

É uma pena que os programadores Brasileiros não estejam se interessando muito pelo Bitcoin pois só os programadores podem realmente contemplar a beleza desse software.

Fiz um programinha para brincar com essa situação. Não manjo muito de python, então se alguém tiver alguma crítica ou sugestão fico feliz em escutar.

Além do que vocês já comentaram, estou embaralhando os caracteres válidos apenas para não seguir sequencialmente (a vantagem é que podemos contar com a sorte para acelerar o processo, a desvantagem é que seria necessário gravar a ordem parar reiniciar o processamento em caso de eventual interrupção).

O programa utiliza uma função recursiva para permitir qualquer número de caracteres faltando no final da chave privada. O número de processos concorrentes é definido na linha
Code:
pool = Pool(2)
Para melhor performance sugiro utilizar o número de cores do equipamento onde será executado.

Coloquei o programinha agora para rodar, como utiliza apenas CPU deve demorar um tempo razoável para identificar a chave correta.

Code:
#!/usr/bin/python

import hashlib, binascii, random
from multiprocessing import Pool

t='123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
x='5JxQMrZfkuGKJTupDYUqjziwqdsPLtm94LdPChskdVdM'

def check(privKey):
  if(len(privKey) < 51):
    for n in random.sample(t, len(t)):
      if(check(privKey+n)):
        return True
  else:
    if(validwif(privKey)):
      print privKey
      return True
   
def numtowif(numpriv):
 step1 = '80'+hex(numpriv)[2:].strip('L').zfill(64)
 step2 = hashlib.sha256(binascii.unhexlify(step1)).hexdigest()
 step3 = hashlib.sha256(binascii.unhexlify(step2)).hexdigest()
 step4 = int(step1 + step3[:8] , 16)
 return ''.join([t[step4/(58**l)%58] for l in range(100)])[::-1].lstrip('1')

def wiftonum(wifpriv):
 return sum([t.index(wifpriv[::-1][l])*(58**l) for l in range(len(wifpriv))])/(2**32)%(2**256)

def validwif(wifpriv):
 return numtowif(wiftonum(wifpriv))==wifpriv

if(__name__ == '__main__'):
  if(len(x) < 51):
    pool = Pool(2)
    for n in random.sample(t, len(t)):
      pool.map(check, [x+n])
    pool.close
    pool.join
  else:
    check(x)

Para quem quiser informações adicionais, sugiro dar uma olhada em

https://en.bitcoin.it/wiki/Private_key
https://en.bitcoin.it/wiki/Wallet_import_format


Abraço,

Adriano
hero member
Activity: 882
Merit: 1000
It's got electrolytes
September 17, 2014, 01:26:18 AM
#20
Agora, em relação às paperwallets. Não vejo muita necessidade de que fiquem com um acabamento perfeito, coloridas, etc. O importante é a chave privada e pública estarem claramente impressas e, mais importante, que seja guardada com segurança, e com "backup" (a não ser que a intenção seja presentear alguém... aí sim, vale a pena enfeitar o pavão - e não guardar backup hehe).

Digo isso porque a paperwallet tem uma função específica: SEGURANÇA

Falou tudo !  Wink
member
Activity: 71
Merit: 10
September 16, 2014, 09:36:14 AM
#19
[...]

nuss! Seria fácil? Eu nem saberia nem por onde começar Embarrassed

Na verdade, acho que eu iria começar tentando com final 00000, depois iria incrementando 00001, etc, até ZZZZZ... mas iria demorar uns milhões de anos manualmente... Cry

Eu faria isso também, já que são 58 caracteres por posição e 5 posições, dariam 58^5 combinações = 656,356,768 tentativas, e em cada tentativa eu desconstruiria o base58 e faria a verificação do checksum da privkey, isso executa muito rápido.
Eu acho que levaria mais tempo pra escrever o programa do que pra executá-lo, e olha que são só 5 loops aninhados, umas 20 ou 30 linhas de código.

É uma pena que os programadores Brasileiros não estejam se interessando muito pelo Bitcoin pois só os programadores podem realmente contemplar a beleza desse software.

 Grin pelo visto, até que não estou tão mal pra me tornar hacker também Wink

Agora, em relação às paperwallets. Não vejo muita necessidade de que fiquem com um acabamento perfeito, coloridas, etc. O importante é a chave privada e pública estarem claramente impressas e, mais importante, que seja guardada com segurança, e com "backup" (a não ser que a intenção seja presentear alguém... aí sim, vale a pena enfeitar o pavão - e não guardar backup hehe).

Digo isso porque a paperwallet tem uma função específica: SEGURANÇA

Já vi alguns trabalhos "decorativos" feitos com base na idéia das paperwallets (aqui tem um post sobre isso), mas nesse caso, não se trata bem de "paper wallet" já que ninguém vai incluir as chaves privadas em algo que vai ficar exposto, mas tão somente os endereços.
hero member
Activity: 882
Merit: 1000
It's got electrolytes
September 15, 2014, 05:50:08 PM
#18
[...]

nuss! Seria fácil? Eu nem saberia nem por onde começar Embarrassed

Na verdade, acho que eu iria começar tentando com final 00000, depois iria incrementando 00001, etc, até ZZZZZ... mas iria demorar uns milhões de anos manualmente... Cry

Eu faria isso também, já que são 58 caracteres por posição e 5 posições, dariam 58^5 combinações = 656,356,768 tentativas, e em cada tentativa eu desconstruiria o base58 e faria a verificação do checksum da privkey, isso executa muito rápido.
Eu acho que levaria mais tempo pra escrever o programa do que pra executá-lo, e olha que são só 5 loops aninhados, umas 20 ou 30 linhas de código.

É uma pena que os programadores Brasileiros não estejam se interessando muito pelo Bitcoin pois só os programadores podem realmente contemplar a beleza desse software.
member
Activity: 71
Merit: 10
September 15, 2014, 12:56:16 PM
#17
Puxa, faltou só um pedacinho da chave privada... podia colocar uns 0.01 BTC no endereço e ver qto tempo demora para alguém quebrar a chave via brute force, hehehe

Hahaha Grin seria bem interessante, pelo menos veríamos o pessoal se agitando pra tentar entender os detalhes técnicos do Bitcoin, como a construção do address e do PrivKey/WIP.

E essa bruteforce seria bem facil pq faltam só umas 5 letras aí.

nuss! Seria fácil? Eu nem saberia nem por onde começar Embarrassed

Na verdade, acho que eu iria começar tentando com final 00000, depois iria incrementando 00001, etc, até ZZZZZ... mas iria demorar uns milhões de anos manualmente... Cry
hero member
Activity: 882
Merit: 1000
It's got electrolytes
September 15, 2014, 08:25:54 AM
#16
Puxa, faltou só um pedacinho da chave privada... podia colocar uns 0.01 BTC no endereço e ver qto tempo demora para alguém quebrar a chave via brute force, hehehe

Hahaha Grin seria bem interessante, pelo menos veríamos o pessoal se agitando pra tentar entender os detalhes técnicos do Bitcoin, como a construção do address e do PrivKey/WIP.

E essa bruteforce seria bem facil pq faltam só umas 5 letras aí.
member
Activity: 137
Merit: 10
September 12, 2014, 08:51:20 PM
#15
OK, já descobri qual era o problema. A imagem ficava toda errada no Firefox. Usei internet explorer e tudo deu certo.
member
Activity: 137
Merit: 10
September 12, 2014, 07:30:21 PM
#14
Mas no próprio site a imagem aparece desse jeito, com o endereço fora do lugar. Vai lá no site e de uma conferida.

https://www.offlineaddress.com/
member
Activity: 63
Merit: 10
September 12, 2014, 06:43:02 PM
#13
Grandes dicas! Quero aproveitar o tópico para dizer que também encontrei esse site aqui https://www.offlineaddress.com/ que já funciona mo modo offline. O problema é que quando vou imprimir as notas o endereço acaba ficando para fora da nota, só metade é impressa. vejam na imagem :
http://www.imagebam.com/image/50538a350832761

O endereço não fica dentro da nota. É assim mesmo?

O endereço está totalmente fora da "centralização". Isso não está certo. Acho que deve ser algum erro de configuração (tamanho do papel, impressora, etc.). Tenta mexer aí nessas configurações da sua impressora, você deve encontrar a configuração ideal.

Abraços.
staff
Activity: 1286
Merit: 1085
September 12, 2014, 06:20:33 PM
#12
Fui usar o  vanitygen, porque acredito que criar meu próprio cartão num programa offline é mais seguro que usar um site. Abri o arquivo rar e apareceram varios arquivos, cliquei em cada um deles mas nada aconteceu. Não abriu programa nenhum, nem linha de comando, nada acontece. o que pode ser?

Você precisa acionar o exe em modo terminal (no windows pelo cmd).
O download do exe: https://github.com/downloads/samr7/vanitygen/vanitygen-0.22-win.zip

É um modo mais avançado de trabalhar (modo rustico, badass  Grin), mas só recomendo se vc já se sente confortável com um prompt, se não for o caso então terá dificuldade, mas pode ser interessante o aprendizado.



Também pode usar o bitaddress.org offline, é só salvar o html.

Puxa, faltou só um pedacinho da chave privada... podia colocar uns 0.01 BTC no endereço e ver qto tempo demora para alguém quebrar a chave via brute force, hehehe
member
Activity: 137
Merit: 10
September 12, 2014, 12:18:11 PM
#11
Grandes dicas! Quero aproveitar o tópico para dizer que também encontrei esse site aqui https://www.offlineaddress.com/ que já funciona mo modo offline. O problema é que quando vou imprimir as notas o endereço acaba ficando para fora da nota, só metade é impressa. vejam na imagem :
http://www.imagebam.com/image/50538a350832761

O endereço não fica dentro da nota. É assim mesmo?
hero member
Activity: 882
Merit: 1000
It's got electrolytes
September 12, 2014, 06:06:47 AM
#10
Fui usar o  vanitygen, porque acredito que criar meu próprio cartão num programa offline é mais seguro que usar um site. Abri o arquivo rar e apareceram varios arquivos, cliquei em cada um deles mas nada aconteceu. Não abriu programa nenhum, nem linha de comando, nada acontece. o que pode ser?

Você precisa acionar o exe em modo terminal (no windows pelo cmd).
O download do exe: https://github.com/downloads/samr7/vanitygen/vanitygen-0.22-win.zip

É um modo mais avançado de trabalhar (modo rustico, badass  Grin), mas só recomendo se vc já se sente confortável com um prompt, se não for o caso então terá dificuldade, mas pode ser interessante o aprendizado.



Também pode usar o bitaddress.org offline, é só salvar o html.
member
Activity: 63
Merit: 10
September 12, 2014, 03:54:40 AM
#9
Fui usar o  vanitygen, porque acredito que criar meu próprio cartão num programa offline é mais seguro que usar um site. Abri o arquivo rar e apareceram varios arquivos, cliquei em cada um deles mas nada aconteceu. Não abriu programa nenhum, nem linha de comando, nada acontece. o que pode ser?


Nunca usei vanitgen. Mas funciona usar o www.bitaddress.org offline (aliás, essa é a forma recomendada): É só salvar a página web e abrir no computador offline o arquivo html salvo.
newbie
Activity: 13
Merit: 0
September 11, 2014, 05:08:45 PM
#8
Fui usar o  vanitygen, porque acredito que criar meu próprio cartão num programa offline é mais seguro que usar um site. Abri o arquivo rar e apareceram varios arquivos, cliquei em cada um deles mas nada aconteceu. Não abriu programa nenhum, nem linha de comando, nada acontece. o que pode ser?
staff
Activity: 1286
Merit: 1085
September 10, 2014, 06:15:24 PM
#7
Agora eu entendi. Quer dizer que depois de pronto o cartão, basta digitar o endereço ou fazer a leitura do QrCode. Mas realmente, se é assim ele não serve de nada já que vou acabar armazenando a chave privada no computador de qualquer jeito. E se eu importar só a chave pública?

Dá uma olhada nessa resposta: https://bitcointalksearch.org/topic/m.6548723

Enquanto os bitcoins estão armazenados na paper wallet eles estão seguros pois a chave privada nunca esteve na internet (desde que a paper wallet seja gerada corretamente).

você pode receber quantas transações quiser nesse endereço com toda a segurança que a paper wallet lhe propicia.

Quando você quiser gastar algo daquele endereço você será obrigado a importar a chave privada, nesse momento é recomendado que você gaste todos os bitcoins que a mesma possuir, da seguinte maneira:

- envie a quantidade que deseja gastar para o destinatário;
- envie o "troco" para uma nova paper wallet, garantindo que os bitcoins continuem em um endereço que nunca teve sua chave privada na internet.

Sobre sua questão de "importar a chave pública", o mais próximo disso é importar como "watch-only" ou seja, o seu aplicativo vai verificar as movimentações do endereço, mas não permite gastá-lo pois apenas a chave privada permite isto.


Dá uma boa lida nos tópicos que foram comentados acima pois eles trazem outros exemplos e dúvidas a respeito.

Abraço,


Adriano
newbie
Activity: 13
Merit: 0
September 10, 2014, 05:24:13 PM
#6
Agora eu entendi. Quer dizer que depois de pronto o cartão, basta digitar o endereço ou fazer a leitura do QrCode. Mas realmente, se é assim ele não serve de nada já que vou acabar armazenando a chave privada no computador de qualquer jeito. E se eu importar só a chave pública?
sr. member
Activity: 308
Merit: 250
September 10, 2014, 04:24:21 PM
#5
hero member
Activity: 882
Merit: 1000
It's got electrolytes
September 10, 2014, 03:16:31 PM
#4
Mas você não respondeu, como eu faço para usar. Quando eu for importar devo digitar todo o adress impresso no cartão? Ou qual outra forma de fazer isso? E uma vez importando a chave privada não fica armazenada no computador de qualquer jeito?

Você pode digitar ou usar um leitor QrCode (caso tenha o qrcode impresso).
No linux há leitores Qr muito bons, e no windows eu uso o QuickMark

Uma vez importada a privkey, ela passa a fazer parte da carteira do software, e na minha opinião perde toda a utilidade como "paper-wallet", já que a principal função da paper-wallet é manter a privkey fora do computador, e assim longe das ameaças virtuais.
newbie
Activity: 13
Merit: 0
September 10, 2014, 03:05:30 PM
#3
Mas você não respondeu, como eu faço para usar. Quando eu for importar devo digitar todo o adress impresso no cartão? Ou qual outra forma de fazer isso? E uma vez importando a chave privada não fica armazenada no computador de qualquer jeito?
Pages:
Jump to: