-
Notifications
You must be signed in to change notification settings - Fork 1
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
Proposal: separate Seeder role from Block Generator #16
Comments
Isn't MEV attack about a scenario where an attacker submits transactions (with proper gas) before/after the victim transaction to benefit from an arbitrage trade? (weirdly in HFT world , MEV is not an attack but is considered a strategy)
Does this simply assume that the appointed validator is not also controlled by the owner of the actual Block Generator?
Regardless of the predictability, any attacker can execute MEV attack by simply monitoring mempool and submit txs with proper gas? Am I mistaken?
If it happens the Seeder is behind the other committee members, isn't it possible that committee members will reach 2/3 quorum on Validation step without knowing the Seeder vote (new seed) thus wasting the iteration? |
Instead of appointing a Seeder amongst committee members of Validation step, we may just introduce another step after Selection step. Proposal - extracts Block Generator that generates the candidate/proposal. |
In this context, it refers to the ability of manipulating gas prices but also a more high-level security trading, specific to our scope, by colluding with the next generator (or being the same one). This risk was highlighted by the security audit from Oak and stems from the predictability of the next generator, which allows acting over the span of two or multiple consecutive blocks.
Yes. This proposal is meant to mitigate the risk, not to completely solve the problem. A complete solution would require more complex strategies that would add an unacceptable overhead to the protocol.
Block generators can always choose transactions to include according to whatever strategy they think more profitable. This is part of the expected behavior of block producers and is not considered as a threat.
Yes, this is the main drawback of this solution: it forces the seeder vote to be in the quorum, and thus the iteration to have two specific provisioners to participate (generator+seeder) instead of just one (the generator). This was deemed as a minor drawback, since we always require provisioners to participate and be in sync. We also discussed making this explicit by introducing a soft slash for seeders missing their vote |
I think using one of the Validators would be generally more efficient, as it would be integrated in the current protocol (no extra messages would be required). |
Summary
To avoid potential MEV attacks by block generators, we propose to delegate the computation of the
seed
value for the next-round sortition to a different provisioner than the block generator.The proposed seed is agreed upon through quorum consensus.
The selection of the
seeder
is done via Sortition during the Validation step. In particular, one of the validators is also appointed to produce the new seed (by signing the old one).Relevant Context
In the current protocol, the
seed
used for the Sortition process is computed at each round by the block generator and included in the candidate block. As such, when creating the block, the generator can also predict the generator(s) of the next round/block.In a provisioner is selected for two (or more) consecutive round, or is colluded with future generators, this predictability can be exploited for potential MEV attacks.
To prevent this situation, the generator must be oblivious of the next generator at the time of block construction. This is achieved by computing the seed for the next round after the candidate block is created, so that the generator has no knowledge of the next generator when adding transactions to the block.
Detailed Description
This DIP proposes the following scheme:
In each iteration
it contains the new seed as a valid signature
Alternatives Solutions
A desirable solution would be to have one committee (e.g. the Validation one) compute the new seed with a threshold signature. This would remove the requirements of a second specific provisioner to participate in the iteration.
However, current Distributed Key Generation (DKG) schemes would require, at least, one additional round to make committee members generate the shared key.
As this would introduce a considerable overhead to the consensus protocol, this solution has been discarded.
This can be reconsidered in the future, if new DKG are discovered that allowed creating a shared key without requiring an extra round of messages.
Ideally, the protocol should be able to derive a committee key from either their public keys, or from some information added by each provisioner in the stake transaction.
The text was updated successfully, but these errors were encountered: