Bitcoin Forum
May 01, 2024, 11:07:54 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [SOLVED] What is the difference between an HD wallet and a Descriptor Wallet  (Read 101 times)
FredCailloux (OP)
Jr. Member
*
Offline Offline

Activity: 49
Merit: 18


View Profile
March 25, 2024, 03:44:42 PM
Last edit: April 04, 2024, 04:52:10 PM by FredCailloux
 #1

My suspicion is they are two different ways of expressing the same concept but I struggle to find confirmation to it.

I found this definition on the web from https://river.com/learn/terms/h/hd-wallet/
Which IMO is a comprehensive explanation.
I also found this definition of the Descriptor Wallet from : https://achow101.com/2020/10/0.21-wallets#:~:text=Descriptor%20Wallets%20store%20Output%20Script,private%20keys%20to%20generate%20addresses.
Which is a bit too advanced for my modest brain size  Smiley

Can anylone pls post a simple description of the difference between those two concepts ?
Thanks
"In a nutshell, the network works like a distributed timestamp server, stamping the first transaction to spend a coin. It takes advantage of the nature of information being easy to spread but hard to stifle." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714604874
Hero Member
*
Offline Offline

Posts: 1714604874

View Profile Personal Message (Offline)

Ignore
1714604874
Reply with quote  #2

1714604874
Report to moderator
1714604874
Hero Member
*
Offline Offline

Posts: 1714604874

View Profile Personal Message (Offline)

Ignore
1714604874
Reply with quote  #2

1714604874
Report to moderator
Hatchy
Sr. Member
****
Offline Offline

Activity: 406
Merit: 461


The Alliance Of Bitcointalk Translators - ENG>PID


View Profile
March 25, 2024, 05:48:18 PM
 #2

My suspicion is they are two different ways of expressing the same concept but I struggle to find confirmation to it.
These two types of wallets, mate, are not the same. They both offer new ways to manage Bitcoin compared to the original or legacy wallet, which was the first type of Bitcoin wallet. The HD (Hierarchical Deterministic) wallet, in particular, is now the standard format for creating wallets. A descriptor wallet, on the other hand, refers to a method of generating various wallets using scripts outlined in BIPs 380-386.

Here's one difference I can think of:
In an HD wallet, different child public and private keys are generated from the same parent keys. This allows your wallet to create multiple wallets controlled by a single key or seed. You can easily access a specific child wallet by using its corresponding private key.

However, this isn't the case for descriptor wallets. While they also generate different child public and private keys using the output descriptor, you cannot export a single child private key.
Here's why
With descriptor wallets, you cannot export the private key for one address. This is because a child private key combined with the parent public key can be used to compute the parent private key (and hence all other child private keys). This is a risk inherent in BIP 32's unhardened derivation. As such, descriptor wallets disallow the export of child private keys in order to mitigate the risk of accidentally exposing the parent private key



███████████████████████████████▀▀▀▀
███████████████████████████████
█████████▀▀▀▀▀█▀█▀▀▀▀▀█████████
███▄▀▀▀   ▄▄▄▄   ▄▄▄▄   ▀▀▀▄███
███████▀▀▀████▌ ▐████▀▀▀███████
█████▀███▀█▀██▌ ▐██▀█▀███▀█████
███████▀▄▀▄███▌ ▐███▄▀▄▀███████
█████▄██▄██▄██   ██▄██▄██▄█████
███████▄▄▄████   ████▄▄▄███████
██████████▀▀▀▀   ▀▀▀▀██████████
██████████▄▄▄▄▄▄▄▄▄▄▄██████████
███████████████████████████████
███████████████████████████████▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
TRUST DICE
.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
█▀▀▀











█▄▄▄
#1 RATED CRYPTO
CASINO IN THE WORLD
██ ██ ██ ██ █Trustpilot
▀▀▀█











▄▄▄█
▄█████████████████████████████
██████████████████▀▀█████▀▀████
█████████████████▀█████████▀███
██████████████████████████████
███████████████████████████▄███
█████████████████████████▄▄████
███████████████████████████████
█████████████░░░███████████████
███████████░░░█████████████████
█████████░░████████████████████
█████░░░██████████████████████
███░░█████████████████████████
▀░░░█████████████████████████▀
█▀▀▀











█▄▄▄
▀▀▀█











▄▄▄█
DesmondHayes
Member
**
Offline Offline

Activity: 182
Merit: 14


View Profile
March 25, 2024, 06:39:49 PM
 #3

My suspicion is they are two different ways of expressing the same concept but I struggle to find confirmation to it.

I found this definition on the web from https://river.com/learn/terms/h/hd-wallet/
Which IMO is a comprehensive explanation.
I also found this definition of the Descriptor Wallet from : https://achow101.com/2020/10/0.21-wallets#:~:text=Descriptor%20Wallets%20store%20Output%20Script,private%20keys%20to%20generate%20addresses.
Which is a bit too advanced for my modest brain size  Smiley

Can anylone pls post a simple description of the difference between those two concepts ?
Thanks
In short, HD wallets let you easily manage multiple wallets with one main key, while descriptor wallets prioritize security by not allowing the export of individual keys.

             CONTRACTNET     |     At the intersection of Blockchain, IOT & SMART CONTRACTS             
|     WHITEPAPER     |     TWITTER     |      TELEGRAM     
████████████████████████  [  JOIN ICO   ●   10th MARCH  ] ████████████████████████
achow101
Moderator
Legendary
*
Offline Offline

Activity: 3374
Merit: 6571


Just writing some code


View Profile WWW
March 25, 2024, 10:20:25 PM
Merited by LoyceV (24), ABCbits (8), khaled0111 (1), Hatchy (1), FredCailloux (1)
 #4

While they also generate different child public and private keys using the output descriptor, you cannot export a single child private key.
while descriptor wallets prioritize security by not allowing the export of individual keys.
No, that's completely unrelated to descriptors, I don't know why the both of you latched onto that at all,

If Bitcoin Core had switched directly to BIP 44 style derivation paths without doing descriptors, I would have also advocated for disallowing the export of individual private keys. The security issue there is with how BIP 32 unhardened derivation works which existed long before descriptors were a thing.



A HD wallet is a wallet where the keys are derived in a reproducible way from a single source of randomness known as the seed. The most widely used method for deriving such keys is BIP 32. Since the seed is fairly small, it's easy to back that up and be sure that, in theory, you are able to re-compute all of your private keys in the future.

However, HD wallets make no mention of the type of addresses to create, nor do they specifically state which private keys you are actually using. These change on a wallet by wallet basis. While most wallets follow various standards for choosing which keys to derive and what address types to make from them, just having the seed and knowing that your wallet is a HD wallet is not enough to recover your funds.

Descriptor wallets expand on HD wallets by storing Descriptor strings which specify the keys and the address types to create. Descriptors utilize BIP 32 so that BIP 32 keys and derivation paths can be contained within them to specify the specific keys to use without actually enumerating all of the keys. Descriptors further introduced the script expression notation in order to specify the type of script, and ultimately the type of address, that a descriptor can create. Thus a descriptor is a more complete backup and leaves nothing up to guess work as it specifies both the exact keys to use, and the addresses to create from them.

Descriptors is intended to be a more general notation, so it is also possible to create descriptors which contain just private keys with no BIP 32 derivation at all. They can also be used to represent raw output scripts for cases where the script is nonstandard, and they can be used to create complex arbitrary scripts through the use of the MIniscript language.

Since Descriptor wallets can include BIP 32 derivation, descriptor wallets are basically a kind of HD wallet. But really, they are a superset of HD wallets since they do a lot more than just managing private keys.



A way to think about how these are different is the philosophy that they essentially represent. A HD wallet represents a keys first philosophy where the key is the king. Everything comes from the key - the key exists first, then the script is created from that key.

Conversely, Descriptor wallets represent a scripts first philosophy where keys are inserted afterwards. Descriptors describe a script template in which keys are later computed and inserted into the positions in the script as described by the descriptor. For descriptors, how the key is generated is not that important; they could be randomly generated and put in the descriptor string, or they can be generated from a BIP 32 key and derivation path. All that is required is that the key expressions produce individual keys that can be placed into scripts.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!