|
1 | 1 | ---
|
2 | 2 | CIP: 7
|
3 | 3 | Title: Curve Pledge Benefit
|
4 |
| -Authors: Shawn McMurdo <shawn_mcmurdo@yahoo.com> |
5 |
| -Discussions-To: |
6 |
| -Comments-Summary: |
7 |
| -Comments-URI: |
| 4 | +Authors: |
| 5 | + - Shawn McMurdo <shawn_mcmurdo@yahoo.com> |
| 6 | +Category: Ledger |
8 | 7 | Status: Proposed
|
9 |
| -Type: Standards |
10 | 8 | Created: 2020-08-11
|
| 9 | +Discussions: |
| 10 | + - https://github.com/cardano-foundation/CIPs/pull/12 |
| 11 | + - https://forum.cardano.org/t/protocol-parameters-pledge-and-sybil-resistance/35100 |
| 12 | + - https://github.com/input-output-hk/cardano-node/issues/1518 |
| 13 | +Implementors: [] |
11 | 14 | License: Apache 2.0
|
12 |
| -Post-History: https://forum.cardano.org/t/protocol-parameters-pledge-and-sybil-resistance/35100 and https://github.com/input-output-hk/cardano-node/issues/1518 |
13 | 15 | ---
|
14 | 16 |
|
15 |
| -## Summary |
16 |
| - |
17 |
| -Use a n-root curve instead of current linear a0 pledge benefit factor in the rewards equation. |
18 |
| - |
19 | 17 | ## Abstract
|
20 | 18 |
|
21 | 19 | Modifying the current rewards calculation equation by substituting a n-root curved relationship between pledge and pledge benefit rewards for the current linear relationship will better achieve the original design goal of incentivizing pledge to help prevent Sybil attacks.
|
22 | 20 | This also reduces the unfortunate side effect in the current equation that over rewards private pools which provide no additional security benefit.
|
23 | 21 |
|
24 |
| -## Motivation |
| 22 | +## Motivation: why is this CIP necessary? |
25 | 23 |
|
26 | 24 | There are two main reasons for changing the current linear a0 pledge benefit factor in the rewards equation.
|
27 | 25 |
|
@@ -68,18 +66,7 @@ The curve_root is n in n-root. For example, 1 = linear, 2 = square root, 3 = cub
|
68 | 66 |
|
69 | 67 | By making this modification to the rewards equation we introduce two new protocol parameters, crossover_factor and curve_root, that need to be set thoughtfully.
|
70 | 68 |
|
71 |
| -## Rationale |
72 |
| - |
73 |
| -Using the n-root curve pledge benefit shows a much more reasonable distribution of pledge related rewards which will encourage meaningful pledges from more pool operators thus making the network more secure against Sybil attacks. |
74 |
| -It also provides higher rewards for higher pledge without disproportionately rewarding a very few private pool operators who provide no additional security value to the network. |
75 |
| -This modification maintains the general principles of the current rewards equation and does not introduce any hard limits. |
76 |
| -It improves the incentives that were originally designed to make them more meaningful for the majority of pool operators. |
77 |
| - |
78 |
| -## Backward Compatibility |
79 |
| - |
80 |
| -This proposal is backwards compatible with the current reward function by setting the curve_root parameter to 1. |
81 |
| - |
82 |
| -## Test Cases |
| 69 | +### Test Cases |
83 | 70 |
|
84 | 71 | See rewards.php for some simple PHP code that allows you to try different values for crossover_factor and curve_root and compare the resulting rewards to the current equation.
|
85 | 72 | For usage, run "php -f rewards.php help".
|
@@ -121,13 +108,30 @@ Pledge Rewards Benefit Alt Rwd Alt Bnft
|
121 | 108 |
|
122 | 109 | As you can see this gives meaningful pledge benefit rewards to pools pledging less than 1m ADA.
|
123 | 110 |
|
124 |
| -## Implementations |
| 111 | +## Rationale: how does this CIP achieve its goals? |
125 | 112 |
|
126 |
| -If someone will show me where the current maxPool reward equation is implemented in the code, I could produce an implementation of this change as a pull request. |
| 113 | +Using the n-root curve pledge benefit shows a much more reasonable distribution of pledge related rewards which will encourage meaningful pledges from more pool operators thus making the network more secure against Sybil attacks. |
| 114 | +It also provides higher rewards for higher pledge without disproportionately rewarding a very few private pool operators who provide no additional security value to the network. |
| 115 | +This modification maintains the general principles of the current rewards equation and does not introduce any hard limits. |
| 116 | +It improves the incentives that were originally designed to make them more meaningful for the majority of pool operators. |
127 | 117 |
|
128 |
| -## Copyright |
| 118 | +### Backward Compatibility |
| 119 | + |
| 120 | +This proposal is backwards compatible with the current reward function by setting the curve_root parameter to 1. |
| 121 | + |
| 122 | +## Path to Active |
129 | 123 |
|
130 |
| -Copyright 2020 Shawn McMurdo |
| 124 | +### Acceptance Criteria |
| 125 | + |
| 126 | +- [ ] The new equation is implemented in the ledger and enacted through a hard-fork. |
| 127 | + |
| 128 | +### Implementation Plan |
| 129 | + |
| 130 | +- [ ] Agreement by the Ledger team as defined in [CIP-0084](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0084) under _Expectations for ledger CIPs_ including "expert opinion" on changes to rewards & incentives. |
| 131 | + |
| 132 | +- [ ] Author has offered to produce an implementation of this change as a pull request if shown where the current maxPool reward equation is implemented in the code. |
| 133 | + |
| 134 | +## Copyright |
131 | 135 |
|
132 |
| -This CIP is licensed under the Apache-2.0 license. |
| 136 | +2020 Shawn McMurdo. This CIP is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). |
133 | 137 |
|
0 commit comments