Aztec Profile picture
Oct 6 21 tweets 6 min read
You’ve heard of zero-knowledge proofs.

You’ve heard of SNARKs and PLONK and zkRollups.

But you haven't gotten started, because you don’t have a spare brain dedicated to learning cryptography.

That all changes today.

Introducing Noir, the universal language of zero knowledge.
Noir is a Rust-based domain specific language (DSL) for creating and verifying zero knowledge proofs.

It’s the easiest way to write zk applications compatible with any proving system.

> Read our blog post…

> Get started with Noir
The need:

The current zk stack is cumbersome and hard to understand.

Circuit-building languages require knowledge of cryptographic concepts, creating a barrier to widespread developer adoption.
To build in zk right now, you need two brains:

1. a cryptography brain that understands proving systems, trusted setups, and some low-level cryptography; and

2. an app developer brain that can reason intuitively about public and private state to create novel applications
Put simply: not many people have two brains!

And that means number of zk app developers today is a small subset of the total number of blockchain devs.
The simplicity of Noir means that having one brain is enough.

By abstracting away cryptographic complexity while retaining the power and flexibility of other circuit-building languages, Noir allows any developer–not just those with cryptography knowledge–to build zk apps.
Noir is a leap forward for three reasons:

1) Simple, familiar syntax

Noir’s likeness to Rust makes it simple, familiar, and easy to understand.
Creating a conditional is as simple as writing “if.”

Using other zk circuit writing languages entails downloading circuit libraries, reading them to understand their underlying logic, and then calling library implementations of basic features.
2. Standard crypto library

Noir also possesses a standard library of highly optimized functions commonly used in circuit development.
The stdlib gives developers access to widely used, complex algorithms that are hand-written and tightly optimized by the Aztec team.

The standard library grants developers a high level of circuit efficiency while interacting with a simple, easy to use abstraction layer.
3. Proving system agnostic

Because Noir doesn’t compile directly to circuits but to an intermediary representation, it is compatible with multiple back-end proving systems.

We call this intermediate representation an ACIR (Abstract Circuit Intermediate Representation).
We’ve created some sample implementations of circuits in Noir to show you what they look like against common reference code:

> Mastermind in Circom…

> Mastermind in Noir…
> Tornado Cash in Circom…

> Tornado Cash in Noir…
But wait--there's more!

Alongside today’s release, we’ve developed and published Barretenberg.js–a Typescript wrapper for Aztec’s crypto back-end.

It allows for in-browser proof construction, allowing zk developers to quickly and easily create full-stack Noir programs.
Noir can be used today to build zk games much faster than was previously possible.

Implementations of simple games like Wordle, Battleships, and Mastermind can be done in an afternoon.
More complex applications are made possible with the Barretenberg.js library:

Developers can now create proofs of membership and identity, blind auctions, and proofs of action on Aztec Connect that can enable private airdrops.
We are convinced that Noir is a transformational step for practical zk development.

As such, we’re currently working toward rewriting Aztec’s core circuits using Noir, and we’re continuously working to improve its usability.
Writing zk applications is intimidating, confusing, and time-consuming.

That all changes today.

Here’s how to install Noir, compile your first zk program, and verify it in a Solidity contract, all in 15 minutes:

> Getting started with Noir
Once you’ve gotten off the ground, show us what you’ve built.

If you’re interested in actively participating in Noir development as a paid early tester, check out our Grants page for more information.
We’ll be publishing more guides on development with Noir and adding to the tooling infrastructure behind it, with a singular goal :

Making Noir the universal language of zero knowledge.

Read our full announcement here:…
After you get started at, we welcome you to contribute to the language and Barretenberg library.

And join us on Discord to talk directly to the Noir team:

• • •

Missing some Tweet in this thread? You can try to force a refresh

Keep Current with Aztec

Aztec Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!


Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @aztecnetwork

Oct 4
Catch @maximvezenov at Devcon Bogota on Thursday October 13th at 1:30PM talking about our ZK circuit language, Noir!
Noir is a Rust-based domain specific language that is backend agnostic and built upon open-source technology to enable flexible ZK language development.
Maxim is a language engineer for Noir and he'll be providing an introduction into Noir's unique features, how to develop with Noir, and an example where we use Noir to prove Merkle membership.

Look out here for more details once the schedule is set.
Read 4 tweets
Oct 3
We're thrilled to announce @eulerfinance as the first yield protocol supported on Aztec's 4626 bridge.

What is Euler?

How do you earn yield?

How do we achieve private lending at 7.5x lower gas fees than mainnet Ethereum?

Euler is a non-custodial permissionless lending protocol that helps users earn interest on their crypto assets without relying on trusted third-parties.
Euler is unlike @AaveAave and @compoundfinance which are partially permissioned.

In those markets, governance must approve new markets manually.

Euler is designed to allow trading of illiquid or volatile assets permissionlessly--anyone can create new lend-borrow markets.
Read 10 tweets
Sep 20
Aztec is a privacy-first zkRollup.

But how do all the pieces actually work together?

Here's an explanation of the "Network" in Aztec Network:
Aztec Network is a privacy-first zkRollup on Ethereum.

Most Aztec fans understand the public nature of Ethereum and how Aztec serves to solve Ethereum’s drawbacks: privacy and scalability.

In this piece we want to explain the elements of Aztec’s network architecture.
As a guide to the anatomy of a transaction traversing Aztec’s network, we’ve supplied a handy dandy diagram:
Read 19 tweets
Sep 14
The Ethereum merge is happening tonight at approximately 4am UTC.

Users of Aztec don’t need to take any action, though transactions submitted around the time of the merge may be delayed.

Here’s what we are doing to prepare:
Prior to the merge, Aztec will cease publishing rollups to Ethereum in case of unanticipated issues with the merge.

After running tests, Aztec’s rollup provider will resume publishing rollups around 9am UTC.
Transaction settlement times will be delayed during this period.

Users may use the system as usual and transactions will accrue to be settled on Ethereum mainnet once the network is stable and block production resumes.
Read 5 tweets
Sep 14
Aztec is excited to announce the launch of our integration with @iearnfinance, the leading yield aggregation platform on Ethereum.

Integrating Yearn allows Aztec users to earn yield in vaults managed by some of the best strategists in crypto:
How does Yearn work?

Users deposit into a vault contract, which then routes funds to various investment strategies developed, managed, and audited by Yearn's community of professional strategists.

Think of it like an on-chain hedge fund or asset manager.
Vaults allow users to "set and forget" assets for yield, trusting that the underlying yield sources are highly diversified and secured by Yearn's own opportunity auditing system.
Read 9 tweets
Sep 8
A reminder that Aztec Connect lets you use Layer 1 liquidity.

Once you acquire Aztec zkETH, you still trade in the Layer 1 ETH pools, not zkETH pools on Layer 2.

No more liquidity fragmentation.

But how?

Let us explain:
When you shield $ETH to Aztec, here's what that really means:

- the $ETH is deposited into an Aztec smart contract on Ethereum

- Aztec then keeps track of it by issuing you zkETH--an encrypted representation of your $ETH deposit
When it comes time to do a DeFi transaction--say an ETH-stETH swap on Curve--Aztec executes that command on your behalf on Curve, on Layer 1 Ethereum.

That means your funds interact with Curve's Layer 1 smart contracts and Layer 1 liquidity!
Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!


0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy


3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!