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

Research / implement time-bounded proofs of work #4197

Open
clemahieu opened this issue Mar 22, 2023 · 0 comments
Open

Research / implement time-bounded proofs of work #4197

clemahieu opened this issue Mar 22, 2023 · 0 comments
Milestone

Comments

@clemahieu
Copy link
Contributor

The general idea is to mix a timestamp along with the attempt nonce when generating proofs of work for blocks. The node would then be able to consider the timestamp when ordering unconfirmed blocks in buckets. This would mean proofs are associated with a particular time rather than being timeless as they currently are.

The motivation for looking at using time-bounded proofs of work is twofold:

Gives a natural timeout to unconfirmed blocks:
The node orders unconfirmed blocks in a bucket for eventual confirmation. During high load these buckets can fill and the node needs to select blocks to drop. The node picks the lowest priority blocks to drop if buckets get full. This change would give an objective way for different nodes to drop some blocks, without coordination other than time, when confirmation rate can't keep up with transaction generation rate.

Allows the possibility of lowering PoW difficulty:
Since the proofs are only valid for a shorter period of time, the difficulty might be able to be lowered and in exchange, wallets would have to re-generate work proofs in order maintain being considered for confirmation.

This change does not address block work pre computation as it's still possible to generate proofs for a time point in the future.

What remains to be designed is a strategy for bootstrapping which would allow non-recent proofs for blocks the network has already confirmed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Research for Future
Nano Roadmap
Research for Future
Development

No branches or pull requests

2 participants