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

withdrawal from internal accounts #42

Open
krlosMata opened this issue Jun 23, 2021 · 1 comment
Open

withdrawal from internal accounts #42

krlosMata opened this issue Jun 23, 2021 · 1 comment

Comments

@krlosMata
Copy link
Contributor

krlosMata commented Jun 23, 2021

Summary

Internal rollup accounts has etehreum address set to 0xFFF...FFF so no L1 transaction can be performed with them. Those accounts are cheaper at the time to create them but at the same time they have a strong caveat, no withdrawals could be done from this accounts since withdraeals are L1 transactions.

Proposal

Implement a withdrawalInternalAccount which would allow internal accounts to perform withdrawals. This function should implement a circuit where the user proves ownership of the Bjj public through a signature in a zk-proof.

Implementation

  • should check eddsa signature provided by the user in order to ensure ownership of Bjj public key
  • should add ethereum address as public input in order to avoid front-running of the zk-proof
  • flow would be exactly the same as the regular withdrawal
  • contract will force etehreum address to be 0xFFF...FFF
@invocamanman
Copy link
Contributor

Proposal Update

instead of withdrawalInternalAccount we will implement withdrawalBjj Wich allows any user to withdraw the funds using a bjj signature ( allowing internal accounts to withdraw too!)

Implementation update

  • contract will not force etehreum state address to be 0xFFF...FFF
  • there will be 2 new public inputs (compared with the circuit withdraw) the msg.sender address and the reciever address, in thiw way a bjj can athorize some withdraw transaction to another etheruem address

Spec withdrawal Bjj --> https://hackmd.io/nFX5gHYsSUWyAsB5s3PQRg

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants