Skip to content

Commit

Permalink
CIP-0007 | Adjust preamble and structure w.r.t CIP-0001 (cardano-foun…
Browse files Browse the repository at this point in the history
…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
rphair and KtorZ authored Jul 6, 2023
1 parent 5968378 commit 421e644
Showing 1 changed file with 32 additions and 28 deletions.
60 changes: 32 additions & 28 deletions CIP-0007/README.md
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.

Expand Down Expand Up @@ -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".
Expand Down Expand Up @@ -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).

0 comments on commit 421e644

Please sign in to comment.