Circuitos de Aztec Noir en tu navegador [ZK ES Semana 3]

Ahmed Castro - Jun 9 '23 - - Dev Community

Noir te permite construir circuitos usando un lenguaje similar a rust que es bastante intuitivo y te permite muchas cosas. Noir es completamente compatible con cualquier chain EVM. Actualmente se encuentra es desarrollo así que puedes esperar muchas cosas interesantes de este proyecto. La noticia que más me tiene a la expectativa es el anuncio de Aztec 3, una L2 que lanzará en testnet este año donde te permitirá crear circuitos ZK asegurados por Ethereum Mainnet como Layer 1.

Antes de comenzar

Para este tutorial ocuparás NodeJs que recomiendo descargarlo en Linux via NVM, y también necesitarás Metamask u otra wallet compatible con fondos en Goerli que puedes obtener desde un faucet.

Aztec Noir via WASM

Actualmente Noir no cuenta con un Playground como el de Zokrates. Por lo tanto preparé una versión similar para que probemos este nuevo lenguaje de Aztec.

Corre el proyecto en tu navegador corriendo lo siguiente:

git clone https://github.com/Turupawn/AztecNoirExample.git
cd AztecNoirExample
npm install
npm run dev
Enter fullscreen mode Exit fullscreen mode

Ahora deberías poder interactuar con Noir desde browser en http://localhost:3000.

Puedes iniciar probando creando un contrato verificador y generar pruebas el siguiente circuito que evalúa que dos números sea diferentes.

// src/main.nr
fn main(x : Field, y : pub Field) {
    constrain x != y;
}
Enter fullscreen mode Exit fullscreen mode

¿Cuáles son los siguientes pasos?

Les comparto una lista de recursos buenos para iniciar:

Para la siguiente semana

En la siguiente semana vamos a aplicar lo que aprendimos sobre Aztec Noir haciendo un sistema de votación anónimo on-chain. Los participantes podrán ejercer un voto sobre una propuesta sin revelar su identidad. Desarrollaremos el ejemplo paso a paso y también explicaremos qué se necesitaría para llevarlo a producción.

Para la siguiente semana asegúrate de traer una wallet lista con fondos en Goerli Testnet. Adicionalmente necesitarás Node.js, un editor de texto (te recomiendo Visual Studio Code) y Nargo. A continuación te dejo los enlaces para la instalación:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .