# Circom Authors - Zero-Knowledge Background (Highlights)

## Metadata
**Review**:: [readwise.io](https://readwise.io/bookreview/38739469)
**Source**:: #from/readwise #from/reader
**Zettel**:: #zettel/fleeting
**Status**:: #x
**Authors**:: [[Circom Authors]]
**Full Title**:: Zero-Knowledge Background
**Category**:: #articles #readwise/articles
**Category Icon**:: 📰
**URL**:: [docs.circom.io](https://docs.circom.io/background/background/#rank-1-constraint-system)
**Host**:: [[docs.circom.io]]
**Highlighted**:: [[2024-03-16]]
**Created**:: [[2024-03-21]]
## Highlights
- So, an arithmetic circuit takes some **input signals** that are values between `0,...,p-1` and performs additions and multiplications between them modulo the prime `p`. The output of every addition and multiplication gate is considered an **intermediate signal**, except for the last gate of the circuit, the output of which is the **output signal** of the circuit. ([View Highlight](https://read.readwise.io/read/01hs4dx4m5f1hwz47jhg58tqqg)) ^693690121
- From now on, the equations that describe the circuit will be called **constraints**, and you can think of them as conditions that signals of that circuit must satisfy. ([View Highlight](https://read.readwise.io/read/01hs4dz5v9gnbt0qqk42nyv2st)) ^693690205
- Note that constraints **must be quadratic, linear or constant equations**, and sometimes, by doing small modifications (like a change of variable or gathering two constraints), it is possible to reduce the number of constraints or variables. ([View Highlight](https://read.readwise.io/read/01hs4e216ffscbasec8wbppe46)) ^693690654
- An assignment of the signals is called a **witness**. ([View Highlight](https://read.readwise.io/read/01hs4e7k0hc11b63payeq2fsna)) ^693691554