forked from cardano-foundation/CIPs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CIP-0007 | Adjust preamble and structure w.r.t CIP-0001 (cardano-foun…
…dation#537) * cip7 update for new CIP standard * forgot to apply the new Authors: format * missed a single-element list (breaking into bullets) Co-authored-by: Matthias Benkort <[email protected]> * new Ledger RSS criteria; fill out into bullets with checkboxes Co-authored-by: Matthias Benkort <[email protected]> * checkboxes all through Plan to Active; RSS Ledger approval is part of Implementation, not Acceptance Co-authored-by: Matthias Benkort <[email protected]> --------- Co-authored-by: Matthias Benkort <[email protected]>
- Loading branch information
Showing
1 changed file
with
32 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,25 @@ | ||
--- | ||
CIP: 7 | ||
Title: Curve Pledge Benefit | ||
Authors: Shawn McMurdo <[email protected]> | ||
Discussions-To: | ||
Comments-Summary: | ||
Comments-URI: | ||
Authors: | ||
- Shawn McMurdo <[email protected]> | ||
Category: Ledger | ||
Status: Proposed | ||
Type: Standards | ||
Created: 2020-08-11 | ||
Discussions: | ||
- https://github.com/cardano-foundation/CIPs/pull/12 | ||
- https://forum.cardano.org/t/protocol-parameters-pledge-and-sybil-resistance/35100 | ||
- https://github.com/input-output-hk/cardano-node/issues/1518 | ||
Implementors: [] | ||
License: Apache 2.0 | ||
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 | ||
--- | ||
|
||
## Summary | ||
|
||
Use a n-root curve instead of current linear a0 pledge benefit factor in the rewards equation. | ||
|
||
## Abstract | ||
|
||
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. | ||
This also reduces the unfortunate side effect in the current equation that over rewards private pools which provide no additional security benefit. | ||
|
||
## Motivation | ||
## Motivation: why is this CIP necessary? | ||
|
||
There are two main reasons for changing the current linear a0 pledge benefit factor in the rewards equation. | ||
|
||
|
@@ -68,18 +66,7 @@ The curve_root is n in n-root. For example, 1 = linear, 2 = square root, 3 = cub | |
|
||
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. | ||
|
||
## Rationale | ||
|
||
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. | ||
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. | ||
This modification maintains the general principles of the current rewards equation and does not introduce any hard limits. | ||
It improves the incentives that were originally designed to make them more meaningful for the majority of pool operators. | ||
|
||
## Backward Compatibility | ||
|
||
This proposal is backwards compatible with the current reward function by setting the curve_root parameter to 1. | ||
|
||
## Test Cases | ||
### Test Cases | ||
|
||
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. | ||
For usage, run "php -f rewards.php help". | ||
|
@@ -121,13 +108,30 @@ Pledge Rewards Benefit Alt Rwd Alt Bnft | |
|
||
As you can see this gives meaningful pledge benefit rewards to pools pledging less than 1m ADA. | ||
|
||
## Implementations | ||
## Rationale: how does this CIP achieve its goals? | ||
|
||
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. | ||
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. | ||
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. | ||
This modification maintains the general principles of the current rewards equation and does not introduce any hard limits. | ||
It improves the incentives that were originally designed to make them more meaningful for the majority of pool operators. | ||
|
||
## Copyright | ||
### Backward Compatibility | ||
|
||
This proposal is backwards compatible with the current reward function by setting the curve_root parameter to 1. | ||
|
||
## Path to Active | ||
|
||
Copyright 2020 Shawn McMurdo | ||
### Acceptance Criteria | ||
|
||
- [ ] The new equation is implemented in the ledger and enacted through a hard-fork. | ||
|
||
### Implementation Plan | ||
|
||
- [ ] 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. | ||
|
||
- [ ] 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. | ||
|
||
## Copyright | ||
|
||
This CIP is licensed under the Apache-2.0 license. | ||
2020 Shawn McMurdo. This CIP is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). | ||
|