Thanks for the questions @askwhyharsh!
Hiding the input amount? From what I read about fhEVM, it think it allows encrypted inputs using the user’s public key. Would that mean the amount is first encrypted on the user side? if so, who else can decrypt that? how can the transfer happen without anyone knowing the amount here, assuming the wallet address is public.
The conversion or wrapping of normal tokens into encrypted tokens leaves an onchain footprint of how much tokens have been wrapped but the subsequent transactions from the wrapped tokens would now be private since now you’re transferring / using encrypted tokens.
For your second question, Yes the inputs are encrypted on the client end using the master public key of the KMS network. The inputs encrypted by the master public key cannot be decrypted by any single party as it is managed by the KMS network.
For the third one while transferring the user can mention the encrypted amount (whose pre-image (actual amount) the user knows) And since the plaintext is encrypted via homomorphic scheme we can compute on top of the ciphertext to perform a valid transfer.
Are there any working examples or demo implementations of such mechanisms? I’d love to see this in action to understand better how this can work with private computations work.
We’re launching something on the similar lines very soon. We’ll share the same here as well.
For computations like 𝑒(𝑎) + 𝑒(𝑏), which might rely on co-processor efficiency, how do you think the dependency can be minimised to improve performance, can anyone run a co-processor? i read some things about how the keys are handled in the KMS using MPC, but are there more than 1 nodes and can any new party/node be part of this. also assuming a scenario, where let’s say there is no co-processor running but there is eUSDC that i have that is in an eERC token, how can someone get back to converting their tokens to USDC. let’s assume that KMS is up and working and keys are fine. sorry if my questions are silly or basic, i might be wrong but just curious.
Amazing questions, Yes I think anyone can run the co-processor probably @randhindi can better elaborate here. Since co-processor is a totally different entity from KMS network i think even in a scenario where you’ve tokens left in eERC20 standard you should be able to convert it back to normal tokens.
Really curious about the details—let me know if there are resources or projects exploring this!
Thanks
For more documentation feel free to explore our docs