You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 20, 2024. It is now read-only.
Any user could create a rollup account by sending a transaction to the hermez contract. New account is created with the following properties:
ethereum address: msg.sender
bayjubjub address: user parameter
This approach ensures that a user creates a rollup account with an ethereum address that he is in control. However, babyjubjub public address is inserted into the rollup account without proving ownership.
This leads to the system to not be able to perform transactions to babyjubjub addresses that has any ethereum address. Therefore, the current approach only allows to send transfers to babyjubjub address if that account has an ethereum address that no one can control 0xFF...FF.
Solution approach
User must proof ownership of the babyjubjub address when creating a rollup account.
This could be done by submitting the eddsa signature as calldata in the contract and force the circuit to check the eddsa signature.
This involves:
increment of calldata (eddsa signature: 512 bits)
attach eddsa signature into L1TxData
check eddsa signature on the circuit
Note: All the above applies for L1UserTx and L1CoordinatorTx