Pages:
Author

Topic: How to hide public key of Bitcoin Address? - page 2. (Read 526 times)

legendary
Activity: 2380
Merit: 5213
November 18, 2022, 05:34:51 AM
#8
I mean for multi-sig wallet it's harder to find public key if there's output transactions?
No. It's not really hard.
As mentioned by jackg, you should use the redeem script to get the public keys.

I didn't know how it can be done. I just made a search and found out it's really easy.
Click here to see one of the transactions made from the address you referred to in the OP.
See the input with the index number 135. The sigscript includes 3 hex data. The last one is the redeem script.

Redeem script:
Code:
522102707f8c41a9ce80bd85c335ce37617388fe8fd5c7b6079f730fc8b7159867cb3e2102f61a255027b492203f04396474e032e759367ad32cdb1b317074e216718f9b532102ae11e6f80d33717c8dffcbd4e480b95f82f9fe7478cb166beebddd5b062c9f9653ae

For getting the public keys, all you need to do is to decode the redeem script using coinb.in tool.
The three public keys used for generating the address in question are as follows.

Code:
02707f8c41a9ce80bd85c335ce37617388fe8fd5c7b6079f730fc8b7159867cb3e
02f61a255027b492203f04396474e032e759367ad32cdb1b317074e216718f9b53
02ae11e6f80d33717c8dffcbd4e480b95f82f9fe7478cb166beebddd5b062c9f96
legendary
Activity: 3444
Merit: 10537
November 18, 2022, 05:03:04 AM
#7
So this redeem script is same as public key?
I mean for multi-sig wallet it's harder to find public key if there's output transactions?
Bitcoin scripts are essentially smart contracts. Each time you create a transaction you are providing an "unlocking script" that provides required data and commands that can "unlock" the coins that are available on the blockchain. This script can be a simple signature + public key or a more complex one that contains conditions (branches), timelocks, hash operations alongside public keys and signatures, etc.

If all 3 address's types reveals public key when you send bitcoins then what's the additional advantage of using newer btc address types say Taproot one's (except the lower fees benefit) ?
Lower tx weight hence lower fee.
Help increase block capacity (improve scaling).
Faster verification time for full nodes.
Avoid malleability problems.
Access to new features introduced in newer address types such as public key aggregation in Schnorr signatures.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
November 18, 2022, 05:00:00 AM
#6
3.) How can i hide my public key while still Re-using the same address for spending?
Why do you want to hide the public key?
You're looking in the wrong direction for a solution, the real solution is to not reuse the same address.

For what it's worth: I'm reusing certain addresses too, because it's convenient.
member
Activity: 77
Merit: 10
November 18, 2022, 04:51:44 AM
#5
None of your examples hide the public key and there's no way of doing that without using a different coin.

2.) I see Some Addresses do not reveal the public key even if they have spent their bitcoins like this address here - https://www.blockchain.com/btc/address/3BJKWL5ipkVe2bjkRSt6ZNbVWQaRrEFjMs     So How can this be possible?
The address in question is a multi-signature address and has been generated using three different public keys.
I don't know how, but it should be possible to derive all the three public keys from data of a transaction made from that address.

It seems they make up the redeem script and can be unscramble that way..

From https://en.bitcoin.it/wiki/BIP_0067#Specification:
Code:
022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da
   03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9
   021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18

You get (after sorting)

Code:
OP_2 021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18

022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da

03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9 OP_3 OP_CHECKMULTISIG

Which is a redeem script

So this redeem script is same as public key?
I mean for multi-sig wallet it's harder to find public key if there's output transactions?



1.) I know 100% that when you send bitcoins from legacy Address (P2PKH) then your public key gets revealed in transaction signature So this is also true in case of other Address formats (P2SH and P2WPKH) ?
Yes, your public key is always revealed. Since nodes need your public key for verifying your transaction, you have to reveal it.


2.) I see Some Addresses do not reveal the public key even if they have spent their bitcoins like this address here - https://www.blockchain.com/btc/address/3BJKWL5ipkVe2bjkRSt6ZNbVWQaRrEFjMs     So How can this be possible?
The address in question is a multi-signature address and has been generated using three different public keys.
I don't know how, but it should be possible to derive all the three public keys from data of a transaction made from that address.


3.) How can i hide my public key while still Re-using the same address for spending? I suppose it's possible because the address i mentioned in question 2 is able to achieve that.
I don't see any reason for hiding the public key and I said above, you have to reveal your public key whenever you make a transaction.


If all 3 address's types reveals public key when you send bitcoins then what's the additional advantage of using newer btc address types say Taproot one's (except the lower fees benefit) ?
legendary
Activity: 3444
Merit: 10537
November 18, 2022, 12:19:14 AM
#4
3.) How can i hide my public key while still Re-using the same address for spending? I suppose it's possible because the address i mentioned in question 2 is able to achieve that.
I don't see any reason for hiding the public key and I said above, you have to reveal your public key whenever you make a transaction.
Correct but even if you didn't have to include the public key alongside the signature in your transactions, the public key could still be derived from the ECDSA signature that you had provided. In fact this is how signing messages work, you only provide the address + message + signature and in order to verify that message others could easily derive your public key and perform the verification.
That is how ECDSA and asymmetric cryptography work.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
November 17, 2022, 10:44:48 PM
#3
None of your examples hide the public key and there's no way of doing that without using a different coin.

2.) I see Some Addresses do not reveal the public key even if they have spent their bitcoins like this address here - https://www.blockchain.com/btc/address/3BJKWL5ipkVe2bjkRSt6ZNbVWQaRrEFjMs     So How can this be possible?
The address in question is a multi-signature address and has been generated using three different public keys.
I don't know how, but it should be possible to derive all the three public keys from data of a transaction made from that address.

It seems they make up the redeem script and can be unscramble that way..

From https://en.bitcoin.it/wiki/BIP_0067#Specification:
Code:
022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da
   03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9
   021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18

You get (after sorting)

Code:
OP_2 021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18

022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da

03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9 OP_3 OP_CHECKMULTISIG

Which is a redeem script
legendary
Activity: 2380
Merit: 5213
November 17, 2022, 07:58:17 PM
#2
1.) I know 100% that when you send bitcoins from legacy Address (P2PKH) then your public key gets revealed in transaction signature So this is also true in case of other Address formats (P2SH and P2WPKH) ?
Yes, your public key is always revealed. Since nodes need your public key for verifying your transaction, you have to reveal it.


2.) I see Some Addresses do not reveal the public key even if they have spent their bitcoins like this address here - https://www.blockchain.com/btc/address/3BJKWL5ipkVe2bjkRSt6ZNbVWQaRrEFjMs     So How can this be possible?
The address in question is a multi-signature address and has been generated using three different public keys.
I don't know how, but it should be possible to derive all the three public keys from data of a transaction made from that address.


3.) How can i hide my public key while still Re-using the same address for spending? I suppose it's possible because the address i mentioned in question 2 is able to achieve that.
I don't see any reason for hiding the public key and I said above, you have to reveal your public key whenever you make a transaction.
member
Activity: 77
Merit: 10
November 17, 2022, 06:38:21 PM
#1
I know revealing public key is safe. I know that but still i have few questions.
So currently BTC has 3 Address formats as follows
1. Legacy Address (begins with 1... a.k.a P2PKH )
2. Non-Native Segwit Address (begins with 3... a.k.a P2SH )
3. Segwit Address (begins with bc1... a.k.a P2WPKH)

Questions
1.) I know 100% that when you send bitcoins from legacy Address (P2PKH) then your public key gets revealed in transaction signature So this is also true in case of other Address formats (P2SH and P2WPKH) ?

2.) I see Some Addresses do not reveal the public key even if they have spent their bitcoins like this address here - https://www.blockchain.com/btc/address/3BJKWL5ipkVe2bjkRSt6ZNbVWQaRrEFjMs     So How can this be possible?

3.) How can i hide my public key while still Re-using the same address for spending? I suppose it's possible because the address i mentioned in question 2 is able to achieve that.

Pages:
Jump to: