Wallets/钱包

Wallet Program/钱包项目

Receiving and spending of satoshis(聪).

One program distributing public keys in order to receive satoshis.

Another program signing transactions spending those satoshis.

Wallet programs need to interact with the P2P network to get the block chain and to broadcast new transactions.

However, the progreams which distribute public keys or sign transactions do not need to interact with the P2P network.

A Wallet System:

A public key distribution program,
A Signing program,
A Networked program.

Note: P2PKH or P2SH hashes will be distributing instead of public keys. The actual public keys only being distributed when the outputs they control are spent.

Full-Service Wallets(全服务钱包)

The simplest wallet is a program which performs all three functions:

1. it generates private keys, derives the corresponding public keys, helps distribute those public keys as necessary,

2. monitors for outputs spent those public keys

3. creates and signs transactions spending those outputs, and broadcasts the signed transactions.

Full-Service Wallet

创建私钥->获取公钥->分发公钥->观察花费(输出)-> 创建未签名交易 -> 对交易进行签名 -> 广播交易

Almost all popular wallets can be used as full-service wallets.

Disadvantage: protect private key.

Signing-Only Wallets(只签名钱包)

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 P2P network.

Offline Wallets(离线钱包)

Hardware Wallets

Distributing-Only Wallets

Wallets Files

Private Key Formats

Wallet Import Format(WIF 钱包导入格式)

Mini Private Key Format (最简私钥格式)

Public Key Formats(公钥格式转换)

Hierarchical Deterministic Key Creation ()

Hardened Keys

Storing Root Seeds

Loose-Key Wallets