Skip to content
/ enclave Public
forked from gnosisguild/enclave

Enclave is an open-source protocol for Encrypted Execution Environments (E3).

License

Notifications You must be signed in to change notification settings

0xjei/enclave

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Github Actions Hardhat License: MIT

Enclave

This is the monorepo for Enclave, an open-source protocol for Encrypted Execution Environments (E3).

Architecture

Enclave employs a modular architecture involving numerous actors and participants. The sequence diagram below offers a high-level overview of the protocol, but necessarily omits most detail.

sequenceDiagram
    actor Requester
    actor Data Providers
    participant Enclave
    participant Ciphernode Registry
    participant Ciphernodes
    participant Computation Module
    participant Execution Module

    loop Each computation request
        Requester ->> Enclave: Request computation
        activate Enclave
            Enclave ->> Ciphernode Registry: Select Committee
            activate Ciphernode Registry
                Ciphernode Registry -->> Ciphernodes: Key Setup
                activate Ciphernodes
                    Ciphernodes -->> Ciphernode Registry: Publish shared keys
                deactivate Ciphernodes
                Ciphernode Registry -->> Enclave: Publish Committee
            deactivate Ciphernode Registry

            loop Each input
                Data Providers ->> Enclave: Publish inputs
                Enclave ->> Computation Module: Validate inputs
                activate Computation Module
                    Computation Module -->> Enclave: 👌
                deactivate Computation Module
            end

            Enclave ->> Execution Module: Request execution
            activate Execution Module
            Execution Module -->> Enclave: Publish ciphertext output
            deactivate Execution Module

            Enclave -->> Ciphernodes: Request plaintext output
            activate Ciphernodes
                Ciphernodes ->> Enclave: Publish plaintext output
            deactivate Ciphernodes

            Requester -->> Enclave: Get plaintext
            Enclave -->> Requester: Returns plaintext
        deactivate Enclave
    end

Loading

Security and Liability

This repo is provided WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

License

This repo created under the LGPL-3.0+ license.

About

Enclave is an open-source protocol for Encrypted Execution Environments (E3).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 41.8%
  • Solidity 40.3%
  • Rust 17.8%
  • JavaScript 0.1%