Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIP-0007 | Adjust preamble and structure w.r.t CIP-0001 #537

Merged
merged 5 commits into from
Jul 6, 2023
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 29 additions & 28 deletions CIP-0007/README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,24 @@
---
CIP: 7
Title: Curve Pledge Benefit
Authors: Shawn McMurdo <shawn_mcmurdo@yahoo.com>
Discussions-To:
Comments-Summary:
Comments-URI:
Authors:
- Shawn McMurdo <shawn_mcmurdo@yahoo.com>
Category: Ledger
Status: Proposed
Type: Standards
Created: 2020-08-11
Discussions:
rphair marked this conversation as resolved.
Show resolved Hide resolved
- 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 +65,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 +107,28 @@ 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?

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.

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.
### Backward Compatibility

## Copyright
This proposal is backwards compatible with the current reward function by setting the curve_root parameter to 1.

Copyright 2020 Shawn McMurdo
## Path to Active

### Acceptance Criteria

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.
rphair marked this conversation as resolved.
Show resolved Hide resolved

### Implementation Plan

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.
rphair marked this conversation as resolved.
Show resolved Hide resolved

## 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).