Add Zama confidential wrappers - #2595
Conversation
f37d39d to
b05ba2e
Compare
|
Hey there :)
Thank you! We will have a look at the PR afterwards. |
Clear Signing TestsTested
✅ pass · ❌ fail · |
|
Note that tests will likely fail because at least the TypeScript library does not support encryption yet (I assume the Rust library too). |
|
@manuelwedler I've updated the test for the v2 version, ran them locally and confirm there is some missing logic in the ts library (and indeed probably rust), do you confirm they come from https://github.com/sourcifyeth/clear-signing/ and https://github.com/llbartekll/clear-signing ? am i expected to open PRs there ? |
|
@melanciani I don't think you are expected to open PRs. We should get the libraries to a state where the full 7730 spec is implemented. So I just created a draft PR on the sourcify library: sourcifyeth/clear-signing#56. You can take a look at it if the implementation makes sense like this (I didn't verify what is written in I'm undecided if we need to get this implemented on both libraries before this can be merged, as it's a very specific feature. Nevertheless, you can create a PR on |
|
thanks a lot @manuelwedler , I've reviewed your PR (just made a minor comment) + opened an equivalent of your PR in the rust lib: llbartekll/clear-signing#10 ! imo having support for the encryption scheme is a great benefit to the libs so would be great to try to integrate them both ! |
|
hey @manuelwedler, the PR has been updated and is ready for review. I can see that the CI is green for both ts and rust libs: #2595 (comment) ! |
|
Thanks for this. I checked the deployments and have two questions before we go further. 1. Proxies. All 20 calldata addresses (the 2 ACL and the 18 ConfidentialWrapper deployments) are 2. EIP-712 verifying contracts. The three EIP-712 descriptors declare Posted with Claude Code |
|
hey again @kuzdogan , great questions indeed:
imo this makes more sense. Putting the implementation address means anytime we upgrade the proxies, the registry will need to change. Also, the user directly calls/sees the proxy address when signing, not the implementation one, so I'm curious how that would look. But maybe I'm missing something here
|
|
Thanks for answering those, now it's clearer.
For upgradable proxies, the spec indeed tells to point to the proxy, as you point out. I'd still argue this is a bit dangerous since the proxy implementation can move (maliciously or not) and the users might think they are still signing the same transactions. For that we either need to bind the spec to the implementation and resolve proxies on the fly, or implement ethereum/ERCs#1738 such that we have guarantees over the delegated implementation address. Even though it's not ideal as is, it seems fine as is and we can figure it out later. This discussion also made the proxy issues clearer to me, thank you
Anyway it's good as is. Thanks! |
No description provided.