-
Notifications
You must be signed in to change notification settings - Fork 10
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
Protocol Feature: Remove Canonical Signature Check #1106
Comments
See AntelopeIO/leap#2395 & EOSIO/eos#6699 for history |
Next step is technical proposal for how to attack this. |
Theoretically, it should be as simple as just replacing function
with
|
It's not quite that simple -- we need to guard it behind a protocol feature. But yeah it's a very small change. One (now resolved after some discussion with others) question was whether to keep the requirement that blocks are signed with a low-s signature (while still removing the weird Antelope-specific canonical check). The benefit (I thought) to this is that it will ensure that every node's block log is byte identical -- a nice property imo. I was aware that we lost this property with The last remaining item I'd like to noodle through is how (if at all) nodeos can convey to wallets that a canonical signature is or is not required. Certainly a wallet could probe |
Requiring signatures to be canonical is necessary to prevent Signature Malleability attacks.
However, in Antelope-based chains, this requirement serves no functional purpose since the signature does not affect the transaction hash generation.
Consequently, even if an attacker alters the signature, they cannot exploit it.
The primary problem with canonical checks is that they require the signer to repeat the entire signing process until a canonical signature is found. This can be quite time-consuming for applications that need high-speed signing.
The text was updated successfully, but these errors were encountered: