/eigencc

A TEE framework to ship zkVM/zkEVM

Primary LanguageRustApache License 2.0Apache-2.0

EigenCC: Confidential Computation

Intel SGX

Intel SGX Enhance Your Code and Data Protection

Requirements

Rust SGX SDK: 1.1.3

Rust Version: rustup default nightly-2020-10-25

Compile

$ git clone --recursive https://github.com/ieigen/eigencc.git  # if clone failed, use `git submodule update --init` to pull submodules
$ cd sgx
$ docker run --name fns --security-opt seccomp=unconfined --cap-add=SYS_PTRACE --net=host -v $(pwd):/app -w /app -it --entrypoint "" ieigen/fns:v3 bash
$ rustup default nightly-2020-10-25
$ mkdir -p build && cd build
$ cmake .. && make # or use SIM mode: cmake .. -DSGX_SIM_MODE=on && make

Build $IMAGE image by Dockerfile

you also can build it by docker:

docker build -t ieigen/dev:v1 -f fns.Dockerfile .

Run

use EPID:

$ cd /app/release/services
$ export IAS_SPID=xxxx
$ export IAS_KEY=xxx
$ cd /app/release/services
$ #the next step can be skipped if you use SIM mode
$ LD_LIBRARY_PATH="/opt/intel/sgx-aesm-service/aesm:$LD_LIBRARY_PATH" /opt/intel/sgx-aesm-service/aesm/aesm_service
$ ./fns

open another terminal,

$ cd /app/release/examples
$ ./quickstart echo -m 'Hello' -e enclave_info.toml
[+] Invoke echo function
Hello, Eigen

Develop an new confidential service

EigenCC Privacy Operators

ARM TrustZone on FPGA

TBD

Reference

  1. SGX check: https://www.intel.com/content/www/us/en/support/articles/000057420/software/intel-security-products.html