Skip to content
This repository was archived by the owner on Nov 20, 2024. It is now read-only.
This repository was archived by the owner on Nov 20, 2024. It is now read-only.

Proof ownership Babyjubjub keys #5

@krlosMata

Description

@krlosMata

Current status

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions