Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Add Subsection About Wallet Programs, Incl. Hardware Wallets #444
Conversation
|
As usual, great. |
|
@instagibbs thanks! In the absence of critical feedback, this PR will be merged around 13:00 UTC on June 9th. |
saivann
commented on the diff
Jun 9, 2014
| +transactions for the wallet program. | ||
| + | ||
| +Wallet programs and wallet files are addressed below in separate | ||
| +subsections, and this document attempts to always make it clear whether | ||
| +we're talking about wallet programs or wallet files. | ||
| + | ||
| +{% endautocrossref %} | ||
| + | ||
| +### Wallet Programs | ||
| + | ||
| +{% autocrossref %} | ||
| + | ||
| +Permitting receiving and spending of satoshis is the only essential | ||
| +feature of wallet software---but a particular wallet program doesn't | ||
| +need to do both things. Two wallet programs can work together, one | ||
| +program distributing public keys in order to receive satoshis and |
saivann
Contributor
|
saivann
commented on the diff
Jun 9, 2014
| + | ||
| +{% endautocrossref %} | ||
| + | ||
| + | ||
| +#### Signing-Only Wallets | ||
| + | ||
| +{% autocrossref %} | ||
| + | ||
| +To increase security, private keys can be generated and stored by a | ||
| +separate wallet program operating in a more secure environment. These | ||
| +signing-only wallets work in conjunction with a networked wallet which | ||
| +interacts with the peer-to-peer network. | ||
| + | ||
| +Signing-only wallets programs typically use deterministic key creation | ||
| +(described in a later subsection) to create parent private and public | ||
| +keys which can create child private and public keys. |
saivann
Contributor
|
saivann
and 1 other
commented on an outdated diff
Jun 9, 2014
| +Wallet programs which run in difficult-to-secure environments, such as | ||
| +webservers, can be designed to distribute public keys (including P2PKH | ||
| +or P2SH addresses) and nothing more. There are two common ways to | ||
| +design these minimalist wallets: | ||
| + | ||
| + | ||
| + | ||
| +* Pre-populate a database with a number of public keys or addresses, and | ||
| + then distribute on request an output script or address using one of | ||
| + the database entries. | ||
| + | ||
| +* Use a parent public key to create child public keys. To [avoid key | ||
| + reuse][devguide avoiding key reuse], a method must be used to ensure the same public key isn't | ||
| + distributed twice. This can be a database entry for each key | ||
| + distributed or an incrementing pointer to the current child key | ||
| + index number. |
saivann
Contributor
|
|
@harding Very nice text! Thanks!! |
|
@saivann Commit 63e838f makes all the changes you suggested (I hope). I also updated the preview: http://dg1.dtrt.org/en/developer-guide#wallets If everything looks good, either let me know so I can merge or merge yourself. Thanks! |
|
@harding LGTM, thanks again for your great work on this! |
harding commentedJun 7, 2014
Preview: http://dg1.dtrt.org/en/developer-guide#wallets
The existing Wallet section only covers private key storage. This PR moves that text into a Wallet Files subsection (changing every h3 to h4 and h4 to h5) and adds a new Wallet Programs subsection, giving the document the revised hierarchy:
All the text in Wallet Programs and its children is new. It describes the essential functions of a wallet program and how multiple programs can work together to fulfill those functions, as in the case of a signing-only wallet.