# What is NEBRA UPA?

NEBRA UPA is the first **Universal Proof Aggregation** protocol that scales and composes zero-knowledge proof verification on Ethereum/EVM Chains. NEBRA UPA achieves that using recursive SNARKs, which means NEBRA UPA is secured by 1 million Ethereum validators, without adding new trust assumptions on hardware i.e. TEE or incentive assumptions i.e. restaking.

There are 3 key properties of NEBRA UPA:

**Universality**: NEBRA UPA can aggregate proofs from**any**circuit: this means in the same batch, NEBRA UPA aggregates proofs from different sources, such as proofs from zkEVMs, zkDIDs, and zkCoprocessors. Universality brings "economy of scale" to NEBRA users. Effectively, you don't need to generate a huge number of proofs to enjoy**cheap**amortized verification cost.**Permissionless**: NEBRA UPA is an on-chain protocol, meaning that anyone can submit proofs to NEBRA.**Censorship resistant**: NEBRA UPA is made censorship resistant by adopting a forced-inclusion design similar to Ethereum L2s. You can trigger a force inclusion to include your proofs if our off-chain worker refuses to put your proof in the aggregated proof. In addition, we would be slashed if a force inclusion happens.

### Why should you use NEBRA?

**Verify zero-knowledge proofs cheaply without compromises**: Using NEBRA can effectively lower the cost of proof verification by 5x and more for**any**application, while security is still inherited from Ethereum L1, through recursive zero-knowlege proofs.**Composing proofs from different sources**: NEBRA UPA can be used to compose proofs from different sources into a single proof. This can unlock powerful use cases, such as:Interoperability between different zkRollups

Composing proofs from different ZK verticals such as zkML, zkVM, and zkCoprocessors

Last updated