-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Rethink replay protection #151
Comments
One idea is to make it a generic layer after the sig checking, and use the tx hash of the signed data as a nonce (so you can't just add an extra sig to change it). If it is successfully This would work without each app having to maintain it's own counts (like coin sequence) and the client to remember them all. Also if you have a few outstanding multisig tx, then the sequence number can be rather limiting (okay, i can't send the multisig with you until the other multisig is completed). However, it would also require ~20 bytes per tx, which may grow quite large if we have 10tx/s sustained (-> 860K/day, 300M/year = 6-7GB/year) Not sure where to find the balance between usability and performance. |
I think those numbers 6-7GB/year in a very active chain are not actually that bad - we will probably have much more state than that. Let's go for it. We can optimize later by adding a bloom filter. The changes would be:
Anything else? Looking forward to a PR, rige :) |
Okay, this is the same as #160, which is a more clear explanation. Keeping this for history... maybe there were some good ideas here... |
* fix logs related to store keys and app hash * Update log in store/rootmulti/store.go Co-authored-by: Aleksandr Bezobchuk <[email protected]> * Update log in baseapp/abci.go Co-authored-by: Aleksandr Bezobchuk <[email protected]> Co-authored-by: Aleksandr Bezobchuk <[email protected]>
* fix logs related to store keys and app hash * Update log in store/rootmulti/store.go Co-authored-by: Aleksandr Bezobchuk <[email protected]> * Update log in baseapp/abci.go Co-authored-by: Aleksandr Bezobchuk <[email protected]> Co-authored-by: Aleksandr Bezobchuk <[email protected]>
Replay protection is super important in a blockchain.
Right now, Basecoin uses sequence to work as a nonce. However this requires all TX to have a Basecoin input.
Can we think of a form of Replay protection that works when not all TX have a Basecoin input.
The text was updated successfully, but these errors were encountered: