You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This proposal describes a method allowing a stakepool operator to provide credentials to verify that they are the rightful manager for their stakepool.
15
24
16
-
# Motivation
25
+
##Motivation: why is this CIP necessary?
17
26
18
27
Many websites such pooltool.io, adapools.org, and others need to allow pool operators special access to modify the way their pool appears on the website. SPOCRA and other organizations also have a need to allow voting on proposals and ensure that each vote cast is from a valid pool operator. Today, these sites and organizations all use different techniques for validating pool operators.
19
28
20
29
pooltool.io - Validates operators by receiving 1 ada spent from the pool's registered rewards account
21
30
22
31
adapools.org - Validates operators by requesting that the operator include a special generated value in their extended pool metadata json file.
23
32
24
-
This proposal desires to simplify and streamline a single approach that all can reference in order to verify that a pool operator is who they say they are.
33
+
This proposal is to simplify and streamline a single approach that all can reference in order to verify that a pool operator is who they say they are.
25
34
26
-
Current Tools that have implemented it already or have plans to implement it:
In order to achieve the goals of this CIP, the pool operator needs to provide some credential or credentials to the validating party which cannot be spoofed. The VRF pool keys and VRF signature algorithm implemented in libsodium are chosen to build and provide this credential/signature. This signature can then be validated and the operator verified without ever exposing any of the pool's private key information. This technique is very similar to verifying that a block produced by another pool is valid. The only difference is that instead of validating the slot seed for a given pool, we're validating a pre-determined message hash.
36
38
37
-
## Verification Steps:
39
+
###Verification Steps:
38
40
39
41
1. Stakepool Operator (SPO) sends their pool_id and public pool.vrf.vkey to the Validating Server (VS)
40
42
2. VS validates that the vrf hash in the pool's registration certificate on the blockchain matches the blake2b hash of the sent vkey. Note: The VS should use the latest registration certificate on the chain for matching as the VRF is a "hot" key and can be changed at any time by the pool operator. A single point-in-time verification is sufficient to properly identify the pool operator.
@@ -43,8 +45,7 @@ In order to achieve the goals of this CIP, the pool operator needs to provide so
43
45
5. The SPO sends this to VS as the challenge response within a 5-minute window to the VS
44
46
6. The VS validates the signed challenge response
45
47
46
-
47
-
## Code Example (Validating server):
48
+
### Code Example (Validating server):
48
49
49
50
```kotlin
50
51
// Server side, create inputs for a challenge. Store this and only allow responses
## Rationale: how does this CIP achieve its goals?
130
+
131
+
Implementing this simplifies and commonizes the process for verifying that a pool operator is who they say they are in 3rd party systems. Having a common way of verify pool operators also allows simple integration into pool management tools.
132
+
133
+
There is also some overlap with [CIP-0006](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0006/README.md#extended-metadata---flexible-but-validable) and the `rawdata-sign` command although it specifies generating a new key instead of utilizing the pool's existing `vrf.skey` to sign like this proposal.
134
+
135
+
## Path to Active
136
+
137
+
### Acceptance Criteria
138
+
139
+
-[x] Tools that have implemented, or are implementing, this proposal:
Implementing this simplifies and commonizes the process for verifying that a pool operator is who they say they are in 3rd party systems. Having a common way of verify pool operators also allows simple integration into pool management tools. There is also some overlap with [CIP-006](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0006/CIP-0006.md#extended-metadata---flexible-but-validable)and the `rawdata-sign` command although it chooses to generate a new key instead of utilizing the pool's existing vrf.skey to sign like this proposal.
147
+
-[x] Consensus between providers of the most popular tools and CLIs for stake pool operators that this approch is viable and desirable.
131
148
132
-
# Copyright
149
+
##Copyright
133
150
134
-
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode)
151
+
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).
0 commit comments