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

Approval Voting Rewards #1811

Open
eskimor opened this issue Oct 7, 2023 · 6 comments
Open

Approval Voting Rewards #1811

eskimor opened this issue Oct 7, 2023 · 6 comments
Labels
I6-meta A specific issue for grouping tasks or bugs of a specific category.

Comments

@eskimor
Copy link
Member

eskimor commented Oct 7, 2023

More details here.

@burdges
Copy link

burdges commented Oct 7, 2023

I've done some analysis in https://hackmd.io/@rgbPIkIdTwSICPuAq67Jbw/S1fHcvXSF which lands on the median based UDP variant, but it's still lacking (a) discussion of why state channels look heaver, and (b) the median based TCP variant.

@eskimor
Copy link
Member Author

eskimor commented Oct 7, 2023

Related idea, which might be complimentary or even a replacement: PVF lottery. @burdges could you fill in some details on how this would actually work:

  1. Which VRF would be used how?
  2. How do we ensure that validators need to actually execute the PVF with the PoV to determine whether they won or not?

@burdges
Copy link

burdges commented Oct 7, 2023

Any lottery needs a safe-ish randomness source, like relay chain VRFs at inclusion times, but inclusion could be delayed by not including some availability votes, which permits bias and gaming the rewards. We'd need this game to pay worse than whatever we pay for including one availability vote, which sounds impossible.

@the-right-joyce the-right-joyce added the I6-meta A specific issue for grouping tasks or bugs of a specific category. label Oct 9, 2023
@ordian
Copy link
Member

ordian commented Oct 16, 2023

I would really prefer a design where we don't put nˆ2 messages on-chain, even if once per session. I am not sure what is the current allocation limit in one-go, but it could break among other things like being overweight. Would putting them into DA with a commitment on chain work as well? We would need to prove a median computation given commitment to the data somehow, but that should be solvable.

@burdges
Copy link

burdges commented Oct 16, 2023

Ain't clear availability helps, but we've various options in general.

If you first compute a median off chain, then you can prove it on-chain cheaply. It'd need this n^2 storage somewhere though, and you still put the votes into blocks. You'd need a penalty for wasting our time if the proposed median being proven winds up incorrect.

We could've folks vote upon the hashes of their median list, which avoids the penalties. I'd first envisioned some related protocols where you lose era points if you miss some gossip messages, but I think just voting on hashes works, or else nobody gets paid and governance solves it.

If scores are coarser grained, then scores could be collected more easily by exploiting that almost everyone votes alike. In fact, scores could perhaps be +/- from some statistic across validators, perhaps subjective. We'd want to check the failure modes of the first and how the second biased counting.

Approximation might be manipulable too https://arxiv.org/pdf/1902.04023.pdf

@burdges
Copy link

burdges commented Oct 16, 2023

I'll spell out the vote-on-hashes protocol in details:

  1. All validators gossip their assessments of everyone but themselves, which they hide for tit-for-tat.
  2. All validators compute the median of everyone's assessments.
  3. All validators compute the merkle tree of their median computations, and sign its hash.
  4. If more than half sign the same hash, then that median list gets posted on-chain.
  5. If fewer than half sign the same hash, then no rewards this era. In principle, governance hands out rewards manually whenever we fix the bug, but the bug is likely due to gossip failure due to network conditions, so probably no rewards.

serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 26, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 27, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bkchr pushed a commit that referenced this issue Apr 10, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.62 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.62...0.1.63)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I6-meta A specific issue for grouping tasks or bugs of a specific category.
Projects
Status: Backlog
Development

No branches or pull requests

4 participants