December 17, 2023

Aztec. How to Hide Civilization.    

Introduction

In the mystical dance of light and shadow, in the heart of ancient Mesoamerica, a civilization was born, imprinted with secrecy and beauty. The Aztecs, descendants of gods, wove their history with magic and sublimity. Their lives were tightly intertwined with the world of nature, where every leaf, every breeze carried a message from ancient deities.

They revered the sun, praised the moon and stars, seeing in them not only celestial bodies but also divine rulers. Connected to nature, they approached it with reverence, celebrating the greatness of the earth and its gifts. Their life was a rhythm of mysterious rituals, ancient legends, and symbols conveying unspoken wisdom and the secrets of their culture. In every stone, in every stroke, their history and belief were embedded.

The sacred temple crowning the mountain's summit was the heart of their faith, a place where the earthly merged with the divine. There, amidst the gleam of gold and the beauty of carved images, they paid homage to the gods, offering sacrifices and prayers for well-being and prosperity.

Their history is not just a series of events but a lavish song of nature, a dance of light and color intertwined with the breath of gods. The splendor of their culture remains a mystery, immersed in the depths of time, yet it continues to inspire and captivate minds like an ancient song carrying the magic and wisdom of centuries.

Among all the ancient peoples of the Americas, the Aztecs remain the latest, residing in the territory of modern Mexico until the 16th century (although their ancestors still live in Mexico today). However, it was this civilization that created the Aztec writing system—a pictographic script with elements of hieroglyphics (two-dimensional codes). Interestingly, the Aztecs often referred to themselves as "Mexico," which in the modern language means Mexico. Aztec writing has survived and reached us in the form of sun pictograms. This representation of Aztec sun symbols has been adopted by modern people in the form of pictograms, specifically QR codes or two-dimensional codes. Naturally adapting Aztec symbolism for information technologies, modern individuals began to use QR codes.

So, thanks to the development of information technologies and Aztec pictograms, modern people can comfortably pay for services and purchases. Of course, it is impossible not to notice the fact that much of the knowledge of these civilizations is utilized by contemporary individuals, once again proving the high level of understanding achieved by the Maya, the Incas, and the Aztecs.

Many encryption secrets of the Americas still remain mysteries, as most of these civilizations were eradicated by colonizers, and the profound knowledge has survived to the present day in a scattered state.

Privacy in public blockchains

Blockchain technology, first realized with the emergence of Bitcoin, quickly gained popularity and became an integral part of many industries. However, in public blockchains such as Ethereum, the issue of transaction privacy has proven to be one of the key challenges that require careful consideration.

Privacy and anonymity, two concepts often used interchangeably, denote different aspects of information protection in the context of public blockchains.

Privacy involves ensuring the confidentiality of information about transaction participants, such as their identification details, balances, and other sensitive information. Public blockchains, like Ethereum, are inherently open and transparent, meaning that each transaction is visible to all network participants.

Anonymity is the ability of network participants to remain unknown or difficult to identify when conducting transactions. Even if transactions are visible, anonymity ensures the absence of a direct link between participants and their real identities.

In public blockchains, ensuring privacy is often a challenging task because the blockchain records the history of all transactions, making them available for analysis. In this context, privacy becomes more valuable as it aims to protect the confidentiality of participants, even if the transactions themselves remain visible.

The problem of privacy in Ethereum

Ethereum was initially developed as a decentralized platform for smart contracts and decentralized applications (DApps). However, with increased network activity, limitations in ensuring transaction privacy became apparent.

One of the main problems is the openness of data. All transactions, including sender and recipient addresses, amounts, and contracts, are public. This contradicts the common notion of financial transaction confidentiality, making Ethereum less attractive to those who value the privacy of their financial assets and widespread adoption.

To understand the importance of privacy in the network architecture, let's begin by examining why Ethereum, as a public blockchain, does not provide adequate confidentiality. Ethereum operates based on the concept of a public ledger, which includes accounts and balances.

A basic transaction on Ethereum involves sending Ether from one account (address) to another. However, this transaction leaves traces in the public ledger, increasing the balance of one account and decreasing the balance of another. The transaction results, including amounts and participants, are published on etherscan.io and become publicly accessible.

The problem of transparency is evident: all transactions, amounts, and assets are available for scrutiny. Public blockchains, such as Ethereum, provide auditability and verification, but in the case of privacy leaks, the entire transaction history is exposed.

Analyzing the graph of public transactions has become a significant business, where companies like Chainalysis and Nansen use sophisticated methods to associate wallets, monitor activity, and make probabilistic assumptions about owners.

One of the dangers of tracking transactions on a public blockchain is the potential for data analysis and identifying the participants' identities. Even if participants use pseudonyms, data analysis can reveal connections and uncover real identities.

Approaches to Solving Privacy issues in Ethereum

Recognizing the privacy issue, Vitalik Buterin, co-founder of Ethereum, proposed several approaches to addressing this problem.

  1. ZK-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge): This method allows proving knowledge of information without revealing the information itself. In the context of blockchain, this means confirming the fulfillment of transaction conditions without disclosing the transaction details.
  2. Mixers and Ring Signatures: Mixers blend funds from multiple senders, making it challenging to trace where the transaction originated. Ring Signatures, on the other hand, enable network participants to sign transactions on behalf of a group without revealing the specific sender.
  3. Confidential Transactions: This method uses cryptography to conceal the transaction amount. Thus, only the fact of the transaction is displayed on the blockchain, without revealing the actual amount.

ZK-SNARK

Let's delve a bit deeper into ZkSnark.

Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge, or zk-SNARK, is a cryptographic protocol that enables proving knowledge of specific information without disclosing the information itself. This protocol is crucial for ensuring privacy in public blockchains like Ethereum.

At the core of zk-SNARK is the mathematical concept of "zero-knowledge proof," which means the ability to confirm knowledge without revealing the knowledge itself. This is achieved through the use of algorithms such as SHA-256 (Secure Hash Algorithm 256-bit), which allows creating "cryptic" proofs.

The first step in the operation of zk-SNARK is the generation of a trusted data structure called the "zero-knowledge succinct non-interactive proof." This structure is used to create a proof for each transaction. Next is the creation of the proof itself, where the participant demonstrates possession of knowledge without revealing specific data.

The third step is proof verification. The recipient of the proof can verify its correctness and authenticity using precomputed data. If the proof is valid, the participant is considered legitimate, all without disclosing how the knowledge was obtained.

Applying zk-SNARK in blockchain improves transaction privacy since transactions can be confirmed without revealing operational details. Such protocols play a crucial role in the creation of modern confidential transaction systems and addressing the issue of traceability in public blockchains.

* Dune

Recently, many ZK-EVM projects have been actively presenting their developments - Polygon Hermez, ZkSync, Scroll, Matter Labs and Starkware. The main goal of these projects is to use ZK-SNARK technology to create cryptographic proofs of transactions like Ethereum in order to improve the scalability of the blockchain.

Projects can be categorized into several types, each offering its approach to ensuring equivalence with ZK-EVM on Ethereum.

Type 1 (Fully Equivalent to Ethereum): Aims to be fully compatible with Ethereum without making changes to the system to simplify proof generation. Ideal for ensuring Ethereum Layer 1 compatibility but faces the challenge of proof generation time.
Type 2 (Fully Equivalent to EVM): Resembles Ethereum internally but has some differences to streamline development and accelerate proof generation. Projects like Scroll and Polygon Hermez are focused on creating ZK-EVM of this type.
Type 2.5 (Equivalent to EVM, except gas costs): Increases gas costs for complex operations, significantly improving proof generation time. Slightly reduces compatibility.
Type 3 (Almost Equivalent to EVM): Reduces some complex functions to improve proof generation time and simplify development. Projects like Scroll and Polygon fall into this category.
Type 4 (Equivalent to a high-level language): Projects like ZKSync and Warp are creating systems that take smart contract source code in high-level languages and compile it into a ZK-SNARK-friendly language. Provides high proof generation speed but reduces compatibility.

These types represent different trade-offs between compatibility and speed. Innovations in this field will be a key factor in addressing Ethereum's scalability issues and advancing ZK-rollups. In the future, there may be a merging of various types of ZK-EVM to achieve an optimal balance between compatibility and performance.

Here and here can read in detail what Vitalik Buterin wrote about ZK-Snark in Ethereum.

Aztec. Ascension.

On December 18, 2018, Zac Williamson posted an article on Twitter titled "Confidential transactions have arrived, a dive into the AZTEC Protocol," describing the use of confidential transactions for sending DAI tokens without revealing the recipient's balance and the transaction amount. In essence, for a brief overview of how this thing works: it's not ZK-SNARK; it's a zero-knowledge algebraic proof that uses Bulletproofs signatures to create a commitment scheme with highly efficient range proofs embedded in each commitment.

Here's the definition provided by the CEO of the protocol:

A confidential transaction is a transfer of value between two or more entities, where the values being transferred are not visible to observers.

The architecture of Aztec. Rethinking Privacy on Ethereum

The Aztec protocol represents a revolutionary solution in the realm of transaction privacy on the Ethereum blockchain.

Encrypting accounts, balances, and owners seems complex. Let's look at the encryption process: Snoop initiates a request for the encrypted status of Cozomo's account, receives the encrypted status, decrypts it, executes a transaction, and exchanges updated encrypted statuses. This process is costly, time-consuming, and requires the presence of both parties.

The Aztec protocol proposes a transition from an account model to a UTXO (Unspent Transaction Output) model, similar to Bitcoin. Instead of updating account balances, the protocol simply redistributes ownership of "notes" — equivalents to banknotes. This introduces a new concept: it's not the account that has a balance, but a specific sum of money described as a "note" that has an owner.

The transaction process on Aztec involves the destruction and creation of "notes." For example, Snoop sends 100 ETH in the form of two 50 ETH notes to Cozomo. The ownership transition occurs without publicly disclosing the sum. The transaction is published with a lock that only Cozomo can unlock, ensuring transaction privacy.

The next step involves ensuring fairness and preventing fraud. This is achieved using the join-split mechanism, which demonstrates the equivalence of transaction inputs and outputs. Here, the marvel of zero-knowledge proof technology is employed: Snoop can prove the equality of input and output sums without revealing their actual values.

To prove ownership of a "note" in Aztec, a sophisticated cryptographic signature — zero-knowledge proof — is applied. This signature asserts that a note of a specific value exists in the system, and it is owned by a particular subject. The system's state is stored in two Merkle Trees: a "notes" tree and a "nullifier" tree for destroyed notes.

Aztec establishes new Merkle tree roots on the main Ethereum chain when the system state is updated. This ensures transaction recording and allows public verification without disclosing transaction details.

Transactions

In Aztec, there are two types of transactions: private and public. Private transactions are conducted through the core circuit, which is the heart of the system. The transaction process involves the following stages:

  1. Connecting the wallet to the application: The user connects the wallet to the application.
  2. Stating the intention of the transaction: The user informs the wallet of the intention to carry out a transaction.
  3. Wallet providing transaction information: The application provides transaction information to the wallet.
  4. Wallet executing the function: The wallet performs the function, proving interaction with the account.
  5. Proof of function: The proof of interaction and function execution is generated by the wallet.
  6. Passing the proof to the core: The application receives the proof and passes it to the wallet.
  7. Transmitting the transaction to the network: The wallet broadcasts the transaction to the Aztec network.
  8. Including the transaction in the Aztec block: An Aztec node includes the transaction in the rollup block.
  9. Finalizing the block at the Ethereum L1 level: Ethereum finalizes the block at the L1 level.

The Anatomy of Public Transactions

For public transactions, Aztec uses the familiar Ethereum account model. The unlimited functions of Aztec's public VM bytecode execute "normal code" and transmit transaction details to the Aztec node, which creates a proof of execution.

The mechanics of the transaction execution are described in more detail here.

Private Account Abstraction

"Why doesn't the EVM support confidentiality?" In fact, there are Solidity smart contracts that run on the EVM and provide primitive, non-programmatic privacy features, such as mixing.

However, that's not the point. The discussion is about the confidentiality of smart contracts — a comprehensive system that incorporates programmatic confidentiality within the contract itself — at the level of state variables and functions.

In the Ethereum model, state variables are stored in an open Merkle tree based on Externally Owned Accounts (EOA). To edit one of these variables, you need to broadcast precise details of the changes to the world, specifying which leaves of the tree you want to modify, what they contain, and how to alter them.

This has its drawbacks:

  1. Current and historical values of each state variable are publicly accessible.
  2. Functions called to execute state changes are also publicly accessible.
  3. State variables changed by these functions are also publicly accessible.

UTXO and Nullifiers

Instead of the open storage method, Aztec relies on an encrypted Unspent Transaction Output (UTXO) architecture — the same technology used by Bitcoin to store the network's state.

The foundation of Aztec's confidentiality is a tree-like data structure containing encrypted UTXOs and another data tree containing their nullifiers.

UTXOs are also referred to as "notes," and this term will be used further.

Manipulating Notes

To transfer ownership of a note (which, as a reminder, represents an encrypted Unspent Transaction Output or UTXO), users perform the following steps:

  1. A function is called.
  2. The function requests a change in private state.
  3. The function requests from the user's database all notes belonging to this private state.
  4. The user (effectively the user's Aztec node) locally proves that each of the received notes exists as a leaf in the machine's tree, without revealing the specific leaf.
  5. The user performs an action: reading, modifying, or deleting values within the note.
  6. The user provides a nullifier that prevents duplication of the action and prevents the user from re-reading the same leaf.
  7. The user inserts a new leaf containing the new value as a way of updating the private state value.

Private State Variables

To achieve confidentiality, it is necessary to have private state variables. Notes cannot be such, as they are permanent and unchangeable. To create the concept of a private state variable based on notes, Aztec is able to create and destroy them in a hidden way.

The programmer declares a private state variable, and then writes functions that read the current state, edit it, and write the updated state at the end.

UTXO Management

Managing UTXOs can be a bit complex and involves several intricacies, such as:

  1. Efficiently finding one's own notes in the tree.
  2. Merging notes.
  3. Getting change from merged notes.
  4. Destroying and updating notes with nullifiers.

In contrast to Ethereum, where accounts can simply be credited and debited, notes need to be created, merged, and destroyed, representing a different mental model. While Ethereum values are straightforward values, notes contain values.

Fortunately, Aztec Labs designed Aztec as a network with abstraction in mind. Their goal is to eliminate these difficulties and make writing Aztec smart contracts as similar as possible to writing Ethereum smart contracts.

Now

On March 13, the London-based company announced the closure of one of its projects—the Zero-Knowledge (ZK) Accumulation Bundle on Ethereum. It stopped accepting new deposits on March 23 but will allow withdrawals for another year. However, the team resumed active work on the project in the fall.

Currently, the project is in the early testnet stage, and a sandbox can be set up to test part of the functionality. This includes writing private smart contracts for DeFi, tokens, airdrops, the ability to send confidential transactions, and the implementation of account abstraction.

The team has developed a special programming language - Noir.

In March, a group of cryptography engineers, under the guidance of Aztec Labs CEO Zac Williamson, developed the core Aztec encryption schemes in C++. The development required significant adaptation and technical effort, including:

  1. Development of an embedded C++ DSL.
  2. Consideration of C++ features and features of their embedded DSL.
  3. Creation of a working process of "Frankenstein" using CMake and custom build scripts.
  4. The syntactic simplicity facilitates code understanding.
  5. Nargo provides convenient management of submissions.
  6. A one-liner command-line interface improves testing.

In addition to developer tools such as performance profiling, syntax highlighting, and automatic formatting.

While Noir is still in beta and not fully production-ready until it undergoes an audit, the language's implementation will be paused in the first half of 2024, and the audit will be completed in the latter half of the year.

On the project's GitHub, three main repositories are provided: Aztec-packages, aztec-nr, and sandbox. Regarding the latter, they were created in 2023, but the number of commits for packages significantly increased in the second half of the year, indicating increased development activity.

A brief analysis of GitHub revealed interesting ideas that the team is gathering from workshops and hackathons, including:

Private lending front end - you can see an example here

ZKollateral - privately prove assets for collateral or creditworthiness for a loan

Proof of Liquidity - privately prove solvency and/or compliance without exposing the underlying assets or trades

Private DEX - allow users to trade assets without revealing the accounts that the assets originate from.

Oracles - private and/or public price oracles will be critical infrastructure for building DeFi on Aztec.

zkVoting - a protocol that anyone can easily implement into their DAO for privacy-preserving voting

Private payments / payroll - a system that allows DAOs to pay their contributors without revealing the amounts. This would greatly improve the UX and privacy of contributors.*****

A grant program has been launched to implement these and other ideas:

https://airtable.com/appXVjZF8p4nxqzoq/shrPXeauJ0sj4e0aZ

https://github.com/AztecProtocol/dev-rel/blob/main/hackathons/INSPIRATION.md

https://github.com/AztecProtocol/dev-rel/blob/main/README.md#hackathon-success-guide-

Fundrasing

Now, let's get to the most important and interesting part.

The project was founded by two individuals, Zachary Williamson and Joe Andrew. There is practically little information available about the founders, and their career paths, based on LinkedIn, don't showcase experiences with notable companies.

Since 2018, the project has raised approximately $120 million in investments, including funds from Paradigm and a16z. The latest funding round of $100 million took place at the end of 2022, led by a16z.

The main legal entity of the startup is the London-based company Spilsbury Holdings Ltd.

In addition, the founders are involved in founding several affiliated legal entities, namely:

Noir Labs (https://find-and-update.company-information.service.gov.uk/company/14881674/filing-history)

Aztec Labs Limited (https://find-and-update.company-information.service.gov.uk/company/14873864)

Aztec Laboratorium (https://find-and-update.company-information.service.gov.uk/company/14885176)

Here can learn more about the ownership structure of the company.

At the moment it looks like this:

The current valuation of the company in the Series B round is 450 - 500 million USD.

In table, I have given an approximate estimate of investments and current value, it is obvious that we should wait for market entry no earlier than the end of 2024, the beginning of 2025, however, the technology itself may have huge prospects in the future and become a new crypto unicorn:

The main risk of the project lies in the position of the regulator, and the repetition of the fate of Tornado Cash.


We will keep a close eye on this project in the future.

Thanks: @global_investment_io/@pillardev

My Debank: https://debank.com/profile/0x50662aede1e73a1f6ffc6b3bbb1ea5c4d8083ed5

Sources:

  1. https://aztec.network/blog/confidential-transactions-have-arrived-a-dive-into-the-aztec-protocol/
  2. https://github.com/AztecProtocol/aztec-v1/blob/master/AZTEC.pdf
  3. https://github.com/AztecProtocol/dev-rel/blob/main/hackathons/INSPIRATION.md
  4. https://raw.githubusercontent.com/AztecProtocol/aztec-packages/2fa143e4d88b3089ebbe2a9e53645edf66157dc8/docs/static/img/sandbox_sending_a_tx.svg
  5. https://hackmd.io/@aztec-network/BkGNaHUJn/%2FdUsu57SOTBiQ4tS9KJMkMQ, https://hackmd.io/@aztec-network/B19AA8812
  6. https://aztec.network/blog/aztec-the-hybrid-zkrollup/
  7. https://aztec.network/blog/aztec-raises-100-million-to-build-encrypted-ethereum/
  8. https://vitalik.eth.limo/general/2021/01/26/snarks.html
  9. https://vitalik.eth.limo/general/2022/06/15/using_snarks.html
  10. https://find-and-update.company-information.service.gov.uk/company/11093783/officers
  11. https://www.companysearchesmadesimple.com/company/uk/11093783/spilsbury-holdings-limited/#people
  12. https://aztec.network/blog/unconstrained-functions-in-noir/
  13. https://aztec.network/blog/privacy-abstraction-with-aztec/
  14. https://noir-lang.org/