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

[draft] Postconfirmation protocol #1046

Draft
wants to merge 16 commits into
base: main
Choose a base branch
from
Draft

Conversation

apenzk
Copy link
Contributor

@apenzk apenzk commented Feb 11, 2025

Summary

  • MIPs: MIP-37.
  • Categories: protocol-units

Introduces the role of acceptor in the MCR contract, see MIP-37.

The postconfirmer (prevs. acceptor)

  • should be selected based on L1 randomness (not part of this iteration of the protocol)
  • serves for a certain period
  • receives rewards for service
  • is replaceable by volunteer attester
  • is checked for liveness

The volunteer-postconfirmer

  • can postconfirm at any time
  • gets only rewarded after a privilege window for the postconfirmer is over

Motiviation

Currently rewarding based on time of commitment and the complexity that arises from the last committer having higher commit cost and different rewards may cause race conditions, co-location and centralization.

This can be resolved by separating the tasks into attesters and postconfirmer, where postconfirmer is a new role that converts provided attester commitments into a postconfirmation and update the state (i.e., rollover to new epochs). The sole role of the attester becomes to commit.

As a simple first PoC the current acceptor could be selected based on "slow" randomness from L1. E.g. using hashes from L1-blocks. However, this would require that the protocol is modified to use L1 blocks instead of timestamps for epochs. This has been ommitteed for now, but as a consequence it becomes predictable who is the postconfirmer.

Changelog

Testing

forget test ok
cargo check ok
cargo test fail

Outstanding issues

  • using time for acceptor term instead of blocks requires to use pre-calculatable randomness, while this enables rotation it does not make it unpredictable. (this will be fine for now but should be revisited later)

apenzk and others added 6 commits February 11, 2025 15:46
Co-authored-by: Mikhail Zabaluev <mikhail.zabaluev@movementlabs.xyz>
Co-authored-by: Andy Golay <andygolay@gmail.com>
Co-authored-by: musitdev <philippe.delrieu@free.fr>
Co-authored-by: Mikhail Zabaluev <mikhail.zabaluev@movementlabs.xyz>
Co-authored-by: Richard Melkonian <35300528+0xmovses@users.noreply.github.com>
Co-authored-by: Icarus131 <anirudhprasad131@protonmail.com>
Co-authored-by: primata <primata@movementlabs.xyz>
Co-authored-by: Icarus131 <anirudhprasad131@gmail.com>
Co-authored-by: Richard Melkonian <r.v.melkonian@gmail.com>
@apenzk apenzk changed the title Postconfirmation protocol [draft] Postconfirmation protocol: collects the relevant PRs Feb 17, 2025
@apenzk apenzk changed the title [draft] Postconfirmation protocol: collects the relevant PRs [draft] Postconfirmation protocol Feb 17, 2025
@Movement-Network-Foundation

changes are needed

Copy link

Choose a reason for hiding this comment

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

completed project

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants