Author

Topic: Criação de chaves (Read 413 times)

brand new
Activity: 0
Merit: 0
July 11, 2018, 12:48:00 PM
#18
Uma carteira bitcoin é criada a partir da geração de um hash aleatório de 256bits.

Esse hash é um "cálculo matemático" que pode ser feito de forma online ou offline, o computador só precisa do passo a passo de como fazer esse cálculo. Então, há sim um algoritmo para sua criação.

A partir disso você terá a chave privada da sua carteira, que com outro cálculo irá gerar a sua chave pública e consequentemente o endereço da sua carteira (esse último é o que você divulga para receber bitcoins).

o bitaddress não tem nada a ver com os desenovlvedores do bitcoin, é só mais uma das ferramentas que te auxiliam a criar uma wallet.

Beleza... E como trazer essa utilidade para o seu Site? Assim como a foxbit, quando você vai fazer um depósito em bitcoins ele gera um endereço unico para o qual você deve enviar seus btc e será creditado em sua conta... A fox bit tem acesso a essa carteira e sua chave privada, para que possa movimentar... mas como fazer quase a mesma coisa para um site particular, que gere um novo endereço a cada transação?? Sem utilizar serviços pagos como PicPay

O algoritmo do Bitaddress.org é público.
Se você tiver conhecimento de programação, é só baixar os arquivos do repositório no GitHub (aqui) e fazer os devidos ajustes.

Existe outras ferramentas em diversas linguagens também, só pesquisar o que se encaixa melhor com o seu cenário e adaptar a sua necessidade.

Ele gera novos endereços mas preciso gerar uma entropia para que ele gere os endereços um a um...

O script que iria gerar as chaves publicas e privadas teria que ser armazenado para que pudesse ter acesso a ela depois, espécie de um LOG... É isso?

Entra no site paguecombitcoin.com, quando você vai enviar algum btc pra eles, é gerado um novo endereço a cada vez...
isso que procuro... o que procuro também é ter acesso a esses endereços gerados posteriormente para conseguir movimentar as contas.
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
July 12, 2018, 07:29:40 AM
#17
-snip-

Ele gera novos endereços mas preciso gerar uma entropia para que ele gere os endereços um a um...

O script que iria gerar as chaves publicas e privadas teria que ser armazenado para que pudesse ter acesso a ela depois, espécie de um LOG... É isso?

Entra no site paguecombitcoin.com, quando você vai enviar algum btc pra eles, é gerado um novo endereço a cada vez...
isso que procuro... o que procuro também é ter acesso a esses endereços gerados posteriormente para conseguir movimentar as contas.

Sim, eu entendi e torno a dizer...
No repositório GitHub do BitAddress.org tem o que você precisa.
Por exemplo, o código para geração do endereço é feito com base nos pontos de uma curva elíptica e isos está implementado nesse arquivo
Então, tudo o que você precisa é adaptar esses fontes ao seu projeto e ocultar as chaves privadas do usuário.

Nesse exemplo do BitAddress.org tudo é feito via javascript, mas também existem outras bibliotecas que te permitem desenvolver em PHP por exemplo

Você só vai precisar pesquisar um pouco de acordo com a sua área de conhecimento (linguagem) na qual se sinta mais confortável.
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
July 11, 2018, 08:30:40 AM
#16
Uma carteira bitcoin é criada a partir da geração de um hash aleatório de 256bits.

Esse hash é um "cálculo matemático" que pode ser feito de forma online ou offline, o computador só precisa do passo a passo de como fazer esse cálculo. Então, há sim um algoritmo para sua criação.

A partir disso você terá a chave privada da sua carteira, que com outro cálculo irá gerar a sua chave pública e consequentemente o endereço da sua carteira (esse último é o que você divulga para receber bitcoins).

o bitaddress não tem nada a ver com os desenovlvedores do bitcoin, é só mais uma das ferramentas que te auxiliam a criar uma wallet.

Beleza... E como trazer essa utilidade para o seu Site? Assim como a foxbit, quando você vai fazer um depósito em bitcoins ele gera um endereço unico para o qual você deve enviar seus btc e será creditado em sua conta... A fox bit tem acesso a essa carteira e sua chave privada, para que possa movimentar... mas como fazer quase a mesma coisa para um site particular, que gere um novo endereço a cada transação?? Sem utilizar serviços pagos como PicPay

O algoritmo do Bitaddress.org é público.
Se você tiver conhecimento de programação, é só baixar os arquivos do repositório no GitHub (aqui) e fazer os devidos ajustes.

Existe outras ferramentas em diversas linguagens também, só pesquisar o que se encaixa melhor com o seu cenário e adaptar a sua necessidade.
member
Activity: 266
Merit: 12
June 22, 2018, 11:20:35 AM
#15

Nao é exatamente isso, como se ele registrasse a private key que ja escolheu e marcasse para nunca mais escolher, se fosse isso nao teria como ser offline, ele teria que transmitir isso pra algum lugar e registrar, logo nao seria segura.
Simplesmente ele gera com algo de aleatoriedade, em teoria, ele ate poderia gerar a mesma private key, mas a chance de isso ocorrer seria 1 em 1 quindecilhão(10^48), numero este, que um ser humano comum nao tem minima ideia da dimensao visto que nada conhecido nao chega nem perto nesse numero.
Tem um video que explica que mesmo que todas as 7 bilhoes de pessoas no mundo ficassem criando o dia todo ou tivesse algoritimo pra criar 1 bilhao de carteira por dia cada uma, mesmo em 1 bilhao de anos nao teria chegado nem perto da possibilidade de ter caido na mesma privatekey:
https://www.youtube.com/watch?v=ZloHVKk7DHk

So viajando um pouco seria algo como, mesmo quando a terra foi criada a bilhoes de anos atras, se tivesse alguem rodando um script do bitadress da vida e estivesse gerando 1 bilhao de carteiras por dia, estaria ate hoje fazendo isso e nao teria saida uma private key igual e nao estaria nem perto de conseguir.

So pra ter ideia, um jogo de carta de baralho com 52 cartas diferentes, nunca sai a mesma sequencia quando vc embaralha pq é 52!(fatorial). Aqui tem outro video bem interessante disso: https://www.youtube.com/watch?v=T69cguFzZ_w

Primeiro, não me importo que esse post foi comentando a mais de 120 dias, acho que isso não é algo errado, e tão pouco infringe as regras né?

Lendo esse post eu fiquei pensando, e minha cabeça começou a doer hahahha, é incrível, quando damos um zoom, e olhamos para estruturas complexas, e vemos quanto elas podem ser muito mais interessantes, cara, o bitcoin é algo incrível, não tem como, não ser, é o mixe da matemática, com programação, uma combinação dessa poderia dar errado?
Acho que não.
legendary
Activity: 2296
Merit: 1170
Advertise Here - PM for more info!
December 19, 2017, 03:02:27 PM
#14
Eu acredito que são usados 2 números primos absurdamentes grandes para a realização de um cálculo,

a aleatoriedade precisa ser gerada para escolher esses números primos.

o uso de 2 primos grandes é o algoritmo de RSA (o primeiro algoritmo de chave publica criado pelo Ron Rivest, Adi Shamir, e Leonard Adleman. O bitcoin usa um algoritmo mais moderno, que permite o uso de chaves menores com a mesma segurança: ECDSA (Algoritmo de Assinaturas Digitais por Curvas Elipticas). Nesse caso vc precisa apenas de um número aleatório como chave privada, e a projeção dele na curva (algo como vc percorrer a curva por uma distância correspondente a multiplicação desse número aleatório pelo valor de um ponto inicial) é sua chave publica. A idéia é que multiplicar um ponto na curva é muito mais fácil do que encontrar um ponto a partir do resultado da multiplicação. Com curvas e valores aleatórios bem grandes vc garante a impossibilidade de reverter o algoritmo.

Como eu faço para colocar essa explicação na minha assinatura?  Grin

Copia e cola.

Tentei mas estoura o número máximo de caracteres...  Grin

Ai ficou sem solução!
jr. member
Activity: 80
Merit: 1
December 19, 2017, 02:27:14 PM
#13
Eu acredito que são usados 2 números primos absurdamentes grandes para a realização de um cálculo,

a aleatoriedade precisa ser gerada para escolher esses números primos.

o uso de 2 primos grandes é o algoritmo de RSA (o primeiro algoritmo de chave publica criado pelo Ron Rivest, Adi Shamir, e Leonard Adleman. O bitcoin usa um algoritmo mais moderno, que permite o uso de chaves menores com a mesma segurança: ECDSA (Algoritmo de Assinaturas Digitais por Curvas Elipticas). Nesse caso vc precisa apenas de um número aleatório como chave privada, e a projeção dele na curva (algo como vc percorrer a curva por uma distância correspondente a multiplicação desse número aleatório pelo valor de um ponto inicial) é sua chave publica. A idéia é que multiplicar um ponto na curva é muito mais fácil do que encontrar um ponto a partir do resultado da multiplicação. Com curvas e valores aleatórios bem grandes vc garante a impossibilidade de reverter o algoritmo.

Como eu faço para colocar essa explicação na minha assinatura?  Grin

Copia e cola.

Tentei mas estoura o número máximo de caracteres...  Grin
legendary
Activity: 2296
Merit: 1170
Advertise Here - PM for more info!
December 17, 2017, 03:36:03 PM
#12
Entendi, to muito novo ainda nesse mundo complexo da computação, to terminando a faculdade em 2018.

Acreditam que a computação quântica possa ser capas de acabar com esses modelos de criptografia ?

Tem várias discussões anteriores sobre isso. Mas em resumo:

1- Das 3 funções criptograficas usadas no bitcoin (sha256, ripemd160 e ECDSA) apenas a ECDSA é vulnerável a computação quantica.
2- É relativamente simples (ainda mais agora com segwitt) trocar o algoritmo de assinatura (DSA) do bitcoin. Basta um Soft fork (mienradores começarem a aceitar o novo algoritmo).
3- Mesmo com ECDSA, so está vulnerável quem reutiliza o mesmo endereço em várias transações. Os endereços publicados na blockchain usam uma camada extra de ripemd em cima do ECDSA, então apenas após realizar uma assinatura (o que só acontece no momento de gastar e nao no momento de receber) é possível saber a chave publica.
newbie
Activity: 17
Merit: 0
December 16, 2017, 05:40:55 PM
#11
Entendi, to muito novo ainda nesse mundo complexo da computação, to terminando a faculdade em 2018.

Acreditam que a computação quântica possa ser capas de acabar com esses modelos de criptografia ?
legendary
Activity: 2296
Merit: 1170
Advertise Here - PM for more info!
December 16, 2017, 01:54:51 PM
#10
Eu acredito que são usados 2 números primos absurdamentes grandes para a realização de um cálculo,

a aleatoriedade precisa ser gerada para escolher esses números primos.

o uso de 2 primos grandes é o algoritmo de RSA (o primeiro algoritmo de chave publica criado pelo Ron Rivest, Adi Shamir, e Leonard Adleman. O bitcoin usa um algoritmo mais moderno, que permite o uso de chaves menores com a mesma segurança: ECDSA (Algoritmo de Assinaturas Digitais por Curvas Elipticas). Nesse caso vc precisa apenas de um número aleatório como chave privada, e a projeção dele na curva (algo como vc percorrer a curva por uma distância correspondente a multiplicação desse número aleatório pelo valor de um ponto inicial) é sua chave publica. A idéia é que multiplicar um ponto na curva é muito mais fácil do que encontrar um ponto a partir do resultado da multiplicação. Com curvas e valores aleatórios bem grandes vc garante a impossibilidade de reverter o algoritmo.

Como eu faço para colocar essa explicação na minha assinatura?  Grin

Copia e cola.
jr. member
Activity: 80
Merit: 1
December 16, 2017, 10:59:39 AM
#9
Eu acredito que são usados 2 números primos absurdamentes grandes para a realização de um cálculo,

a aleatoriedade precisa ser gerada para escolher esses números primos.

o uso de 2 primos grandes é o algoritmo de RSA (o primeiro algoritmo de chave publica criado pelo Ron Rivest, Adi Shamir, e Leonard Adleman. O bitcoin usa um algoritmo mais moderno, que permite o uso de chaves menores com a mesma segurança: ECDSA (Algoritmo de Assinaturas Digitais por Curvas Elipticas). Nesse caso vc precisa apenas de um número aleatório como chave privada, e a projeção dele na curva (algo como vc percorrer a curva por uma distância correspondente a multiplicação desse número aleatório pelo valor de um ponto inicial) é sua chave publica. A idéia é que multiplicar um ponto na curva é muito mais fácil do que encontrar um ponto a partir do resultado da multiplicação. Com curvas e valores aleatórios bem grandes vc garante a impossibilidade de reverter o algoritmo.

Como eu faço para colocar essa explicação na minha assinatura?  Grin
legendary
Activity: 2296
Merit: 1170
Advertise Here - PM for more info!
December 15, 2017, 08:55:33 PM
#8
Eu acredito que são usados 2 números primos absurdamentes grandes para a realização de um cálculo,

a aleatoriedade precisa ser gerada para escolher esses números primos.

o uso de 2 primos grandes é o algoritmo de RSA (o primeiro algoritmo de chave publica criado pelo Ron Rivest, Adi Shamir, e Leonard Adleman. O bitcoin usa um algoritmo mais moderno, que permite o uso de chaves menores com a mesma segurança: ECDSA (Algoritmo de Assinaturas Digitais por Curvas Elipticas). Nesse caso vc precisa apenas de um número aleatório como chave privada, e a projeção dele na curva (algo como vc percorrer a curva por uma distância correspondente a multiplicação desse número aleatório pelo valor de um ponto inicial) é sua chave publica. A idéia é que multiplicar um ponto na curva é muito mais fácil do que encontrar um ponto a partir do resultado da multiplicação. Com curvas e valores aleatórios bem grandes vc garante a impossibilidade de reverter o algoritmo.
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
December 15, 2017, 02:44:07 PM
#7
Eu acredito que são usados 2 números primos absurdamentes grandes para a realização de um cálculo,

a aleatoriedade precisa ser gerada para escolher esses números primos.

A geração de uma private key forte deve partir sempre da ECDSA (Elliptic Curve Digital Signature), então mistura-se com algoritmo SHA-256 e RIPEMD160.
Tem "algumas" regrinhas de validação nesse processo todo, mas eu nunca me aprofundei no assunto.
newbie
Activity: 17
Merit: 0
December 15, 2017, 02:11:17 PM
#6
Eu acredito que são usados 2 números primos absurdamentes grandes para a realização de um cálculo,

a aleatoriedade precisa ser gerada para escolher esses números primos.
full member
Activity: 518
Merit: 147
December 03, 2017, 06:11:21 AM
#5
Uma carteira bitcoin é criada a partir da geração de um hash aleatório de 256bits.

Esse hash é um "cálculo matemático" que pode ser feito de forma online ou offline, o computador só precisa do passo a passo de como fazer esse cálculo. Então, há sim um algoritmo para sua criação.

A partir disso você terá a chave privada da sua carteira, que com outro cálculo irá gerar a sua chave pública e consequentemente o endereço da sua carteira (esse último é o que você divulga para receber bitcoins).

o bitaddress não tem nada a ver com os desenovlvedores do bitcoin, é só mais uma das ferramentas que te auxiliam a criar uma wallet.

Complementando, a aleatoriedade dessa algoritmo faz com que duas pessoas não geram a mesma chave privada. De maneira simples, todas as chaves privadas já existem, o algoritmo escolhe uma dentre elas pra você, mas nunca vai escolher a mesma pra duas pessoas diferentes.

Nao é exatamente isso, como se ele registrasse a private key que ja escolheu e marcasse para nunca mais escolher, se fosse isso nao teria como ser offline, ele teria que transmitir isso pra algum lugar e registrar, logo nao seria segura.
Simplesmente ele gera com algo de aleatoriedade, em teoria, ele ate poderia gerar a mesma private key, mas a chance de isso ocorrer seria 1 em 1 quindecilhão(10^48), numero este, que um ser humano comum nao tem minima ideia da dimensao visto que nada conhecido nao chega nem perto nesse numero.
Tem um video que explica que mesmo que todas as 7 bilhoes de pessoas no mundo ficassem criando o dia todo ou tivesse algoritimo pra criar 1 bilhao de carteira por dia cada uma, mesmo em 1 bilhao de anos nao teria chegado nem perto da possibilidade de ter caido na mesma privatekey:
https://www.youtube.com/watch?v=ZloHVKk7DHk

So viajando um pouco seria algo como, mesmo quando a terra foi criada a bilhoes de anos atras, se tivesse alguem rodando um script do bitadress da vida e estivesse gerando 1 bilhao de carteiras por dia, estaria ate hoje fazendo isso e nao teria saida uma private key igual e nao estaria nem perto de conseguir.

So pra ter ideia, um jogo de carta de baralho com 52 cartas diferentes, nunca sai a mesma sequencia quando vc embaralha pq é 52!(fatorial). Aqui tem outro video bem interessante disso: https://www.youtube.com/watch?v=T69cguFzZ_w

Acho que você não entendeu a analogia que utilizei para tornar fácil o entendimento. Quando digo que ele nunca vai escolher a mesma chave para duas pessoas, estou me referindo justamente a aleatoriedade do algoritmo que citei na frase anterior, não disse que ele tem um banco de dados onde todas as já criadas estão registradas.
full member
Activity: 504
Merit: 122
December 02, 2017, 09:14:06 PM
#4
Uma carteira bitcoin é criada a partir da geração de um hash aleatório de 256bits.

Esse hash é um "cálculo matemático" que pode ser feito de forma online ou offline, o computador só precisa do passo a passo de como fazer esse cálculo. Então, há sim um algoritmo para sua criação.

A partir disso você terá a chave privada da sua carteira, que com outro cálculo irá gerar a sua chave pública e consequentemente o endereço da sua carteira (esse último é o que você divulga para receber bitcoins).

o bitaddress não tem nada a ver com os desenovlvedores do bitcoin, é só mais uma das ferramentas que te auxiliam a criar uma wallet.

Complementando, a aleatoriedade dessa algoritmo faz com que duas pessoas não geram a mesma chave privada. De maneira simples, todas as chaves privadas já existem, o algorismo escolhe uma dentre elas pra você, mas nunca vai escolher a mesma pra duas pessoas diferentes.

Nao é exatamente isso, como se ele registrasse a private key que ja escolheu e marcasse para nunca mais escolher, se fosse isso nao teria como ser offline, ele teria que transmitir isso pra algum lugar e registrar, logo nao seria segura.
Simplesmente ele gera com algo de aleatoriedade, em teoria, ele ate poderia gerar a mesma private key, mas a chance de isso ocorrer seria 1 em 1 quindecilhão(10^48), numero este, que um ser humano comum nao tem minima ideia da dimensao visto que nada conhecido nao chega nem perto nesse numero.
Tem um video que explica que mesmo que todas as 7 bilhoes de pessoas no mundo ficassem criando o dia todo ou tivesse algoritimo pra criar 1 bilhao de carteira por dia cada uma, mesmo em 1 bilhao de anos nao teria chegado nem perto da possibilidade de ter caido na mesma privatekey:
https://www.youtube.com/watch?v=ZloHVKk7DHk

So viajando um pouco seria algo como, mesmo quando a terra foi criada a bilhoes de anos atras, se tivesse alguem rodando um script do bitadress da vida e estivesse gerando 1 bilhao de carteiras por dia, estaria ate hoje fazendo isso e nao teria saida uma private key igual e nao estaria nem perto de conseguir.

So pra ter ideia, um jogo de carta de baralho com 52 cartas diferentes, nunca sai a mesma sequencia quando vc embaralha pq é 52!(fatorial). Aqui tem outro video bem interessante disso: https://www.youtube.com/watch?v=T69cguFzZ_w
full member
Activity: 518
Merit: 147
November 27, 2017, 03:18:58 PM
#3
Uma carteira bitcoin é criada a partir da geração de um hash aleatório de 256bits.

Esse hash é um "cálculo matemático" que pode ser feito de forma online ou offline, o computador só precisa do passo a passo de como fazer esse cálculo. Então, há sim um algoritmo para sua criação.

A partir disso você terá a chave privada da sua carteira, que com outro cálculo irá gerar a sua chave pública e consequentemente o endereço da sua carteira (esse último é o que você divulga para receber bitcoins).

o bitaddress não tem nada a ver com os desenovlvedores do bitcoin, é só mais uma das ferramentas que te auxiliam a criar uma wallet.

Complementando, a aleatoriedade dessa algoritmo faz com que duas pessoas não geram a mesma chave privada. De maneira simples, todas as chaves privadas já existem, o algoritmo escolhe uma dentre elas pra você, mas nunca vai escolher a mesma pra duas pessoas diferentes.
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
November 27, 2017, 03:00:46 PM
#2
Uma carteira bitcoin é criada a partir da geração de um hash aleatório de 256bits.

Esse hash é um "cálculo matemático" que pode ser feito de forma online ou offline, o computador só precisa do passo a passo de como fazer esse cálculo. Então, há sim um algoritmo para sua criação.

A partir disso você terá a chave privada da sua carteira, que com outro cálculo irá gerar a sua chave pública e consequentemente o endereço da sua carteira (esse último é o que você divulga para receber bitcoins).

o bitaddress não tem nada a ver com os desenovlvedores do bitcoin, é só mais uma das ferramentas que te auxiliam a criar uma wallet.
newbie
Activity: 8
Merit: 0
November 27, 2017, 11:33:47 AM
#1
Galera, Boa tarde!

Apenas por questoes de curiosidade, Como é a arquitetura de criação de chaves do bitcoin?

Temos por exemplo o site bitaddress, que gera as chaves para nossas carteiras... Mas vejo pessoas falando em gerar carteiras desconectados da internet. Como isso é possível? Não é um "serviço/servidor" que devolve as chaves geradas?

Esse site bitaddress é de domínio dos desenvolvedores do bitcoin? ou apenas acessa serviços publicados por ele? Qualquer um pode acessar esses serviço?

Minha principal dúvida, é possivel gerar chaves publicas e privadas localmente/offline? como isso é possivel sem possuir o algoritmo de criação?
Jump to: