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

Make the validator pay the penalty #323

Closed
Tracked by #199
aakoshh opened this issue Jul 20, 2023 · 4 comments
Closed
Tracked by #199

Make the validator pay the penalty #323

aakoshh opened this issue Jul 20, 2023 · 4 comments

Comments

@aakoshh
Copy link
Contributor

aakoshh commented Jul 20, 2023

Related to #349

A miner is allowed to include a transaction where the gas_fee_cap is lower than the prevailing base_fee, which results in a penalty being calcualted, which the miner should pay. This mechanism is not implemented, however, so any validator can include any cheapo transactions that everyone has to validate.

See what Lotus / Forest do in this regard and implement a similar mechanism.

Questions:

  • What if the miner runs out of funds after transaction execution?
  • How should we decrease the miner voting power if they can't pay the penalty?
@raulk
Copy link
Contributor

raulk commented Nov 21, 2023

Have we considered simply disallowing the inclusion of such messages?

@aakoshh
Copy link
Contributor Author

aakoshh commented Nov 22, 2023

@raulk with vanilla ABCI disallowing the inclusion of such messages would not have been possible because the first time Fendermint would see the block would be when they are already finalized, however with ABCI++ we can make this a criteria for voting in process_proposal, so we have this option too.

So we can either 1) not vote on a block we don't like or 2) allow the block but penalize the validator by making them pay and/or reducing their voting power.

@raulk
Copy link
Contributor

raulk commented Nov 27, 2023

@aakoshh (1) seems simplest and viable to implement at this stage. (2) is way more complex as you need to guarantee that there's a slashable amount either by having locked rewards, block minting rewards, or by slashing the stake/weight at the parent which involves a bottom-up interaction. Feel free to open an issue to consider (2) for the future; right now with federated validation it doesn't make sense.

@raulk
Copy link
Contributor

raulk commented Nov 27, 2023

@aakoshh why wouldn't we be able to reject the transaction in check_tx? Does CometBFT only invoke this on mempool gossip and not when validating a block? (That would be assymetrical and inconsistent?)

@jsoares jsoares transferred this issue from consensus-shipyard/fendermint Dec 19, 2023
@jsoares jsoares closed this as not planned Won't fix, can't repro, duplicate, stale Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants