I have tested our FHEVM and fhevmjs and am very interested in the technology. I noticed that we have collaborated with Evmos and Fhenix, which are two chains built on Cosmos. At the same time, I also saw modifications to go-ethereum on GitHub. So, I would like to know if there are any good tutorials or solutions for adapting FHEVM to an open-source EVM-compatible chain, or even an L2 solution?
fhEVM is an EVM with encrypted types and operations. We have a working blockchain using this based on tendermint and evmos. So the blockchain can be accessed with Metamask and any ethereum client (web3, ethers,…)
If you want to integrate fhEVM into a different blockchain (ethereum, polygon, …), you can do it using fhevm-go, but we don’t provide support or tutorial for this.
Thank you for your response, I have a general understanding now. I couldn’t find the fhevm-go repository on GitHub. Is it a modified version of the go-ethereum repository? From my understanding, if our devnet is built on this go-ethereum, GitHub - zama-ai/go-ethereum: fhEVM reference implementation. Then theoretically, our devnet itself is like a sidechain of Ethereum’s testnet, right? And if we want to build on other Ethereum-compatible chains or L2 related chains, it would be like transferring the modifications we made to the original go-ethereum to the code of the corresponding compatible chain. I’m not sure if my understanding is correct.
fhevm-go is the latest version, but we didn’t open source the repository yet, it will happen in the coming months and it will be easier to integrate fhEVM in any blockchain. You can build L1, L2 or sidechain with fhEVM, depending on the blockchain you are forking or framework you’re using.
I see, I’m really looking forward to the upcoming test. I have a few more detailed questions I’d like to ask:
- We noticed that both our modified versions for Evmos and Fhenix include the go-ethereum library. Is there any dependency relationship here?
- For the Evmos and Fhenix chains, are there any differences in our support and solutions?
- If fhevm-go is not yet open source, and considering our modifications to the go-ethereum library, can we roughly understand and learn how we have made these modifications by referring to the native go-ethereum library?
- In the fhevm library, the decryption part is described as Configurable Decryption - Threshold, centralized or KMS decryption. But for the specific configuration, such as how to use the threshold, are there any resources available to understand this, and where in the library is the logic for the threshold part mainly located?
- Regarding our current devnet, I saw this question [is there a guide to running a devnet [from Discord] - #2 by Levent_Demir], showing that the run command includes Evmos. So, is our current devnet on the Evmos testnet?
- As I mentioned earlier, we currently want to integrate FHEVM capabilities into existing L2 solutions. I’m interested to know if there is any assistance or support available regarding FHEVM.
- Currently, we are building on Evmos + ethermint + go-ethereum + tendermint. Basically, tendermint can be used with CosmWasm to run smart contracts compiled in WASM, or with evmos/ethermint/go-ethereum to run smart contract in an EVM. This is our “reference” stack, but blockchain working with us can use the stack they want. Fhenix uses the fhEVM and work also with Cosmos ecosystem too. I don’t know exactly what they are using and they didn’t release their code yet AFAIK.
- What do you mean by support and solutions? I don’t understand your comparision between Evmos and Fhenix.
- I think you should read our whitepaper to understand what we did. https://github.com/zama-ai/fhevm/blob/main/fhevm-whitepaper.pdf
- The KMS part is currently under development. We talk about it also in our whitepaper.
- Yes for now, our current devnet and docker image run on Evmos stack.
- If you want to integrate fhEVM, possibly on other stack, you can contact us. I send you the telegram and email of the right person to contact in Discourse DM.