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

Punish the proposer when building block with rubbish txs #2687

Closed
wukongcheng opened this issue Nov 5, 2018 · 4 comments
Closed

Punish the proposer when building block with rubbish txs #2687

wukongcheng opened this issue Nov 5, 2018 · 4 comments

Comments

@wukongcheng
Copy link
Contributor

wukongcheng commented Nov 5, 2018

Summary

If a validator becomes to be the proposer and builds the block with a lot of rubbish txs, for example, cannot pass the checkTx(), cannot pass the ante check.

Problem Definition

We are doing the stress test and the storage consumes very fast. If a validator build rubbish txs into the new height block, and other validators will find that until the commit stage. But there is also no any punishment for the Byzantium validator. And every nodes' disk will be occupied by the rubbish txs.

Proposal

Can we introduce a new type of invalid-tx evidence? If +2/3 validators report the invalid-tx evidence when doing block commit in the cosmos-sdk, the Byzantium validator will be slashed or get other punishment.

@alexanderbez
Copy link
Contributor

We are doing the stress test and the storage consumes very fast.

What is actually persisted here?

@wukongcheng
Copy link
Contributor Author

We are doing the stress test and the storage consumes very fast.

What is actually persisted here?

We have a validator who always propose block with invalid txs. Every tx == '0x0000000000000...0000' and the size of tx is 1k byte. So these txs even can not be convert into stdTx. But they are stored on the blockchain.

@alexanderbez
Copy link
Contributor

alexanderbez commented Nov 6, 2018

I'm not super familiar with the underlying mechanics of tx persistent yet in TM, but if these txs don't pass checkTx, then how/why are they persisted?

Edit: I understand the malicious proposer can elect to bypass the invalid checkTx and still propose the txs in a block.

This is indeed not ideal. Any sort of solution here I think would start in TM, such as including said proposers in the block evidence. So we should move the issue there. The SDK can handle this accordingly afterwards.

/cc @ebuchman @jaekwon

@tac0turtle
Copy link
Member

close in favour of #11965

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

5 participants