# Multi-Prover Architecture

W3bstream is a blockchain-orchestrated protocol, which aims to harness the power of a global-scale network of provers to execute the logic of emerging DePIN applications. In a nutshell, W3bstream is a decentralized off-chain computing network that is composed of heterogeneous nodes performing verifiable computations, as illustrated in the figure below:

<figure><img src="/files/lJCMTBVZwokpSAtFV41k" alt=""><figcaption></figcaption></figure>

The proofs generated by W3bstream nodes are verified by dedicated verifier contracts on-chain and then consumed by DePIN Dapps. Depending on each DePIN project configuration, W3bstream provers are run by the community and are rewarded for providing their computational resources to process blocks of data for DePIN projects.

## **Types of W3bstream Provers**

Several techniques have been developed in the past to attest integrity of data processing and allow public verifiability, including zero-knowledge proofs (ZKPs), trusted execution environments (TEEs), and secure multi-party computations (SMPCs).

### **Zero-Knowledge Proof (ZKP) Provers**

W3bstream will gradually support the leading zkVM/zkWASM projects (e.g., Risc0, Succinct SP1, Nexus, etc.) as well as popular DSLs (e.g., Circom, Halo2, ZoKrates, Noir, Cairo, etc.) for building customized zk circuits.

**Halo2**: The Halo2 ZK prover executes Halo2 circuits.

**Risc Zero**: The Risc Zero prover executes code in a Risc Zero zkVM.

**zkWASM**: The zkWASM prover executes WASM modules in a zkWASM VM.

### **Trusted Execution Environment (TEE) Provers**

The TEE prover facilitates DePIN developers to utilize state-of-the-art confidential computing technology for performing privacy-preserving off-chain computing. W3bstream will gradually support the development flow of the leading TEE-based hardware platforms such as Intel SGX, Intel TDX, AMD SEV, AMD SEV-SNP, AWS Nitro, Arm CCA, etc.

### **Secure Multi-Party Computation (SMPC) Prover**

An SMPC prover can be realized by following the general development flow of a specific SMPC protocol (e.g., SPDZ). However, efficiently achieving public verifiability is still an ongoing research direction. The SMPC prover allows DePIN developers to employ several nodes in the network to conduct collaborative privacy-preserving off-chain computing in a distributed manner.&#x20;

### Bring Your Own Prover (BYOP)

The BYOP type of prover offers great flexibility for DePIN developers deploying optimized provers that are tailored to specific DePIN projects or exploring new efficient verifiable computation techniques in the context of DePIN.

{% hint style="info" %}
**Integrating your proving technology in W3bstream**

DePIN projects or infrastructure builders who are interested in integrating their custom prover must submit a PR with an independent gRPC service that implements two interfaces: `CreateRequest` and `ExecuteRequest`.&#x20;

[→ You can find the proto files here.](https://github.com/machinefi/sprout/blob/develop/vm/proto/vm_runtime.proto)
{% endhint %}

{% hint style="info" %}
For detailed guidance on integrating your own proving technology into W3bstream, additional information will be available soon.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.iotex.io/depin/iotex-depin-modules/w3bstream/multi-prover-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
