# Circom Authors - Zero-Knowledge Background (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png) ## 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