-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Note that in making schema for these 2, the first attestation's subjectPubKey is an RSA key, and the 2nd attestation is signed by an RSA key.
Given the cost of a transaction of 68 gas per byte†, it's quite punishing to use RSA. Suppose 4k RSA is used, it means 512 bytes in SubjectPublicKey of the NFTOwnershipAttestation and another 512 bytes in the signature of EthAddressLinkageAttestation, 8 times the size of secp256k1. Also the signature verification costs 5580 or 89292 gas‡ (equivalent of 82 to 1313 bytes), while secp256k1 costs 3000 gas.
† https://medium.com/coinmonks/on-efficient-ethereum-addresses-3fef0596e263
‡ https://ethereum.stackexchange.com/questions/71728/after-eip-198-introduction-how-much-gas-is-required-for-rsa-signature-verificat
That is 26112 additional gas cost per transaction, ignoring verification cost.
What would be the consequence if we go down to 2k RSA? Note that the 2nd attestation has very short expiry, it was created for a transaction and only need to stay valid till it is embedded in the blockchain, so reducing security doesn't expose too much attack surface (I hope.)