question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Hierarchical Deterministic Wallet

See original GitHub issue

In accordance with #644 we need to implement a Hierarchical Deterministic Wallet, ideally in BIP44 standard, that is creates child keys compatible with our account structure and is implemented using our same cryptographic primitives. The best approach may be to overload methods in some existing bitcoin wallet libraries, bitcoinj and ACINQ’s bitcoin-lib or perhaps web3j. The goal of this project is an executable that when passed a 12 word mnemonic code, an account hash, and a signable payload, will return the signed payload which was signed by the corresponding account hash as well as corresponding unit tests.

In terms of the derivation path of the BIP44 standard, we’ve decided on an coin type of index 1137 (the fine structure constant) with a full path of M/44H/0H/1137.

Note, this should be marked experimental until verification of its compatibility with a BLOS application on a hardware wallet #644 and a prerequisite for testing the implementation of #644.

Acceptance criteria:

  1. Implementation of hd wallet in BIP44 specification with the above derivation path
  2. Executable that when passed a 12 word mnemonic code, an account hash, and a signable payload, will return the signed payload which was signed by the corresponding account hash
  3. Unit tests for functionality of 1 and 2

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:8 (2 by maintainers)

github_iconTop GitHub Comments

2reactions
buckysballscommented, Feb 27, 2020

Awesome thanks so much @coranos! I went over your blue-app-constellation yesterday and I noticed that I left out a couple parameters we need in the run length encoding (sorry 🤦‍♂ ) so I updated the ticket for our changes on the protocol side to reflect what we need to add. tl;dr we just need to add 3 more fields between amount and salt to be parsed by the BOLOS app, as detailed above.

Also, I went through and made an initial implementation of changes to our signing flow to use the run length encoding as a payload. We’re going to be testing incorporating those changes in our last sprint before main net and we’ll deploy on the testnet for e2e testing beforehand. If you’d like to follow along, this will be slotted for after #887 in the todo column of the project board.

Also, I’ve made an initial implementation of a BIP44 hd wallet for Constellation here which we can use for testing (and also the Molly wallet). The keygen should work as intended since we’re (essentially) using the same as btc, but I still need to double check that the address generation logic was ported properly (we actually don’t need it) but will confirm and share either way. Once I’ve wrapped up the hd tree I can help make unit tests for blue-app-constellation too.

Anyways, let me know if there are any issues with adding those 3 fields to the payload and I’ll share the hd wallet once tested 💪

2reactions
coranoscommented, Feb 20, 2020

The code is ready, just waiting for constellation to tell me to test it on mainnet.

https://github.com/coranos/blue-app-constellation

Read more comments on GitHub >

github_iconTop Results From Across the Web

What are Hierarchical Deterministic (HD) Wallets? - Ledger
Bitcoin and its derivatives use a feature known as Hierarchical Deterministic Wallets that causes your receiving address to change after ...
Read more >
Deterministic wallet - Bitcoin Wiki
A deterministic wallet is a system of deriving keys from a single starting point known as a seed. The seed allows a user...
Read more >
HD Crypto Wallets: What Are They? - Gemini
A hierarchical-deterministic (HD) wallet generates a new key pair from a master key pair for each crypto transaction to enhance privacy and security....
Read more >
Hierarchical Deterministic (HD) Wallet - River Financial
A Hierarchical Deterministic Wallet is the term used to describe a wallet which uses a seed to derive many public and private keys....
Read more >
Deterministic wallet – HD Wallet for Bitcoin - BitcoinWiki
Deterministic (HD) wallet is a system of deriving keys from a single starting point known as a seed. The seed phrase allows a...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found