Skip to content

Commit 438d64d

Browse files
authored
CIP-0129? | Governance Identifiers (#857)
* update drep and cc member prefix * add CIP for gov identifiers * implementation plan and chore * update 105 spec, update tests * updates * update CIP number * update impl plan * update acceptance criteria * update impl plan * add cip129 ref to 005 * update tools ready status * update tools readiness * update tools readiness * update tools readiness * update tooling readiness * add deprecation information * update abstract, motivation, add more deprecation details. * fix table headers
1 parent d53dd33 commit 438d64d

File tree

7 files changed

+301
-47
lines changed

7 files changed

+301
-47
lines changed

CIP-0005/README.md

+41-23
Original file line numberDiff line numberDiff line change
@@ -92,36 +92,53 @@ We define the following set of common prefixes with their corresponding semantic
9292

9393
### Hashes
9494

95-
| Prefix | Meaning | Contents |
96-
| --- | --- | --- |
97-
| `asset` | Fingerprint of a native asset for human comparison | See [CIP-0014] |
98-
| `pool` | Pool operator verification key hash (pool ID) | blake2b\_224 digest of an operator verification key |
99-
| `script` | Script hash | blake2b\_224 digest of a serialized transaction script |
100-
| `addr_vkh` | Address verification key hash | blake2b\_224 digest of a payment verification key |
101-
| `addr_shared_vkh` | Shared address verification key hash | blake2b\_224 digest of a payment verification key |
102-
| `policy_vkh` | Policy verification key hash | blake2b\_224 digest of a policy verification key |
103-
| `stake_vkh` | Stake address verification key hash | blake2b\_224 digest of a delegation verification key |
104-
| `stake_shared_vkh` | Shared stake address verification key hash | blake2b\_224 digest of a delegation verification key |
105-
| `req_signer_vkh` | Required signer verification key hash | blake2b\_224 digest of a required signer verification key |
106-
| `vrf_vkh` | VRF verification key hash | blake2b\_256 digest of a VRF verification key |
107-
| `datum` | Output datum hash | blake2b\_256 digest of output datum |
108-
| `script_data` | Script data hash | blake2b\_256 digest of script data |
95+
| Prefix | Meaning | Contents |
96+
| --- | --- | --- |
97+
| `asset` | Fingerprint of a native asset for human comparison | See [CIP-0014] |
98+
| `pool` | Pool operator verification key hash (pool ID) | blake2b\_224 digest of an operator verification key |
99+
| `script` | Script hash | blake2b\_224 digest of a serialized transaction script |
100+
| `addr_vkh` | Address verification key hash | blake2b\_224 digest of a payment verification key |
101+
| `addr_shared_vkh` | Shared address verification key hash | blake2b\_224 digest of a payment verification key |
102+
| `policy_vkh` | Policy verification key hash | blake2b\_224 digest of a policy verification key |
103+
| `stake_vkh` | Stake address verification key hash | blake2b\_224 digest of a delegation verification key |
104+
| `stake_shared_vkh` | Shared stake address verification key hash | blake2b\_224 digest of a delegation verification key |
105+
| `req_signer_vkh` | Required signer verification key hash | blake2b\_224 digest of a required signer verification key |
106+
| `vrf_vkh` | VRF verification key hash | blake2b\_256 digest of a VRF verification key |
107+
| `datum` | Output datum hash | blake2b\_256 digest of output datum |
108+
| `script_data` | Script data hash | blake2b\_256 digest of script data |
109+
| `drep_vkh` | Delegate representative verification key hash | blake2b\_224 digest of a delegate representative verification key |
110+
| `drep_script` | Delegate representative script hash | blake2b\_224 digest of a serialized delegate representative script |
111+
| `cc_cold_vkh` | Constitutional committee cold verification key hash | blake2b\_224 digest of a consitutional committee cold verification key |
112+
| `cc_cold_script` | Constitutional committee cold script hash | blake2b\_224 digest of a serialized constitutional committee cold script |
113+
| `cc_hot_vkh` | Constitutional committee hot verification key hash | blake2b\_224 digest of a consitutional committee hot verification key |
114+
| `cc_hot_script` | Constitutional committee hot script hash | blake2b\_224 digest of a serialized constitutional committee hot script |
115+
116+
### Miscellaneous
117+
118+
| Prefix | Meaning | Contents |
119+
| --- | --- | --- |
120+
| `addr` | Mainnet address | Network tag, payment credential and optional stake credential |
121+
| `addr_test` | Testnet address | Network tag, payment credential and optional stake credential |
122+
| `stake` | Mainnet stake address | Network tag and stake credential |
123+
| `stake_test` | Testnet stake address | Network tag and stake credential |
124+
| `drep` | drep identifier | drep credential, see [CIP-0129] |
125+
| `cc_cold` | cc cold identifier | cc cold credential, see [CIP-0129] |
126+
| `cc_hot` | cc hot identifier | cc hot credential, see [CIP-0129] |
127+
| `gov_action` | gov action identifier | gov action ID, see [CIP-0129], |
128+
129+
130+
### Deprecated Governance Prefixes
131+
The prefixes above are the version defined by [CIP-0129] and should be used at this time. The prefixes below were previously defined by CIP-0105, and are deprecated. Please see CIP-0105 for the detailed deprecation information, and details to upgrade to [CIP-0129].
132+
133+
For detailed information on the new specification and the rationale behind the upgrade, please refer to [CIP-0129].
134+
109135
| `drep` | Delegate representative verification key hash (DRep ID) | blake2b\_224 digest of a delegate representative verification key |
110136
| `drep_script` | Delegate representative script hash (DRep ID) | blake2b\_224 digest of a serialized delegate representative script |
111137
| `cc_cold` | Constitutional committee cold verification key hash (cold credential) | blake2b\_224 digest of a consitutional committee cold verification key |
112138
| `cc_cold_script` | Constitutional committee cold script hash (cold credential) | blake2b\_224 digest of a serialized constitutional committee cold script |
113139
| `cc_hot` | Constitutional committee hot verification key hash (hot credential) | blake2b\_224 digest of a consitutional committee hot verification key |
114140
| `cc_hot_script` | Constitutional committee hot script hash (hot credential) | blake2b\_224 digest of a serialized constitutional committee hot script |
115141

116-
### Miscellaneous
117-
118-
| Prefix | Meaning | Contents |
119-
| --- | --- | --- |
120-
| `addr` | Mainnet address | Network tag, payment credential and optional stake credential |
121-
| `addr_test` | Testnet address | Network tag, payment credential and optional stake credential |
122-
| `stake` | Mainnet stake address | Network tag and stake credential |
123-
| `stake_test` | Testnet stake address | Network tag and stake credential |
124-
125142
## Rationale: how does this CIP achieve its goals?
126143

127144
### About the `_test` suffix
@@ -184,3 +201,4 @@ The only prior work done towards that direction has been [jcli](https://input-ou
184201
This CIP is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0).
185202

186203
[CIP-0014]: https://github.com/cardano-foundation/CIPs/blob/645243e30b5aae109a70ec2b47af70dcc808bc56/CIP-0014
204+
[CIP-0129]: (https://github.com/cardano-foundation/CIPs/blob/master/CIP-0129/README.md)

CIP-0105/README.md

+44-12
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ We strongly recommend that a maximum of one set of DRep keys should be associate
7272
#### DRep ID
7373

7474
Tools and wallets can generate a DRep ID (`drep_credential`) from the Ed25519 public DRep key (without chaincode) by creating a blake2b-224 hash digest of the key.
75-
As this is key-based credential it should be marked as entry `0` in a credential array.
75+
As this is key-based credential it should be marked as entry `0` in a credential array. DRep Identifier is further specified in [CIP-0129](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0129/README.md).
7676

7777
#### Constitutional Committee Cold Keys
7878

@@ -114,14 +114,15 @@ These are also described in [CIP-0005 | Common Bech32 Prefixes](https://github.c
114114

115115
DRep keys and DRep IDs should be encoded in Bech32 with the following prefixes:
116116

117-
| Prefix | Meaning | Contents |
118-
| ------------- | --------------------------------------------------------| ----------------------------------------------------------------- |
119-
| `drep_sk` | CIP-1852’s DRep signing key | Ed25519 private key |
120-
| `drep_vk` | CIP-1852’s DRep verification key | Ed25519 public key |
121-
| `drep_xsk` | CIP-1852’s DRep extended signing key | Ed25519-bip32 extended private key |
122-
| `drep_xvk` | CIP-1852’s DRep extended verification key | Ed25519 public key with chain code |
123-
| `drep` | Delegate representative verification key hash (DRep ID) | blake2b\_224 digest of a delegate representative verification key |
124-
| `drep_script` | Delegate representative script hash (DRep ID) | blake2b\_224 digest of a serialized delegate representative script |
117+
| Prefix | Meaning | Contents |
118+
| ------------- | --------------------------------------------------------| ------------------------------------------------------------------ |
119+
| `drep_sk` | CIP-1852’s DRep signing key | Ed25519 private key |
120+
| `drep_vk` | CIP-1852’s DRep verification key | Ed25519 public key |
121+
| `drep_xsk` | CIP-1852’s DRep extended signing key | Ed25519-bip32 extended private key |
122+
| `drep_xvk` | CIP-1852’s DRep extended verification key | Ed25519 public key with chain code |
123+
| `drep` | [DEPRECATED] DRep verification key hash (DRep ID) | blake2b\_224 digest of a delegate representative verification key |
124+
| `drep_vkh` | Delegate representative verification key hash | blake2b\_224 digest of a delegate representative verification key |
125+
| `drep_script` | Delegate representative script hash | blake2b\_224 digest of a serialized delegate representative script |
125126

126127
#### Constitutional Committee Cold Keys
127128

@@ -133,7 +134,8 @@ Constitutional cold keys and credential should be encoded in Bech32 with the fol
133134
| `cc_cold_vk` | CIP-1852’s constitutional committee verification signing key | Ed25519 private key |
134135
| `cc_cold_xsk` | CIP-1852’s constitutional committee cold extended signing key | Ed25519-bip32 extended private key |
135136
| `cc_cold_xvk` | CIP-1852’s constitutional committee extended verification signing key | Ed25519 public key with chain code |
136-
| `cc_cold` | Constitutional committee cold verification key hash (cold credential) | blake2b\_224 digest of a consitutional committee cold verification key |
137+
| `cc_cold` | [DEPRECATED] Constitutional committee cold verification key hash (cold credential) | blake2b\_224 digest of a consitutional committee cold verification key |
138+
| `cc_cold_vkh` | Constitutional committee cold verification key hash (cold credential) | blake2b\_224 digest of a consitutional committee cold verification key |
137139
| `cc_cold_script` | Constitutional committee cold script hash (cold credential) | blake2b\_224 digest of a serialized constitutional committee cold script |
138140

139141
#### Constitutional Committee Hot Keys
@@ -146,12 +148,13 @@ Constitutional hot keys and credential should be encoded in Bech32 with the foll
146148
| `cc_hot_vk` | CIP-1852’s constitutional committee verification signing key | Ed25519 private key |
147149
| `cc_hot_xsk` | CIP-1852’s constitutional committee hot extended signing key | Ed25519-bip32 extended private key |
148150
| `cc_hot_xvk` | CIP-1852’s constitutional committee extended verification signing key | Ed25519 public key with chain code |
149-
| `cc_hot` | Constitutional committee hot verification key hash (hot credential) | blake2b\_224 digest of a consitutional committee hot verification key |
151+
| `cc_hot` | [DEPRECATED] Constitutional committee hot verification key hash (hot credential) | blake2b\_224 digest of a consitutional committee hot verification key |
152+
| `cc_hot_vkh` | Constitutional committee hot verification key hash (hot credential) | blake2b\_224 digest of a consitutional committee hot verification key |
150153
| `cc_hot_script` | Constitutional committee hot script hash (hot credential) | blake2b\_224 digest of a serialized constitutional committee hot script |
151154

152155
### Tooling Definitions
153156

154-
### DRep Keys
157+
#### DRep Keys
155158

156159
Supporting tooling should clearly label these key pairs as "DRep Keys".
157160

@@ -209,6 +212,32 @@ For hardware implementations:
209212
| `ConstitutionalCommitteeHotHWSigningFile_ed25519` | Hardware Constitutional Committee Hot Signing File |
210213
| `ConstitutionalCommitteeHotVerificationKey_ed25519` | Hardware Constitutional Committee Hot Verification Key |
211214

215+
### Deprecated Governance ID Definition
216+
The previous governance key IDs defined by this standard have been superseded by the definitions provided in [CIP-0129]. Tools implementing this standard are encouraged to consider adopting [CIP-0129]. Tools that already support [CIP-0129] maintain backward compatibility with the legacy formats specified below but should consider fully transitioning to [CIP-0129] to standardize key formats across the ecosystem. This will help avoid multiple formats and ensure consistency.
217+
218+
This CIP previously also lacked `_vkh` key definitions, which are now added above possible due to the upgrades defined in [CIP-0129]. For detailed information on the new specification and the rationale behind the upgrade, please refer to [CIP-0129].
219+
220+
#### DRep Keys
221+
222+
| Prefix | Meaning | Contents |
223+
| --------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
224+
| `drep` | Delegate representative verification key hash (DRep ID) | blake2b\_224 digest of a delegate representative verification key |
225+
| `drep_script` | Delegate representative script hash (DRep ID) | blake2b\_224 digest of a serialized delegate representative script |
226+
227+
#### Constitutional Committee Cold Keys
228+
229+
| Prefix | Meaning | Contents |
230+
| --------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
231+
| `cc_cold` | Constitutional committee cold verification key hash (cold credential) | blake2b\_224 digest of a consitutional committee cold verification key |
232+
| `cc_cold_script` | Constitutional committee cold script hash (cold credential) | blake2b\_224 digest of a serialized constitutional committee cold script |
233+
234+
#### Constitutional Committee Hot Keys
235+
236+
| Prefix | Meaning | Contents |
237+
| --------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
238+
| `cc_hot` | Constitutional committee hot verification key hash (hot credential) | blake2b\_224 digest of a consitutional committee hot verification key |
239+
| `cc_hot_script` | Constitutional committee hot script hash (hot credential) | blake2b\_224 digest of a serialized constitutional committee hot script |
240+
212241
### Versioning
213242

214243
This CIP is not to be versioned using a traditional scheme, rather if any large technical changes are required then a new proposal must replace this one.
@@ -271,3 +300,6 @@ See [Test Vectors File](./test-vectors.md).
271300
## Copyright
272301

273302
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).
303+
304+
[CIP-0129]: (https://github.com/cardano-foundation/CIPs/blob/master/CIP-0129/README.md)
305+
[DEPRECATED]: #deprecated-governance-id-definition

0 commit comments

Comments
 (0)