Bitcoin Forum

Bitcoin => Wallet software => Topic started by: Lion BItcoin Shop on February 14, 2018, 10:50:18 PM



Title: how to claim Bitcoin gold from Block.io ?
Post by: Lion BItcoin Shop on February 14, 2018, 10:50:18 PM
Hello today i remember i have some BTC during forking to bitcoingold at blcok.io the problem is my address type : P2WSH-over-P2SH, and I am frustrated to find a way to claim bitcoin gold.
i try using bitaddress to get private key support coinomi, to claim at coinomi, but coinomi not supported my type address.

anyone here can help me, the full tutorial how to claim bitcoin gold from my type wallet ?
i will give 1BTG for reward

Thanks


Title: Re: how to claim Bitcoin gold from Block.io ?
Post by: HCP on February 15, 2018, 04:45:18 AM
Block.io utilises multi-sig doesn't it? If this is indeed the case... you need to make sure you have access to the required number of private keys to sign a transaction.

If you don't have the minimum number of private keys... there is pretty much nothing you will be able to do.

Assuming you DO have the minimum required number of private keys... you'd also need to know the public keys that were used to create the MultiSig address that the SegWit MultiSig address was created from. You could then (theoretically) "recreate" the MultiSig in Bitcoin Gold Core... and then create the SegWit MultiSig using the redeemscript for the "normal" MultiSig.

Once you had all that... you'd just need to create and sign a transaction using the redeemscripts that sent your BTG to the address of your choice.

An example that shows how it was done on Bitcoin Testnet is here: https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa

Unfortunately, it appears that the "createwitnessaddress" command is no longer available in Bitcoin Core nor is it available in Bitcoin Gold Core... so I'm not entirely sure you're going to be able to recreate the address at this point in time :-\


Title: Re: how to claim Bitcoin gold from Block.io ?
Post by: Lion BItcoin Shop on February 15, 2018, 08:29:28 AM
Block.io utilises multi-sig doesn't it? If this is indeed the case... you need to make sure you have access to the required number of private keys to sign a transaction.

If you don't have the minimum number of private keys... there is pretty much nothing you will be able to do.

Assuming you DO have the minimum required number of private keys... you'd also need to know the public keys that were used to create the MultiSig address that the SegWit MultiSig address was created from. You could then (theoretically) "recreate" the MultiSig in Bitcoin Gold Core... and then create the SegWit MultiSig using the redeemscript for the "normal" MultiSig.

Once you had all that... you'd just need to create and sign a transaction using the redeemscripts that sent your BTG to the address of your choice.

An example that shows how it was done on Bitcoin Testnet is here: https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa

Unfortunately, it appears that the "createwitnessaddress" command is no longer available in Bitcoin Core nor is it available in Bitcoin Gold Core... so I'm not entirely sure you're going to be able to recreate the address at this point in time :-\

thnks alot but this tips complicated to me, im trying use node.js from github. maybe will try it after my trick not working

i have 2 privekey, but i dont know how much the prive key i have


Title: Re: how to claim Bitcoin gold from Block.io ?
Post by: BitMaxz on February 15, 2018, 07:03:19 PM
There is some user friendly tool that you can redeem your bitcoin cash or bitcoin gold or any fork coins supported
Never tested it yet but its looks like legit check the owner of the tool here https://bitcointalk.org/index.php?action=profile;u=151737
Check the tools here including the instruction how to redeem your bitcoin gold check it here http://www.motelmaya.com/BCH/BCH.html
you can change bitcoin cash into bitcoin gold just click settings  and choose what coin you wanted to redeem then follow the instruction..


Title: Re: how to claim Bitcoin gold from Block.io ?
Post by: HCP on February 15, 2018, 07:05:04 PM
I believe that it is a 2-of-2 MultiSig... so it would appear you have access to required private keys.

As far as I can tell, the problem is that you simply cannot create the SegWit MultiSig address from the Legacy MultiSig address any more... as noted in that link, the "createwitnessaddress" command was removed from Bitcoin Core (so it also doesn't exist in BitcoinGold Core)...

Without that functionality, I don't know of any easy way to "convert" the legacy MultiSig (P2SH) address to a SegWit MultiSig (P2WSH-over-P2SH)... :-\

However, what I've just tried is using Bitcoin Core 0.13.0 (The last version of Bitcoin Core with the "createwitnessaddress" command, it doesn't even need to be synced!)... and it seems to create the same P2WSH-over-P2SH... using "createwitnessaddress".

ie. from block.io:
Quote
* Address: 35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
...
* Public Keys: ["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]


Using Bitcoin Core 0.13.0:
Quote

createmultisig 2 '["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]'

{
  "address": "3GhvcWciiLjhH4avpBhpU749W5qXZmLTRe",
  "redeemScript": "5221..........52ae"
}

createwitnessaddress 5221..........52ae

{
  "address": "35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA",
  "witnessScript": "0020..........8f1a"
}


Theoretically, one should then be able to use BitcoinGold Core, the redeemScript, the witnessScript and the two private keys from block.io to manually create a transaction and sign it (following the instructions here (https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa):  Step 4 - Spending the MultiSig)

Unfortunately, I don't have any BitcoinGold to try and test my theory... :P So I can't guarantee it will work... but it shouldn't cost you anything to try, except a bit of time ;)


Title: Re: how to claim Bitcoin gold from Block.io ?
Post by: Lion BItcoin Shop on February 17, 2018, 08:17:50 AM
I believe that it is a 2-of-2 MultiSig... so it would appear you have access to required private keys.

As far as I can tell, the problem is that you simply cannot create the SegWit MultiSig address from the Legacy MultiSig address any more... as noted in that link, the "createwitnessaddress" command was removed from Bitcoin Core (so it also doesn't exist in BitcoinGold Core)...

Without that functionality, I don't know of any easy way to "convert" the legacy MultiSig (P2SH) address to a SegWit MultiSig (P2WSH-over-P2SH)... :-\

However, what I've just tried is using Bitcoin Core 0.13.0 (The last version of Bitcoin Core with the "createwitnessaddress" command, it doesn't even need to be synced!)... and it seems to create the same P2WSH-over-P2SH... using "createwitnessaddress".

ie. from block.io:
Quote
* Address: 35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
...
* Public Keys: ["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]


Using Bitcoin Core 0.13.0:
Quote

createmultisig 2 '["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]'

{
  "address": "3GhvcWciiLjhH4avpBhpU749W5qXZmLTRe",
  "redeemScript": "5221..........52ae"
}

createwitnessaddress 5221..........52ae

{
  "address": "35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA",
  "witnessScript": "0020..........8f1a"
}


Theoretically, one should then be able to use BitcoinGold Core, the redeemScript, the witnessScript and the two private keys from block.io to manually create a transaction and sign it (following the instructions here (https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa):  Step 4 - Spending the MultiSig)

Unfortunately, I don't have any BitcoinGold to try and test my theory... :P So I can't guarantee it will work... but it shouldn't cost you anything to try, except a bit of time ;)

 i will contact you via PM send the detail


Title: Re: how to claim Bitcoin gold from Block.io ?
Post by: HCP on February 19, 2018, 03:55:20 AM
Ok... so after the OP contacted me and provided some details... I was able to "liberate" the BTG from the block.io MultiSig SegWit wallet as follows:

Requirements: FULLY synced Bitcoin Gold Core (needs to be fully synced so that it detects that SegWit has been activated) that IS NOT "pruned" (so you can -rescan)

Step 1 - Get your private key data from block.io, this will be in the form:
Quote
* Address: 33o4MoDSFrfKSznHLBzwKigpTQvMiWWsHr
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
* Redeem Script: 2 035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1 029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d92 OP_CHECKMULTISIG
* Redeem Script Hex: 522xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2ae
* Public Keys: ["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]
* Private Keys: ["L4nSdddddddddddddddddddddddddddddddddddddddddBZ", "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE"]

* Complete. Handle with secrecy. Do not share. Do not store insecurely.
You will need the bits highlighted in BOLD, namely the private keys and public keys.


Step 2 - In Bitcoin Gold Core, import the two private keys that you got from block.io

In the Debug Console (Help -> Debug Window -> Console), use the following commands:
Code:
importprivkey "L4nSdddddddddddddddddddddddddddddddddddddddddBZ" "" false
importprivkey "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE" "" false


Step 3 - In Bitcoin Gold Core,  create the "legacy" multisig for the addresses you just imported, by using "Public Keys"

In the Debug Console, use the following command:
Code:
addmultisigaddress 2 '["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]'
NOTE: You can just copy/paste the "Public Keys" from block.io output

This will output the "Legacy" Multisig Address like: GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB


Step 4 - In Bitcoin Gold Core, create the "SegWit" address for the multisig address you just created

In debug console:
Code:
addwitnessaddress "GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB"

This will output the "SegWit" Multisig Address like: AHsv5kad3716AoHqmjzg3yaynVZLV7yuxN


NOTE: You can confirm you have done it successfully, by copy/pasting the "3"-Address from block.io into https://btgexplorer.com/ It will automatically convert the BTC address to the BTG one:
https://talkimg.com/images/2023/11/15/zpo5g.png



Once you have successfully created the "A"-Address in Bitcoin Gold Core, you need to shut it down, and restart it with the -rescan parameter. Then after waiting for it to rescan the blockchain, you should find all your BTG showing. You can then just send coins as you normally would with the Bitcoin Gold Core GUI and send all the BTG to the BTG address of your choice.

PROTIP: If you have multiple addresses from block.io, I'd recommend recreating them ALL in Bitcoin Gold Core first BEFORE you do the -rescan... as -rescan takes a LONG time :P


Title: Re: how to claim Bitcoin gold from Block.io ?
Post by: Lion BItcoin Shop on February 19, 2018, 05:41:25 AM
Ok... so after the OP contacted me and provided some details... I was able to "liberate" the BTG from the block.io MultiSig SegWit wallet as follows:

Requirements: FULLY synced Bitcoin Gold Core (needs to be fully synced so that it detects that SegWit has been activated) that IS NOT "pruned" (so you can -rescan)

Step 1 - Get your private key data from block.io, this will be in the form:
Quote
* Address: 33o4MoDSFrfKSznHLBzwKigpTQvMiWWsHr
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
* Redeem Script: 2 035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1 029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d92 OP_CHECKMULTISIG
* Redeem Script Hex: 522xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2ae
* Public Keys: ["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]
* Private Keys: ["L4nSdddddddddddddddddddddddddddddddddddddddddBZ", "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE"]

* Complete. Handle with secrecy. Do not share. Do not store insecurely.
You will need the bits highlighted in BOLD, namely the private keys and public keys.


Step 2 - In Bitcoin Gold Core, import the two private keys that you got from block.io

In the Debug Console (Help -> Debug Window -> Console), use the following commands:
Code:
importprivkey "L4nSdddddddddddddddddddddddddddddddddddddddddBZ" "" false
importprivkey "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE" "" false


Step 3 - In Bitcoin Gold Core,  create the "legacy" multisig for the addresses you just imported, by using "Public Keys"

In the Debug Console, use the following command:
Code:
addmultisigaddress 2 '["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]'
NOTE: You can just copy/paste the "Public Keys" from block.io output

This will output the "Legacy" Multisig Address like: GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB


Step 4 - In Bitcoin Gold Core, create the "SegWit" address for the multisig address you just created

In debug console:
Code:
addwitnessaddress "GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB"

This will output the "SegWit" Multisig Address like: AHsv5kad3716AoHqmjzg3yaynVZLV7yuxN


NOTE: You can confirm you have done it successfully, by copy/pasting the "3"-Address from block.io into https://btgexplorer.com/ It will automatically convert the BTC address to the BTG one:
https://i.imgur.com/ohf34Hg.png



Once you have successfully created the "A"-Address in Bitcoin Gold Core, you need to shut it down, and restart it with the -rescan parameter. Then after waiting for it to rescan the blockchain, you should find all your BTG showing. You can then just send coins as you normally would with the Bitcoin Gold Core GUI and send all the BTG to the BTG address of your choice.

PROTIP: If you have multiple addresses from block.io, I'd recommend recreating them ALL in Bitcoin Gold Core first BEFORE you do the -rescan... as -rescan takes a LONG time :P

That's really usefull :D