Bitcoin Forum
November 20, 2019, 10:15:54 AM *
News: Help collect the most notable posts made over the last 10 years.
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Dúvidas sobre os novos formatos de privkeys em segwit do bitcoin core e Electrum  (Read 127 times)
Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 854
Merit: 391


I love Bitcoin!


View Profile WWW
March 19, 2018, 09:04:47 PM
 #1

  Essa questão de suporte do segwit no bitcoin core e da Electrum ficarão muito confusas, primeiro: as chaves privadas WIF dos endereços segwit (tanto em p2sh-segwit quanto bech32) gerados na Electrum só são reconhecidos na Electrum, nenhuma outra wallet reconhece as chaves desses endereços segwit em formato WIF, nem mesmo o bitcoin core. Segundo: o bitcoin core tem suporte a ambos tipos de endereços segwit: p2sh-segwit e bech32, porem se exportar as chaves desses endereços com dumpprivkey é mostrado a chave privada do endereço segwit, porém quando importo essa chave em outra carteira, como na electrum, em "endereços" é mostrado o endereço legacy, ou seja, a chave exportada do endereço p2sh-segwit é na verdade uma chave de um endereço legacy. Então quer dizer que se eu tiver fundos no bitcoin core wallet em segwit, eu só posso gastar nessa carteira? por exemplo, se a blockchain craschar eu vou ter que esperar baixar toda a blockchain para gastar os fundos em endereços segwit? pois as chaves privadas dos endereços legacy, p2sh-segwit e bech32 são todas as mesmas chaves privadas (legacy) enquanto a Electrum possui seu próprio formato WIF dessas chaves segwit... Electrum pelo menos é menos pior e parece ser a wallet que tem o suporte mais completo do SegWit, pois além de não precisar baixar toda a blockchain, tem seu próprio formato WIF das privkey em SegWit...

 Quem conseguir solucionar a minha dúvida doarei alguns sMerits
1574244954
Hero Member
*
Offline Offline

Posts: 1574244954

View Profile Personal Message (Offline)

Ignore
1574244954
Reply with quote  #2

1574244954
Report to moderator
1574244954
Hero Member
*
Offline Offline

Posts: 1574244954

View Profile Personal Message (Offline)

Ignore
1574244954
Reply with quote  #2

1574244954
Report to moderator
The Bitcoin Forum is turning 10 years old! Join the community in sharing and exploring the notable posts made over the years.
Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 854
Merit: 391


I love Bitcoin!


View Profile WWW
March 19, 2018, 09:52:19 PM
 #2

 Para quem não está entendendo, quero saber se tem como converter a chave privada de um endereço segwit exportada no bitcoin core para o formato WIF que a electrum aceita, visto que a electrum tem seu próprio formato de chaves privadas segwit, objetivo: se eu quiser importar uma chave privada de um endereço segwit do btc core para a Electrum e vice-versa.

Vi também que cada endereço segwit tem um redeem script, será que esse redeem script é necessário para fazer isso, ou resgatar fundos de um endereço segwit caso a outra carteira não reconheça as chaves privadas do formato da Electrum?
bitmover
Hero Member
*****
Offline Offline

Activity: 672
Merit: 1117



View Profile
March 19, 2018, 11:12:01 PM
 #3

Para quem não está entendendo, quero saber se tem como converter a chave privada de um endereço segwit exportada no bitcoin core para o formato WIF que a electrum aceita, visto que a electrum tem seu próprio formato de chaves privadas segwit, objetivo: se eu quiser importar uma chave privada de um endereço segwit do btc core para a Electrum e vice-versa.

Vi também que cada endereço segwit tem um redeem script, será que esse redeem script é necessário para fazer isso, ou resgatar fundos de um endereço segwit caso a outra carteira não reconheça as chaves privadas do formato da Electrum?


Olha, eu nunca usei electrum nem core. Eu uso samourai e ledger nano, as duas tem suporte para segwit e funcionam do mesmo jeito.

Mesmo assim, acredito que consigo te ajudar.

Existem 3 endereços:
  • Legacy, não-Segwit, são os endereços que começam com 1. Esses são compatíveis com todos as carteiras.
  • Segwit P2SH, são os que começam com 3. São compatíveis com os endereços legacy, e uma carteira não SegWit pode receber e enviar BTC para esses endereços. São endereços numa fase de transição.
  • Segwit Bech32, são os que começam com bc1, são o novo tipo de segwit, não são compatíveis com as carteiras Legacy. Até o momento que eu saiba somente as carteiras core e Electrum usam

Ou seja, se você tiver a chave privada de qualquer dos dois primeiros tipos, você pode recuperar em qualquer carteira no mundo. Eu recomendo que você não use o terceiro tipo, por daí você só poderá enviar ou receber para/de endereços segwit

Voce tem o Seed (recovery phrase)? É uma sequencia de palavras. Com a Seed deve ser extremamente simples, provavelmente só inserir ela no electrum.

Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 854
Merit: 391


I love Bitcoin!


View Profile WWW
March 19, 2018, 11:24:23 PM
 #4

Para quem não está entendendo, quero saber se tem como converter a chave privada de um endereço segwit exportada no bitcoin core para o formato WIF que a electrum aceita, visto que a electrum tem seu próprio formato de chaves privadas segwit, objetivo: se eu quiser importar uma chave privada de um endereço segwit do btc core para a Electrum e vice-versa.

Vi também que cada endereço segwit tem um redeem script, será que esse redeem script é necessário para fazer isso, ou resgatar fundos de um endereço segwit caso a outra carteira não reconheça as chaves privadas do formato da Electrum?


Olha, eu nunca usei electrum nem core. Eu uso samourai e ledger nano, as duas tem suporte para segwit e funcionam do mesmo jeito.

Mesmo assim, acredito que consigo te ajudar.

Existem 3 endereços:
  • Legacy, não-Segwit, são os endereços que começam com 1. Esses são compatíveis com todos as carteiras.
  • Segwit P2SH, são os que começam com 3. São compatíveis com os endereços legacy, e uma carteira não SegWit pode receber e enviar BTC para esses endereços. São endereços numa fase de transição.
  • Segwit Bech32, são os que começam com bc1, são o novo tipo de segwit, não são compatíveis com as carteiras Legacy. Até o momento que eu saiba somente as carteiras core e Electrum usam

Ou seja, se você tiver a chave privada de qualquer dos dois primeiros tipos, você pode recuperar em qualquer carteira no mundo. Eu recomendo que você não use o terceiro tipo, por daí você só poderá enviar ou receber para/de endereços segwit

Voce tem o Seed (recovery phrase)? É uma sequencia de palavras. Com a Seed deve ser extremamente simples, provavelmente só inserir ela no electrum.

É possível enviar de endereços segwit bech32 para endereços "legacy" e etc sim, o problema é em receber visto que a maioria das wallets ainda não dão suporte ao SegWit bech32

 
Quote
Ou seja, se você tiver a chave privada de qualquer dos dois primeiros tipos, você pode recuperar em qualquer carteira no mundo.
Aí que está o problema meu amigo, as privkeys dos endereços segwit da electrum não são compatíveis na wallet do bitcoin core, pois o formato WIF delas são diferentes (novos, digamos assim) e as chaves privadas dos endereços segwit do bitcoin core são a mesma coisa que dos endereços legacy, quando vc importa a chave de um endereço segwit do core para o electrum, vai aparecer um endereço legacy em vez do formato segwit.

Quote
Voce tem o Seed (recovery phrase)? É uma sequencia de palavras. Com a Seed deve ser extremamente simples, provavelmente só inserir ela no electrum.
Sem dúvidas, com o código mnemônico é mais simples, porém a wallet do bitcoin core não tem implementação BIP39 (geração de códigos mnemônicos de 12 - 24 palavras) em vez disso ela tem a master private key (xprivkey) que fica encriptada no arquivo wallet.dat, a xprivkey é praticamente é a mesma coisa dos códigos mnemônicos, ambos tem a mesma função que é a de recriar uma carteira.
wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
March 19, 2018, 11:51:50 PM
 #5

Entao, ate onde eu sei a bitcoin core consegue gerar private key do tipo WIf, e recentemente eu vi que esiste a versao compacta e a nao compacta dessa chave. E ao mesmo tempo que voce consegue importar um P2SH ndo elctrum para o core e depois fazer ele reconhecer como segwit  se voce usar o comando addwitnessaddress [hash da chave publica] e depois dar rescan na carteira toda.
Mesmo nao tendo certeza (ja que eu nao testei nada), eu te aconselharia a pegar a chave privada da core e colocar no site da bitaddress (offline) e ir na seção de detalhes do endereço e ficar testando as chaves privadas na electrum (as chaves do tipo WIF)  - que parece que é o que voce precisa mais (eu teria feito isso antes de postar aqui, mas o ambiente n deixa).
Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 854
Merit: 391


I love Bitcoin!


View Profile WWW
March 20, 2018, 12:36:03 AM
 #6

Entao, ate onde eu sei a bitcoin core consegue gerar private key do tipo WIf, e recentemente eu vi que esiste a versao compacta e a nao compacta dessa chave. E ao mesmo tempo que voce consegue importar um P2SH ndo elctrum para o core e depois fazer ele reconhecer como segwit  se voce usar o comando addwitnessaddress [hash da chave publica] e depois dar rescan na carteira toda.
Mesmo nao tendo certeza (ja que eu nao testei nada), eu te aconselharia a pegar a chave privada da core e colocar no site da bitaddress (offline) e ir na seção de detalhes do endereço e ficar testando as chaves privadas na electrum (as chaves do tipo WIF)  - que parece que é o que voce precisa mais (eu teria feito isso antes de postar aqui, mas o ambiente n deixa).
Não funciona, se eu quiser exportar uma chave do core para o electrum ele vai reconhecer o legacy endereço, todas os endereços do core são em comprimidos, então nem preciso ver isso aí..
Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 854
Merit: 391


I love Bitcoin!


View Profile WWW
March 20, 2018, 12:40:01 AM
 #7

Quote
se voce usar o comando addwitnessaddress [hash da chave publica] e depois dar rescan na carteira toda.
O comando addwitnessaddress já está obsoleto, já que o core gera chaves p2sh-segwit por padrão, vocês não entenderam onde eu quero chegar, eu quero saber se tem jeito de converter uma chave privada segwit do bitcoin core para uma chave privada de um endereço segwit em formato WIF compatível com a Electrum...
wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
March 20, 2018, 02:06:44 AM
Merited by Forsyth Jones (5)
 #8

Nossa, agora que eu vi que tanto a bitcoin core como a electrum tiveram atualizacoes significativas em relacao ao segwit, e a electrum mudou seu formato de WIF ("Newly exported keys will be serialized as 'script_type:original_wif_format_key'.").
Como eu nao tenho a core instalada no meu PC, se voce puder me dizer que letra que comeca a sua private key gerada no core ajudaria um pouco (se comeca com a letra L ou K)

Tenta importar a chave privada da core no electrum usando o formato p2wpkh-p2sh:[chave_privada] antes do endereco, por exemplo:
p2wpkh-p2sh:L5aBy3HBXdJwok38giDe8dBQXTrajaEVvYA3J5y783HHXtwmMauX

Fiz uns testes com chaves privadas (como disse, sem a Core), e parece que funciona, aguardo resultados.
vs.crypt
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
March 20, 2018, 03:13:46 AM
 #9

Pessoal, só para complementar, a Electrum mantém compatibilidade com o formato WIF antigo.
Como podemos verificar no release note:
Quote
* The Wallet Import Format (WIF) for private keys that was extended in 3.0
   is changed. Keys in the previous format can be imported, compatibility
   is maintained. Newly exported keys will be serialized as
"script_type:original_wif_format_key".

Fonte: https://github.com/spesmilo/electrum/blob/master/RELEASE-NOTES

Vlw!
Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 854
Merit: 391


I love Bitcoin!


View Profile WWW
March 20, 2018, 03:34:53 AM
Merited by jpdorn (1)
 #10

Nossa, agora que eu vi que tanto a bitcoin core como a electrum tiveram atualizacoes significativas em relacao ao segwit, e a electrum mudou seu formato de WIF ("Newly exported keys will be serialized as 'script_type:original_wif_format_key'.").
Como eu nao tenho a core instalada no meu PC, se voce puder me dizer que letra que comeca a sua private key gerada no core ajudaria um pouco (se comeca com a letra L ou K)

Tenta importar a chave privada da core no electrum usando o formato p2wpkh-p2sh:[chave_privada] antes do endereco, por exemplo:
p2wpkh-p2sh:L5aBy3HBXdJwok38giDe8dBQXTrajaEVvYA3J5y783HHXtwmMauX

Fiz uns testes com chaves privadas (como disse, sem a Core), e parece que funciona, aguardo resultados.

Exato, está aí os sMerits como eu havia prometido para quem me ajudasse a solucionar esse problema..

para importar chaves p2sh-segwit na Electrum usamos: p2wpkh-p2sh:LouKxxxxxxxxxxxxx

e para importar chaves bech32 na Electrum usamos: p2wpkh:LouKxxxxxxxxxxxxxxxxx
DeltaX_Slayer
Full Member
***
Offline Offline

Activity: 532
Merit: 152


View Profile
March 20, 2018, 04:53:56 AM
 #11

Tópico bastante útil, uma pena que meus sMerits acabarsm, queria recompensar os envolvidos.
wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
March 20, 2018, 12:13:13 PM
 #12

Exato, está aí os sMerits como eu havia prometido para quem me ajudasse a solucionar esse problema..

para importar chaves p2sh-segwit na Electrum usamos: p2wpkh-p2sh:LouKxxxxxxxxxxxxx

e para importar chaves bech32 na Electrum usamos: p2wpkh:LouKxxxxxxxxxxxxxxxxx

Valeu ! Seria legal se criassemos um post com todas essas informações técnicas sobre enendereços e utilizacao de endereços segwit, porque mesmo tendo alguns meses implementado na rede, ainda esta muito dificil para todo mundo sair criando normalmente apenas transações witness.
Silenox
Full Member
***
Offline Offline

Activity: 546
Merit: 122


View Profile
March 20, 2018, 05:04:44 PM
 #13

Bem informativo, eu fiz uma carteira para hold e deixei um endereço Legacy mesmo, já reservei uma quantia "significativa" para possíveis taxas. Vou deixar assim até que esse momento de transição passe e a implementação se um formato seja massiva.
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!