Skip to content

Commit 38c878d

Browse files
authored
CIP-1852 | Adjust preamble and structure w.r.t CIP-0001 (#723)
* first draft remediation of CIP-1852 * incidental use of word "acceptance" in Implementation Plan is confusing * broken link for CIP3 * also broken link for CIP-1854 * spelled NA instead of standard N/A * correcting KtorZ email address again
1 parent 92b6f20 commit 38c878d

File tree

1 file changed

+37
-22
lines changed

1 file changed

+37
-22
lines changed

CIP-1852/README.md

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
---
22
CIP: 1852
33
Title: HD (Hierarchy for Deterministic) Wallets for Cardano
4-
Authors: Sebastien Guillemot <[email protected]>, Matthias Benkort <[email protected]>
5-
Comments-URI: https://forum.cardano.org/t/cip1852-hd-wallets-for-cardano/41740
64
Status: Active
7-
Type: Standards
5+
Category: Wallets
6+
Authors:
7+
- Sebastien Guillemot <[email protected]>
8+
- Matthias Benkort <[email protected]>
9+
Implementors: N/A
10+
Discussions:
11+
- https://github.com/cardano-foundation/CIPs/pull/33
12+
- https://forum.cardano.org/t/cip1852-hd-wallets-for-cardano/41740
813
Created: 2019-10-28
914
License: CC-BY-4.0
1015
---
@@ -13,22 +18,7 @@ License: CC-BY-4.0
1318

1419
Cardano extends the [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) by adding new chains used for different purposes. This document outlines how key derivation is done and acts as a registry for different chains used by Cardano wallets.
1520

16-
## Terminology
17-
18-
### Derivation style
19-
20-
Cardano does not use [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) but actually uses [BIP32-Ed25519](https://input-output-hk.github.io/adrestia/static/Ed25519_BIP.pdf). The `-Ed25519` suffix is often dropped in practice (ex: we say the Byron release of Cardano supports [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) but in reality this is BIP44-Ed25519).
21-
22-
The Byron implementation of Cardano uses `purpose = 44'` (note: this was already a slight abuse of notation because Cardano implements BIP44-Ed25519 and not standard BIP44).
23-
24-
There are two (incompatible) implementations of BIP32-Ed25519 in Cardano:
25-
26-
1) HD Random (notably used initially in Daedalus)
27-
2) HD Sequential (notably used initially in Icarus)
28-
29-
The difference is explained in more detail in [CIP3](https://cips.cardano.org/cips/cip3)
30-
31-
## Motivation
21+
## Motivation: why is this CIP necessary?
3222

3323
For Cardano, we use a new purpose field `1852'` instead of `44'` like in BIP44. There are three main reasons for this:
3424

@@ -40,7 +30,7 @@ For Cardano, we use a new purpose field `1852'` instead of `44'` like in BIP44.
4030

4131
## Specification
4232

43-
Using `1852'` as the purpose field, we defined the following derivation path
33+
Using `1852'` as the purpose field, we defined the following derivation path:
4434

4535
```
4636
m / purpose' / coin_type' / account' / role / index
@@ -61,12 +51,37 @@ Here, `role` can be the following
6151

6252
Wallets **MUST** implement this new scheme using the master node derivation algorithm from Icarus with sequential addressing (see [CIP3](https://cips.cardano.org/cips/cip3) for more information)
6353

54+
## Rationale: how does this CIP achieve its goals?
55+
56+
### Derivation style
57+
58+
Cardano does not use [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) but actually uses [BIP32-Ed25519](https://input-output-hk.github.io/adrestia/static/Ed25519_BIP.pdf). The `-Ed25519` suffix is often dropped in practice (ex: we say the Byron release of Cardano supports [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) but in reality this is BIP44-Ed25519).
59+
60+
The Byron implementation of Cardano uses `purpose = 44'` (note: this was already a slight abuse of notation because Cardano implements BIP44-Ed25519 and not standard BIP44).
61+
62+
There are two (incompatible) implementations of BIP32-Ed25519 in Cardano:
63+
64+
1) HD Random (notably used initially in Daedalus)
65+
2) HD Sequential (notably used initially in Icarus)
66+
67+
The difference is explained in more detail in [CIP-0003](../CIP-0003).
68+
6469
### Future extensions
6570

66-
As a general pattern, new wallet schemes should use a different purpose if they intend to piggy-back on the same structure but for a different use-case (see for instance [CIP-1854](https://cips.cardano.org/cips/cip1854)).
71+
As a general pattern, new wallet schemes should use a different purpose if they intend to piggy-back on the same structure but for a different use-case (see for instance [CIP-1854](../CIP-1854)).
6772

6873
The `role` can however be extending with new roles so long as they have no overlapping semantic with existing roles. If they do, then they likely fall into the first category of extension and would better be done via a new purpose.
6974

75+
## Path to Active
76+
77+
### Acceptance Criteria
78+
79+
- [x] Standardisation of this derivation path among all wallets as of the Shelley ledger era.
80+
81+
### Implementation Plan
82+
83+
- [x] Common agreement on the above Motivation, Rationale and Specification during the planning of Cardano's Shelley release.
84+
7085
## Copyright
7186

72-
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode)
87+
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).

0 commit comments

Comments
 (0)