Introduction

Developers can leverage the BAVO SDK to build confidential dApps and submit confidential computation tasks on Ethereum or AO.

Data-Sharing Computation

BAVO builds its computation network starting with simple use cases and expanding into a comprehensive suite. Currently, it supports peer-to-peer data-sharing, offering a secure and efficient way to transfer private data access from the data owner to a third party. This process involves the following steps:

  1. Alice encrypts her private text, image, or video and stores it on a storage blockchain like Arweave.

  2. Bob discovers the metadata about Alice's data on a data marketplace and completes a token transfer via a smart contract, such as those on Ethereum or AO processes.

  3. The BAVO network performs a confidential computation, resulting in Alice's private data being re-encrypted with Bob's public key. Bob can then download the encrypted data and decrypt it locally to access the plain file.

The core technique in this data-sharing model relies on linear homomorphic encryption. Initially, the encryption key (K) for the private data is split into multiple shares, each encrypted using the public keys of three distinct workers. During the confidential computation phase, the key shares are decrypted and re-encrypted using Bob's public key. These re-encrypted shares are then linearly combined into a single ciphertext that encrypts K securely with Bob's public key. A threshold encryption scheme is applied to ensure network robustness. Further technical details can be found in the repository and related posts.

Main Components

The data-sharing and incentive workflow enables data providers to securely and privately share their data with data users. Key components include:

  1. PADO SDK

    The SDK allows developers to upload encrypted user data and decrypt ciphertext data.

  2. PADO Contract

    The BAVO Contract manages data, nodes, verifiable confidential computation tasks, and related results. It also handles computation costs. GitHub link for Ethereum: BAVO Network Contracts. GitHub link for AO: BAVO AO Process.

  3. PADO Node

    BAVO Node provides the environment for performing verifiable confidential computations. It retrieves tasks, executes them, and reports the results. GitHub link: BAVO Node (WASM wrapper for threshold-zk-LHE).

Workflow

  1. Register PADO Node

    Once the BAVO Node is started, it must be registered with the Worker Management Contract. The registration details include the node's name, description, public key, owner address, and more.

  2. Upload data

    Data providers can upload encrypted data via a dApp built with the BAVO SDK, setting data prices at the time of upload. The data, encrypted using the FHE algorithm and the BAVO Node's public key, is uploaded to Arweave, and the data information is registered with the Data Management Contract.

  3. Submit task

    Data users can submit computation tasks with their public keys through a dApp built on the BAVO SDK, paying the required computation and data usage fees. The tasks are then submitted to the Task Management Contract.

  4. Task execution

    BAVO Nodes retrieve computing tasks from the Task Management Contract and the storage blockchain. They perform the computations using the LHE algorithm and report the results back to the Task Management Contract and the storage blockchain. After the results are verified by the Task Management Contract, fees are distributed to the data provider and BAVO Nodes.

  5. Get Result

    Data users retrieve the encrypted data from Arweave, along with task results and relevant information from the contracts and storage blockchain. They can then use the LHE algorithm and their private key via the SDK to decrypt the results.

Last updated