Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Farul on April 12, 2019, 12:43:58 PM



Title: [ASK] Are There Any Way To Know Parent Address From A Multisig Address?
Post by: Farul on April 12, 2019, 12:43:58 PM
Are There Any Way To Know "Parent' Address From A Multisig Address/Public Key?
Example : I Created A Multisignature Wallet From Wallet A & B, The Result Is Multisignature Wallet C
Are There Any Way To Know That Wallet A & B Make The Wallet C,  Just By Knowing The Address(Or Public Key) Of Wallet C?




Title: Re: [ASK] Are There Any Way To Know Parent Address From A Multisig Address?
Post by: darosior on April 12, 2019, 01:26:57 PM
Are There Any Way To Know "Parent' Address From A Multisig Address/Public Key?
Example : I Created A Multisignature Wallet From Wallet A & B, The Result Is Multisignature Wallet C
Are There Any Way To Know That Wallet A & B Make The Wallet C,  Just By Knowing The Address(Or Public Key) Of Wallet C?
Multisignature addresses are made (usually) using P2SH. When sending funds to the multisig address, pubkey won't be known (only the hash of the script). However, once a transaction is made using an utxo of this address as input, you have to provide the public keys and a signature, thus the public keys will be in the block chain (thus known).
tl;dr : not when receiving, but once using it to pay.

EDIT: expanding a little bit, you seem to confond "wallet" and "addresses". The wallet containing a lot of addresses, if you create a multisig from an address of the wallet A and an address of the wallet B, only these 2 addresses will be made public (when you make a payment from the multisig), but not all the addresses from the wallet A nor from the wallet B.


Title: Re: [ASK] Are There Any Way To Know Parent Address From A Multisig Address?
Post by: nc50lc on April 13, 2019, 02:06:20 AM
You can easily do this yourself even without a node with the help of online tools and a blockexplorer.

For example:
This multisig address (from an exchange): 3LgUWbSkwvKoTdn8xexf7GqpVBRLwMs6TE was used as an input to this transaction 7a46e633630736d26354a19971d05add21b0cdcdd5143dfd0a13264f33b4f6fc (https://www.blockchain.com/btc/tx/7a46e633630736d26354a19971d05add21b0cdcdd5143dfd0a13264f33b4f6fc).

Copy the P2SH redeem script from "input scripts" after "PUSHDATA1" (from the correct order of inputs):
Code:
52210276aee2dd4a0b425792f27b42b1a69e0f9e084a4de84c68fa45020aa95733c25321030fa442d9fb04f2211fe9b57d67f3641be612b1945fbc688eb9652e6e55e5662a210344be0edcb5cc8bebc872ccf1f00a4076e9693bf38261f53971f3566d6bc4769753ae
And Paste it to: http://chainquery.com/bitcoin-api/decodescript (http://chainquery.com/bitcoin-api/decodescript)
You'll be able to get the three base addresses of that 2/3 multisig Address:
Code:
{
"result": {
"asm": "2 0276aee2dd4a0b425792f27b42b1a69e0f9e084a4de84c68fa45020aa95733c253 030fa442d9fb04f2211fe9b57d67f3641be612b1945fbc688eb9652e6e55e5662a 0344be0edcb5cc8bebc872ccf1f00a4076e9693bf38261f53971f3566d6bc47697 3 OP_CHECKMULTISIG",
"reqSigs": 2,
"type": "multisig",
"addresses": [
"1LRqsYChNsC5GmPtyN5bA8t9nL9UtDaCxZ",
"1KL1Q3AoU7fcdAVwKt1HPUwDAuBzEqgop9",
"16WX1TA21fZN2RjWKgDoS9wYe3ubnM498M"
],
"p2sh": "3LgUWbSkwvKoTdn8xexf7GqpVBRLwMs6TE"
},
"error": null,
"id": null
}


Title: Re: [ASK] Are There Any Way To Know Parent Address From A Multisig Address?
Post by: pooya87 on April 13, 2019, 04:34:00 AM
it is a very bad idea to call them "addresses" though! because they really aren't addresses.

let me start by explaining what an address really is. an address is a human readable encoding of a script. in Bitcoin (as the protocol, or at code level) there are no "addresses", there are only scripts. for instance when you say "1LRqsYChNsC5GmPtyN5bA8t9nL9UtDaCxZ" you are really saying
Code:
OP_DUP OP_HASH160 <d51d2b31200386ad59165469aee0ce9ecc39251b> OP_EQUALVERIFY OP_CHECKSIG
which is a script.

so if you translate 3LgUWbSkwvKoTdn8xexf7GqpVBRLwMs6TE  to 3 addresses (1LRqs..., 1KL1..., 16WX...) you are "translating" it into 3 false scripts. because when you say "3LgUWbSkwvKoTdn8xexf7GqpVBRLwMs6TE" you are really saying
Code:
OP_HASH160 <d0502aef18b86f9e9b2544801a5a8dfe17c49008> OP_EQUAL

the only "correct question" here would be to ask which public key(s) is/are involved in creating this address which starts with 3. in which case you can look at the transaction that spends that output to get the public key(s). but still translating it to addresses like what the link posted by @nc50lc is doing is wrong.


Title: Re: [ASK] Are There Any Way To Know Parent Address From A Multisig Address?
Post by: nc50lc on April 13, 2019, 06:00:17 AM
Those were derived from the three public keys that was used to make the multisig address; and yes, there's no "address" on protocol level.

But OP is asking for "addresses" and the follow-up question should be: What is his intent on asking such question?
Did he think that the owners of the private keys also uses it on a legacy bitcoin address? I can't think of other reasons to ask this other than checking if those addresses were used before.

Example: electrum's HD multisig wallet from two or more SEEDs and each cosigners used their SEED to make a standard wallet with legacy addresses.