You are viewing a single comment's thread from:
RE: Developing a Steem hardware wallet application on BOLOS [Proposal]
This is a great idea. I have a Nano S. I'm just curious, will only the master key be stored on the device or will all of them be stored?
In the case of hardware wallets, the 24-word recovery seed will be the master password. The public and private keys are derived from this recovery seed using
m/44'/135'/0'/0/address_index
derivation path, the same way of how EOS public keys get generated but with a different coin type in the derivation path, which is outlined here. I have tried generating a Steem public key from the private key generated from an EOS keypair generation tool, and the only difference in the generated public keys are the first 3 letters, where Steem public keys start withSTM
, whereas EOS public keys start withEOS
.The
address_index
that completes the path to derive the public key (that is bound to Steem accounts) will be stored in desktop wallets. The WIF private key will be generated using the same derivation path every time there is a signing request, hence there is nothing to write to the flash memory which has limited cycles (500,000 writes according to Ledger's documentation)You may find the source code here
Thanks for explaining. I take it that means the master password and keys will have to change to make the account compatible without compromising or resetting the device. It should also mean it is possible to store additional accounts by changing the address path similar to how separate xlm accounts are stored (change last 0).
There will be options in the desktop wallet apps to only change certain public keys, so that an account is not tied completely to the hardware wallet.
For example a curation bot may need to store plain text private posting key on a server. They have the option to only change their active and owner public keys, so that funds may only be accessed through the hardware wallet, but able to comment/vote with the posting key like how we're doing it now.
An account may also have more than one public key associated with a particular authority. For example there may be 2 public keys that is associated with posting authority, in which transactions that only require posting authority can be signed with the hardware wallet or another private key.