zama-ai / fhevm-go

fhevm-go is an open-source library used to easily integrate the fhEVM into an EVM-compatible blockchain.
Other
21 stars 14 forks source link
blockchain cryptography encryption evm fhe fully-homomorphic-encryption golang privacy


📒 Read documentation | 💛 Community support


fhEVM-go is an open-source library used to easily integrate the fhEVM into an EVM-compatible blockchain.

Main features

fhEVM-go gives your EVM the ability to compute on encrypted data using fully homomorphic encryption by:

Getting started

In order to use the library, you need to clone the repository and build it. This is required because the library depends on the tfhe-rs library that needs to be built from source (for now), and Go doesn't support such a build.

$ git clone --recurse-submodules https://github.com/zama-ai/fhevm-go
$ cd fhevm-go
$ make build

That's it! You can now use it in your project by adding it to go.mod, and adding a replace to point to your local build. An example using fhevm-go v1.0.0:

...
require(
    ...
    github.com/zama-ai/fhevm-go v1.0.0
    ...
)

replace(
    ...
    github.com/zama-ai/fhevm-go v1.0.0 => /path/to/your/local/fhevm-go
    ...
)
...

[!NOTE] The replace in necessary for now as Go build system can't build the tfhe-rs library that fhevm-go needs. It's therefore necessary that we build it manually as mentioned above, then point to our ready-to-use directory in go.mod.

Regenerate protobuff files

To re-generate these files, install protoc, protoc-gen-go and protoc-gen-go-grpc and run protoc cd proto && protoc --go_out=../fhevm/kms --go_opt=paths=source_relative --go-grpc_out=../fhevm/kms --go-grpc_opt=paths=source_relative kms.proto && cd ...

Documentation

Full, comprehensive documentation is available at https://docs.zama.ai/fhevm-go.

Target users

The library helps EVM maintainers to extend their EVM with the power of FHE. If you are looking for a library to deploy and use smart contracts on an fhEVM, you should better look at https://github.com/zama-ai/fhevm.

Tutorials

Need support?

License

This software is distributed under the BSD-3-Clause-Clear license. If you have any questions, please contact us at hello@zama.ai.