Skip to content

Commit 0f64c52

Browse files
authored
CIP-0105? | Conway Era Key Chains for HD Wallets (cardano-foundation#597)
* conway-keys CIP intial commit * add CC cold and hot keys * further details on CC keys * small correction * add CC to rationale * small tidy * fix extended key type naming, thanks @gitmachtl * missed _bip32 for CC hot key type * align with CIP number 105 * credentail serilisation correction * revert last crdential serilzation changes * clarification around credential array
1 parent d576faf commit 0f64c52

File tree

4 files changed

+326
-162
lines changed

4 files changed

+326
-162
lines changed

CIP-0005/README.md

Lines changed: 68 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -33,58 +33,68 @@ We define the following set of common prefixes with their corresponding semantic
3333

3434
### Keys
3535

36-
| Prefix | Meaning | Contents |
37-
| --- | --- | --- |
38-
| `acct_sk` | CIP-1852's account private key | Ed25519 private key |
39-
| `acct_vk` | CIP-1852's account public key | Ed25519 public key |
40-
| `acct_xsk` | CIP-1852's extended account private key | Ed25519-bip32 extended private key |
41-
| `acct_xvk` | CIP-1852's extended account public key | Ed25519 public key with chain code |
42-
| `acct_shared_sk` | CIP-1854's account private key | Ed25519 private key |
43-
| `acct_shared_vk` | CIP-1854's account public key | Ed25519 public key |
44-
| `acct_shared_xsk` | CIP-1854's extended account private key | Ed25519-bip32 extended private key |
45-
| `acct_shared_xvk` | CIP-1854's extended account public key | Ed25519 public key with chain code |
46-
| `addr_sk` | CIP-1852's address signing key | Ed25519 private key |
47-
| `addr_vk` | CIP-1852's address verification key | Ed25519 public key |
48-
| `addr_xsk` | CIP-1852's address extended signing key | Ed25519-bip32 extended private key |
49-
| `addr_xvk` | CIP-1852's address extended verification key | Ed25519 public key with chain code |
50-
| `addr_shared_sk` | CIP-1854's address signing key | Ed25519 private key |
51-
| `addr_shared_vk` | CIP-1854's address verification key | Ed25519 public key |
52-
| `addr_shared_xsk` | CIP-1854's address extended signing key | Ed25519-bip32 extended private key |
53-
| `addr_shared_xvk` | CIP-1854's address extended verification key | Ed25519 public key with chain code |
54-
| `gov_sk` | Governance vote signing key | Ed25519 private key |
55-
| `gov_vk` | Governance vote verification key | Ed25519 public key |
56-
| `cvote_sk` | CIP-36's vote signing key | Ed25519 private key |
57-
| `cvote_vk` | CIP-36's vote verification key | Ed25519 public key |
58-
| `kes_sk` | KES signing key | KES signing key |
59-
| `kes_vk` | KES verification key | KES verification key |
60-
| `policy_sk` | CIP-1855's policy private key | Ed25519 private key |
61-
| `policy_vk` | CIP-1855's policy public key | Ed25519 public key |
62-
| `pool_sk` | Pool operator signing key | Ed25519 private key |
63-
| `pool_vk` | Pool operator verification key | Ed25519 public key |
64-
| `root_sk` | CIP-1852's root private key | Ed25519 private key |
65-
| `root_vk` | CIP-1852's root public key | Ed25519 public key |
66-
| `root_xsk` | CIP-1852's extended root private key | Ed25519-bip32 extended private key |
67-
| `root_xvk` | CIP-1852's extended root public key | Ed25519 public key with chain code |
68-
| `root_shared_sk` | CIP-1854's root private key | Ed25519 private key |
69-
| `root_shared_vk` | CIP-1854's root public key | Ed25519 public key |
70-
| `root_shared_xsk` | CIP-1854's extended root private key | Ed25519-bip32 extended private key |
71-
| `root_shared_xvk` | CIP-1854's extended root public key | Ed25519 public key with chain code |
72-
| `stake_sk` | CIP-1852's stake address signing key | Ed25519 private key |
73-
| `stake_vk` | CIP-1852's stake address verification key | Ed25519 public key |
74-
| `stake_xsk` | CIP-1852's extended stake address signing key | Ed25519-bip32 extended private key |
75-
| `stake_xvk` | CIP-1852's extended stake address verification key | Ed25519 public key with chain code |
76-
| `stake_shared_sk` | CIP-1854's stake address signing key | Ed25519 private key |
77-
| `stake_shared_vk` | CIP-1854's stake address verification key | Ed25519 public key |
78-
| `stake_shared_xsk` | CIP-1854's extended stake address signing key | Ed25519-bip32 extended private key |
79-
| `stake_shared_xvk` | CIP-1854's extended stake address verification key | Ed25519 public key with chain code |
80-
| `vrf_sk` | VRF signing key | VRF signing key |
81-
| `vrf_vk` | VRF verification key | VRF verification key |
36+
| Prefix | Meaning | Contents |
37+
| --- | --- | --- |
38+
| `acct_sk` | CIP-1852's account private key | Ed25519 private key |
39+
| `acct_vk` | CIP-1852's account public key | Ed25519 public key |
40+
| `acct_xsk` | CIP-1852's extended account private key | Ed25519-bip32 extended private key |
41+
| `acct_xvk` | CIP-1852's extended account public key | Ed25519 public key with chain code |
42+
| `acct_shared_sk` | CIP-1854's account private key | Ed25519 private key |
43+
| `acct_shared_vk` | CIP-1854's account public key | Ed25519 public key |
44+
| `acct_shared_xsk` | CIP-1854's extended account private key | Ed25519-bip32 extended private key |
45+
| `acct_shared_xvk` | CIP-1854's extended account public key | Ed25519 public key with chain code |
46+
| `addr_sk` | CIP-1852's address signing key | Ed25519 private key |
47+
| `addr_vk` | CIP-1852's address verification key | Ed25519 public key |
48+
| `addr_xsk` | CIP-1852's address extended signing key | Ed25519-bip32 extended private key |
49+
| `addr_xvk` | CIP-1852's address extended verification key | Ed25519 public key with chain code |
50+
| `addr_shared_sk` | CIP-1854's address signing key | Ed25519 private key |
51+
| `addr_shared_vk` | CIP-1854's address verification key | Ed25519 public key |
52+
| `addr_shared_xsk` | CIP-1854's address extended signing key | Ed25519-bip32 extended private key |
53+
| `addr_shared_xvk` | CIP-1854's address extended verification key | Ed25519 public key with chain code |
54+
| `cc_cold_sk` | CIP-1852’s constitutional committee cold signing key | Ed25519 private key |
55+
| `cc_cold_vk` | CIP-1852’s constitutional committee verification signing key | Ed25519 private key |
56+
| `cc_cold_xsk` | CIP-1852’s constitutional committee cold extended signing key | Ed25519-bip32 extended private key |
57+
| `cc_cold_xvk` | CIP-1852’s constitutional committee extended verification signing key | Ed25519 public key with chain code |
58+
| `cc_hot_sk` | CIP-1852’s constitutional committee hot signing key | Ed25519 private key |
59+
| `cc_hot_vk` | CIP-1852’s constitutional committee verification signing key | Ed25519 private key |
60+
| `cc_hot_xsk` | CIP-1852’s constitutional committee hot extended signing key | Ed25519-bip32 extended private key |
61+
| `cc_hot_xvk` | CIP-1852’s constitutional committee extended verification signing key | Ed25519 public key with chain code |
62+
| `cvote_sk` | CIP-36's vote signing key | Ed25519 private key |
63+
| `cvote_vk` | CIP-36's vote verification key | Ed25519 public key |
64+
| `drep_sk` | CIP-1852’s DRep signing key | Ed25519 private key |
65+
| `drep_vk` | CIP-1852’s DRep verification key | Ed25519 public key |
66+
| `drep_xsk` | CIP-1852’s DRep extended signing key | Ed25519-bip32 extended private key |
67+
| `drep_xvk` | CIP-1852’s DRep extended verification key | Ed25519 public key with chain code |
68+
| `kes_sk` | KES signing key | KES signing key |
69+
| `kes_vk` | KES verification key | KES verification key |
70+
| `policy_sk` | CIP-1855's policy private key | Ed25519 private key |
71+
| `policy_vk` | CIP-1855's policy public key | Ed25519 public key |
72+
| `pool_sk` | Pool operator signing key | Ed25519 private key |
73+
| `pool_vk` | Pool operator verification key | Ed25519 public key |
74+
| `root_sk` | CIP-1852's root private key | Ed25519 private key |
75+
| `root_vk` | CIP-1852's root public key | Ed25519 public key |
76+
| `root_xsk` | CIP-1852's extended root private key | Ed25519-bip32 extended private key |
77+
| `root_xvk` | CIP-1852's extended root public key | Ed25519 public key with chain code |
78+
| `root_shared_sk` | CIP-1854's root private key | Ed25519 private key |
79+
| `root_shared_vk` | CIP-1854's root public key | Ed25519 public key |
80+
| `root_shared_xsk` | CIP-1854's extended root private key | Ed25519-bip32 extended private key |
81+
| `root_shared_xvk` | CIP-1854's extended root public key | Ed25519 public key with chain code |
82+
| `stake_sk` | CIP-1852's stake address signing key | Ed25519 private key |
83+
| `stake_vk` | CIP-1852's stake address verification key | Ed25519 public key |
84+
| `stake_xsk` | CIP-1852's extended stake address signing key | Ed25519-bip32 extended private key |
85+
| `stake_xvk` | CIP-1852's extended stake address verification key | Ed25519 public key with chain code |
86+
| `stake_shared_sk` | CIP-1854's stake address signing key | Ed25519 private key |
87+
| `stake_shared_vk` | CIP-1854's stake address verification key | Ed25519 public key |
88+
| `stake_shared_xsk` | CIP-1854's extended stake address signing key | Ed25519-bip32 extended private key |
89+
| `stake_shared_xvk` | CIP-1854's extended stake address verification key | Ed25519 public key with chain code |
90+
| `vrf_sk` | VRF signing key | VRF signing key |
91+
| `vrf_vk` | VRF verification key | VRF verification key |
8292

8393
### Hashes
8494

85-
| Prefix | Meaning | Contents |
86-
| --- | --- | --- |
87-
| `asset` | Fingerprint of a native asset for human comparison | See [CIP-0014] |
95+
| Prefix | Meaning | Contents |
96+
| --- | --- | --- |
97+
| `asset` | Fingerprint of a native asset for human comparison | See [CIP-0014] |
8898
| `pool` | Pool operator verification key hash (pool ID) | blake2b\_224 digest of an operator verification key |
8999
| `script` | Script hash | blake2b\_224 digest of a serialized transaction script |
90100
| `addr_vkh` | Address verification key hash | blake2b\_224 digest of a payment verification key |
@@ -99,12 +109,15 @@ We define the following set of common prefixes with their corresponding semantic
99109

100110
### Miscellaneous
101111

102-
| Prefix | Meaning | Contents |
103-
| --- | --- | --- |
104-
| `addr` | Mainnet address | Network tag, payment credential and optional stake credential |
105-
| `addr_test` | Testnet address | Network tag, payment credential and optional stake credential |
106-
| `stake` | Mainnet stake address | Network tag and stake credential |
107-
| `stake_test` | Testnet stake address | Network tag and stake credential |
112+
| Prefix | Meaning | Contents |
113+
| --- | --- | --- |
114+
| `addr` | Mainnet address | Network tag, payment credential and optional stake credential |
115+
| `addr_test` | Testnet address | Network tag, payment credential and optional stake credential |
116+
| `cc_cold` | Constitutional committee cold credential | committee cold credential |
117+
| `cc_hot` | Constitutional committee hot credential | committee hot credential |
118+
| `drep` | DRep credential | DRep credential |
119+
| `stake` | Mainnet stake address | Network tag and stake credential |
120+
| `stake_test` | Testnet stake address | Network tag and stake credential |
108121

109122
## Rationale: how does this CIP achieve its goals?
110123

0 commit comments

Comments
 (0)