What parts of Summa can we isolate and identify as possible improvements that can/should be worked on in a dedicated way?
- Zero knowledge address ownership for Custodians
- Exchanges traditionally rely on trusted third party auditors to verify their liabilities.
- In Summa, the exchange must submit their onchain balances to be verified optimistically.
- Verification of offchain assets; cryptographically prove bank account balances alongside crypto ones to expand the scope of solvency.
- Dispute resolution
- A user-exchange dilemma occurs if the user's balance is misrepresented in the PoL. How can the user convince the public that their balance is correct and the one given by the PoL is incorrect?
- Summa doesn't offer a solution to this up to now. An idea for this would be to have the user balance data signed by the exchange, If the user can present a signed balance logs to the public, then the exchange would have to answer by giving an inclusion proof for that user that matches the balance.
- Without the signed sheet nobody needs to believe the user (so one cannot give a bad name to an honest exchange) and without the inclusion proof nobody needs to believe the exchange (so the exchange cannot exclude a user).
- An alternate defense would be to have the user use TLSNotary while interacting with the exchange's webpage to produce a proof that they were shown a particular balance at a particular time.
- Customer Proof Verification Coordination
- Exchange users are currently silo’d
- There’s no way for users to unite to put the “pieces of the puzzle” together to get a true snapshot of solvency
- Only each user knows if their own balance is included
- Verify account ownership and query past balances at time of snapshot
- Not able to verify past states
- Currently just available on Ethereum (and Base), not other blockchains (as of April 2024)
- Axiom
- Custodian submits commitment and liability distribution curve (using zkStats maybe, or just use one more lookup in the circuit and show how many accounts in each group of balances), show distribution of balances
- Hide the requests of proofs from exchange to reduce ability for exchange to “cheat”.
- Related to batching proofs
- Exchange should never be able to see which customers actually use their proofs or not
- Batch Proof Generation
- Ability to create all the proofs at once instead of on demand
- Thwarts a profiling attack
- A backend. Currently the Custodian is responsible for organizing and managing their user data.
- Verify more than 10 currencies
- Prover submits to verifying key
- User can see that hash of verifying key submitted by the exchange is the same and can verify
- Anyone can host the frontend
- Immutable part is the hash hosted outside the UI implementation