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

Rent Collection for Blockchain Data #755

Closed
wants to merge 4 commits into from
Closed
Changes from all 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
67 changes: 67 additions & 0 deletions EIPS/eip-755.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
eip: 755
title: Rent Collection for Blockchain Data
author: Daniel A. Nagy <daniel@ethereum.org>, Zsolt Felfoldi <zsolt@ethereum.org>
discussions-to:
status: Draft
type: Standards Track
category: Core
created: 2017-11-01
---

## Simple Summary
Introducing a way to collect rent from accounts that is proportional
to the cost that they impose on the network by storing a large state
over a long period of time.

## Abstract
A new global parameter called `rent` similar to `gasLimit` that can be
modified by miner vote is introduced. It is initialized at 0 and is
assumed to have been zero before its introduction. The miner validating
a particular block can increase rent in a bounded way at the cost of
forfeiting a proportional part of the mining reward. Similarly, if
`rent` is more than zero, one can decrease it in a bounded way and
receive the same additional mining reward that would need to be
forfeited to raise it back.

With each new block, an account is chosen in a deterministically random
fashion with a probability proportional to the amount of storage that
they use. The current value of `rent` is subtracted from their balance
and if the result is negative, the account gets removed from the state.
Otherwise, account balance is updated by the result.

## Motivation
Currently, contracts storing a large state over a long period of time
impose considerable cost on the network and do so for free, having
insufficient incentives to keep their state small. This results in
an unreasonable waste of a scarce resource.

## Specification
### TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO

Both `rent` is available as readable environment to contracts.

## Rationale
The proposed rent control mechanism creates a *tragedy of commons* type
coordination problem between miners, privatizing the costs of raising
`rent` while the benefit is common and, conversely, privatizing the
benefit of reducing `rent` while the cost is socialized. It is up to
miners to coordinate through smart contracts; it is not part of the protocol.
In general, this bias towards reducing the rent is intended to keep
rent in check and make it difficult for miners to raise rent beyond
the actual cost of storing the state.

## Backwards Compatibility
The fact that both `rent` is initialized as zero and assumed to have been
zero before introducing the protocol change, the entire history of the
blockchain is conforming to the rules introduces in this protocol change.
Since miners are beneficiaries of the change, no difficulty is expected
with acceptance by miners.

## Test Cases
### TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO


## Implementation
### TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO


## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).