Has anyone written an utility or something able to search/identify which Derivation Path an Address belongs? For example, giving a mnemonic like "unaware open elite rabbit grunt spread session exotic legal satoshi trend electric" and Address "12rfNtgHFjLoK1y58S3gHijmGHV8t8iteT", the program should return its Derivation Path "m/44'/0'/1'/2/6".
This isn't really possible, short of brute force.
An address contains no information about how it was derived, if it relates to any mnemonic at all, or whether it followed a standard path system.
Absolutely nothing prevents you from deriving a p2pkh address using a segwit derivation path.
Many wallets do have mechanisms to try various derivation paths up to the wallet's gap limit for the selected address type, but searching for a specific address is a fool's errand unless you already know it belongs to a certain mnemonic, and have some vague idea of what derivation path it would fall under (or a lot of patience to try several billion combinations). In those scenarios, you'd usually be better suites to writing your own script to do it under the constraints specific to your case.
Has anyone written an utility or something able to search/identify which Derivation Path an Address belongs?
Hi, developer of the FinderOuter here, I have some ideas but haven't implemented them yet. The biggest challenge is that I haven't seen any examples of this so I have to guess what the situations are.
One case could be user creating a mnemonic with wallet A and importing it in wallet B and getting a different address. This would be very easy to implement since it requires going through a list of known paths. The only additional work here would be deriving more than one address if the one user has is at an unknown index.
Another possible case could be user modified the path and forgot the modifications. Like password recovery the user would have to reduce the search space by providing additional information otherwise the search space is just too massive to search it by brute force and to make matters worse there are 2 variables: depth and index (depth meaning: m/x or m/x/x or m/x/x/x,...).
Will try releasing these ideas as a new option in version
I am working on a Wallet: https://github.com/Pure-Wallet/crypto. It is certainly not ready for production, nor should it be trusted with main net bitcoin. But it does allow you to input a Mnemonic and it stores the path of each key it generates.