Skip to content

Commit 5e3882e

Browse files
rphairRyun1
andauthoredJan 6, 2024
CIP-0011 | Adjust preamble and structure w.r.t CIP-0001 (cardano-foundation#654)
* first draft remediation of CIP-0011 * according to CIP-0084 "Ledger era" is not capitalised * spelled NA instead of standard N/A * canonical inter-CIP links * some trial and error: square brackets appear not to work outside main branch * use relative CIP link syntax that will also work on Dev Portal * best guess of what will work both on GitHub and Dev Portal * aha, that's the common link syntax: imitating CIP-0001 * CIP should also cover tool stack, not just wallets Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com> * yet another missing full stop in the Copyright section Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com> --------- Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
1 parent ff7ca72 commit 5e3882e

File tree

1 file changed

+46
-25
lines changed

1 file changed

+46
-25
lines changed
 

‎CIP-0011/README.md

+46-25
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,33 @@
11
---
22
CIP: 11
33
Title: Staking key chain for HD wallets
4-
Authors: Sebastien Guillemot <sebastien@emurgo.io>, Matthias Benkort <matthias.benkort@iohk.io>
5-
Comments-URI: https://forum.cardano.org/t/staking-key-chain-for-hd-wallets/41857
64
Status: Active
7-
Type: Standards
5+
Category: Wallets
6+
Authors:
7+
- Sebastien Guillemot <sebastien@emurgo.io>
8+
- Matthias Benkort <matthias.benkort@iohk.io>
9+
Implementors: N/A
10+
Discussions:
11+
- https://github.com/cardano-foundation/CIPs/pull/33
12+
- https://forum.cardano.org/t/staking-key-chain-for-hd-wallets/41857
13+
- https://github.com/cardano-foundation/CIPs/pull/37
814
Created: 2020-11-04
915
License: CC-BY-4.0
1016
---
1117

1218
## Abstract
1319

14-
Starting with the Shelley hardfork, Cardano makes use of both the *UTXO model* and the *account model*. To support both transaction models from the same master key, we allocate a new chain for [CIP1852](https://github.com/cardano-foundation/CIPs/blob/master/CIP-1852/README.md)
20+
Starting with the Shelley hardfork, Cardano makes use of both the *UTXO model* and the *account model*. To support both transaction models from the same master key, we allocate a new chain for [CIP-1852].
1521

16-
## Terminology
17-
18-
### Meaning of *account*
19-
20-
The term "account" is unfortunately an overloaded term so we clarify all its uses here
21-
22-
#### 1) "Account" as a BIP44 derivation level
23-
24-
BIP44 uses the term "account" as one derivation level to mean the following
25-
26-
> This level splits the key space into independent user identities, so the wallet never mixes the coins across different accounts.
27-
To differentiate this from other usage, we sometimes refer to it as an `account'` (the bip32 notation) or a BIP44 Account.
28-
29-
#### 2) "Account" as a transaction model
30-
31-
Blockchains like Ethereum does not use the UTXO model and instead uses the [*Account model*](https://github.com/ethereum/wiki/wiki/Design-Rationale#accounts-and-not-utxos) for transactions.
32-
33-
## Motivation
22+
## Motivation: why is this CIP necessary?
3423

3524
Generally it's best to only use a cryptographic key for a single purpose, and so it's best to make the staking key be separate from any key used for UTXO addresses.
3625

3726
## Specification
3827

39-
Recall that [CIP1852](https://github.com/cardano-foundation/CIPs/blob/master/CIP-1852/README.md) specifies the following derivation path
28+
> **Note** The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
29+
30+
Recall that [CIP-1852] specifies the following derivation path:
4031

4132
```
4233
m / purpose' / coin_type' / account' / chain / address_index
@@ -52,7 +43,7 @@ Wallets that use multiple staking keys are REQUIRED to use sequential indexing w
5243

5344
*Note*: an observer looking at the blockchain will be able to tell if two staking keys belong to the same user if they are generated from the same wallet with different `address_index` values because the payment keys inside the *base addresses* will be the same.
5445

55-
## Test vectors
46+
### Test vectors
5647

5748
recovery phrase
5849
```
@@ -69,6 +60,36 @@ reward address (with `network_id=1`)
6960
stake1uy8ykk8dzmeqxm05znz65nhr80m0k3gxnjvdngf8azh6sjc6hyh36
7061
```
7162

63+
## Rationale: how does this CIP achieve its goals?
64+
65+
### Meaning of *account*
66+
67+
The term "account" is unfortunately an overloaded term so we clarify all its uses here:
68+
69+
#### 1) "Account" as a BIP44 derivation level
70+
71+
BIP44 uses the term "account" as one derivation level to mean the following
72+
73+
> This level splits the key space into independent user identities, so the wallet never mixes the coins across different accounts.
74+
To differentiate this from other usage, we sometimes refer to it as an `account'` (the bip32 notation) or a BIP44 Account.
75+
76+
#### 2) "Account" as a transaction model
77+
78+
Blockchains like Ethereum does not use the UTXO model and instead uses the [*Account model*](https://github.com/ethereum/wiki/wiki/Design-Rationale#accounts-and-not-utxos) for transactions.
79+
80+
## Path to Active
81+
82+
### Acceptance Criteria
83+
84+
- [x] All notable wallet and tooling providers follow this method of key derivation.
85+
86+
### Implementation Plan
87+
88+
- [x] This method of key derivation has been agreed as canonical and has been included in [CIP-1852].
89+
- [x] This method of key derivation has been supported by all wallet and tool providers beginning with the Shelley ledger era.
90+
7291
## Copyright
7392

74-
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode)
93+
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).
94+
95+
[CIP-1852]: https://github.com/cardano-foundation/CIPs/blob/master/CIP-1852/README.md

0 commit comments

Comments
 (0)
Please sign in to comment.