Skip to content

Commit

Permalink
Merge pull request #45 from AztecProtocol/jc/aztec3
Browse files Browse the repository at this point in the history
Jc/aztec3
  • Loading branch information
critesjosh authored Mar 13, 2023
2 parents 2f44d00 + ed0282f commit bcf1b57
Show file tree
Hide file tree
Showing 136 changed files with 1,299 additions and 7,499 deletions.
92 changes: 92 additions & 0 deletions docs/docs/aztec-connect-sunset.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
title: Aztec Connect Sunset
---

import Image from "@theme/IdealImage";

:::danger

Aztec Connect is no longer being actively developed.

:::

The rollup instance operated by Aztec will stop accepting deposits soon. Read the full announcement [here](https://medium.com/aztec-protocol/sunsetting-aztec-connect-a786edce5cae).

We will continue to process transactions and withdrawals for funds that are already in the rollup. We will stop running the sequencer in March 2024. See the [zk.money](#zkmoney) section below for details on how to withdraw funds.

## Run your own AC

All of the infrastructure and associated code required to run and interact with the Aztec Connect rollup is open source, so anyone can publish blocks after we stop, or run their own instance of the rollup software.

You can find the old documentation site that includes all of the pertinent information on the [`aztec-connect` branch](https://github.com/AztecProtocol/docs/tree/aztec-connect) of the docs repository.

The code has been open sourced and you can find the relevant repositories linked below.

### Source Code

Follow the links for more information about each package.

- [Running the rollup service](https://github.com/AztecProtocol/aztec-connect/blob/master/yarn-project/README.md)
- [Sequencer](https://github.com/AztecProtocol/aztec-connect/tree/master/yarn-project/falafel)
- [Contracts](https://github.com/AztecProtocol/aztec-connect/tree/master/contracts)
- [SDK](https://github.com/AztecProtocol/aztec-connect/tree/master/yarn-project/sdk)
- [Alpha SDK](https://github.com/AztecProtocol/aztec-connect/tree/master/yarn-project/alpha-sdk)
- [Wallet UI](https://github.com/AztecProtocol/wallet-ui)

## Zk.money

### Exiting Defi Positions

1. Navigate to your zk.money homepage and click “Wallet”.
2. Scroll down to “Tokens” and “Earn Positions”.
3. Click “Earn Positions”.
4. Click “Claim & Exit” on the position you wish to exit. <Image img={require("/img/defiexit1.png")} />
5. All exit transactions are free in “Batched Mode” proceed to step 6 to get a free transaction.
6. Click “Max” to exit the full amount, and then select a speed for your transaction. <Image img={require("/img/defiexit2.png")} />
7. Once you have done so, click “Next”.
8. Review the amount you will receive is correct, tick the disclaimer, and click “Confirm Transaction”. <Image img={require("/img/defiexit3.png")} />
9. After clicking confirm transaction, sign the signature request using your connected wallet (e.g. Metamask in this example). <Image img={require("/img/defiexit4.png")} />
10. Wait until your transaction is confirmed. <Image img={require("/img/defiexit5.png")} />
11. Navigate back to your wallet homepage and click “Earn Positions”.
12. The status of your exit will be displayed here, as shown by “Exiting” (1 tick). <Image img={require("/img/defiexit6.png")} />
13. To the left, click the transaction hash icon to be taken to the block explorer page to see the transaction status. <Image img={require("/img/defiexit7.png")} />
14. Your funds will appear in your dashboard once the transaction has settled.

### Exiting LUSD Borrowing

Your LUSD debt is repaid using a flash loan. Part of your ETH collateral then repays the flash loan, and the remaining ETH is returned to your account. Your total TB-275 tokens represents the entirety of your share of the collateral. Spending all your TB-275 will release your entire share of the collateral (minus the market value of the debt to be repaid).

Liquity: https://docs.liquity.org/

1. Navigate to your zk.money homepage and click “Wallet”.
2. Scroll down to “Tokens” and “Earn Positions”.
3. Click “Earn Positions”.
4. On your Liquity Trove position, click “Repay & Exit”. <Image img={require("/img/lusdexit1.png")} />
5. Click “Max” to exit the full amount, then select a speed for your transaction. <Image img={require("/img/lusdexit2.png")} />
6. Once you have done so, click “Next”.
7. Review the amount you will receive is correct, tick the disclaimer, and click “Confirm Transaction”. <Image img={require("/img/lusdexit3.png")} />
8. After clicking confirm transaction, sign the signature request using your connected wallet (e.g. Metamask).
9. Wait until your transaction is confirmed.
10. Navigate to your zk.money wallet homepage and click “Earn Positions”.
11. The status of your exit will be displayed here, as shown by “Exiting” (1 tick). <Image img={require("/img/lusdexit4.png")} />
12. Click the transaction hash icon to be taken to the block explorer page to see the transaction status. <Image img={require("/img/lusdexit5.png")} />
13. Your funds will appear in your dashboard once the transaction has settled.

### Withdrawing Assets

How to withdraw ETH, DAI and LUSD.

1. Navigate to your zk.money homepage and click “Wallet”.
2. Scroll down to “Tokens” and “Earn Positions”.
3. Click “Tokens”.
4. Click “Exit” on the desired token you would like to withdraw. <Image img={require("/img/withdraw1.png")} />
5. Click “Withdraw to L1”. <Image img={require("/img/withdraw2.png")} />
6. Enter your recipient address.
7. Click “Max” to withdraw the full amount.
8. Select a speed for your transaction (transactions are free in “Batched Mode”).
9. Click “Next”.
10. Review the amount you are withdrawing is correct, tick the disclaimer, and click “Confirm Transaction”. <Image img={require("/img/withdraw3.png")} />
11. Sign the signature request using your connected wallet (e.g. Metamask).
12. Wait until your transaction is confirmed. <Image img={require("/img/withdraw4.png")} />
13. Navigate back to your wallet homepage, under Transaction History. Click the transaction hash to check the status of your transaction on the block explorer. <Image img={require("/img/withdraw5.png")} />
14. Your funds will appear in your recipient wallet once the transaction has settled.
88 changes: 88 additions & 0 deletions docs/docs/aztec3.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: Aztec 3
---

import ReactPlayer from "react-player/youtube";

:::note

These docs are a work in progress and will be updated as we release software around the new protocol.

:::

Aztec 3 is the next and final network on Aztec's journey to building a privacy-preserving, programmable extension to Ethereum.

Aztec 3 is being built and launched as a credibly neutral, decentralized protocol. The protocol is being developed as open source software and will be run by a community of infrastructure providers and stakeholders.

Aztec (the company) is doing much of the cryptography and engineering research and coordination to make the protocol possible. We are designing, building and auditing much of the software that others will run to create the Aztec network.

The Aztec community upholds many of the values of the Ethereum community by also building permissionlessness, decentralization and censorship resistance into the system.

## Privacy in Aztec 3

Aztec 3 has three distinct domains of privacy--user privacy, data privacy and code privacy.

User privacy refers to the fact that transactions on the Aztec network can be completely confidential. Transactions may not include information about the sender, the recipient, the transaction amount or asset type. This is a significant deviation from most blockchains where all transaction data is transparent.

Data privacy refers to data stored in program's state. Like other blockchains, programs that run on Aztec 3 are called [smart contracts](./glossary#smart-contract). Smart contracts on Aztec differ from smart contracts in many other programming contexts in that they can optionally have private state as well as private functions.

Code privacy refers to program logic in smart contracts. Developers can specify `private` functions in their smart contracts that allow users to privately interact with contracts.

### Private-public Composability

You can watch Mike, one of our engineering team leads, talk about public-private composablity in Aztec 3 at Devcon here.

<ReactPlayer
controls
light
width="100%"
url="https://www.youtube.com/watch?v=7Oc0tjdbi70&t=17723s"
/>

## Cryptography

Our cryptography team is building [Honk](https://github.com/AztecProtocol/barretenberg/tree/master/cpp/src/barretenberg/honk), a cutting edge proving system that makes Aztec 3 possible, under the Apache 2.0 License.

## Noir

Noir is a domain specific programming language for writing zero knowledge circuits and developers will write smart contracts for Aztec 3 using Noir.

You can find more information and resources for learning about Noir on [this page](./noir).

## Decentralization

There are a number of components that we are working on to make the Aztec network robust and decentralized.

The Aztec network will need a peer-to-peer transaction pool for [sequencers](./glossary#sequencer) to discover transactions.

The network will need sequencer that works in a decentralized context, that follows a sequencer selection protocol and incentivizes liveness, minimizes redundant work and avoids race conditions.

There will be a prover network that will generate the required proofs to publish a rollup. Sequencers will rely on the prover network to generate proofs for rollup blocks. The prover network should allow people to create proofs on commodity hardware to avoid centralization of proof construction.

The sequence and prover networks must avoid "winner take all" and "fastest hardware wins" dynamics and will penalize censorship and missed blocks.

The network will need to define upgrade mechanics, so it can be updated over time as new technology and designs are developed.

There will need to be an incentive mechanism baked into the protocol that allows the various required parties to coordinate effectively and reliably.

## Roadmap

### Local Developer Testnet

First on our roadmap is to release a local developer testnet. This network will run on a single development machine and will allow developers to write, test and deploy Aztec 3 smart contracts.

Developers will be able to:

- deploy contracts with public and private functions
- deploy contracts with Aztec 3 <--> Ethereum contract calls
- call other Aztec 3 contract private and public functions
- read / write to private state
- read / write to public state

### Beyond

In parallel to building the local developer testnet we are working on the networking stack for the network. As mentioned above, this requires several components (including the transaction pool, the sequencer and prover networks and data retrieval).

After the launch of the local developer testnet we will be testing these networks on the Ethereum public testnets. These docs will be updated as we progress through the development process.

In the meantime, feel free to engage with us via the **Community** links in the footer.
54 changes: 0 additions & 54 deletions docs/docs/compliance.md

This file was deleted.

Loading

0 comments on commit bcf1b57

Please sign in to comment.