From 84a409a3e9b57ddbf1cff1f53f0b56cde9218fc0 Mon Sep 17 00:00:00 2001 From: Julian Arce <52429267+JuArce@users.noreply.github.com> Date: Mon, 16 Sep 2024 12:23:07 -0300 Subject: [PATCH 1/6] docs: update testnet docs (#973) --- README.md | 11 +- .../0_about_aligned.md | 53 +++++++-- .../1_getting_started.md | 13 +-- docs/1_introduction/2_zkquiz.md | 59 ++++++++++ .../3_use_cases.md | 6 +- .../{introduction => 1_introduction}/4_faq.md | 18 ++-- docs/1_introduction/5_why_zk.md | 43 ++++++++ .../0_supported_verifiers.md | 0 .../0b_key_terms.md | 0 .../1_fast_mode.md | 4 +- .../2_aggregation_mode.md | 0 docs/2_architecture/components/1_batcher.md | 13 +++ .../components/2_payment_service_contract.md | 18 ++-- .../components/3_service_manager_contract.md | 0 .../components/4_operator.md | 0 .../components/5_aggregator.md | 0 .../components/6_explorer.md | 0 .../0_submitting_proofs.md | 11 +- .../1.2_SDK_api_reference.md} | 21 +--- docs/3_guides/1_SDK_how_to.md | 101 ++++++++++++++++++ ...tegrating_aligned_into_your_application.md | 68 +++++++----- .../3.2_generate_gnark_proof.md | 0 .../3_validating_public_input.md | 18 ++-- .../4_generating_proofs.md | 16 +-- docs/{guides => 3_guides}/5_using_zkrust.md | 41 ++++--- docs/{guides => 3_guides}/6_setup_aligned.md | 46 +++++--- .../7_contract_addresses.md | 0 .../8_submitting_batch_without_batcher.md | 60 +++++++++++ docs/{guides => 3_guides}/setup_holesky.md | 0 docs/SUMMARY.md | 54 +++++----- docs/architecture/components/1_batcher.md | 10 -- docs/images/batch.png | Bin 267661 -> 164414 bytes docs/images/payment_service_diagram.png | Bin 0 -> 187767 bytes docs/introduction/2_zkquiz.md | 42 -------- docs/operator_guides/0_running_an_operator.md | 40 ++++--- docs/operator_guides/1_operator_FAQ.md | 65 +++++++++++ docs/operator_guides/2_troubleshooting.md | 46 ++++++++ examples/zkquiz/quiz/program/Cargo.lock | 11 +- 38 files changed, 649 insertions(+), 239 deletions(-) rename docs/{introduction => 1_introduction}/0_about_aligned.md (51%) rename docs/{introduction => 1_introduction}/1_getting_started.md (86%) create mode 100644 docs/1_introduction/2_zkquiz.md rename docs/{introduction => 1_introduction}/3_use_cases.md (71%) rename docs/{introduction => 1_introduction}/4_faq.md (89%) create mode 100644 docs/1_introduction/5_why_zk.md rename docs/{architecture => 2_architecture}/0_supported_verifiers.md (100%) rename docs/{architecture => 2_architecture}/0b_key_terms.md (100%) rename docs/{architecture => 2_architecture}/1_fast_mode.md (97%) rename docs/{architecture => 2_architecture}/2_aggregation_mode.md (100%) create mode 100644 docs/2_architecture/components/1_batcher.md rename docs/{architecture => 2_architecture}/components/2_payment_service_contract.md (79%) rename docs/{architecture => 2_architecture}/components/3_service_manager_contract.md (100%) rename docs/{architecture => 2_architecture}/components/4_operator.md (100%) rename docs/{architecture => 2_architecture}/components/5_aggregator.md (100%) rename docs/{architecture => 2_architecture}/components/6_explorer.md (100%) rename docs/{guides => 3_guides}/0_submitting_proofs.md (96%) rename docs/{guides/1_SDK.md => 3_guides/1.2_SDK_api_reference.md} (92%) create mode 100644 docs/3_guides/1_SDK_how_to.md rename docs/{guides => 3_guides}/2_integrating_aligned_into_your_application.md (79%) rename docs/{guides => 3_guides}/3.2_generate_gnark_proof.md (100%) rename docs/{guides => 3_guides}/3_validating_public_input.md (94%) rename docs/{guides => 3_guides}/4_generating_proofs.md (94%) rename docs/{guides => 3_guides}/5_using_zkrust.md (68%) rename docs/{guides => 3_guides}/6_setup_aligned.md (93%) rename docs/{guides => 3_guides}/7_contract_addresses.md (100%) create mode 100644 docs/3_guides/8_submitting_batch_without_batcher.md rename docs/{guides => 3_guides}/setup_holesky.md (100%) delete mode 100644 docs/architecture/components/1_batcher.md create mode 100644 docs/images/payment_service_diagram.png delete mode 100644 docs/introduction/2_zkquiz.md create mode 100644 docs/operator_guides/1_operator_FAQ.md create mode 100644 docs/operator_guides/2_troubleshooting.md diff --git a/README.md b/README.md index 6cdccf0ce..670d2ccdd 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,8 @@ You can use the link to the explorer to check the status of your transaction. aligned verify-proof-onchain \ --aligned-verification-data ~/.aligned/aligned_verification_data/*.json \ --rpc_url https://ethereum-holesky-rpc.publicnode.com \ ---chain holesky +--chain holesky \ +--payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 ``` This is reading the result of the verification of the proof in Ethereum. @@ -92,7 +93,7 @@ If the proof wasn't verified you should get this result: Aligned works in: - MacOS Arm64 (M1 or higher) - Linux x86 with GLIBC_2.32 or superior (For example, Ubuntu 22.04 or higher) -If you don't meet these requirements, clone the repository, install rust, and then run: + If you don't meet these requirements, clone the repository, install rust, and then run: ```bash make uninstall_aligned @@ -170,13 +171,13 @@ If you want to run an operator, check our [Operator Guide](./docs/operator_guide ## Aligned Infrastructure Guide -If you are developing on Aligned, or want to run your own devnet, check our [setup Aligned guide](docs/guides/6_setup_aligned.md). +If you are developing on Aligned, or want to run your own devnet, check our [setup Aligned guide](docs/3_guides/6_setup_aligned.md). ## Submitting Proofs to Aligned -For submitting proofs generated by your own project to the network via CLI, see the documentation on [submitting proofs to Aligned](docs/guides/0_submitting_proofs.md). +For submitting proofs generated by your own project to the network via CLI, see the documentation on [submitting proofs to Aligned](docs/3_guides/0_submitting_proofs.md). ## Integrating Aligned into your Project -If you are developing applications using Aligned, we offer a [Rust-SDK](docs/guides/1_SDK.md) for submitting proofs directly to the network within your applications. +If you are developing applications using Aligned, we offer a [Rust-SDK](docs/3_guides/1_SDK_how_to.md) for submitting proofs directly to the network within your applications. diff --git a/docs/introduction/0_about_aligned.md b/docs/1_introduction/0_about_aligned.md similarity index 51% rename from docs/introduction/0_about_aligned.md rename to docs/1_introduction/0_about_aligned.md index 00a1b31a4..3538dc067 100644 --- a/docs/introduction/0_about_aligned.md +++ b/docs/1_introduction/0_about_aligned.md @@ -1,6 +1,10 @@ ## What is Aligned? -Aligned is a decentralized network that verifies zero-knowledge/validity proofs and posts the results to Ethereum. It is designed to provide high throughput, cheap proof verification with low latency. +Aligned is a decentralized network that verifies Zero-Knowledge/validity proofs and posts the results to Ethereum. It is designed to provide high throughput, cheap proof verification with low latency. + +{% hint style="info" %} +If you are unfamiliar with ZK and why this is useful, see [Why ZK and Aligned?](./5_why_zk.md) +{% endhint %} ## Mission @@ -8,21 +12,44 @@ Our mission is to accelerate Ethereum's roadmap and the adoption of verifiable c ## What real value does Aligned bring to the table? -Blockchains are verifiable computers. We live in a chaotic world where there will be a huge demand for computation that does not need to be trusted. Current blockchain models are inefficient: each node must re-execute each transaction/operation, making the weakest devices the bottleneck. Besides, adding more hardware does not make the system faster (contrary to what happens in Web2), just more reliable. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer guarantees. In other words, we reduce costs at the expense of lower security guarantees. Zero-knowledge/validity proofs (ZK) provide a new framework where we do not have to make such compromises. The basic premise is that a party can generate a very short proof of a computation, and the nodes can quickly verify that proof instead of re-executing the computation. The computation can be quite large, comprising many different transactions. This enables the delegation of execution off-chain with the same guarantees, leading to increased throughput and lower operational costs. This led to the rollup-centric roadmap of Ethereum, featuring multiple L2s, but at the expense of fragmented liquidity and complex user experience. Many of these problems could be solved by ZK bridges, but they remain expensive, and the go-to-market time is high. +Blockchains are verifiable computers. +We live in a chaotic world where there will be a huge demand for computation that needs to be trusted. + +Current blockchain models are inefficient: each node must re-execute each transaction or operation, making the weakest and slowest devices the bottleneck. Unlike in Web2, where adding more hardware can increase performance, in these systems, additional hardware primarily enhances reliability rather than speed. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer security guarantees. In other words, they reduce costs and increase speed at a great expense of lower security guarantees. + +On the other hand, Zero-knowledge/validity proofs (ZK) provide a new framework where we do not have to make such compromises. The basic premise is that a party can generate a very short proof of a computation, and the nodes can quickly verify that proof instead of re-executing the computation. The computation can be quite large, comprising many different transactions. This enables the delegation of execution off-chain with the same guarantees, leading to increased throughput and lower operational costs. This led to the rollup-centric roadmap of Ethereum, featuring multiple L2s, but at the expense of fragmented liquidity and complex user experience. Many of these problems could be solved by ZK bridges, but they remain expensive, and the go-to-market time is high. -Still, nodes have to verify those proofs, which can be quite expensive since this is done on-chain: current proof systems can cost between 10 and several hundred dollars (which is strongly dependent on network congestion). +Anyhow, nodes still have to verify those proofs, which can be quite expensive since this is done on-chain: current proof systems can cost between 10 and several hundred dollars (which is strongly dependent on network congestion). In addition, ZK lets us build other verifiable applications where users do not have to trust the party performing the computation, with impact in areas such as artificial intelligence (AI), the Internet of Things (IoT), and fighting misinformation. This is not clear to most people since proving technologies were not mature enough and verification costs were high. ## What limits the development of more complex applications on top of blockchains? -The main limitation for building complex applications on top of blockchains has been that the computation can run only a few milliseconds on chain and even then this can be very expensive. You can't have millions of daily active users using Ethereum or any blockchain at the same time. +The main limitation for building complex applications on top of blockchains has been that the computation can run only a few milliseconds on chain, and even then, this can be costly. You can't have millions of daily active users using Ethereum or any blockchain at the same time. -ZK solves this but due to slow and complex-to-use proving, and expensive verification, progress has been limited. In the case of proving, before the development of general-purpose zero-knowledge virtual machines (zkvms), users had to express their computation as arithmetic circuits, making the developer experience something like coding in assembler, error-prone, and complex. Moreover, proof systems depended on trusted setups, adding additional trust guarantees, the need to carry out special ceremonies to initialize parameters, and delaying go-to-market times. Besides, having high verification costs (on the order of 10's to 100's of dollars per proof) meant that only those projects with a lot of capital could afford to build such applications. +ZK solves this, but due to slow and complex-to-use proving and expensive verification, progress has been limited. +In the case of proving, before the development of general-purpose zero-knowledge virtual machines (zkVMs), +users had to express their computation as arithmetic circuits, +making the developer experience something like coding in assembler, error-prone, and complex. +Moreover, proof systems depended on trusted setups, +adding additional trust guarantees, the need to carry out special ceremonies to initialize parameters, +and delaying go-to-market times. +Besides, +having high verification costs (on the order of 10's to 100's of dollars per proof) +meant that only those projects with a huge capital could afford to build such applications. ## Why didn't anybody do it before? -To build Aligned, we needed several pieces in place. First, we needed EigenLayer, which allows building services and applications on top of Ethereum without competing for blockspace. In our case, we could bootstrap the economic security for a decentralized network of verifiers, avoiding the limitations of running proof verification on-chain. Second, proving technology had to improve. We currently have general-purpose zkvms (which means we can code in Rust and other high-level languages and prove it), proof systems are faster, and several improvements and developments are on the way. This makes writing applications easier (providing a higher demand for proof verification), and enables faster and simpler proof recursion (for proof compression). +To build Aligned, we needed several pieces in place. +First, we needed EigenLayer, +which allows building services and applications on top of Ethereum without competing for blockspace. +In our case, we could bootstrap the economic security for a decentralized network of verifiers, +avoiding the limitations of running proof verification on-chain. +Second, proving technology had to improve. +We currently have general-purpose zkVMs (which means we can code in Rust and other high-level languages and prove it), +proof systems are faster, and several improvements and developments are on the way. +This makes writing applications easier (providing a higher demand for proof verification), +and enables faster and simpler proof recursion (for proof compression). ## How much can Aligned reduce costs? @@ -32,7 +59,17 @@ Aligned operates using two operation modes: fast and aggregation. The cost reduc Aligned has created a new category in crypto: ZK verification layer. It is the only solution for now offering fast and aggregation modes while being linked to Ethereum via EigenLayer. The fast mode provides very high throughput (over two orders of magnitude more than Ethereum), low latency, and lower costs than the aggregation mode. The security is provided by restaking, and this mode is well suited for applications with tight limits on latency and costs. The aggregation mode works using the slower proof recursion strategy, also used in rollups to compress proofs. Another key feature is that Aligned is stateless, simplifying the process greatly. -Other solutions focus on building a separate L1 for proof verification (which sets them apart from Ethereum and requires bootstrapping the economic security, which can be lower and subject to volatility, as opposed to that provided by restaking) or focus on the aggregation of proofs from a few proof systems. This last approach adds latency, higher operational costs, and constrains the developer's choice of the proof system. +Other solutions focus on building a separate L1 for proof verification (which sets them apart from Ethereum and requires bootstrapping the economic security, which can be lowered and subject to volatility, as opposed to that provided by restaking) or focus on the aggregation of proofs from a few proof systems. This last approach adds latency, higher operational costs, and constrains the developer's choice of the proof system. + +The following table contains costs estimates for Aligned, assuming a batch size of 20 proofs. + +| Proof system | Ethereum | Aligned - Fast mode | Aligned - Aggregation | +| -------- | -------- | -------- | ---------- | +| Groth16 | 250,000 | 40,000 | TBD | +| STARKs | >1,000,000 | 40,000 | TBD | +| Kimchi-IPA | ?????? | 40,000 | TBD | +| Halo2-KZG | 350,000 | 40,000 | TBD | +| Binius. | ?????? | 40,000 | TBD | ## Why are we building Aligned? @@ -40,7 +77,7 @@ In recent months, we have witnessed the development and enhancement of general p Currently, proof verification in Ethereum is expensive and throughput is limited to around 10 proofs per second. The cost depends on the proof system used, and the availability of precompiles. Groth16 costs around 250,000 gas, STARKs, over 1,000,000, and other proof systems are too expensive to be used in Ethereum. -Proof technology has been evolving over the last decade, with new arguments, fields, commitments and other tools appearing every day. It is hard to try new ideas if verification costs are high and there is a considerable go-to-market time, as a consequence of development time of new, gas-optimized smart contracts, or the inclusion of new precompiles to make them affordable. +Proof technology has been evolving over the last decade, with new arguments, fields, commitments and other tools appearing every day. It is hard to try new ideas if verification costs are high, and there is a considerable go-to-market time, as a consequence of development time of new, gas-optimized smart contracts, or the inclusion of new precompiles to make them affordable. Aligned provides an alternative to reduce costs and increase throughput significantly. This is achieved by two different modes: **fast mode** and **aggregation mode**. diff --git a/docs/introduction/1_getting_started.md b/docs/1_introduction/1_getting_started.md similarity index 86% rename from docs/introduction/1_getting_started.md rename to docs/1_introduction/1_getting_started.md index 839149a94..613f777c1 100644 --- a/docs/introduction/1_getting_started.md +++ b/docs/1_introduction/1_getting_started.md @@ -1,8 +1,9 @@ # Getting started! -In this tutorial you will learn how to send your first SP1 proofs to get verified in Aligned in under 3 minutes. +In this tutorial, you will learn how to send your first SP1 proofs to get verified in Aligned in under 3 minutes. ## Quickstart + We will download a previously generated SP1 proof, send it to Aligned for verification, and retrieve the results from Ethereum Holesky testnet. 1. Download and install Aligned to send proofs in the testnet: @@ -51,10 +52,10 @@ Use the link in the response to check the status of your transaction in the Alig aligned verify-proof-onchain \ --aligned-verification-data ~/.aligned/aligned_verification_data/*.json \ --rpc_url https://ethereum-holesky-rpc.publicnode.com \ ---chain holesky +--payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 ``` -This is reading the result of the verification of the proof in Ethereum. +This is reading the result of the proof verification in Ethereum. 7. You should get this result: @@ -62,16 +63,16 @@ This is reading the result of the verification of the proof in Ethereum. [2024-06-17T21:58:43Z INFO aligned] Your proof was verified in Aligned and included in the batch! ``` -If the proof wasn't verified you should get this result: +If the proof wasn't verified, you should get this result: ```bash [2024-06-17T21:59:09Z INFO aligned] Your proof was not included in the batch. ``` Aligned works in: -- MacOS Arm64 (M1 or higher) +- macOS Arm64 (M1 or higher) - Linux x86 with GLIBC_2.32 or superior (For example, Ubuntu 22.04 or higher) If you don't meet these requirements, you can compile the binaries yourself following the [README](https://github.com/yetanotherco/aligned_layer) -To try Aligned with other proving systems, check [this](https://docs.alignedlayer.com/guides/0_submitting_proofs) guide +To try Aligned with other proving systems, check [this](../3_guides/0_submitting_proofs) guide diff --git a/docs/1_introduction/2_zkquiz.md b/docs/1_introduction/2_zkquiz.md new file mode 100644 index 000000000..142590e3a --- /dev/null +++ b/docs/1_introduction/2_zkquiz.md @@ -0,0 +1,59 @@ +# ZK Quiz + +## Introduction + +This program leverages Aligned's ZK verification infrastructure to run a small quiz. The proof allows any party to check that the quiz was answered right or wrong. If answered correctly, the user receives an NFT. + +The process is as follows: + +1. The user runs ZKQuiz and answers the questions. +2. ZKQuiz generates a ZK Proof of correct answers. +3. The proof is posted on Aligned. +4. Upon verification, ZKQuiz mints an NFT via a Smart Contract. + +The NFT is only granted if the user's answers correctly. +Incorrect answers or tampering with the ZKQuiz code will result in proof generation failure or mismatched checksums, +preventing NFT minting. + +Next, we will see how to execute ZKQuiz to get your own ZKQuiz NFT! + +## Requirements + +1. [Rust](https://www.rust-lang.org/tools/install) +2. [Foundry](https://getfoundry.sh) + +## Usage + +### 1 - Create Keystore + +You can use cast to create a local keystore. +If you already have one, you can skip this step. + +```bash +cast wallet new-mnemonic +``` + +Then you can import your created keystore using: + +```bash +cast wallet import --interactive +``` + +Then you need to get some funds to pay for gas and proof verification. +You can do this by using this [faucet](https://cloud.google.com/application/web3/faucet/ethereum/holesky) + +### 2 - Answer Quiz + +To answer quiz questions run: + +```bash +make answer_quiz KEYSTORE_PATH= +``` + +This will: + +1. Ask quiz questions +2. Generate ZK proof +3. Pay & submit proof to aligned for verification +4. Wait for proof to be verified in aligned +5. Claim NFT if proof is verified \ No newline at end of file diff --git a/docs/introduction/3_use_cases.md b/docs/1_introduction/3_use_cases.md similarity index 71% rename from docs/introduction/3_use_cases.md rename to docs/1_introduction/3_use_cases.md index e50eb50f1..b41e44e83 100644 --- a/docs/introduction/3_use_cases.md +++ b/docs/1_introduction/3_use_cases.md @@ -8,8 +8,8 @@ - Verifiable Machine Learning (ML): with general-purpose zkvms we can prove code written in Rust, solving part of the problem of using ML. However, most zkVMs use STARK-based proof systems, which leads to high on-chain costs or expensive wrapping. With Aligned, you can directly verify your proof from the zkVM for much less than Ethereum. - Cheap verification and interoperability for Identity Protocols. - ZK Oracles: With ZK oracles we can show that we have a piece of information off-chain and produce a ZK proof doing some computation with that data. Aligned reduces the cost of using those oracles. For more background, see the [following post](https://minaprotocol.com/blog/what-are-zkoracles). -- New credential protocols such as zkTLS based systems. -- ZK Coprocessor. +- New credential protocols such as zkTLS based systems: you can create proofs of data shown on your web browser and have the result verified in Ethereum. See the following thread for an [ELI5 on TLS](https://x.com/dabit3/status/1830022029195501799) +- ZK Coprocessor: ZK allows complex computations to be delegated from the blockchain to a coprocessor. This can retrieve information from the blockchain and perform the computations securely in a more efficient way. - Encrypted Mempools using SNARKs to show the correctness of the encryption. -- Protocols against misinformation and fake news. +- Protocols against misinformation and fake news: you can generate proofs that an image or audio comes from a given device, and show that a published image is the result of certain transformations performed on the original image. - On-chain gaming. diff --git a/docs/introduction/4_faq.md b/docs/1_introduction/4_faq.md similarity index 89% rename from docs/introduction/4_faq.md rename to docs/1_introduction/4_faq.md index dbe689439..fdaa59057 100644 --- a/docs/introduction/4_faq.md +++ b/docs/1_introduction/4_faq.md @@ -2,11 +2,11 @@ ### What is the objective of Aligned? -Aligned’s mission is to extend Ethereum’s zero-knowledge capabilities. We are certain the zero-knowledge proofs will have a key role in the future of blockchains and computation. We don’t know what that future will look like, but we are certain it will be in Ethereum. The question we want to share is: If we are certain zero-knowledge proofs are the future of Ethereum but we are not certain which of the many possible zero-knowledge futures will win. How can we build an infrastructure for Ethereum to be compatible with any future zero-knowledge proving system? +Aligned’s mission is to extend Ethereum’s zero-knowledge capabilities. We are certain the zero-knowledge proofs will have a key role in the future of blockchains and computation. We don’t know what that future will look like, but we are certain it will be in Ethereum. The question we want to share is: If we are certain zero-knowledge proofs are the future of Ethereum, but we are not certain which of the many possible zero-knowledge futures will win. How can we build an infrastructure for Ethereum to be compatible with any future zero-knowledge proving system? ### What is the throughput of Aligned? -Aligned runs the verifier’s code natively. The verification time depends on the proof system, program run, and public input. Generally, most verifiers can be run in the order of ms on consumer-end hardware. We can optimize the code for speed and leverage parallelization by running it natively. Current testnet can verify more than 2500 proofs per second. +Aligned runs the verifier’s code natively. The verification time depends on the proof system, program run, and public input. Generally, most verifiers can be run in the order of ms on consumer-end hardware. We can optimize the code for speed and leverage parallelization by running it natively. Current testnet can verify more than 4000 proofs per second. ### How does the throughput of Aligned compare with Ethereum? @@ -30,7 +30,7 @@ $$ ### Why do you have a fast and aggregation mode? -The fast mode is designed to offer very cheap verification costs and low latency. It uses crypto-economic guarantees provided by restaking; costs can be as low as 2100 gas. The aggregation mode works with proof aggregation, with higher fees and latency, and achieves the complete security of Ethereum. We verify an aggregated BLS signature (around 113,000 gas) in the fast mode. We verify an aggregated proof (around 300,000 gas) in the aggregation mode. +The fast mode is designed to offer very cheap verification costs and low latency. It uses crypto-economic guarantees provided by restaking; costs can be as low as 21000 gas. The aggregation mode works with proof aggregation, with higher fees and latency, and achieves the complete security of Ethereum. We verify an aggregated BLS signature (around 113,000 gas) in the fast mode. We verify an aggregated proof (around 300,000 gas) in the aggregation mode. ### Why don’t you run Aligned on top of a virtual machine? @@ -70,7 +70,7 @@ Aligned is designed to make adding new proof systems easy. The only thing needed ### What are BLS signatures? -[Boneh-Lynn-Shacham](https://en.wikipedia.org/wiki/BLS_digital_signature) is a cryptographic signature that allows a user to verify that a signer is authentic. It relies on elliptic curve pairings and is used by Ethereum due to its aggregation properties. +[Boneh-Lynn-Shacham (BLS)](https://en.wikipedia.org/wiki/BLS_digital_signature) is a cryptographic signature that allows a user to verify that a signer is authentic. It relies on elliptic curve pairings and is used by Ethereum due to its aggregation properties. ### How does Aligned work? @@ -120,11 +120,11 @@ Yes! Aligned is an infrastructure that offers fast and cheap verification for zero-knowledge and validity proofs. It can take any proof system and verify it cheaply and fast. -This means that what Aligned wants to achieve is to allow anyone to build zk applications. This can only be achieved by: +This means that what Aligned wants to achieve is to allow anyone to build ZK applications. This can only be achieved by: -- Reducing operational costs when maintaining a zk application -> anyone can afford to build zk apps. +- Reducing operational costs when maintaining a ZK application -> anyone can afford to build ZK apps. - Offering more options so developers can choose how they want to build their protocols -> everyone can choose their tools. -- Offer the latest zk that allows anyone to build zk applications by just proving rust -> anyone can code a zk application. +- Offer the latest ZK technology that allows anyone to build ZK applications by just proving rust -> anyone can code a ZK application. ### What’s the role of Aligned in Ethereum? @@ -164,3 +164,7 @@ Aligned is just a network of decentralized verifiers renting security from Ether ### Why do we need a ZK verification layer? Verifiable computation allows developers to build applications that help Ethereum scale or even create applications that were not possible before, with enhanced privacy properties. We believe the future of Ethereum will be shaped by zero-knowledge proofs and help it increase its capabilities. + +### How about Aligned and TEE? + +We want Aligned to verify TEE attestations. We think TEEs provide an alternative to ZK in some applications where ZK is too computationally intensive or as an additional mechanism to provide integrity (the case of multiproofs). diff --git a/docs/1_introduction/5_why_zk.md b/docs/1_introduction/5_why_zk.md new file mode 100644 index 000000000..9c98a2b03 --- /dev/null +++ b/docs/1_introduction/5_why_zk.md @@ -0,0 +1,43 @@ +# Why ZK and how can Aligned help you? + +The following is an introduction to zero-knowledge/validity proofs to understand their utility and impact and why they may help you solve problems you can encounter when building your application. Before jumping on the explanation, we give some definitions: + +- Validity/integrity proofs: These are cryptographic proofs that allow you to check that a computation was carried out correctly, without having to re-run it entirely. +- Zero-knowledge proofs: These are cryptographic that allow you to prove the validity of a statement, without revealing sensitive data. + +The two terms are sometimes grouped under ZK, though depending on the use case, you may need it to be zero-knowledge or not. Validity proofs are widely used by ZK-rollups (though not rigorously zero-knowledge), while Schnorr signatures are an example of the second (basically, they let you show to others that you have a secret key, without leaking it). + +In blockchains, we need to coordinate between different parties that do not trust each other. How can we agree on whether something has happened? The logical construction involves independently re-executing transactions and reaching consensus. However, the number of transactions we can process is limited by the weakest devices in the network, acting as bottlenecks. Moreover, adding more hardware does not make the system faster (as in web2), only more robust. ZK allows the situation to scale, allowing the system to process more transactions with the same guarantees. ZK proofs allow you to verify a computation much faster than re-execution: we can use more powerful machines to run the transactions and generate the cryptographic proof, and the rest of the network verifies the proof. If the proof is valid, it is the same as if all the nodes had re-executed the transactions, but with less computational effort. More concretely, a ZK-rollup can generate a proof that it processed 10,000 transactions correctly, and submit to Ethereum the proof with the state diff (or other information necessary to update the state), and Ethereum can check very quickly that all those transactions were correct! ZK is also useful whenever you need to show the integrity of some computation, for example, that an image you published in the newspaper is the result of enlarging an image from a real camera. You can generate the proof and then use Ethereum as a settlement layer, in charge of performing the verification of your proofs, though there is a problem: it can be expensive, and you have limited throughput. This is where Aligned comes in. + +Aligned offers you two different products to reduce your costs and increase throughput: fast mode and the proof aggregation service. Once you know that you want to use ZK for your product and Ethereum, Aligned fits perfectly. Whether to use fast mode or proof aggregation depends on your needs: + +- Fast mode: a decentralized network of verifiers that checks the proofs, signs messages stating the correctness of the proof and when a threshold is met, publishes the signature to Ethereum. Once Ethereum checks the signature, the state of the proofs is changed to verified, and you can use the result as always. It has very high throughput, reduces costs significantly (depending on the number of proofs that are sent) and has low latency. +- Proof aggregation service: performs recursive proof aggregation of several ZK proofs. The final proof is sent to Ethereum, and if verified, it implied the validity of your proof. It has higher latency and lower throughput than the fast mode, but achieves the full security of Ethereum. + +How can you write ZK applications and generate proofs? +There are many different technologies and libraries to build ZK applications. +Until recently, it was fairly complicated, since you needed some background of math and write circuits +(you can think of it as coding in assembly). +Luckily, +there are several ZK virtual machines (zkVM) +that allow you to generate proofs of code written in a higher level language, +such as Rust. +You write your code and run it on top of the zkVM, and you get a proof of its correct execution. +To simplify things, we have [zkRust](../3_guides/5_using_zkrust.md), +where you can run your code and send the proof directly to Aligned! + +## Projects or ideas using ZK + +The list below contains examples or projects using ZK. It is meant to illustrate some use cases, but it is not meant to be exhaustive. + +- Rollups +- On-chain gaming +- ZK Machine Learning (zKML) +- ZK-TLS +- Bridges +- Oracles +- Data processors +- Voting +- ZK-Email +- Identity protocols +- IoT \ No newline at end of file diff --git a/docs/architecture/0_supported_verifiers.md b/docs/2_architecture/0_supported_verifiers.md similarity index 100% rename from docs/architecture/0_supported_verifiers.md rename to docs/2_architecture/0_supported_verifiers.md diff --git a/docs/architecture/0b_key_terms.md b/docs/2_architecture/0b_key_terms.md similarity index 100% rename from docs/architecture/0b_key_terms.md rename to docs/2_architecture/0b_key_terms.md diff --git a/docs/architecture/1_fast_mode.md b/docs/2_architecture/1_fast_mode.md similarity index 97% rename from docs/architecture/1_fast_mode.md rename to docs/2_architecture/1_fast_mode.md index d09dd3404..a043e1248 100644 --- a/docs/architecture/1_fast_mode.md +++ b/docs/2_architecture/1_fast_mode.md @@ -65,8 +65,8 @@ The root of the Merkle tree is posted to Ethereum together with a pointer to whe Each leaf contains the following information: - A commitment to the public input of the proof. -- A commitment to the proof and information about the proof system. -- A commitment to the program or a commitment to the verification key (depending on the proof system used). +- A commitment to the proof +- A commitment to the program or a commitment to the verification key, plus the Proving System/verifier used. - The address of the proof’s generator/submitter (optional). A diagram for the batch is shown on the figure below: diff --git a/docs/architecture/2_aggregation_mode.md b/docs/2_architecture/2_aggregation_mode.md similarity index 100% rename from docs/architecture/2_aggregation_mode.md rename to docs/2_architecture/2_aggregation_mode.md diff --git a/docs/2_architecture/components/1_batcher.md b/docs/2_architecture/components/1_batcher.md new file mode 100644 index 000000000..0f8fb370a --- /dev/null +++ b/docs/2_architecture/components/1_batcher.md @@ -0,0 +1,13 @@ +# Batcher + +The Batcher receives proofs from different Users, bundles them in a batch of proofs, builds a Merkle Root from these, uploads the batch to a data service (like an S3 bucket), and submits this information to the [Aligned Service Manager](./3_service_manager_contract.md). + +To ensure that the User is sure that their proof was included in a batch, the Batcher will send each User their Merkle Proof (or Merkle Path). With this, the User can rebuild the Merkle Root starting from their proof, thus verifying it was actually included in the batch. + +Also, to avoid unnecessary proof submissions, the Batcher performs preliminary verifications of the submitted proofs in to minimize the submission of false proofs in a batch. + +However, each proof has a cost of verification, so each batch must contain some sort of payment for it to be verified. To handle the payment for each batch, the Batcher submits the batch through its [Batcher Payment Service](./2_payment_service_contract.md). + +To send the batch of proofs to the [Aligned Service Manager](./3_service_manager_contract.md), the Batcher stores the batch of proofs in an S3 for 1 week, and sends the link to the file to the [Aligned Service Manager](./3_service_manager_contract.md). + +To view how to submit your own batch, without the use of this Batcher, you may follow [the following guide](../../3_guides/8_submitting_batch_without_batcher.md) diff --git a/docs/architecture/components/2_payment_service_contract.md b/docs/2_architecture/components/2_payment_service_contract.md similarity index 79% rename from docs/architecture/components/2_payment_service_contract.md rename to docs/2_architecture/components/2_payment_service_contract.md index b4c357604..f03fcf5c4 100644 --- a/docs/architecture/components/2_payment_service_contract.md +++ b/docs/2_architecture/components/2_payment_service_contract.md @@ -1,6 +1,6 @@ # Payment Service -The Payment Service handles User's payments to fund the verification of their proofs. +The Payment Service handles users payments to fund the verification of their proofs. To be able to use the batcher, a user must fund its transactions. For this, there is a simple Batcher Payment System. @@ -12,7 +12,7 @@ and it guarantees that it can only spend these funds to send users' proofs to Al Users must first deposit into this contract, via a normal transfer to its address, where the Batcher Payment System will update the User's balance. -Users send proofs to the Batcher, which checks for sufficient funds. +Users send proofs to the Batcher, which checks whether there are enough funds. Once a batch is complete, the Batcher calls its smart contract with the collected user data The smart contract deducts funds from senders' balances and creates a new Batch in @@ -21,13 +21,13 @@ including tokens for batch verification payment to the [Aggregator](./5_aggregat Users can then withdraw extra funds deposited to the Batcher Payments smart contract, or leave them to fund future proofs. +To avoid causing a Denial of Service on the Batcher, Users must first call the contract's `unlock` function, +and then call `withdraw` at least 100 blocks later, to finish their withdrawal process. +This enables the Batcher to be sure the User will have funds to pay for his proofs when `createNewTask` is called. -This way, the Batcher can only use User funds to pay for the verification of the User's proofs. +This way, the Batcher can only use the User's funds to pay for the verification of the User's proofs. The Batcher Payment Service guarantees that the Batcher will not be able to spend the user funds for anything other than submitting the user's proofs to Aligned. -The Batcher Payment Service guarantees that the Batcher -will not be able to spend the user funds for anything other than submitting the user's proofs to Aligned. - -The way it does is: +The flow is: - When the batcher calls the smart contract to create a new batch, it gets the batch merkle tree leaves, with each leaf, signed by the user. @@ -39,6 +39,10 @@ The way it does is: discount the corresponding funds from the user's balance and create a new batch in the [Aligned Service Manager](./3_service_manager_contract.md). +## Payment service architecture and flow + +![Payment Service Flow Diagram](../../images/payment_service_diagram.png) + ## Details of the contract ### API diff --git a/docs/architecture/components/3_service_manager_contract.md b/docs/2_architecture/components/3_service_manager_contract.md similarity index 100% rename from docs/architecture/components/3_service_manager_contract.md rename to docs/2_architecture/components/3_service_manager_contract.md diff --git a/docs/architecture/components/4_operator.md b/docs/2_architecture/components/4_operator.md similarity index 100% rename from docs/architecture/components/4_operator.md rename to docs/2_architecture/components/4_operator.md diff --git a/docs/architecture/components/5_aggregator.md b/docs/2_architecture/components/5_aggregator.md similarity index 100% rename from docs/architecture/components/5_aggregator.md rename to docs/2_architecture/components/5_aggregator.md diff --git a/docs/architecture/components/6_explorer.md b/docs/2_architecture/components/6_explorer.md similarity index 100% rename from docs/architecture/components/6_explorer.md rename to docs/2_architecture/components/6_explorer.md diff --git a/docs/guides/0_submitting_proofs.md b/docs/3_guides/0_submitting_proofs.md similarity index 96% rename from docs/guides/0_submitting_proofs.md rename to docs/3_guides/0_submitting_proofs.md index d4a83cbcb..b9b2ecf8d 100644 --- a/docs/guides/0_submitting_proofs.md +++ b/docs/3_guides/0_submitting_proofs.md @@ -1,6 +1,6 @@ # Submitting Proofs -Make sure you have Aligned installed as specified [here](../introduction/1_getting_started.md#Quickstart). +Make sure you have Aligned installed as specified [here](../1_introduction/1_getting_started.md#Quickstart). If you run the examples below, make sure you are in Aligned's repository root. @@ -15,7 +15,7 @@ The following is the list of the verifiers currently supported by Aligned: - :white_check_mark: Halo2 - Plonk/KZG - :white_check_mark: Halo2 - Plonk/IPA -Learn more about future verifiers [here](../architecture/0_supported_verifiers.md). +Learn more about future verifiers [here](../2_architecture/0_supported_verifiers.md). ## 1. Import/Create Keystore file @@ -99,13 +99,13 @@ These commands allow the usage of the following flags: ## 3. Submit your proof to the batcher -This guide will focus on how to submit proofs using the Aligned CLI. To integrate the proof submission process into your application, check the [Aligned SDK guide](../guides/1_SDK.md). +This guide will focus on how to submit proofs using the Aligned CLI. To integrate the proof submission process into your application, check the [Aligned SDK guide](../3_guides/2_integrating_aligned_into_your_application.md). Proof submission is done via the `submit` command of the Aligned CLI. The arguments for the submit command are: * `proving_system`: The proving system corresponding to the proof you want to submit. * `proof`: The path of the proof associated to the computation to be verified. -* `vm_program`: When the proving system involves the execution of a program in a zkVM, this argument is associated with the compiled program or some other identifier of the program. +* `vm_program`: When the proving system involves the execution of a program in a zkVM, this argument is associated with the compiled program or some other identifier of the program. * `pub_input`: The path to the file with the public input associated with the proof. * `batcher_url`: The batcher websocket URL. * `rpc_url`: The RPC Ethereum node URL. @@ -214,7 +214,7 @@ aligned submit \ --vk ./scripts/test_files/gnark_plonk_bn254_script/plonk.vk \ --batcher_url wss://batcher.alignedlayer.com \ --keystore_path ~/.aligned_keystore/keystore0 \ ---eth_rpc_url https://ethereum-holesky-rpc.publicnode.com \ +--rpc_url https://ethereum-holesky-rpc.publicnode.com \ --payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 ``` @@ -309,4 +309,3 @@ aligned submit \ --rpc_url https://ethereum-holesky-rpc.publicnode.com \ --payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 ``` - diff --git a/docs/guides/1_SDK.md b/docs/3_guides/1.2_SDK_api_reference.md similarity index 92% rename from docs/guides/1_SDK.md rename to docs/3_guides/1.2_SDK_api_reference.md index 3c002b8d1..31cd77124 100644 --- a/docs/guides/1_SDK.md +++ b/docs/3_guides/1.2_SDK_api_reference.md @@ -1,24 +1,5 @@ # Aligned SDK -The Aligned SDK aims to help developers interact with Aligned in a simple way. -Some of its functionalities include submitting and verifying proofs through the Aligned Batcher, as well as checking the -inclusion of the verified proofs on-chain. -This guide provides an overview of the SDK, its installation, usage, and API details. - -You can check the list of supported verifiers [here](../architecture/0_supported_verifiers.md). - -## Installation - -To use this SDK in your Rust project, add the following to your `Cargo.toml`: - -```toml -[dependencies] -aligned-sdk = { git = "https://github.com/yetanotherco/aligned_layer", tag="v0.4.0" } -``` - -To find the latest release tag go to [releases](https://github.com/yetanotherco/aligned_layer/releases) and copy the -version of the release that has the `latest` badge. - ## API Reference ### `submit` @@ -281,7 +262,7 @@ pub async fn get_next_nonce( Returns the chain id for a given rpc url. -Should be used before submiting proofs to the batcher. Wallet chain id needs to be set with: +Should be used before submitting proofs to the batcher. Wallet chain id needs to be set with: ```rust wallet = wallet.with_chain_id(chain_id); diff --git a/docs/3_guides/1_SDK_how_to.md b/docs/3_guides/1_SDK_how_to.md new file mode 100644 index 000000000..f630373af --- /dev/null +++ b/docs/3_guides/1_SDK_how_to.md @@ -0,0 +1,101 @@ +# Aligned SDK + +The Aligned SDK aims to help developers interact with Aligned in a simple way. +Using the Aligned SDK, you can do things like submitting and verifying proofs through the Aligned Batcher, as well as checking the inclusion of the verified proofs on-chain. +This guide provides an overview of the SDK, its installation, usage, and API details. + +You can check the list of supported verifiers [here](../2_architecture/0_supported_verifiers.md). + +## Installation + +To use this SDK in your Rust project, add the following to your `Cargo.toml`: + +```toml +[dependencies] +aligned-sdk = { git = "https://github.com/yetanotherco/aligned_layer", tag="v0.6.0" } +``` + +To find the latest release tag go to [releases](https://github.com/yetanotherco/aligned_layer/releases) and copy the +version of the release that has the `latest` badge. + +## Hello World + +To get the SDK up and running in your project, you must first import it + +```rust +use aligned_sdk::core::types::{AlignedVerificationData, Chain, ProvingSystemId, VerificationData}; +use aligned_sdk::sdk::{submit_and_wait, get_next_nonce}; +``` + +And then you can do a simple call of, for example, `get_next_nonce` +```rust +const BATCHER_PAYMENTS_ADDRESS: &str = "0x815aeCA64a974297942D2Bbf034ABEe22a38A003"; + +fn main() { + let rpc_url = args.rpc_url.clone(); + let keystore_password = rpassword::prompt_password("Enter keystore password: ") + .expect("Failed to read keystore password"); + let wallet = LocalWallet::decrypt_keystore(args.keystore_path, &keystore_password) + .expect("Failed to decrypt keystore") + .with_chain_id(17000u64); + + // Call to SDK: + let nonce = get_next_nonce(&rpc_url, wallet.address(), BATCHER_PAYMENTS_ADDRESS).await + .expect("Failed to get next nonce"); +} +``` + +Or you can make a more complex call to submit a proof: + +(code extract from [ZKQuiz](../1_introduction/2_zkquiz.md)) + +```rust +const BATCHER_URL: &str = "wss://batcher.alignedlayer.com"; + +fn main() { + let rpc_url = args.rpc_url.clone(); + let verification_data = VerificationData { + proving_system: ProvingSystemId::SP1, + proof, + proof_generator_addr: wallet.address(), + vm_program_code: Some(ELF.to_vec()), + verification_key: None, + pub_input: None, + }; + let keystore_password = rpassword::prompt_password("Enter keystore password: ") + .expect("Failed to read keystore password"); + let wallet = LocalWallet::decrypt_keystore(args.keystore_path, &keystore_password) + .expect("Failed to decrypt keystore") + .with_chain_id(17000u64); + + // Call to SDK: + match submit_and_wait( + BATCHER_URL, + &rpc_url, + Chain::Holesky, + &verification_data, + wallet.clone(), + nonce + ) + .await + { + Ok(maybe_aligned_verification_data) => match maybe_aligned_verification_data { + Some(aligned_verification_data) => { + println!( + "Proof submitted and verified successfully on batch {}", + hex::encode(aligned_verification_data.batch_merkle_root) + ); + + } + None => { + println!("Proof submission failed. No verification data"); + } + }, + Err(e) => { + println!("Proof verification failed: {:?}", e); + } + } +} +``` + +In the [next section,](./1.2_SDK_api_reference.md) we will dive deeper into what does each argument mean, and what other functions does Aligned SDK contain. diff --git a/docs/guides/2_integrating_aligned_into_your_application.md b/docs/3_guides/2_integrating_aligned_into_your_application.md similarity index 79% rename from docs/guides/2_integrating_aligned_into_your_application.md rename to docs/3_guides/2_integrating_aligned_into_your_application.md index 8b0a279b8..b704f483e 100644 --- a/docs/guides/2_integrating_aligned_into_your_application.md +++ b/docs/3_guides/2_integrating_aligned_into_your_application.md @@ -25,7 +25,7 @@ The Aligned CLI provides a way for you to get the verification key commitment wi You can do this by running the following command: ```bash -aligned get-commitment --input +aligned get-vk-commitment --verification_key_file --proving_system ``` The following is an example of how to call the `verifyBatchInclusionMethod` from the `AlignedServiceManager` contract in your smart contract. @@ -116,13 +116,12 @@ The proof submission and verification can be done either with the SDK or by usin #### Using the SDK -To submit a proof using the SDK, you can use the `submit_and_wait_verification` function. -This function submits the proof to aligned and waits for it to be verified in Aligned. -Alternatively you can call `submit` if you dont want to wait for proof verification. +To submit a proof using the SDK, you can use the `submit` function, and then you can use the `verify_proof_onchain` function to check if the proof was correctly verified in Aligned. + The following code is an example of how to submit a proof using the SDK: ```rust -use aligned_sdk::sdk::{submit_and_wait_verification, get_next_nonce}; +use aligned_sdk::sdk::{submit, get_next_nonce}; use aligned_sdk::types::{ProvingSystemId, VerificationData}; use ethers::prelude::*; @@ -148,33 +147,13 @@ async fn submit_proof_to_aligned( .await .map_err(|e| anyhow::anyhow!("Failed to get next nonce: {:?}", e))?; - match submit_and_wait_verification( - BATCHER_URL, - &rpc_url, - Chain::Holesky, - &verification_data, - wallet.clone(), - nonce, - BATCHER_PAYMENTS_ADDRESS - ) - - submit_and_wait_verification( - BATCHER_URL, - RPC_URL, - Chain::Holesky, - &verification_data, - wallet, - nonce, - BATCHER_CONTRACT_ADDRESS - ).await.map_err(|e| anyhow::anyhow!("Failed to submit proof: {:?}", e)) + submit(BATCHER_URL, &verification_data, wallet, nonce).await + .map_err(|e| anyhow::anyhow!("Failed to submit proof: {:?}", e)) } #[tokio::main] async fn main() { let wallet = // Initialize wallet - - let wallet = wallet.with_chain_id(17000u64) - let proof = // Generate or obtain proof match submit_proof_to_aligned(proof, wallet).await { @@ -184,6 +163,41 @@ async fn main() { } ``` +The following code is an example of how to verify the proof was correctly verified in Aligned using the SDK: + +```rust +use aligned_sdk::sdk::verify_proof_onchain; +use aligned_sdk::types::{AlignedVerificationData, Chain}; +use ethers::prelude::*; +use tokio::time::{sleep, Duration}; + +async fn wait_for_proof_verification( + aligned_verification_data: AlignedVerificationData, + rpc_url: String, +) -> Result<(), anyhow::Error> { + for _ in 0..10 { + if verify_proof_onchain(aligned_verification_data.clone(), Chain::Holesky, rpc_url.as_str()).await.is_ok_and(|r| r) { + println!("Proof verified successfully."); + return Ok(()); + } + println!("Proof not verified yet. Waiting 10 seconds before checking again..."); + sleep(Duration::from_secs(10)).await; + } + anyhow::bail!("Proof verification failed") +} + +#[tokio::main] +async fn main() { + let aligned_verification_data = // Obtain aligned verification data + let rpc_url = "https://ethereum-holesky-rpc.publicnode.com".to_string(); + + match wait_for_proof_verification(aligned_verification_data, rpc_url).await { + Ok(_) => println!("Proof verified"), + Err(err) => println!("Error: {:?}", err), + } +} +``` + You can find an example of the proof submission and verification in the [ZKQuiz Program](../../examples/zkquiz/quiz/script/src/main.rs). This example generates a proof, instantiates a wallet to submit the proof, and then submits the proof to Aligned for verification. It then waits for the proof to be verified in Aligned. diff --git a/docs/guides/3.2_generate_gnark_proof.md b/docs/3_guides/3.2_generate_gnark_proof.md similarity index 100% rename from docs/guides/3.2_generate_gnark_proof.md rename to docs/3_guides/3.2_generate_gnark_proof.md diff --git a/docs/guides/3_validating_public_input.md b/docs/3_guides/3_validating_public_input.md similarity index 94% rename from docs/guides/3_validating_public_input.md rename to docs/3_guides/3_validating_public_input.md index fcb6bbe0a..9b0900966 100644 --- a/docs/guides/3_validating_public_input.md +++ b/docs/3_guides/3_validating_public_input.md @@ -10,7 +10,7 @@ This guide assumes you are in the `examples/validating-public-input` directory. ## Generate your ZK Proof -> [!IMPORTANT] +> [!IMPORTANT] > To generate the proof ensure you have [docker](https://www.docker.com/get-started/) installed and the docker daemon running. > This is necessary to ensure deterministic builds of the binary we want to generate a proof of. If not used, builds may differ depending on the system you are running on. To know more about this, check [this link](https://dev.risczero.com/terminology#deterministic-builds) from RiscZero docs. @@ -42,7 +42,6 @@ pragma solidity ^0.8.12; contract FibonacciValidator { address public alignedServiceManager; - address public paymentServiceAddr; bytes32 public fibonacciProgramId; bytes32 public fibonacciProgramIdCommitment = @@ -50,9 +49,8 @@ contract FibonacciValidator { event FibonacciNumbers(uint32 fibN, uint32 fibNPlusOne); - constructor(address _alignedServiceManager, address _paymentServiceAddr) { + constructor(address _alignedServiceManager) { alignedServiceManager = _alignedServiceManager; - paymentServiceAddr = _paymentServiceAddr; } function verifyBatchInclusion( @@ -80,15 +78,14 @@ contract FibonacciValidator { bytes memory proofIsIncluded ) = alignedServiceManager.staticcall( abi.encodeWithSignature( - "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)", + "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)", proofCommitment, pubInputCommitment, programIdCommitment, proofGeneratorAddr, batchMerkleRoot, merkleProof, - verificationDataBatchIndex, - paymentServiceAddr + verificationDataBatchIndex ) ); @@ -119,7 +116,6 @@ contract FibonacciValidator { return (first, second); } } - ``` ### Explanation @@ -150,15 +146,14 @@ require( bytes memory proofIsIncluded ) = alignedServiceManager.staticcall( abi.encodeWithSignature( - "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)", + "verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256)", proofCommitment, pubInputCommitment, programIdCommitment, proofGeneratorAddr, batchMerkleRoot, merkleProof, - verificationDataBatchIndex, - paymentServiceAddr + verificationDataBatchIndex ) ); @@ -197,7 +192,6 @@ To deploy the contract, first you will need to set up the `.env` file in the con RPC_URL= #You can use publicnode RPC: https://ethereum-holesky-rpc.publicnode.com PRIVATE_KEY= ALIGNED_SERVICE_MANAGER_ADDRESS= #0x58F280BeBE9B34c9939C3C39e0890C81f163B623 for Holesky -PAYMENT_SERVICE_ADDRESS= #0x815aeCA64a974297942D2Bbf034ABEe22a38A003 for Holesky ``` Then, run `make deploy_fibonacci_validator`. diff --git a/docs/guides/4_generating_proofs.md b/docs/3_guides/4_generating_proofs.md similarity index 94% rename from docs/guides/4_generating_proofs.md rename to docs/3_guides/4_generating_proofs.md index b7374c84c..dd4947646 100644 --- a/docs/guides/4_generating_proofs.md +++ b/docs/3_guides/4_generating_proofs.md @@ -9,7 +9,7 @@ This guide assumes that: - sp1 prover installed (instructions [here](https://succinctlabs.github.io/sp1/getting-started/install.html)) - sp1 project to generate the proofs (instructions [here](https://succinctlabs.github.io/sp1/generating-proofs/setup.html)) -- aligned installed (instructions [here](../introduction/1_getting_started.md#quickstart)) +- aligned installed (instructions [here](../1_introduction/1_getting_started.md#quickstart)) ### How to generate a proof @@ -47,7 +47,7 @@ aligned submit \ Where `proof_path` is the path to the proof file, `vm_program_path` is the path to the ELF file. `proof_generator_addr` is an optional parameter that works as a helper for some applications where you can be frontrunned. -For more instructions on how to submit proofs, check the [Submitting proofs guide](../guides/0_submitting_proofs.md). +For more instructions on how to submit proofs, check the [Submitting proofs guide](../3_guides/0_submitting_proofs.md). ## Gnark @@ -98,7 +98,7 @@ aligned submit \ Where proof path is the path to the proof file, `public_input_path` is the path to the public input file, and `verification_key_path` is the path to the verification key file. -For more instructions on how to submit proofs, check the [Submitting proofs guide](../guides/0_submitting_proofs.md). +For more instructions on how to submit proofs, check the [Submitting proofs guide](../3_guides/0_submitting_proofs.md). ## Risc0 @@ -108,7 +108,7 @@ This guide assumes that: - Risc0 toolchain installed (instructions [here](https://dev.risczero.com/api/zkvm/quickstart#1-install-the-risc-zero-toolchain)) - Risc0 project to generate the proofs (instructions [here](https://dev.risczero.com/api/zkvm/quickstart#2-create-a-new-project)) -- Aligned installed (instructions [here](../introduction/1_getting_started.md#quickstart)) +- Aligned installed (instructions [here](../1_introduction/1_getting_started.md#quickstart)) ### How to generate a proof @@ -174,7 +174,7 @@ aligned submit \ --payment_service_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 ``` -For more instructions on how to submit proofs, check the [Submitting proofs guide](../guides/0_submitting_proofs.md). +For more instructions on how to submit proofs, check the [Submitting proofs guide](../3_guides/0_submitting_proofs.md). ## Halo2 @@ -184,11 +184,11 @@ This guide assumes that: - You are using PSE fork of the Halo2 [proof system](https://github.com/privacy-scaling-explorations/halo2). - You have a strong understanding of Halo2 circuit development and are familiar with the Halo2 proof system. -- Aligned installed (instructions [here](../introduction/1_getting_started.md#quickstart)). +- Aligned installed (instructions [here](../1_introduction/1_getting_started.md#quickstart)). ### Import the Halo2 fork library -Aligned supports verification of Halo2 proofs using the IPA and KZG backends. To verify Halo2 proofs on Aligned a description of your Halo2 circuits [constraint system](https://github.com/privacy-scaling-explorations/halo2/blob/main/halo2_backend/src/plonk/circuit.rs#L63) must be serialized and sent over the wire to Aligned in addition to the ciruits verification parameters, verification key, and public inputs. +Aligned supports verification of Halo2 proofs using the IPA and KZG backends. To verify Halo2 proofs on Aligned a description of your Halo2 circuits [constraint system](https://github.com/privacy-scaling-explorations/halo2/blob/main/halo2_backend/src/plonk/circuit.rs#L63) must be serialized and sent over the wire to Aligned in addition to the ciruits verification parameters, verification key, and public inputs. Aligned maintains its own fork of the PSE's Halo2 repository that provides helper methods to serialize and send Halo2 proofs to Aligned. @@ -280,4 +280,4 @@ aligned submit \ --batcher_addr 0x815aeCA64a974297942D2Bbf034ABEe22a38A003 ``` -For more instructions on how to submit proofs, check the [Submitting proofs guide](../guides/0_submitting_proofs.md). \ No newline at end of file +For more instructions on how to submit proofs, check the [Submitting proofs guide](../3_guides/0_submitting_proofs.md). diff --git a/docs/guides/5_using_zkrust.md b/docs/3_guides/5_using_zkrust.md similarity index 68% rename from docs/guides/5_using_zkrust.md rename to docs/3_guides/5_using_zkrust.md index a3dc1448f..c75e15409 100644 --- a/docs/guides/5_using_zkrust.md +++ b/docs/3_guides/5_using_zkrust.md @@ -1,11 +1,10 @@ # Generating & submitting proofs to Aligned using zkRust -With zkRust, you can generate proofs of Rust code and then submit them to Aligned to be verified with only one command. -You can choose between different Rust zkVMs for generating your proof. -The supported provers at the moment are: +[zkRust](https://github.com/yetanotherco/zkRust) is a CLI tool to generate proofs of your rust code using a RISCV-zkVM's and submit them to Aligned to be verified with only one command. +The following provers are supported: -* [Risc0](https://github.com/risc0/risc0) -* [SP1](https://github.com/succinctlabs/sp1) +- [Risc0](https://github.com/risc0/risc0) +- [SP1](https://github.com/succinctlabs/sp1) ## Dependencies @@ -19,13 +18,27 @@ To generate and submit proofs to Aligned using ZKRust, you need to have the foll To generate and submit proofs to Aligned testnet using zkRust, you can follow the steps below: -### 1. Clone the zkRust repository: +### 1. Install zkRust : -```bash -git clone https://github.com/lambdaclass/zkRust +The zkRust executable can be installed directly via the command line via: + +```sh +curl -L https://raw.githubusercontent.com/yetanotherco/zkRust/main/install_zkrust.sh | bash +``` + +or built by cloning the repo + +```sh +git clone https://github.com/yetanotherco/zkRust cd zkRust ``` +and running the installation script: + +```sh +make install +``` + ### 2. Generate a keystore: You can use cast to create a local keystore. @@ -48,11 +61,12 @@ You can get Holesky ETH from the [faucet](https://cloud.google.com/application/w The zkRust repo has some predefined examples that can be used to generate a proof. You can find them in `zkRust/examples`. -For example, to generate a proof of a `fibonacci` program with Risc0 and submit it to aligned, run: +For example, to generate a proof of a `fibonacci` program with Risc0 or SP1 and submit it to aligned, run: -```bash -cargo run --release -- prove-risc0 \ - --submit-to-aligned-with-keystore \ +```sh +cargo run --release -- prove-risc0 \ + --submit-to-aligned-with-keystore \ + \ examples/fibonacci . ``` @@ -75,5 +89,4 @@ cargo run --release -- prove-sp1 \ For the moment, the Rust code that can be proven has some limitations: -* Programs with I/O are not supported -* Programs that rely on zkVMs Precompiles may take too much time and computing resources. +- Programs with user Input and Output to the vm code are not supported. diff --git a/docs/guides/6_setup_aligned.md b/docs/3_guides/6_setup_aligned.md similarity index 93% rename from docs/guides/6_setup_aligned.md rename to docs/3_guides/6_setup_aligned.md index aa83bf3d2..3c541a8af 100644 --- a/docs/guides/6_setup_aligned.md +++ b/docs/3_guides/6_setup_aligned.md @@ -124,7 +124,7 @@ Note that when upgrading the contracts, you must also: ## Aggregator -To start the [Aggregator](../architecture/components/5_aggregator.md): +To start the [Aggregator](../2_architecture/components/5_aggregator.md): ```bash make aggregator_start @@ -143,7 +143,7 @@ make aggregator_start CONFIG_FILE= ## Operator -To start an [Operator](../architecture/components/4_operator.md) +To start an [Operator](../2_architecture/components/4_operator.md) (note it also registers it): ```bash @@ -309,7 +309,7 @@ eigenlayer operator keys import --key-type bls ## Batcher -To start the [Batcher](../architecture/components/1_batcher.md): +To start the [Batcher](../2_architecture/components/1_batcher.md): ```bash make batcher_start @@ -324,7 +324,7 @@ batcher (`batcher/aligned-batcher/`). The necessary environment variables are: | Variable Name | Description | -| --------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +|-----------------------|--------------------------------------------------------------------------------------------------------------------------------| | AWS_SECRET_ACCESS_KEY | Secret key to authenticate and authorize API requests to the AWS S3 Bucket. | | AWS_REGION | Geographical region where the AWS S3 Bucket will be accessed. | | AWS_ACCESS_KEY_ID | Access key used in combination with the AWS_SECRET_ACCESS_KEY to authenticate and authorize API requests to the AWS S3 Bucket. | @@ -537,7 +537,7 @@ to run it using the following documentation: ### DB Setup -To set up the explorer, an installation of the DB is needed. +To set up the explorer, an installation of the DB is necessary. First, you'll need to install docker if you don't have it already. You can follow the instructions [here](https://docs.docker.com/get-docker/). @@ -545,7 +545,7 @@ You can follow the instructions [here](https://docs.docker.com/get-docker/). The explorer uses a PostgreSQL database. To build and start the DB using docker, run: ```bash -make build_db +make explorer_build_db ```
@@ -557,19 +557,19 @@ make build_db - Run the database container, opening port `5432`: ```bash -make run_db +make explorer_run_db ``` - Configure the database with ecto running `ecto.create` and `ecto.migrate`: ```bash -make ecto_setup_db +make explorer_ecto_setup_db ``` - Start the explorer: ```bash -make run_explorer # or make run_devnet_explorer +make run_explorer ```
@@ -577,13 +577,13 @@ make run_explorer # or make run_devnet_explorer To clear the DB, you can run: ```bash -make clean_db +make explorer_clean_db ``` If you need to dump the data from the DB, you can run: ```bash -make dump_db +make explorer_dump_db ``` This will create a `dump.$date.sql` SQL script on the `explorer` directory with all the existing data. @@ -591,7 +591,7 @@ This will create a `dump.$date.sql` SQL script on the `explorer` directory with Data can be recovered from a `dump.$date.sql` using the following command: ```bash -make recover_db +make explorer_recover_db ``` Then you'll be requested to enter the file name of the dump you want to recover already positioned in the `/explorer` @@ -625,22 +625,39 @@ received To run the explorer for the local devnet, you'll need to have the devnet running and the DB already setup. +Additionally, you'll need to have the `.env` file in the `/explorer` directory of the project. +A base example of the `.env` file can be found in `/explorer/.env.dev`. + Use the following command to start the Explorer: ```bash -make run_devnet_explorer +make run_explorer ``` Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. You can access to a tasks' information by visiting `localhost:4000/batches/:merkle_root`. +
+There's an additional Explorer script to fetch past operators and restake + +If you want to fetch past operators, strategies and restake, you will need to run: + +```bash +make explorer_fetch_old_operators_strategies_restakes +``` + +This will run the script `explorer_fetch_old_operators_strategies_restakes.sh` that will fetch the operators, strategies +and restake which will later insert into the DB. + +
+ ### Run with custom env / other devnets Create a `.env` file in the `/explorer` directory of the project. The `.env` file needs to contain the following variables: | Variable | Description | -| --------------------- | ----------------------------------------------------------------------------------------------- | +|-----------------------|-------------------------------------------------------------------------------------------------| | `RPC_URL` | The RPC URL of the network you want to connect to. | | `ENVIRONMENT` | The environment you want to run the application in. It can be `devnet`, `holesky` or `mainnet`. | | `ALIGNED_CONFIG_FILE` | The config file containing Aligned contracts' deployment information | @@ -651,6 +668,7 @@ The `.env` file needs to contain the following variables: | `DB_HOST` | The host URL where the postgres database will be running. | | `ELIXIR_HOSTNAME` | The hostname of your running elixir. | | `DEBUG_ERRORS` | If you want to enable phoenix errors on your browser instead of a 500 page, set this to `true`. | +| `TRACKER_API_URL` | The URL of the aligned version each operator is running. | Then you can run the explorer with this env file config by entering the following command: diff --git a/docs/guides/7_contract_addresses.md b/docs/3_guides/7_contract_addresses.md similarity index 100% rename from docs/guides/7_contract_addresses.md rename to docs/3_guides/7_contract_addresses.md diff --git a/docs/3_guides/8_submitting_batch_without_batcher.md b/docs/3_guides/8_submitting_batch_without_batcher.md new file mode 100644 index 000000000..8c3567576 --- /dev/null +++ b/docs/3_guides/8_submitting_batch_without_batcher.md @@ -0,0 +1,60 @@ +# Submitting a batch without using the Batcher + +Aligned's infrastructure contains a key element, the [Batcher](../2_architecture/components/1_batcher.md), +which bundles many proofs together to reduce the cost of both submission and verification for each proof. + +However, the Batcher is not 100% necessary for a User to submit proofs to Aligned. +This is because, as you may have realized, any account can call `createNewTask(bytes32 batchMerkleRoot, string batchDataPointer)` in [Aligned Service Manager Contract](../2_architecture/components/3_service_manager_contract.md). +This means any Ethereum account can create a new task, as long as it supplies a pointer to where the proofs or the batch can be found, and its merkle root. + +## Why would I want to submit a batch without using the Batcher? + +The answer lies on each User. It may be because: + +* A User does not want to share its batch with another User's proofs. +* A User submitter wants to keep sovereignty over the location and storage of its proofs. (Aligned's Batcher stores them on an AWS S3 bucket in the us-east-2 region) +* A User wants to change the lifetime content of his proofs. (Aligned Batcher stores them for 7 days). + +## Tradeoffs + +As the Batcher bundles proofs together, it reduces the cost for each proof. +A User who doesn't want to use the Batcher will need to accumulate a large quantity of proofs. +Otherwise, they will end up paying more per proof. +The User must make sure his account has enough funds in the Aligned Service Manager Contract, +or his batches submissions or responses could fail for lack of funds. + +The User should run a pre-verification to make sure he is not wasting funds in submitting a false proof. + +## How-to + +If, after this analysis, a User still wants to submit his own Batch, here is how: + +1. Collect the proof/s he wants to submit to Aligned, build a merkle tree with them and calculate their merkle root. +2. Upload the proofs to any publicly accessible S3-compatible form of storage, in CBOR serialization format, following the following structure: + + ``` + [ + { + "proving_system": "Groth16Bn254", + "proof": [ + 152, 88, 141, 155, 88, 35, 94, 76, ... + ], + "verification_key": [ + 199, 79, 8, 204, 10, 130, 85, 150, ... + ], + "vm_program_code": null, + "proof_generator_addr": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + ... + ] + ``` + + Note: If it is not publicly accessible, if it is not S3-compatible, or if it does not follow the correct batch structure, operators will not be able to download the proofs to verify them. + +3. Call `createNewTask(bytes32 batchMerkleRoot, string batchDataPointer)` on the Aligned Service Manager Contract, from a funded Batcher account. + + * To fund a Batcher account, you must either send funds to the Aligned Service Manager Contract beforehand, or you can send funds within the same `createNewTask` function call. + * `bytes32 batchMerkleRoot` must be the Merkle Root, in format bytes32, of the tree generated with the submitted proofs. If the Operators find the Merkle Root does not correspond to the downloaded batch, they will not verify the proofs. + * `string batchDataPointer` must be a string containing the pointer (link, url, etc.) to where the proofs are stored. + +4. After `createNewTask` is correctly executed, it will emit Events for the other components of Aligned. The Batch has been submitted. diff --git a/docs/guides/setup_holesky.md b/docs/3_guides/setup_holesky.md similarity index 100% rename from docs/guides/setup_holesky.md rename to docs/3_guides/setup_holesky.md diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 5be4eb499..bd31ed9be 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -2,39 +2,43 @@ ## Introduction -* [About Aligned](introduction/0_about_aligned.md) -* [Getting started](introduction/1_getting_started.md) -* [Example - ZKquiz](introduction/2_zkquiz.md) -* [Use cases](introduction/3_use_cases.md) -* [FAQ](introduction/4_faq.md) +* [About Aligned](1_introduction/0_about_aligned.md) +* [Getting started](1_introduction/1_getting_started.md) +* [Example - ZKquiz](1_introduction/2_zkquiz.md) +* [Use cases](1_introduction/3_use_cases.md) +* [FAQ](1_introduction/4_faq.md) +* [Why ZK and Aligned?](1_introduction/5_why_zk.md) ## Architecture -* [Supported Verifiers](architecture/0_supported_verifiers.md) -* [Key Terms](architecture/0b_key_terms.md) -* [Fast mode](architecture/1_fast_mode.md) - * [Batcher](./architecture/components/1_batcher.md) - * [Payment Service Contract](./architecture/components/2_payment_service_contract.md) - * [Service Manager Contract](./architecture/components/3_service_manager_contract.md) - * [Operator](./architecture/components/4_operator.md) - * [Aggregator](./architecture/components/5_aggregator.md) - * [Explorer](./architecture/components/6_explorer.md) -* [Aggregation mode](architecture/2_aggregation_mode.md) +* [Supported Verifiers](2_architecture/0_supported_verifiers.md) +* [Key Terms](2_architecture/0b_key_terms.md) +* [Fast mode](2_architecture/1_fast_mode.md) + * [Batcher](./2_architecture/components/1_batcher.md) + * [Payment Service Contract](./2_architecture/components/2_payment_service_contract.md) + * [Service Manager Contract](./2_architecture/components/3_service_manager_contract.md) + * [Operator](./2_architecture/components/4_operator.md) + * [Aggregator](./2_architecture/components/5_aggregator.md) + * [Explorer](./2_architecture/components/6_explorer.md) +* [Aggregation mode](2_architecture/2_aggregation_mode.md) ## Guides -* [Submitting proofs](guides/0_submitting_proofs.md) -* [Integrating Aligned into your Application](guides/2_integrating_aligned_into_your_application.md) -* [Validating public input](guides/3_validating_public_input.md) -* [SDK](guides/1_SDK.md) -* [Generating proofs for Aligned](guides/4_generating_proofs.md) -* [Generating & submitting proofs of Rust code with ZKRust](guides/5_using_zkrust.md) -* [Setup Aligned Infrastructure Locally](guides/6_setup_aligned.md) -* [Contract Addresses](guides/7_contract_addresses.md) +* [Submitting proofs](3_guides/0_submitting_proofs.md) +* [Integrating Aligned into your Application](3_guides/2_integrating_aligned_into_your_application.md) +* [Validating public input](3_guides/3_validating_public_input.md) +* [SDK Intro](3_guides/1_SDK_how_to.md) +* [SDK API Reference](3_guides/1.2_SDK_api_reference.md) +* [Generating proofs for Aligned](3_guides/4_generating_proofs.md) +* [Generating & submitting proofs of Rust code with ZKRust](3_guides/5_using_zkrust.md) +* [Setup Aligned Infrastructure Locally](3_guides/6_setup_aligned.md) +* [Contract Addresses](3_guides/7_contract_addresses.md) ## Operators * [Running an operator](operator_guides/0_running_an_operator.md) +* [Operator FAQ](operator_guides/1_operator_FAQ.md) +* [Troubleshooting](operator_guides/2_troubleshooting.md) ## Useful links @@ -44,7 +48,9 @@ ## Socials * [Telegram Group](https://t.me/aligned_layer) -* [Twitter/X](https://twitter.com/alignedlayer) +* [Twitter/X](https://x.com/alignedlayer) * [Discord](https://discord.gg/alignedlayer) +* [Blog](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901) * [Website](https://alignedlayer.com) * [Github](https://github.com/yetanotherco/aligned_layer) +* [YouTube](https://www.youtube.com/@alignedlayer) diff --git a/docs/architecture/components/1_batcher.md b/docs/architecture/components/1_batcher.md deleted file mode 100644 index 48bfb95d4..000000000 --- a/docs/architecture/components/1_batcher.md +++ /dev/null @@ -1,10 +0,0 @@ -# Batcher - -The Batcher receives proofs from different Users, bundles them in a batch of proofs, builds a Merkle Root from these, uploads the batch to a data service (like an S3 bucket), and submits this information to the [Aligned Service Manager](./3_service_manager_contract.md). - - -To ensure that the User is sure that their proof was included in a batch, the Batcher will send each User the Merkle Proof (or Merkle Path). With this, the User can rebuild the Merkle Root starting from their proof, thus verifying it was actually included in the batch. - -Also, to avoid unnecessary proof submissions, the Batcher performs a preliminary verification of the submitted proofs, to minimize the submission of false proofs in a batch. - -However, each proof has a cost of verification, so each batch must contain some sort of payment for it to be verified. To handle the payment for each batch, the Batcher submits the batch through its [Batcher Payment Service](./2_payment_service_contract.md). diff --git a/docs/images/batch.png b/docs/images/batch.png index ca741844ccb691c2fa028a92d384d1de5492c453..a2ac333e5f3eed778922cfb85c993e9c2f75e162 100644 GIT binary patch literal 164414 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
8iyTL&m@|i7NkOekNh}lg-sE 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

DwT*|x) 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

-E~Q@0p%RR2u{K2w1h`1Mr0|l5$5QN33_fC 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 h7A1+I)Emd9sm)416zy;@lLP -``` - -Then you need to obtain some funds to pay for gas and proof verification. -You can do this by using this [faucet](https://cloud.google.com/application/web3/faucet/ethereum/holesky) - -### 2 - Answer Quiz - -To answer quiz questions run: - -```bash -make answer_quiz KEYSTORE_PATH= -``` - -This will: - -1. Ask quiz questions -2. Generate ZK proof -3. Pay & submit proof to aligned for verification -4. Wait for proof to be verified in aligned -5. Claim NFT if proof is verified \ No newline at end of file diff --git a/docs/operator_guides/0_running_an_operator.md b/docs/operator_guides/0_running_an_operator.md index d9ce8935f..2a80f23e6 100644 --- a/docs/operator_guides/0_running_an_operator.md +++ b/docs/operator_guides/0_running_an_operator.md @@ -1,26 +1,11 @@ # Register as an Aligned operator in testnet > **CURRENT VERSION:** -> Aligned Operator [v0.4.0](https://github.com/yetanotherco/aligned_layer/releases/tag/v0.4.0) +> Aligned Operator [v0.5.2](https://github.com/yetanotherco/aligned_layer/releases/tag/v0.5.2) > **IMPORTANT:** > You must be [whitelisted](https://docs.google.com/forms/d/e/1FAIpQLSdH9sgfTz4v33lAvwj6BvYJGAeIshQia3FXz36PFfF-WQAWEQ/viewform) to become an Aligned operator. -## Supported Verifiers - -The following is the list of the verifiers currently supported by Aligned: - -- :white_check_mark: gnark - Groth16 (with BN254) -- :white_check_mark: gnark - Plonk (with BN254 and BLS12-381) -- :white_check_mark: SP1 [(v1.0.1)](https://github.com/succinctlabs/sp1/releases/tag/v1.0.1) -- :white_check_mark: Risc0 [(v1.0.1)](https://github.com/risc0/risc0/releases/tag/v1.0.1) - -The following proof systems are going to be added soon: - -- :black_square_button: Kimchi -- :black_square_button: Halo2 - Plonk/KZG -- :black_square_button: Halo2 - Plonk/IPA - ## Requirements This guide assumes you are already [registered as an operator with EigenLayer](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation). @@ -30,7 +15,7 @@ This guide assumes you are already [registered as an operator with EigenLayer](h Minimum hardware requirements: | Component | Specification | -| ------------- | ----------------- | +|---------------|-------------------| | **CPU** | 16 cores | | **Memory** | 32 GB RAM | | **Bandwidth** | 1 Gbps | @@ -41,7 +26,7 @@ Minimum hardware requirements: To start with, clone the Aligned repository and move inside it ```bash -git clone https://github.com/yetanotherco/aligned_layer.git --branch v0.4.0 +git clone https://github.com/yetanotherco/aligned_layer.git --branch v0.5.2 cd aligned_layer ``` @@ -107,13 +92,24 @@ Update the following placeholders in `./config-files/config-operator.yaml`: `""` and `""` are the paths to your keys generated with the EigenLayer CLI, `""` and `""` can be found in the `operator.yaml` file created in the EigenLayer registration process. The keys are stored by default in the `~/.eigenlayer/operator_keys/` directory, so for example `` could be `/path/to/home/.eigenlayer/operator_keys/some_key.ecdsa.key.json` and for `` it could be `/path/to/home/.eigenlayer/operator_keys/some_key.bls.key.json`. +The default configuration uses the public nodes RPC, but we suggest you use your own nodes for better performance and reliability. +Also, from v0.5.2 there is a fallback mechanism to have two RPCs, so you can add a second RPC for redundancy. + +```yaml +eth_rpc_url: "https://ethereum-holesky-rpc.publicnode.com" +eth_rpc_url_fallback: "https://ethereum-holesky-rpc.publicnode.com" +eth_ws_url: "wss://ethereum-holesky-rpc.publicnode.com" +eth_ws_url_fallback: "wss://ethereum-holesky-rpc.publicnode.com" +``` + + ## Step 4 - Deposit Strategy Tokens We are using [WETH](https://holesky.eigenlayer.xyz/restake/WETH) as the strategy token. -To do so there are 2 options, either doing it through EigenLayer's website, and following their guide, or running the commands specified by us below. +To do so, there are two options, either doing it through EigenLayer's website, and following their guide, or running the commands specified by us below. -You will need to stake a minimum of a 1000 Wei in WETH. We recommend to stake a maximum amount of 10 WETH. If you are staking more than 10 WETH please unstake any surplus over 10. +You will need to stake a minimum of 1000 WEI in WETH. We recommend to stake a maximum amount of 10 WETH. If you are staking more than 10 WETH please unstake any surplus over 10. ### Option 1 @@ -122,7 +118,7 @@ EigenLayer's guide can be found [here](https://docs.eigenlayer.xyz/eigenlayer/re ### Option 2 If you have ETH and need to convert it to WETH you can use the following command, that will convert 1 ETH to WETH. -Make sure to have [foundry](https://book.getfoundry.sh/getting-started/installation) installed. +Make sure to have [foundry](https://book.getfoundry.sh/getting-started/installation) already installed. Change the parameter in ```---value``` if you want to wrap a different amount: ```bash @@ -142,7 +138,7 @@ as shown in the EigenLayer guide. ```bash ./operator/build/aligned-operator deposit-into-strategy --config ./config-files/config-operator.yaml --strategy-address 0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9 --amount 1000000000000000000 ``` - + If you don't have Holesky ETH, these are some useful faucets: diff --git a/docs/operator_guides/1_operator_FAQ.md b/docs/operator_guides/1_operator_FAQ.md new file mode 100644 index 000000000..5c7f5b64d --- /dev/null +++ b/docs/operator_guides/1_operator_FAQ.md @@ -0,0 +1,65 @@ +# Operator FAQ + +The EigenLayer Operator FAQ is available [here](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-faq). + +### How do I get whitelisted to run an operator? + +To get whitelisted, +you need to fill out the form available [here](https://docs.google.com/forms/d/e/1FAIpQLSdH9sgfTz4v33lAvwj6BvYJGAeIshQia3FXz36PFfF-WQAWEQ/viewform) +and wait for the Aligned team to approve your request. + +### What RPC should I use? + +We suggest you use your own nodes for better performance and reliability. Note that the node must support HTTP and WebSockets. + +We also recommend the following RPC providers: + +- [Infura](https://infura.io/) +- [Blast](https://blastapi.io/) + +The default configuration uses the public nodes RPC. + +Since `v0.5.2`, there is a fallback mechanism to have two RPCs, so you need to add a second RPC for redundancy. + +### How can I check if the version I'm using is the latest one? + +You can check the latest version available on the [releases' page](https://github.com/yetanotherco/aligned_layer/releases). + +### How do I check the operator version registered on the Aligned version tracking system? + +You can get the registered version of your operator by running the following command: + +```bash +curl https://holesky.tracker.alignedlayer.com/versions/ +``` + +Replace `` with your operator address. + +In future releases, the explorer will show the operator version and the latest available version. + +### How do I check the operator version locally? + +To see the operator version, run: + +```bash +./operator/build/aligned-operator --version +``` + +You have to be in the root `aligned-layer` directory to run this command. + +This will show the version of the operator you have built in your filesystem. + +### How do I get the ID of the operator? + +You can get the ID of the operator by running the following command: + +```bash +cast call \ + --rpc-url https://ethereum-holesky-rpc.publicnode.com \ + 0xD0A725d82649f9e4155D7A60B638Fe33b3F25e3b \ + "getOperatorId(address operator)(bytes32)" +``` + +> Note: You need to have installed [Foundry](https://book.getfoundry.sh/) + +This will return the operator ID if the operator is registered, otherwise it will return `0x`. diff --git a/docs/operator_guides/2_troubleshooting.md b/docs/operator_guides/2_troubleshooting.md new file mode 100644 index 000000000..84513069a --- /dev/null +++ b/docs/operator_guides/2_troubleshooting.md @@ -0,0 +1,46 @@ +# Troubleshooting + +### How to resolve the error "Error in new task subscription" + +This error is caused by the operator not being able to subscribe to the task. + +Make sure you have configured the RPC correctly and verify that the node is running. + +The following RPC providers are known to have issues: + +- [dRPC](https://drpc.org/) + +### My operator is not showing up on the Aligned Explorer + +The [explorer](https://explorer.alignedlayer.com/) does not update the operator status in real time. +The explorer updates the operators' list every 1 hour. + +If your operator is not showing up after 1 hour, please check the following: + +- The operator is **whitelisted** on the Aligned AVS, you can run the following command: + + ```bash + cast call \ + --rpc-url https://ethereum-holesky-rpc.publicnode.com \ + 0x3aD77134c986193c9ef98e55e800B71e72835b62 \ + "isWhitelisted(address _address)(bool)" + ``` + + If the operator is whitelisted, it will return `true`. + +- The operator is **registered** on the Aligned AVS: + + ```bash + cast call \ + --rpc-url https://ethereum-holesky-rpc.publicnode.com \ + 0xD0A725d82649f9e4155D7A60B638Fe33b3F25e3b \ + "getOperatorId(address operator)(bytes32)" + ``` + + If the operator is not registered, it will return `0x0` otherwise it will return the operator ID. + +### How to resolve the error "Eth ws url or fallback is empty" or "Eth rpc url or fallback is empty" + +This error is caused by the operator not being able to get the RPC urls. + +Make sure you have configured the RPC correctly in the [config file](0_running_an_operator.md#step-3---update-the-configuration-for-your-specific-operator). diff --git a/examples/zkquiz/quiz/program/Cargo.lock b/examples/zkquiz/quiz/program/Cargo.lock index 2a57629cf..4ebdb9e8d 100644 --- a/examples/zkquiz/quiz/program/Cargo.lock +++ b/examples/zkquiz/quiz/program/Cargo.lock @@ -296,6 +296,12 @@ dependencies = [ "signature", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + [[package]] name = "libc" version = "0.2.155" @@ -606,7 +612,7 @@ dependencies = [ [[package]] name = "sp1-precompiles" version = "0.1.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=v1.0.5-testnet#19ef89a4b8a509b7d765c46ff6e0a1c9a8fcbfb4" +source = "git+https://github.com/succinctlabs/sp1.git?rev=v1.0.8-testnet#14eb569d41d24721ffbd407d6060e202482d659c" dependencies = [ "anyhow", "bincode", @@ -623,12 +629,13 @@ dependencies = [ [[package]] name = "sp1-zkvm" version = "0.1.0" -source = "git+https://github.com/succinctlabs/sp1.git?rev=v1.0.5-testnet#19ef89a4b8a509b7d765c46ff6e0a1c9a8fcbfb4" +source = "git+https://github.com/succinctlabs/sp1.git?rev=v1.0.8-testnet#14eb569d41d24721ffbd407d6060e202482d659c" dependencies = [ "bincode", "cfg-if", "getrandom", "k256", + "lazy_static", "libm", "once_cell", "rand", From cf70657d71e8737df3900c31c21eb37c42734348 Mon Sep 17 00:00:00 2001 From: Boris Dyakov <47835702+bjdyakov@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:50:39 +0200 Subject: [PATCH 2/6] Fixed link in 1_getting_started.md added .md extension to link at the end ("To try Aligned with other proving systems, check this guide") link previously led to 404 error --- docs/1_introduction/1_getting_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1_introduction/1_getting_started.md b/docs/1_introduction/1_getting_started.md index 613f777c1..89e30ed87 100644 --- a/docs/1_introduction/1_getting_started.md +++ b/docs/1_introduction/1_getting_started.md @@ -75,4 +75,4 @@ Aligned works in: If you don't meet these requirements, you can compile the binaries yourself following the [README](https://github.com/yetanotherco/aligned_layer) -To try Aligned with other proving systems, check [this](../3_guides/0_submitting_proofs) guide +To try Aligned with other proving systems, check [this](../3_guides/0_submitting_proofs.md) guide From d9831cde2074e3f3a4779dcea5d5227e6355d32a Mon Sep 17 00:00:00 2001 From: "boris.dyakov" Date: Mon, 16 Sep 2024 17:35:41 +0000 Subject: [PATCH 3/6] GITBOOK-4: No subject --- docs/3_guides/6_setup_aligned.md | 189 ++++++++---------- .../0_about_aligned.md => README.md} | 85 ++++---- docs/SUMMARY.md | 64 +++--- 3 files changed, 144 insertions(+), 194 deletions(-) rename docs/{1_introduction/0_about_aligned.md => README.md} (68%) diff --git a/docs/3_guides/6_setup_aligned.md b/docs/3_guides/6_setup_aligned.md index 3c541a8af..bddff987f 100644 --- a/docs/3_guides/6_setup_aligned.md +++ b/docs/3_guides/6_setup_aligned.md @@ -1,25 +1,21 @@ -# Aligned Infrastructure Deployment Guide +# Setup Aligned Infrastructure Locally ## Dependencies Ensure you have the following installed: -- [Go](https://go.dev/doc/install) -- [Rust](https://www.rust-lang.org/tools/install) -- [Foundry](https://book.getfoundry.sh/getting-started/installation) -- [zap-pretty](https://github.com/maoueh/zap-pretty) -- [abigen](https://geth.ethereum.org/docs/tools/abigen) -- [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git) -- [jq](https://jqlang.github.io/jq/) -- [yq](https://github.com/mikefarah/yq) +* [Go](https://go.dev/doc/install) +* [Rust](https://www.rust-lang.org/tools/install) +* [Foundry](https://book.getfoundry.sh/getting-started/installation) +* [zap-pretty](https://github.com/maoueh/zap-pretty) +* [abigen](https://geth.ethereum.org/docs/tools/abigen) +* [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git) +* [jq](https://jqlang.github.io/jq/) +* [yq](https://github.com/mikefarah/yq) -To -install [Go](https://go.dev/doc/install), -[Rust](https://www.rust-lang.org/tools/install), [jq](https://jqlang.github.io/jq/) -and [yq](https://github.com/mikefarah/yq) go to the provided links and follow the instructions. +To install [Go](https://go.dev/doc/install), [Rust](https://www.rust-lang.org/tools/install), [jq](https://jqlang.github.io/jq/) and [yq](https://github.com/mikefarah/yq) go to the provided links and follow the instructions. -Install Go -dependencies ([zap-pretty](https://github.com/maoueh/zap-pretty), [abigen](https://geth.ethereum.org/docs/tools/abigen), [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git)): +Install Go dependencies ([zap-pretty](https://github.com/maoueh/zap-pretty), [abigen](https://geth.ethereum.org/docs/tools/abigen), [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git)): ```bash make go_deps @@ -50,27 +46,27 @@ Before starting, you need to set up an S3 bucket. More data storage will be test You need to fill the data in: -```batcher/aligned-batcher/.env``` +`batcher/aligned-batcher/.env` And you can use this file as an example of how to fill it: -```batcher/aligned-batcher/.env.example``` +`batcher/aligned-batcher/.env.example` After having the env setup, run in different terminals the following commands to boot Aligned locally: ## Anvil -To start anvil, a local Ethereum devnet with all necessary contracts already deployed and ready to be interacted with, -run: +To start anvil, a local Ethereum devnet with all necessary contracts already deployed and ready to be interacted with, run: ```bash make anvil_start_with_block_time ```

+ More information on deploying the smart contracts on anvil: -### EigenLayer Contracts +#### EigenLayer Contracts If EigenLayer contracts change, the anvil state needs to be updated with: @@ -84,7 +80,7 @@ You will also need to redeploy the MockStrategy & MockERC20 contracts: make anvil_deploy_mock_strategy ``` -### Aligned Contracts +#### Aligned Contracts When changing Aligned contracts, the anvil state needs to be updated with: @@ -106,13 +102,12 @@ make anvil_upgrade_registry_coordinator Note that when upgrading the contracts, you must also: -1. Re-generate the Go smart contract bindings: +1. Re-generate the Go smart contract bindings: ```bash make bindings ``` - -2. Rebuild Aggregator and Operator Go binaries: +2. Rebuild Aggregator and Operator Go binaries: ```bash make build_binaries @@ -120,17 +115,18 @@ Note that when upgrading the contracts, you must also:
---- +*** ## Aggregator -To start the [Aggregator](../2_architecture/components/5_aggregator.md): +To start the [Aggregator](../2\_architecture/components/5\_aggregator.md): ```bash make aggregator_start ```
+ To start the aggregator with a custom configuration: ```bash @@ -139,12 +135,11 @@ make aggregator_start CONFIG_FILE=
---- +*** ## Operator -To start an [Operator](../2_architecture/components/4_operator.md) -(note it also registers it): +To start an [Operator](../2\_architecture/components/4\_operator.md) (note it also registers it): ```bash make operator_register_and_start @@ -157,11 +152,12 @@ make operator_start ```
+ More information about Operator registration: Operator needs to register in both EigenLayer and Aligned. Then it can start verifying proofs. -### Register into EigenLayer +#### Register into EigenLayer To register an operator in EigenLayer Devnet with the default configuration, run: @@ -175,7 +171,7 @@ To register an operator in EigenLayer with a custom configuration, run: make operator_register_with_eigen_layer CONFIG_FILE= ``` -### Register into Aligned +#### Register into Aligned To register an operator in Aligned with the default configuration, run: @@ -189,23 +185,21 @@ To register an operator in Aligned with a custom configuration, run: make operator_register_with_aligned_layer CONFIG_FILE= ``` -### Full Registration in Anvil with one command +#### Full Registration in Anvil with one command -To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with the default -configuration, run: +To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with the default configuration, run: ```bash make operator_full_registration ``` -To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with a custom configuration, -run: +To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with a custom configuration, run: ```bash make operator_full_registration CONFIG_FILE= ``` -### Deposit Strategy Tokens in Anvil local devnet +#### Deposit Strategy Tokens in Anvil local devnet There is an ERC20 token deployed in the Anvil chain to use as a strategy token with EigenLayer. @@ -223,21 +217,17 @@ make operator_mint_mock_tokens CONFIG_FILE= make operator_deposit_into_mock_strategy CONFIG_FILE= ``` -### Deposit Strategy tokens in Holesky/Mainnet +#### Deposit Strategy tokens in Holesky/Mainnet EigenLayer strategies are available in [eigenlayer-strategies](https://holesky.eigenlayer.xyz/restake). For Holesky, we are using [WETH](https://holesky.eigenlayer.xyz/restake/WETH) as the strategy token. -To get HolETH and swap it for different strategies, you can use the -following [guide](https://docs.eigenlayer.xyz/eigenlayer/restaking-guides/restaking-user-guide/testnet/obtaining-testnet-eth-and-liquid-staking-tokens-lsts). +To get HolETH and swap it for different strategies, you can use the following [guide](https://docs.eigenlayer.xyz/eigenlayer/restaking-guides/restaking-user-guide/testnet/obtaining-testnet-eth-and-liquid-staking-tokens-lsts). -### Config +#### Config -There is a default configuration for devnet purposes in `config-files/config.yaml`. -Also, there are three different configurations for the operator -in `config-files/devnet/operator-1.yaml`, `config-files/devnet/operator-2.yaml` -and `config-files/devnet/operator-3.yaml`. +There is a default configuration for devnet purposes in `config-files/config.yaml`. Also, there are three different configurations for the operator in `config-files/devnet/operator-1.yaml`, `config-files/devnet/operator-2.yaml` and `config-files/devnet/operator-3.yaml`. The configuration file has the following structure: @@ -305,32 +295,24 @@ eigenlayer operator keys import --key-type bls
---- +*** ## Batcher -To start the [Batcher](../2_architecture/components/1_batcher.md): +To start the [Batcher](../2\_architecture/components/1\_batcher.md): ```bash make batcher_start ```
+ More information about Batcher configuration: -To run the batcher, you will need to set environment variables in a `.env` file in the same directory as the -batcher (`batcher/aligned-batcher/`). +To run the batcher, you will need to set environment variables in a `.env` file in the same directory as the batcher (`batcher/aligned-batcher/`). The necessary environment variables are: -| Variable Name | Description | -|-----------------------|--------------------------------------------------------------------------------------------------------------------------------| -| AWS_SECRET_ACCESS_KEY | Secret key to authenticate and authorize API requests to the AWS S3 Bucket. | -| AWS_REGION | Geographical region where the AWS S3 Bucket will be accessed. | -| AWS_ACCESS_KEY_ID | Access key used in combination with the AWS_SECRET_ACCESS_KEY to authenticate and authorize API requests to the AWS S3 Bucket. | -| AWS_BUCKET_NAME | Name of the AWS S3 Bucket. | -| RUST_LOG | Rust log level (info, debug, error, warn, etc.). | - You can find an example `.env` file in [.env.example](../../batcher/aligned-batcher/.env.example) You can configure the batcher in `config-files/config.yaml`: @@ -356,7 +338,7 @@ ecdsa: private_key_store_password: ``` -### Run +#### Run ```bash make batcher_start @@ -364,15 +346,14 @@ make batcher_start
---- +*** ## Send test proofs -Next, you can use some of the send proofs make targets. -All these proofs are pre-generated and for testing purposes, -feel free to generate your own tests to submit to Aligned. +Next, you can use some of the send proofs make targets. All these proofs are pre-generated and for testing purposes, feel free to generate your own tests to submit to Aligned.
+ SP1 Send an individual proof: @@ -396,6 +377,7 @@ make batcher_send_infinite_sp1
+ Risc0 Send an individual proof: @@ -413,6 +395,7 @@ make batcher_send_risc0_burst
+ Plonk Send an individual bn254 proof: @@ -442,6 +425,7 @@ make batcher_send_plonk_bls12_381_burst
+ Groth16 Send an individual bn254 proof: @@ -465,6 +449,7 @@ make batcher_send_burst_groth16
+ Halo2 Send an individual IPA proof: @@ -494,6 +479,7 @@ make batcher_send_halo2_kzg_task_burst_5
+ Send a specific proof: To install the Aligned client to send a specific proof, run: @@ -502,11 +488,7 @@ To install the Aligned client to send a specific proof, run: make install_aligned_compiling ``` -The SP1 and Risc0 proofs need the proof file and the vm program file. -The current SP1 version used in Aligned is -`v1.0.1` and the current Risc0 version used in Aligned is v1.0.1. -The GnarkPlonkBn254, GnarkPlonkBls12_381 and Groth16Bn254 proofs need the proof file, the public input file and the -verification key file. +The SP1 and Risc0 proofs need the proof file and the vm program file. The current SP1 version used in Aligned is `v1.0.1` and the current Risc0 version used in Aligned is v1.0.1. The GnarkPlonkBn254, GnarkPlonkBls12\_381 and Groth16Bn254 proofs need the proof file, the public input file and the verification key file. ```bash aligned submit \ @@ -526,21 +508,19 @@ aligned submit \ ## Explorer -If you also want to start the explorer for the devnet, to clearly visualize your submitted and verified batches, see how -to run it using the following documentation: +If you also want to start the explorer for the devnet, to clearly visualize your submitted and verified batches, see how to run it using the following documentation: ### Minimum Requirements -- [Erlang 26](https://github.com/asdf-vm/asdf-erlang) -- [Elixir 1.16.2](https://elixir-ko.github.io/install.html), compiled with OTP 26 -- [Docker](https://docs.docker.com/get-docker/) +* [Erlang 26](https://github.com/asdf-vm/asdf-erlang) +* [Elixir 1.16.2](https://elixir-ko.github.io/install.html), compiled with OTP 26 +* [Docker](https://docs.docker.com/get-docker/) ### DB Setup To set up the explorer, an installation of the DB is necessary. -First, you'll need to install docker if you don't have it already. -You can follow the instructions [here](https://docs.docker.com/get-docker/). +First, you'll need to install docker if you don't have it already. You can follow the instructions [here](https://docs.docker.com/get-docker/). The explorer uses a PostgreSQL database. To build and start the DB using docker, run: @@ -550,23 +530,21 @@ make explorer_build_db
- - (Optional) The steps to manually execute the database are as follows... - +(Optional) The steps to manually execute the database are as follows... -- Run the database container, opening port `5432`: +* Run the database container, opening port `5432`: ```bash make explorer_run_db ``` -- Configure the database with ecto running `ecto.create` and `ecto.migrate`: +* Configure the database with ecto running `ecto.create` and `ecto.migrate`: ```bash make explorer_ecto_setup_db ``` -- Start the explorer: +* Start the explorer: ```bash make run_explorer @@ -594,17 +572,15 @@ Data can be recovered from a `dump.$date.sql` using the following command: make explorer_recover_db ``` -Then you'll be requested to enter the file name of the dump you want to recover already positioned in the `/explorer` -directory. +Then you'll be requested to enter the file name of the dump you want to recover already positioned in the `/explorer` directory. This will update your database with the dumped database data.
+ Extra Explorer script to fetch past batches -If you want to fetch past batches that for any reason were not inserted into the DB, you will first need to make sure -you have the ELIXIR_HOSTNAME .env variable configured. -You can get the hostname of your elixir by running : +If you want to fetch past batches that for any reason were not inserted into the DB, you will first need to make sure you have the ELIXIR\_HOSTNAME .env variable configured. You can get the hostname of your elixir by running : ```bash elixir -e 'IO.puts(:inet.gethostname() |> elem(1))' @@ -616,8 +592,7 @@ Then you can run: make explorer_fetch_old_batches ``` -You can modify which blocks are being fetched by modify the parameters the `explorer_fetch_old_batches.sh` is being -received +You can modify which blocks are being fetched by modify the parameters the `explorer_fetch_old_batches.sh` is being received
@@ -625,8 +600,7 @@ received To run the explorer for the local devnet, you'll need to have the devnet running and the DB already setup. -Additionally, you'll need to have the `.env` file in the `/explorer` directory of the project. -A base example of the `.env` file can be found in `/explorer/.env.dev`. +Additionally, you'll need to have the `.env` file in the `/explorer` directory of the project. A base example of the `.env` file can be found in `/explorer/.env.dev`. Use the following command to start the Explorer: @@ -634,10 +608,10 @@ Use the following command to start the Explorer: make run_explorer ``` -Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. -You can access to a tasks' information by visiting `localhost:4000/batches/:merkle_root`. +Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. You can access to a tasks' information by visiting `localhost:4000/batches/:merkle_root`.
+ There's an additional Explorer script to fetch past operators and restake If you want to fetch past operators, strategies and restake, you will need to run: @@ -646,18 +620,16 @@ If you want to fetch past operators, strategies and restake, you will need to ru make explorer_fetch_old_operators_strategies_restakes ``` -This will run the script `explorer_fetch_old_operators_strategies_restakes.sh` that will fetch the operators, strategies -and restake which will later insert into the DB. +This will run the script `explorer_fetch_old_operators_strategies_restakes.sh` that will fetch the operators, strategies and restake which will later insert into the DB.
### Run with custom env / other devnets -Create a `.env` file in the `/explorer` directory of the project. -The `.env` file needs to contain the following variables: +Create a `.env` file in the `/explorer` directory of the project. The `.env` file needs to contain the following variables: | Variable | Description | -|-----------------------|-------------------------------------------------------------------------------------------------| +| --------------------- | ----------------------------------------------------------------------------------------------- | | `RPC_URL` | The RPC URL of the network you want to connect to. | | `ENVIRONMENT` | The environment you want to run the application in. It can be `devnet`, `holesky` or `mainnet`. | | `ALIGNED_CONFIG_FILE` | The config file containing Aligned contracts' deployment information | @@ -676,8 +648,7 @@ Then you can run the explorer with this env file config by entering the followin make run_explorer ``` -This will start the explorer with the configuration set in the `.env` file on port 4000. -Visit [`localhost:4000`](http://localhost:4000) from your browser. +This will start the explorer with the configuration set in the `.env` file on port 4000. Visit [`localhost:4000`](http://localhost:4000) from your browser. ## Metrics @@ -697,11 +668,9 @@ Then you can access Grafana on `http://localhost:3000` with the default credenti If you want to install Prometheus and Grafana manually, you can follow the instructions below. -To install Prometheus, you can follow the instructions on -the [official website](https://prometheus.io/docs/prometheus/latest/getting_started/). +To install Prometheus, you can follow the instructions on the [official website](https://prometheus.io/docs/prometheus/latest/getting\_started/). -To install Grafana, you can follow the instructions on -the [official website](https://grafana.com/docs/grafana/latest/setup-grafana/installation/). +To install Grafana, you can follow the instructions on the [official website](https://grafana.com/docs/grafana/latest/setup-grafana/installation/). ## Notes on project creation @@ -714,20 +683,18 @@ forge init . --no-commit forge install Layr-Labs/eigenlayer-middleware@mainnet ``` -Then, to solve the issue, we changed it to: +Then, to solve the issue[https://github.com/Layr-Labs/eigenlayer-middleware/issues/229](https://github.com/Layr-Labs/eigenlayer-middleware/issues/229), we changed it to: -```forge install yetanotherco/eigenlayer-middleware@yac-mainnet --no-commit``` +`forge install yetanotherco/eigenlayer-middleware@yac-mainnet --no-commit` As soon as it gets fixed in mainnet, we can revert it. -Base version of middleware used is ```7229f2b```. +Base version of middleware used is `7229f2b`. -The script to initialize the devnet can be found on ```contracts/scripts/anvil```. +The script to initialize the devnet can be found on `contracts/scripts/anvil`. -The addresses of the relevant contracts after running the anvil script are dumped -on ```contracts/script/output/devnet```. +The addresses of the relevant contracts after running the anvil script are dumped on `contracts/script/output/devnet`. -The state is backed up on ```contracts/scripts/anvil/state```. +The state is backed up on `contracts/scripts/anvil/state`. -EigenLayer contract deployment is almost the same as the EigenLayer contract deployment on mainnet. -Changes are described in the file. +EigenLayer contract deployment is almost the same as the EigenLayer contract deployment on mainnet. Changes are described in the file. diff --git a/docs/1_introduction/0_about_aligned.md b/docs/README.md similarity index 68% rename from docs/1_introduction/0_about_aligned.md rename to docs/README.md index 3538dc067..0fce8f706 100644 --- a/docs/1_introduction/0_about_aligned.md +++ b/docs/README.md @@ -1,21 +1,22 @@ -## What is Aligned? +# About Aligned -Aligned is a decentralized network that verifies Zero-Knowledge/validity proofs and posts the results to Ethereum. It is designed to provide high throughput, cheap proof verification with low latency. +### What is Aligned? + +Aligned is a decentralized network that verifies Zero-Knowledge/validity proofs and posts the results to Ethereum. It is designed to provide high throughput, low cost, and low latency proof verification. {% hint style="info" %} -If you are unfamiliar with ZK and why this is useful, see [Why ZK and Aligned?](./5_why_zk.md) +If you are unfamiliar with ZK and why this is useful, see [Why ZK and Aligned?](1\_introduction/5\_why\_zk.md) {% endhint %} -## Mission +### Mission -Our mission is to accelerate Ethereum's roadmap and the adoption of verifiable computation by enabling fast and economical verification of ZK and validity proofs. +Our mission is to accelerate Ethereum's roadmap and the adoption of verifiable computation by enabling fast and economical verification of ZK and validity proofs. -## What real value does Aligned bring to the table? +### What real value does Aligned bring to the table? -Blockchains are verifiable computers. -We live in a chaotic world where there will be a huge demand for computation that needs to be trusted. +Blockchains are verifiable computers. We live in a chaotic world where there will be a huge demand for computation that needs to be trusted. -Current blockchain models are inefficient: each node must re-execute each transaction or operation, making the weakest and slowest devices the bottleneck. Unlike in Web2, where adding more hardware can increase performance, in these systems, additional hardware primarily enhances reliability rather than speed. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer security guarantees. In other words, they reduce costs and increase speed at a great expense of lower security guarantees. +Current blockchain models are inefficient: each node must re-execute each transaction or operation, making the weakest and slowest devices the bottleneck. Unlike in Web2, where adding more hardware can increase performance, in these systems, additional hardware primarily enhances reliability rather than speed. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer security guarantees. In other words, they reduce costs and increase speed at a great expense of lower security guarantees. On the other hand, Zero-knowledge/validity proofs (ZK) provide a new framework where we do not have to make such compromises. The basic premise is that a party can generate a very short proof of a computation, and the nodes can quickly verify that proof instead of re-executing the computation. The computation can be quite large, comprising many different transactions. This enables the delegation of execution off-chain with the same guarantees, leading to increased throughput and lower operational costs. This led to the rollup-centric roadmap of Ethereum, featuring multiple L2s, but at the expense of fragmented liquidity and complex user experience. Many of these problems could be solved by ZK bridges, but they remain expensive, and the go-to-market time is high. @@ -23,39 +24,21 @@ Anyhow, nodes still have to verify those proofs, which can be quite expensive si In addition, ZK lets us build other verifiable applications where users do not have to trust the party performing the computation, with impact in areas such as artificial intelligence (AI), the Internet of Things (IoT), and fighting misinformation. This is not clear to most people since proving technologies were not mature enough and verification costs were high. -## What limits the development of more complex applications on top of blockchains? +### What limits the development of more complex applications on top of blockchains? The main limitation for building complex applications on top of blockchains has been that the computation can run only a few milliseconds on chain, and even then, this can be costly. You can't have millions of daily active users using Ethereum or any blockchain at the same time. -ZK solves this, but due to slow and complex-to-use proving and expensive verification, progress has been limited. -In the case of proving, before the development of general-purpose zero-knowledge virtual machines (zkVMs), -users had to express their computation as arithmetic circuits, -making the developer experience something like coding in assembler, error-prone, and complex. -Moreover, proof systems depended on trusted setups, -adding additional trust guarantees, the need to carry out special ceremonies to initialize parameters, -and delaying go-to-market times. -Besides, -having high verification costs (on the order of 10's to 100's of dollars per proof) -meant that only those projects with a huge capital could afford to build such applications. - -## Why didn't anybody do it before? - -To build Aligned, we needed several pieces in place. -First, we needed EigenLayer, -which allows building services and applications on top of Ethereum without competing for blockspace. -In our case, we could bootstrap the economic security for a decentralized network of verifiers, -avoiding the limitations of running proof verification on-chain. -Second, proving technology had to improve. -We currently have general-purpose zkVMs (which means we can code in Rust and other high-level languages and prove it), -proof systems are faster, and several improvements and developments are on the way. -This makes writing applications easier (providing a higher demand for proof verification), -and enables faster and simpler proof recursion (for proof compression). - -## How much can Aligned reduce costs? +ZK solves this, but due to slow and complex-to-use proving and expensive verification, progress has been limited. In the case of proving, before the development of general-purpose zero-knowledge virtual machines (zkVMs), users had to express their computation as arithmetic circuits, making the developer experience something like coding in assembler, error-prone, and complex. Moreover, proof systems depended on trusted setups, adding additional trust guarantees, the need to carry out special ceremonies to initialize parameters, and delaying go-to-market times. Besides, having high verification costs (on the order of 10's to 100's of dollars per proof) meant that only those projects with a huge capital could afford to build such applications. + +### Why didn't anybody do it before? + +To build Aligned, we needed several pieces in place. First, we needed EigenLayer, which allows building services and applications on top of Ethereum without competing for blockspace. In our case, we could bootstrap the economic security for a decentralized network of verifiers, avoiding the limitations of running proof verification on-chain. Second, proving technology had to improve. We currently have general-purpose zkVMs (which means we can code in Rust and other high-level languages and prove it), proof systems are faster, and several improvements and developments are on the way. This makes writing applications easier (providing a higher demand for proof verification), and enables faster and simpler proof recursion (for proof compression). + +### How much can Aligned reduce costs? Aligned operates using two operation modes: fast and aggregation. The cost reduction depends on throughput, proof system, and mode used. For the least expensive systems, such as Groth16, this can amount to nearly 90%, while STARKs can be nearly 99%. Moreover, Aligned allows the verification of proofs that cannot be currently verified in Ethereum due to cost or size, such as Kimchi or Binius. The verification cost in Aligned is independent of the proof system, giving the choice of the proof system back to developers. -## How does Aligned compare to other solutions? +### How does Aligned compare to other solutions? Aligned has created a new category in crypto: ZK verification layer. It is the only solution for now offering fast and aggregation modes while being linked to Ethereum via EigenLayer. The fast mode provides very high throughput (over two orders of magnitude more than Ethereum), low latency, and lower costs than the aggregation mode. The security is provided by restaking, and this mode is well suited for applications with tight limits on latency and costs. The aggregation mode works using the slower proof recursion strategy, also used in rollups to compress proofs. Another key feature is that Aligned is stateless, simplifying the process greatly. @@ -63,31 +46,31 @@ Other solutions focus on building a separate L1 for proof verification (which se The following table contains costs estimates for Aligned, assuming a batch size of 20 proofs. -| Proof system | Ethereum | Aligned - Fast mode | Aligned - Aggregation | -| -------- | -------- | -------- | ---------- | -| Groth16 | 250,000 | 40,000 | TBD | -| STARKs | >1,000,000 | 40,000 | TBD | -| Kimchi-IPA | ?????? | 40,000 | TBD | -| Halo2-KZG | 350,000 | 40,000 | TBD | -| Binius. | ?????? | 40,000 | TBD | +| Proof system | Ethereum | Aligned - Fast mode | Aligned - Aggregation | +| ------------ | ---------- | ------------------- | --------------------- | +| Groth16 | 250,000 | 40,000 | TBD | +| STARKs | >1,000,000 | 40,000 | TBD | +| Kimchi-IPA | ?????? | 40,000 | TBD | +| Halo2-KZG | 350,000 | 40,000 | TBD | +| Binius. | ?????? | 40,000 | TBD | -## Why are we building Aligned? +### Why are we building Aligned? In recent months, we have witnessed the development and enhancement of general proving virtual machines such as Risc0, Valida, Jolt, and SP1. These innovations allow users to write ordinary code in languages like Rust or C and generate proofs demonstrating the integrity of computations. This evolution is poised to transform application development, provided we have verification networks with high throughput and low cost. This is the core vision of Aligned and the reason we are building it: the future belongs to provable applications. -Currently, proof verification in Ethereum is expensive and throughput is limited to around 10 proofs per second. The cost depends on the proof system used, and the availability of precompiles. Groth16 costs around 250,000 gas, STARKs, over 1,000,000, and other proof systems are too expensive to be used in Ethereum. +Currently, proof verification in Ethereum is expensive and throughput is limited to around 10 proofs per second. The cost depends on the proof system used, and the availability of precompiles. Groth16 costs around 250,000 gas, STARKs, over 1,000,000, and other proof systems are too expensive to be used in Ethereum. Proof technology has been evolving over the last decade, with new arguments, fields, commitments and other tools appearing every day. It is hard to try new ideas if verification costs are high, and there is a considerable go-to-market time, as a consequence of development time of new, gas-optimized smart contracts, or the inclusion of new precompiles to make them affordable. -Aligned provides an alternative to reduce costs and increase throughput significantly. This is achieved by two different modes: **fast mode** and **aggregation mode**. +Aligned provides an alternative to reduce costs and increase throughput significantly. This is achieved by two different modes: **fast mode** and **aggregation mode**. -The fast mode works with a subset of Ethereum’s validators via restaking. Validators (also known as Operators) receive proofs, verify them using the verification code written in Rust or any other higher-level language, and then sign messages with BLS signatures. If a two-thirds (2/3) majority agrees, the results are posted in Ethereum. +The fast mode works with a subset of Ethereum’s validators via restaking. Validators (also known as Operators) receive proofs, verify them using the verification code written in Rust or any other higher-level language, and then sign messages with BLS signatures. If a two-thirds (2/3) majority agrees, the results are posted in Ethereum. Since Aligned’s operators only need to run the verification code on bare metal, we have several advantages compared to running it on top of the EVM: -- The code can be optimized for speed, not gas consumption. -- We can leverage parallelization to increase throughput. -- Since the gas limit does not constrain us, we can verify proof systems that are too expensive for Ethereum, such as Kimchi or Binius. -- Adding new proof systems is straightforward. +* The code can be optimized for speed, not gas consumption. +* We can leverage parallelization to increase throughput. +* Since the gas limit does not constrain us, we can verify proof systems that are too expensive for Ethereum, such as Kimchi or Binius. +* Adding new proof systems is straightforward. Preliminary numbers show that Aligned can verify more than 1000 proofs per second, over two orders of magnitude than the EVM at nominal capacity. Using effective batching techniques, we can split the task creation and verification cost between thousands of proofs. diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index bd31ed9be..585e53de9 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,56 +1,56 @@ -# Summary +# Table of contents ## Introduction -* [About Aligned](1_introduction/0_about_aligned.md) -* [Getting started](1_introduction/1_getting_started.md) -* [Example - ZKquiz](1_introduction/2_zkquiz.md) -* [Use cases](1_introduction/3_use_cases.md) -* [FAQ](1_introduction/4_faq.md) -* [Why ZK and Aligned?](1_introduction/5_why_zk.md) +* [About Aligned](README.md) +* [Getting started](1\_introduction/1\_getting\_started.md) +* [Example - ZKquiz](1\_introduction/2\_zkquiz.md) +* [Use cases](1\_introduction/3\_use\_cases.md) +* [FAQ](1\_introduction/4\_faq.md) +* [Why ZK and Aligned?](1\_introduction/5\_why\_zk.md) ## Architecture -* [Supported Verifiers](2_architecture/0_supported_verifiers.md) -* [Key Terms](2_architecture/0b_key_terms.md) -* [Fast mode](2_architecture/1_fast_mode.md) - * [Batcher](./2_architecture/components/1_batcher.md) - * [Payment Service Contract](./2_architecture/components/2_payment_service_contract.md) - * [Service Manager Contract](./2_architecture/components/3_service_manager_contract.md) - * [Operator](./2_architecture/components/4_operator.md) - * [Aggregator](./2_architecture/components/5_aggregator.md) - * [Explorer](./2_architecture/components/6_explorer.md) -* [Aggregation mode](2_architecture/2_aggregation_mode.md) +* [Supported Verifiers](2\_architecture/0\_supported\_verifiers.md) +* [Key Terms](2\_architecture/0b\_key\_terms.md) +* [Fast mode](2\_architecture/1\_fast\_mode.md) + * [Batcher](2\_architecture/components/1\_batcher.md) + * [Payment Service Contract](2\_architecture/components/2\_payment\_service\_contract.md) + * [Service Manager Contract](2\_architecture/components/3\_service\_manager\_contract.md) + * [Operator](2\_architecture/components/4\_operator.md) + * [Aggregator](2\_architecture/components/5\_aggregator.md) + * [Explorer](2\_architecture/components/6\_explorer.md) +* [Aggregation mode](2\_architecture/2\_aggregation\_mode.md) ## Guides -* [Submitting proofs](3_guides/0_submitting_proofs.md) -* [Integrating Aligned into your Application](3_guides/2_integrating_aligned_into_your_application.md) -* [Validating public input](3_guides/3_validating_public_input.md) -* [SDK Intro](3_guides/1_SDK_how_to.md) -* [SDK API Reference](3_guides/1.2_SDK_api_reference.md) -* [Generating proofs for Aligned](3_guides/4_generating_proofs.md) -* [Generating & submitting proofs of Rust code with ZKRust](3_guides/5_using_zkrust.md) -* [Setup Aligned Infrastructure Locally](3_guides/6_setup_aligned.md) -* [Contract Addresses](3_guides/7_contract_addresses.md) +* [Submitting proofs](3\_guides/0\_submitting\_proofs.md) +* [Integrating Aligned into your Application](3\_guides/2\_integrating\_aligned\_into\_your\_application.md) +* [Validating public input](3\_guides/3\_validating\_public\_input.md) +* [SDK Intro](3\_guides/1\_SDK\_how\_to.md) +* [SDK API Reference](3\_guides/1.2\_SDK\_api\_reference.md) +* [Generating proofs for Aligned](3\_guides/4\_generating\_proofs.md) +* [Generating & submitting proofs of Rust code with ZKRust](3\_guides/5\_using\_zkrust.md) +* [Setup Aligned Infrastructure Locally](3\_guides/6\_setup\_aligned.md) +* [Contract Addresses](3\_guides/7\_contract\_addresses.md) ## Operators -* [Running an operator](operator_guides/0_running_an_operator.md) -* [Operator FAQ](operator_guides/1_operator_FAQ.md) -* [Troubleshooting](operator_guides/2_troubleshooting.md) +* [Running an operator](operator\_guides/0\_running\_an\_operator.md) +* [Operator FAQ](operator\_guides/1\_operator\_FAQ.md) +* [Troubleshooting](operator\_guides/2\_troubleshooting.md) ## Useful links * [All the proof aggregation solutions will use RISC-V zkvms](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901/5JfikCrjdHsyqGCpqvbakrA8DZHIgj0d90i9tVOTink) -* [Manifesto](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901/rOya8TwZvj_8kTpjDPVwTuNc1UcS0VLUr1t2nhCxYj8) +* [Manifesto](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901/rOya8TwZvj\_8kTpjDPVwTuNc1UcS0VLUr1t2nhCxYj8) ## Socials -* [Telegram Group](https://t.me/aligned_layer) +* [Telegram Group](https://t.me/aligned\_layer) * [Twitter/X](https://x.com/alignedlayer) * [Discord](https://discord.gg/alignedlayer) * [Blog](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901) * [Website](https://alignedlayer.com) -* [Github](https://github.com/yetanotherco/aligned_layer) +* [Github](https://github.com/yetanotherco/aligned\_layer) * [YouTube](https://www.youtube.com/@alignedlayer) From fca53eba74577ec8c8c575e8e378d4e5dfc99418 Mon Sep 17 00:00:00 2001 From: Boris Dyakov Date: Mon, 16 Sep 2024 19:07:15 +0100 Subject: [PATCH 4/6] Revert "GITBOOK-4: No subject" This reverts commit d9831cde2074e3f3a4779dcea5d5227e6355d32a. --- .../0_about_aligned.md} | 85 ++++---- docs/3_guides/6_setup_aligned.md | 189 ++++++++++-------- docs/SUMMARY.md | 64 +++--- 3 files changed, 194 insertions(+), 144 deletions(-) rename docs/{README.md => 1_introduction/0_about_aligned.md} (68%) diff --git a/docs/README.md b/docs/1_introduction/0_about_aligned.md similarity index 68% rename from docs/README.md rename to docs/1_introduction/0_about_aligned.md index 0fce8f706..3538dc067 100644 --- a/docs/README.md +++ b/docs/1_introduction/0_about_aligned.md @@ -1,22 +1,21 @@ -# About Aligned +## What is Aligned? -### What is Aligned? - -Aligned is a decentralized network that verifies Zero-Knowledge/validity proofs and posts the results to Ethereum. It is designed to provide high throughput, low cost, and low latency proof verification. +Aligned is a decentralized network that verifies Zero-Knowledge/validity proofs and posts the results to Ethereum. It is designed to provide high throughput, cheap proof verification with low latency. {% hint style="info" %} -If you are unfamiliar with ZK and why this is useful, see [Why ZK and Aligned?](1\_introduction/5\_why\_zk.md) +If you are unfamiliar with ZK and why this is useful, see [Why ZK and Aligned?](./5_why_zk.md) {% endhint %} -### Mission +## Mission -Our mission is to accelerate Ethereum's roadmap and the adoption of verifiable computation by enabling fast and economical verification of ZK and validity proofs. +Our mission is to accelerate Ethereum's roadmap and the adoption of verifiable computation by enabling fast and economical verification of ZK and validity proofs. -### What real value does Aligned bring to the table? +## What real value does Aligned bring to the table? -Blockchains are verifiable computers. We live in a chaotic world where there will be a huge demand for computation that needs to be trusted. +Blockchains are verifiable computers. +We live in a chaotic world where there will be a huge demand for computation that needs to be trusted. -Current blockchain models are inefficient: each node must re-execute each transaction or operation, making the weakest and slowest devices the bottleneck. Unlike in Web2, where adding more hardware can increase performance, in these systems, additional hardware primarily enhances reliability rather than speed. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer security guarantees. In other words, they reduce costs and increase speed at a great expense of lower security guarantees. +Current blockchain models are inefficient: each node must re-execute each transaction or operation, making the weakest and slowest devices the bottleneck. Unlike in Web2, where adding more hardware can increase performance, in these systems, additional hardware primarily enhances reliability rather than speed. Alternative L1s to Ethereum make trade-offs, accepting bigger hardware or changing the consensus to be faster but with fewer security guarantees. In other words, they reduce costs and increase speed at a great expense of lower security guarantees. On the other hand, Zero-knowledge/validity proofs (ZK) provide a new framework where we do not have to make such compromises. The basic premise is that a party can generate a very short proof of a computation, and the nodes can quickly verify that proof instead of re-executing the computation. The computation can be quite large, comprising many different transactions. This enables the delegation of execution off-chain with the same guarantees, leading to increased throughput and lower operational costs. This led to the rollup-centric roadmap of Ethereum, featuring multiple L2s, but at the expense of fragmented liquidity and complex user experience. Many of these problems could be solved by ZK bridges, but they remain expensive, and the go-to-market time is high. @@ -24,21 +23,39 @@ Anyhow, nodes still have to verify those proofs, which can be quite expensive si In addition, ZK lets us build other verifiable applications where users do not have to trust the party performing the computation, with impact in areas such as artificial intelligence (AI), the Internet of Things (IoT), and fighting misinformation. This is not clear to most people since proving technologies were not mature enough and verification costs were high. -### What limits the development of more complex applications on top of blockchains? +## What limits the development of more complex applications on top of blockchains? The main limitation for building complex applications on top of blockchains has been that the computation can run only a few milliseconds on chain, and even then, this can be costly. You can't have millions of daily active users using Ethereum or any blockchain at the same time. -ZK solves this, but due to slow and complex-to-use proving and expensive verification, progress has been limited. In the case of proving, before the development of general-purpose zero-knowledge virtual machines (zkVMs), users had to express their computation as arithmetic circuits, making the developer experience something like coding in assembler, error-prone, and complex. Moreover, proof systems depended on trusted setups, adding additional trust guarantees, the need to carry out special ceremonies to initialize parameters, and delaying go-to-market times. Besides, having high verification costs (on the order of 10's to 100's of dollars per proof) meant that only those projects with a huge capital could afford to build such applications. - -### Why didn't anybody do it before? - -To build Aligned, we needed several pieces in place. First, we needed EigenLayer, which allows building services and applications on top of Ethereum without competing for blockspace. In our case, we could bootstrap the economic security for a decentralized network of verifiers, avoiding the limitations of running proof verification on-chain. Second, proving technology had to improve. We currently have general-purpose zkVMs (which means we can code in Rust and other high-level languages and prove it), proof systems are faster, and several improvements and developments are on the way. This makes writing applications easier (providing a higher demand for proof verification), and enables faster and simpler proof recursion (for proof compression). - -### How much can Aligned reduce costs? +ZK solves this, but due to slow and complex-to-use proving and expensive verification, progress has been limited. +In the case of proving, before the development of general-purpose zero-knowledge virtual machines (zkVMs), +users had to express their computation as arithmetic circuits, +making the developer experience something like coding in assembler, error-prone, and complex. +Moreover, proof systems depended on trusted setups, +adding additional trust guarantees, the need to carry out special ceremonies to initialize parameters, +and delaying go-to-market times. +Besides, +having high verification costs (on the order of 10's to 100's of dollars per proof) +meant that only those projects with a huge capital could afford to build such applications. + +## Why didn't anybody do it before? + +To build Aligned, we needed several pieces in place. +First, we needed EigenLayer, +which allows building services and applications on top of Ethereum without competing for blockspace. +In our case, we could bootstrap the economic security for a decentralized network of verifiers, +avoiding the limitations of running proof verification on-chain. +Second, proving technology had to improve. +We currently have general-purpose zkVMs (which means we can code in Rust and other high-level languages and prove it), +proof systems are faster, and several improvements and developments are on the way. +This makes writing applications easier (providing a higher demand for proof verification), +and enables faster and simpler proof recursion (for proof compression). + +## How much can Aligned reduce costs? Aligned operates using two operation modes: fast and aggregation. The cost reduction depends on throughput, proof system, and mode used. For the least expensive systems, such as Groth16, this can amount to nearly 90%, while STARKs can be nearly 99%. Moreover, Aligned allows the verification of proofs that cannot be currently verified in Ethereum due to cost or size, such as Kimchi or Binius. The verification cost in Aligned is independent of the proof system, giving the choice of the proof system back to developers. -### How does Aligned compare to other solutions? +## How does Aligned compare to other solutions? Aligned has created a new category in crypto: ZK verification layer. It is the only solution for now offering fast and aggregation modes while being linked to Ethereum via EigenLayer. The fast mode provides very high throughput (over two orders of magnitude more than Ethereum), low latency, and lower costs than the aggregation mode. The security is provided by restaking, and this mode is well suited for applications with tight limits on latency and costs. The aggregation mode works using the slower proof recursion strategy, also used in rollups to compress proofs. Another key feature is that Aligned is stateless, simplifying the process greatly. @@ -46,31 +63,31 @@ Other solutions focus on building a separate L1 for proof verification (which se The following table contains costs estimates for Aligned, assuming a batch size of 20 proofs. -| Proof system | Ethereum | Aligned - Fast mode | Aligned - Aggregation | -| ------------ | ---------- | ------------------- | --------------------- | -| Groth16 | 250,000 | 40,000 | TBD | -| STARKs | >1,000,000 | 40,000 | TBD | -| Kimchi-IPA | ?????? | 40,000 | TBD | -| Halo2-KZG | 350,000 | 40,000 | TBD | -| Binius. | ?????? | 40,000 | TBD | +| Proof system | Ethereum | Aligned - Fast mode | Aligned - Aggregation | +| -------- | -------- | -------- | ---------- | +| Groth16 | 250,000 | 40,000 | TBD | +| STARKs | >1,000,000 | 40,000 | TBD | +| Kimchi-IPA | ?????? | 40,000 | TBD | +| Halo2-KZG | 350,000 | 40,000 | TBD | +| Binius. | ?????? | 40,000 | TBD | -### Why are we building Aligned? +## Why are we building Aligned? In recent months, we have witnessed the development and enhancement of general proving virtual machines such as Risc0, Valida, Jolt, and SP1. These innovations allow users to write ordinary code in languages like Rust or C and generate proofs demonstrating the integrity of computations. This evolution is poised to transform application development, provided we have verification networks with high throughput and low cost. This is the core vision of Aligned and the reason we are building it: the future belongs to provable applications. -Currently, proof verification in Ethereum is expensive and throughput is limited to around 10 proofs per second. The cost depends on the proof system used, and the availability of precompiles. Groth16 costs around 250,000 gas, STARKs, over 1,000,000, and other proof systems are too expensive to be used in Ethereum. +Currently, proof verification in Ethereum is expensive and throughput is limited to around 10 proofs per second. The cost depends on the proof system used, and the availability of precompiles. Groth16 costs around 250,000 gas, STARKs, over 1,000,000, and other proof systems are too expensive to be used in Ethereum. Proof technology has been evolving over the last decade, with new arguments, fields, commitments and other tools appearing every day. It is hard to try new ideas if verification costs are high, and there is a considerable go-to-market time, as a consequence of development time of new, gas-optimized smart contracts, or the inclusion of new precompiles to make them affordable. -Aligned provides an alternative to reduce costs and increase throughput significantly. This is achieved by two different modes: **fast mode** and **aggregation mode**. +Aligned provides an alternative to reduce costs and increase throughput significantly. This is achieved by two different modes: **fast mode** and **aggregation mode**. -The fast mode works with a subset of Ethereum’s validators via restaking. Validators (also known as Operators) receive proofs, verify them using the verification code written in Rust or any other higher-level language, and then sign messages with BLS signatures. If a two-thirds (2/3) majority agrees, the results are posted in Ethereum. +The fast mode works with a subset of Ethereum’s validators via restaking. Validators (also known as Operators) receive proofs, verify them using the verification code written in Rust or any other higher-level language, and then sign messages with BLS signatures. If a two-thirds (2/3) majority agrees, the results are posted in Ethereum. Since Aligned’s operators only need to run the verification code on bare metal, we have several advantages compared to running it on top of the EVM: -* The code can be optimized for speed, not gas consumption. -* We can leverage parallelization to increase throughput. -* Since the gas limit does not constrain us, we can verify proof systems that are too expensive for Ethereum, such as Kimchi or Binius. -* Adding new proof systems is straightforward. +- The code can be optimized for speed, not gas consumption. +- We can leverage parallelization to increase throughput. +- Since the gas limit does not constrain us, we can verify proof systems that are too expensive for Ethereum, such as Kimchi or Binius. +- Adding new proof systems is straightforward. Preliminary numbers show that Aligned can verify more than 1000 proofs per second, over two orders of magnitude than the EVM at nominal capacity. Using effective batching techniques, we can split the task creation and verification cost between thousands of proofs. diff --git a/docs/3_guides/6_setup_aligned.md b/docs/3_guides/6_setup_aligned.md index bddff987f..3c541a8af 100644 --- a/docs/3_guides/6_setup_aligned.md +++ b/docs/3_guides/6_setup_aligned.md @@ -1,21 +1,25 @@ -# Setup Aligned Infrastructure Locally +# Aligned Infrastructure Deployment Guide ## Dependencies Ensure you have the following installed: -* [Go](https://go.dev/doc/install) -* [Rust](https://www.rust-lang.org/tools/install) -* [Foundry](https://book.getfoundry.sh/getting-started/installation) -* [zap-pretty](https://github.com/maoueh/zap-pretty) -* [abigen](https://geth.ethereum.org/docs/tools/abigen) -* [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git) -* [jq](https://jqlang.github.io/jq/) -* [yq](https://github.com/mikefarah/yq) +- [Go](https://go.dev/doc/install) +- [Rust](https://www.rust-lang.org/tools/install) +- [Foundry](https://book.getfoundry.sh/getting-started/installation) +- [zap-pretty](https://github.com/maoueh/zap-pretty) +- [abigen](https://geth.ethereum.org/docs/tools/abigen) +- [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git) +- [jq](https://jqlang.github.io/jq/) +- [yq](https://github.com/mikefarah/yq) -To install [Go](https://go.dev/doc/install), [Rust](https://www.rust-lang.org/tools/install), [jq](https://jqlang.github.io/jq/) and [yq](https://github.com/mikefarah/yq) go to the provided links and follow the instructions. +To +install [Go](https://go.dev/doc/install), +[Rust](https://www.rust-lang.org/tools/install), [jq](https://jqlang.github.io/jq/) +and [yq](https://github.com/mikefarah/yq) go to the provided links and follow the instructions. -Install Go dependencies ([zap-pretty](https://github.com/maoueh/zap-pretty), [abigen](https://geth.ethereum.org/docs/tools/abigen), [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git)): +Install Go +dependencies ([zap-pretty](https://github.com/maoueh/zap-pretty), [abigen](https://geth.ethereum.org/docs/tools/abigen), [eigenlayer-cli](https://github.com/Layr-Labs/eigenlayer-cli.git)): ```bash make go_deps @@ -46,27 +50,27 @@ Before starting, you need to set up an S3 bucket. More data storage will be test You need to fill the data in: -`batcher/aligned-batcher/.env` +```batcher/aligned-batcher/.env``` And you can use this file as an example of how to fill it: -`batcher/aligned-batcher/.env.example` +```batcher/aligned-batcher/.env.example``` After having the env setup, run in different terminals the following commands to boot Aligned locally: ## Anvil -To start anvil, a local Ethereum devnet with all necessary contracts already deployed and ready to be interacted with, run: +To start anvil, a local Ethereum devnet with all necessary contracts already deployed and ready to be interacted with, +run: ```bash make anvil_start_with_block_time ```
- More information on deploying the smart contracts on anvil: -#### EigenLayer Contracts +### EigenLayer Contracts If EigenLayer contracts change, the anvil state needs to be updated with: @@ -80,7 +84,7 @@ You will also need to redeploy the MockStrategy & MockERC20 contracts: make anvil_deploy_mock_strategy ``` -#### Aligned Contracts +### Aligned Contracts When changing Aligned contracts, the anvil state needs to be updated with: @@ -102,12 +106,13 @@ make anvil_upgrade_registry_coordinator Note that when upgrading the contracts, you must also: -1. Re-generate the Go smart contract bindings: +1. Re-generate the Go smart contract bindings: ```bash make bindings ``` -2. Rebuild Aggregator and Operator Go binaries: + +2. Rebuild Aggregator and Operator Go binaries: ```bash make build_binaries @@ -115,18 +120,17 @@ Note that when upgrading the contracts, you must also:
-*** +--- ## Aggregator -To start the [Aggregator](../2\_architecture/components/5\_aggregator.md): +To start the [Aggregator](../2_architecture/components/5_aggregator.md): ```bash make aggregator_start ```
- To start the aggregator with a custom configuration: ```bash @@ -135,11 +139,12 @@ make aggregator_start CONFIG_FILE=
-*** +--- ## Operator -To start an [Operator](../2\_architecture/components/4\_operator.md) (note it also registers it): +To start an [Operator](../2_architecture/components/4_operator.md) +(note it also registers it): ```bash make operator_register_and_start @@ -152,12 +157,11 @@ make operator_start ```
- More information about Operator registration: Operator needs to register in both EigenLayer and Aligned. Then it can start verifying proofs. -#### Register into EigenLayer +### Register into EigenLayer To register an operator in EigenLayer Devnet with the default configuration, run: @@ -171,7 +175,7 @@ To register an operator in EigenLayer with a custom configuration, run: make operator_register_with_eigen_layer CONFIG_FILE= ``` -#### Register into Aligned +### Register into Aligned To register an operator in Aligned with the default configuration, run: @@ -185,21 +189,23 @@ To register an operator in Aligned with a custom configuration, run: make operator_register_with_aligned_layer CONFIG_FILE= ``` -#### Full Registration in Anvil with one command +### Full Registration in Anvil with one command -To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with the default configuration, run: +To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with the default +configuration, run: ```bash make operator_full_registration ``` -To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with a custom configuration, run: +To register an operator in EigenLayer and Aligned and deposit strategy tokens in EigenLayer with a custom configuration, +run: ```bash make operator_full_registration CONFIG_FILE= ``` -#### Deposit Strategy Tokens in Anvil local devnet +### Deposit Strategy Tokens in Anvil local devnet There is an ERC20 token deployed in the Anvil chain to use as a strategy token with EigenLayer. @@ -217,17 +223,21 @@ make operator_mint_mock_tokens CONFIG_FILE= make operator_deposit_into_mock_strategy CONFIG_FILE= ``` -#### Deposit Strategy tokens in Holesky/Mainnet +### Deposit Strategy tokens in Holesky/Mainnet EigenLayer strategies are available in [eigenlayer-strategies](https://holesky.eigenlayer.xyz/restake). For Holesky, we are using [WETH](https://holesky.eigenlayer.xyz/restake/WETH) as the strategy token. -To get HolETH and swap it for different strategies, you can use the following [guide](https://docs.eigenlayer.xyz/eigenlayer/restaking-guides/restaking-user-guide/testnet/obtaining-testnet-eth-and-liquid-staking-tokens-lsts). +To get HolETH and swap it for different strategies, you can use the +following [guide](https://docs.eigenlayer.xyz/eigenlayer/restaking-guides/restaking-user-guide/testnet/obtaining-testnet-eth-and-liquid-staking-tokens-lsts). -#### Config +### Config -There is a default configuration for devnet purposes in `config-files/config.yaml`. Also, there are three different configurations for the operator in `config-files/devnet/operator-1.yaml`, `config-files/devnet/operator-2.yaml` and `config-files/devnet/operator-3.yaml`. +There is a default configuration for devnet purposes in `config-files/config.yaml`. +Also, there are three different configurations for the operator +in `config-files/devnet/operator-1.yaml`, `config-files/devnet/operator-2.yaml` +and `config-files/devnet/operator-3.yaml`. The configuration file has the following structure: @@ -295,24 +305,32 @@ eigenlayer operator keys import --key-type bls
-*** +--- ## Batcher -To start the [Batcher](../2\_architecture/components/1\_batcher.md): +To start the [Batcher](../2_architecture/components/1_batcher.md): ```bash make batcher_start ```
- More information about Batcher configuration: -To run the batcher, you will need to set environment variables in a `.env` file in the same directory as the batcher (`batcher/aligned-batcher/`). +To run the batcher, you will need to set environment variables in a `.env` file in the same directory as the +batcher (`batcher/aligned-batcher/`). The necessary environment variables are: +| Variable Name | Description | +|-----------------------|--------------------------------------------------------------------------------------------------------------------------------| +| AWS_SECRET_ACCESS_KEY | Secret key to authenticate and authorize API requests to the AWS S3 Bucket. | +| AWS_REGION | Geographical region where the AWS S3 Bucket will be accessed. | +| AWS_ACCESS_KEY_ID | Access key used in combination with the AWS_SECRET_ACCESS_KEY to authenticate and authorize API requests to the AWS S3 Bucket. | +| AWS_BUCKET_NAME | Name of the AWS S3 Bucket. | +| RUST_LOG | Rust log level (info, debug, error, warn, etc.). | + You can find an example `.env` file in [.env.example](../../batcher/aligned-batcher/.env.example) You can configure the batcher in `config-files/config.yaml`: @@ -338,7 +356,7 @@ ecdsa: private_key_store_password: ``` -#### Run +### Run ```bash make batcher_start @@ -346,14 +364,15 @@ make batcher_start
-*** +--- ## Send test proofs -Next, you can use some of the send proofs make targets. All these proofs are pre-generated and for testing purposes, feel free to generate your own tests to submit to Aligned. +Next, you can use some of the send proofs make targets. +All these proofs are pre-generated and for testing purposes, +feel free to generate your own tests to submit to Aligned.
- SP1 Send an individual proof: @@ -377,7 +396,6 @@ make batcher_send_infinite_sp1
- Risc0 Send an individual proof: @@ -395,7 +413,6 @@ make batcher_send_risc0_burst
- Plonk Send an individual bn254 proof: @@ -425,7 +442,6 @@ make batcher_send_plonk_bls12_381_burst
- Groth16 Send an individual bn254 proof: @@ -449,7 +465,6 @@ make batcher_send_burst_groth16
- Halo2 Send an individual IPA proof: @@ -479,7 +494,6 @@ make batcher_send_halo2_kzg_task_burst_5
- Send a specific proof: To install the Aligned client to send a specific proof, run: @@ -488,7 +502,11 @@ To install the Aligned client to send a specific proof, run: make install_aligned_compiling ``` -The SP1 and Risc0 proofs need the proof file and the vm program file. The current SP1 version used in Aligned is `v1.0.1` and the current Risc0 version used in Aligned is v1.0.1. The GnarkPlonkBn254, GnarkPlonkBls12\_381 and Groth16Bn254 proofs need the proof file, the public input file and the verification key file. +The SP1 and Risc0 proofs need the proof file and the vm program file. +The current SP1 version used in Aligned is +`v1.0.1` and the current Risc0 version used in Aligned is v1.0.1. +The GnarkPlonkBn254, GnarkPlonkBls12_381 and Groth16Bn254 proofs need the proof file, the public input file and the +verification key file. ```bash aligned submit \ @@ -508,19 +526,21 @@ aligned submit \ ## Explorer -If you also want to start the explorer for the devnet, to clearly visualize your submitted and verified batches, see how to run it using the following documentation: +If you also want to start the explorer for the devnet, to clearly visualize your submitted and verified batches, see how +to run it using the following documentation: ### Minimum Requirements -* [Erlang 26](https://github.com/asdf-vm/asdf-erlang) -* [Elixir 1.16.2](https://elixir-ko.github.io/install.html), compiled with OTP 26 -* [Docker](https://docs.docker.com/get-docker/) +- [Erlang 26](https://github.com/asdf-vm/asdf-erlang) +- [Elixir 1.16.2](https://elixir-ko.github.io/install.html), compiled with OTP 26 +- [Docker](https://docs.docker.com/get-docker/) ### DB Setup To set up the explorer, an installation of the DB is necessary. -First, you'll need to install docker if you don't have it already. You can follow the instructions [here](https://docs.docker.com/get-docker/). +First, you'll need to install docker if you don't have it already. +You can follow the instructions [here](https://docs.docker.com/get-docker/). The explorer uses a PostgreSQL database. To build and start the DB using docker, run: @@ -530,21 +550,23 @@ make explorer_build_db
-(Optional) The steps to manually execute the database are as follows... + + (Optional) The steps to manually execute the database are as follows... + -* Run the database container, opening port `5432`: +- Run the database container, opening port `5432`: ```bash make explorer_run_db ``` -* Configure the database with ecto running `ecto.create` and `ecto.migrate`: +- Configure the database with ecto running `ecto.create` and `ecto.migrate`: ```bash make explorer_ecto_setup_db ``` -* Start the explorer: +- Start the explorer: ```bash make run_explorer @@ -572,15 +594,17 @@ Data can be recovered from a `dump.$date.sql` using the following command: make explorer_recover_db ``` -Then you'll be requested to enter the file name of the dump you want to recover already positioned in the `/explorer` directory. +Then you'll be requested to enter the file name of the dump you want to recover already positioned in the `/explorer` +directory. This will update your database with the dumped database data.
- Extra Explorer script to fetch past batches -If you want to fetch past batches that for any reason were not inserted into the DB, you will first need to make sure you have the ELIXIR\_HOSTNAME .env variable configured. You can get the hostname of your elixir by running : +If you want to fetch past batches that for any reason were not inserted into the DB, you will first need to make sure +you have the ELIXIR_HOSTNAME .env variable configured. +You can get the hostname of your elixir by running : ```bash elixir -e 'IO.puts(:inet.gethostname() |> elem(1))' @@ -592,7 +616,8 @@ Then you can run: make explorer_fetch_old_batches ``` -You can modify which blocks are being fetched by modify the parameters the `explorer_fetch_old_batches.sh` is being received +You can modify which blocks are being fetched by modify the parameters the `explorer_fetch_old_batches.sh` is being +received
@@ -600,7 +625,8 @@ You can modify which blocks are being fetched by modify the parameters the `expl To run the explorer for the local devnet, you'll need to have the devnet running and the DB already setup. -Additionally, you'll need to have the `.env` file in the `/explorer` directory of the project. A base example of the `.env` file can be found in `/explorer/.env.dev`. +Additionally, you'll need to have the `.env` file in the `/explorer` directory of the project. +A base example of the `.env` file can be found in `/explorer/.env.dev`. Use the following command to start the Explorer: @@ -608,10 +634,10 @@ Use the following command to start the Explorer: make run_explorer ``` -Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. You can access to a tasks' information by visiting `localhost:4000/batches/:merkle_root`. +Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. +You can access to a tasks' information by visiting `localhost:4000/batches/:merkle_root`.
- There's an additional Explorer script to fetch past operators and restake If you want to fetch past operators, strategies and restake, you will need to run: @@ -620,16 +646,18 @@ If you want to fetch past operators, strategies and restake, you will need to ru make explorer_fetch_old_operators_strategies_restakes ``` -This will run the script `explorer_fetch_old_operators_strategies_restakes.sh` that will fetch the operators, strategies and restake which will later insert into the DB. +This will run the script `explorer_fetch_old_operators_strategies_restakes.sh` that will fetch the operators, strategies +and restake which will later insert into the DB.
### Run with custom env / other devnets -Create a `.env` file in the `/explorer` directory of the project. The `.env` file needs to contain the following variables: +Create a `.env` file in the `/explorer` directory of the project. +The `.env` file needs to contain the following variables: | Variable | Description | -| --------------------- | ----------------------------------------------------------------------------------------------- | +|-----------------------|-------------------------------------------------------------------------------------------------| | `RPC_URL` | The RPC URL of the network you want to connect to. | | `ENVIRONMENT` | The environment you want to run the application in. It can be `devnet`, `holesky` or `mainnet`. | | `ALIGNED_CONFIG_FILE` | The config file containing Aligned contracts' deployment information | @@ -648,7 +676,8 @@ Then you can run the explorer with this env file config by entering the followin make run_explorer ``` -This will start the explorer with the configuration set in the `.env` file on port 4000. Visit [`localhost:4000`](http://localhost:4000) from your browser. +This will start the explorer with the configuration set in the `.env` file on port 4000. +Visit [`localhost:4000`](http://localhost:4000) from your browser. ## Metrics @@ -668,9 +697,11 @@ Then you can access Grafana on `http://localhost:3000` with the default credenti If you want to install Prometheus and Grafana manually, you can follow the instructions below. -To install Prometheus, you can follow the instructions on the [official website](https://prometheus.io/docs/prometheus/latest/getting\_started/). +To install Prometheus, you can follow the instructions on +the [official website](https://prometheus.io/docs/prometheus/latest/getting_started/). -To install Grafana, you can follow the instructions on the [official website](https://grafana.com/docs/grafana/latest/setup-grafana/installation/). +To install Grafana, you can follow the instructions on +the [official website](https://grafana.com/docs/grafana/latest/setup-grafana/installation/). ## Notes on project creation @@ -683,18 +714,20 @@ forge init . --no-commit forge install Layr-Labs/eigenlayer-middleware@mainnet ``` -Then, to solve the issue[https://github.com/Layr-Labs/eigenlayer-middleware/issues/229](https://github.com/Layr-Labs/eigenlayer-middleware/issues/229), we changed it to: +Then, to solve the issue, we changed it to: -`forge install yetanotherco/eigenlayer-middleware@yac-mainnet --no-commit` +```forge install yetanotherco/eigenlayer-middleware@yac-mainnet --no-commit``` As soon as it gets fixed in mainnet, we can revert it. -Base version of middleware used is `7229f2b`. +Base version of middleware used is ```7229f2b```. -The script to initialize the devnet can be found on `contracts/scripts/anvil`. +The script to initialize the devnet can be found on ```contracts/scripts/anvil```. -The addresses of the relevant contracts after running the anvil script are dumped on `contracts/script/output/devnet`. +The addresses of the relevant contracts after running the anvil script are dumped +on ```contracts/script/output/devnet```. -The state is backed up on `contracts/scripts/anvil/state`. +The state is backed up on ```contracts/scripts/anvil/state```. -EigenLayer contract deployment is almost the same as the EigenLayer contract deployment on mainnet. Changes are described in the file. +EigenLayer contract deployment is almost the same as the EigenLayer contract deployment on mainnet. +Changes are described in the file. diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 585e53de9..bd31ed9be 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,56 +1,56 @@ -# Table of contents +# Summary ## Introduction -* [About Aligned](README.md) -* [Getting started](1\_introduction/1\_getting\_started.md) -* [Example - ZKquiz](1\_introduction/2\_zkquiz.md) -* [Use cases](1\_introduction/3\_use\_cases.md) -* [FAQ](1\_introduction/4\_faq.md) -* [Why ZK and Aligned?](1\_introduction/5\_why\_zk.md) +* [About Aligned](1_introduction/0_about_aligned.md) +* [Getting started](1_introduction/1_getting_started.md) +* [Example - ZKquiz](1_introduction/2_zkquiz.md) +* [Use cases](1_introduction/3_use_cases.md) +* [FAQ](1_introduction/4_faq.md) +* [Why ZK and Aligned?](1_introduction/5_why_zk.md) ## Architecture -* [Supported Verifiers](2\_architecture/0\_supported\_verifiers.md) -* [Key Terms](2\_architecture/0b\_key\_terms.md) -* [Fast mode](2\_architecture/1\_fast\_mode.md) - * [Batcher](2\_architecture/components/1\_batcher.md) - * [Payment Service Contract](2\_architecture/components/2\_payment\_service\_contract.md) - * [Service Manager Contract](2\_architecture/components/3\_service\_manager\_contract.md) - * [Operator](2\_architecture/components/4\_operator.md) - * [Aggregator](2\_architecture/components/5\_aggregator.md) - * [Explorer](2\_architecture/components/6\_explorer.md) -* [Aggregation mode](2\_architecture/2\_aggregation\_mode.md) +* [Supported Verifiers](2_architecture/0_supported_verifiers.md) +* [Key Terms](2_architecture/0b_key_terms.md) +* [Fast mode](2_architecture/1_fast_mode.md) + * [Batcher](./2_architecture/components/1_batcher.md) + * [Payment Service Contract](./2_architecture/components/2_payment_service_contract.md) + * [Service Manager Contract](./2_architecture/components/3_service_manager_contract.md) + * [Operator](./2_architecture/components/4_operator.md) + * [Aggregator](./2_architecture/components/5_aggregator.md) + * [Explorer](./2_architecture/components/6_explorer.md) +* [Aggregation mode](2_architecture/2_aggregation_mode.md) ## Guides -* [Submitting proofs](3\_guides/0\_submitting\_proofs.md) -* [Integrating Aligned into your Application](3\_guides/2\_integrating\_aligned\_into\_your\_application.md) -* [Validating public input](3\_guides/3\_validating\_public\_input.md) -* [SDK Intro](3\_guides/1\_SDK\_how\_to.md) -* [SDK API Reference](3\_guides/1.2\_SDK\_api\_reference.md) -* [Generating proofs for Aligned](3\_guides/4\_generating\_proofs.md) -* [Generating & submitting proofs of Rust code with ZKRust](3\_guides/5\_using\_zkrust.md) -* [Setup Aligned Infrastructure Locally](3\_guides/6\_setup\_aligned.md) -* [Contract Addresses](3\_guides/7\_contract\_addresses.md) +* [Submitting proofs](3_guides/0_submitting_proofs.md) +* [Integrating Aligned into your Application](3_guides/2_integrating_aligned_into_your_application.md) +* [Validating public input](3_guides/3_validating_public_input.md) +* [SDK Intro](3_guides/1_SDK_how_to.md) +* [SDK API Reference](3_guides/1.2_SDK_api_reference.md) +* [Generating proofs for Aligned](3_guides/4_generating_proofs.md) +* [Generating & submitting proofs of Rust code with ZKRust](3_guides/5_using_zkrust.md) +* [Setup Aligned Infrastructure Locally](3_guides/6_setup_aligned.md) +* [Contract Addresses](3_guides/7_contract_addresses.md) ## Operators -* [Running an operator](operator\_guides/0\_running\_an\_operator.md) -* [Operator FAQ](operator\_guides/1\_operator\_FAQ.md) -* [Troubleshooting](operator\_guides/2\_troubleshooting.md) +* [Running an operator](operator_guides/0_running_an_operator.md) +* [Operator FAQ](operator_guides/1_operator_FAQ.md) +* [Troubleshooting](operator_guides/2_troubleshooting.md) ## Useful links * [All the proof aggregation solutions will use RISC-V zkvms](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901/5JfikCrjdHsyqGCpqvbakrA8DZHIgj0d90i9tVOTink) -* [Manifesto](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901/rOya8TwZvj\_8kTpjDPVwTuNc1UcS0VLUr1t2nhCxYj8) +* [Manifesto](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901/rOya8TwZvj_8kTpjDPVwTuNc1UcS0VLUr1t2nhCxYj8) ## Socials -* [Telegram Group](https://t.me/aligned\_layer) +* [Telegram Group](https://t.me/aligned_layer) * [Twitter/X](https://x.com/alignedlayer) * [Discord](https://discord.gg/alignedlayer) * [Blog](https://mirror.xyz/0x7794D1c55568270A81D8Bf39e1bcE96BEaC10901) * [Website](https://alignedlayer.com) -* [Github](https://github.com/yetanotherco/aligned\_layer) +* [Github](https://github.com/yetanotherco/aligned_layer) * [YouTube](https://www.youtube.com/@alignedlayer) From 3464ba7f9c6ce43f178e462e75ba311670502c1b Mon Sep 17 00:00:00 2001 From: Boris Dyakov <47835702+bjdyakov@users.noreply.github.com> Date: Mon, 16 Sep 2024 21:33:21 +0200 Subject: [PATCH 5/6] Update 4_faq.md Restructuring of FAQs into a more logical order, plus editing for clarity and flow. More updates will be needed but this is a start. --- docs/1_introduction/4_faq.md | 161 ++++++++++++++++++----------------- 1 file changed, 84 insertions(+), 77 deletions(-) diff --git a/docs/1_introduction/4_faq.md b/docs/1_introduction/4_faq.md index fdaa59057..57b019d35 100644 --- a/docs/1_introduction/4_faq.md +++ b/docs/1_introduction/4_faq.md @@ -1,16 +1,36 @@ # FAQ -### What is the objective of Aligned? +### What is Aligned's objective? -Aligned’s mission is to extend Ethereum’s zero-knowledge capabilities. We are certain the zero-knowledge proofs will have a key role in the future of blockchains and computation. We don’t know what that future will look like, but we are certain it will be in Ethereum. The question we want to share is: If we are certain zero-knowledge proofs are the future of Ethereum, but we are not certain which of the many possible zero-knowledge futures will win. How can we build an infrastructure for Ethereum to be compatible with any future zero-knowledge proving system? +Aligned’s mission is to extend Ethereum’s zero-knowledge capabilities. We are certain that zero-knowledge proofs will have a key role in the future of blockchains and computation. We don’t exactly know what that future will look like, but we are certain it will be built on Ethereum. + +The question we want to share is: If we are sure that zero-knowledge proofs are the future of Ethereum, but we don't know which of the many possible zero-knowledge futures will win, **then how do we build infrastructure for Ethereum to make it compatible with any future zero-knowledge proving system?** + +### Why build Aligned on top of Ethereum? -### What is the throughput of Aligned? +Ethereum is the most decentralized and most significant source of liquidity in the crypto ecosystem. We believe it is the most ambitious and long-term project on the internet. Aligned is being built to help Ethereum achieve its highest potential, and we believe this is only possible through validity/zero-knowledge proofs. + +### What is Aligned's throughput? -Aligned runs the verifier’s code natively. The verification time depends on the proof system, program run, and public input. Generally, most verifiers can be run in the order of ms on consumer-end hardware. We can optimize the code for speed and leverage parallelization by running it natively. Current testnet can verify more than 4000 proofs per second. +Aligned runs the verifier’s code natively. Verification time depends on the proof system, program run, and public input. Generally, most verifiers can be run on the order of milliseconds on consumer-grade hardware. We can optimize the code for speed and leverage parallelization by running it natively. Our current testnet can verify more than 4000 proofs per second. + +### How does Aligned's throughput compare with Ethereum? + +Ethereum runs on top of the EVM. Each block is limited to 30,000,000 gas. Since the most efficient proof systems take at least 250,000 gas, Ethereum can verify 120 proofs per block at most. Aligned runs the verifier's code natively and leverages parallelization, allowing up to 30,000 proofs to be verified per block. + +### Why is Aligned necessary? + +The EVM was not designed for ZK proof verification, so most verifications are computationally expensive (which also means they have a high gas cost). -### How does the throughput of Aligned compare with Ethereum? +To solve this, for pairing-based cryptography, Ethereum has added a precompile for verification using the curve BN254. -Ethereum runs on top of the EVM. Each block is limited to 30,000,000 gas. Since the most efficient proof systems take at least 250,000 gas, Ethereum can verify 120 proofs per block. Aligned runs the code natively and leverages parallelization, reaching 30,000 proofs in the same period. +But technology changes fast. BN254 security was demonstrated to be around 100 bits instead of the expected 128. Fast STARKs need efficient hashing for fields. Which is the best field? Mersenne? Goldilocks? Binary fields? What about the sumcheck protocol? Is Jolt the endgame? Or is GKR going to be faster? + +There is a massive amount of ongoing progress in the field of zero-knowledge cryptography, and nobody can predict the endgame. + +Moreso, it would be naive to think that only one optimized prover will exist in the future. In the world of ZK, as in many others, there are trade-offs and systems that solve different problems. Maybe we want faster proving and don't care about proof size. Maybe we want the fastest proof verification and smallest size and can do more work on the prover. The system may be optimized to prove Keccak really fast. Or we can skip the traditional hashes altogether and just optimize for Poseidon, Rescue, or some not-yet-created hash. + +Aligned solves all of these problems. No matter how or what you want to prove, it can be efficiently verified while still inheriting security from Ethereum. ### Is Aligned an Ethereum L2? @@ -18,63 +38,56 @@ Aligned is related to Ethereum but is not an L2 since it does not produce blocks ### Does Aligned compete with L2s? -No. Aligned is a decentralized network of verifiers and has proof aggregation. It does not produce blocks or generate proofs of execution. Aligned provides L2s with fast and cheap verification for the proofs they generate, reducing settlement costs and enhancing cross-chain interoperability with quick and cheap bridging. +No. Aligned is a decentralized network of verifiers that also uses proof aggregation. It does not produce blocks or generate proofs of execution. Aligned provides L2s with fast and cheap verification for the proofs they generate, reducing settlement costs. It also enhances cross-chain interoperability by making it possible to build quick and cheap bridging solutions. -### What are the costs for Aligned? +### What does it cost to verify proofs using Aligned? -The costs depend on task creation, aggregated signature or proof verification, and reading the results. The cost C per proof by batching N proofs is roughly: +The cost ($C$) of proof verification using Aligned's **fast mode** is the cost of task creation ($C_{task}$) plus the cost of verifying an aggregated BLS signature ($C_{verification}$), divided by the number of proofs ($N$) in the batch, plus the the cost of reading the results on-chain ($C_{read}$). $$ C =\frac{C_{task} + C_{verification}}{N} + C_{read} $$ + +The cost of task creation and signature verification is amortized across $N$ proofs per batch, meaning that Aligned becomes cheaper to use as more proofs are verified at the same time. + +### What are BLS signatures? -### Why do you have a fast and aggregation mode? - -The fast mode is designed to offer very cheap verification costs and low latency. It uses crypto-economic guarantees provided by restaking; costs can be as low as 21000 gas. The aggregation mode works with proof aggregation, with higher fees and latency, and achieves the complete security of Ethereum. We verify an aggregated BLS signature (around 113,000 gas) in the fast mode. We verify an aggregated proof (around 300,000 gas) in the aggregation mode. - -### Why don’t you run Aligned on top of a virtual machine? - -Running on a virtual machine adds complexity to the system and an additional abstraction layer. It can also reduce Aligned's throughput, which is needed to offer really fast and cheap verification. - -### Why don’t you build Aligned on top of a rollup? - -The main problem with settling on top of a rollup is that you still need confirmation in Ethereum, which adds latency to the process. Besides, most rollups are not fully decentralized, even if they were, not to the extent of Ethereum. Aligned also achieves an already low verification cost in Ethereum, so it would not be convenient to build Aligned on top of a rollup in terms of latency, costs, and decentralization. - -An L2 needs to use the EVM to settle in Ethereum. This means that the proofs need to be efficiently verified in the EVM, and their data made available there. - -The EVM is not designed for ZK Verification, so most verifications are expensive. - -To solve this, for pairing-based cryptography, Ethereum has added a precompile for verifications using the curve BN254. - -But technology changes fast. BN254 security was demonstrated to be around 100 bits instead of the expected 128. Fast Starks need efficient hashing for fields. Which is the best field? Mersenne’s? Goldilocks? Binary fields? What about the sumcheck protocol? Is Jolt the endgame? Or is GKR going to be faster? +[Boneh-Lynn-Shacham (BLS)](https://en.wikipedia.org/wiki/BLS_digital_signature) signatures are a cryptographic signature that allows a user to verify that a signer is authentic. It relies on elliptic curve pairings and is used by Ethereum due to its aggregation properties. + +### Why does Aligned have a fast mode and an aggregation mode? -The amount of progress in the field is big, and nobody can predict the endgame. +Aligned's fast mode is designed to offer very cheap verification with low latency. It uses cryptoeconomic guarantees provided by restaking, thus deriving its security from Ethereum. With 10 proofs being verified in a batch the per-proof verification cost is approximately 30,000 gas. + +The aggregation mode works using recursive proof aggregation. This results in higher fees and latency, but has the complete security of Ethereum. + +### What is proof recursion? -Even more, it would be naive to think that only one optimized prover will exist in the future. In the world of ZK, as in many others, there are trade-offs and systems that solve different problems. +Zero-knowledge proofs let you generate proofs that show the correct execution of programs. If a program is the verification of a proof, then we will be getting a proof that we verified the proof and the result was valid. The validity of the second proof implies the validity of the original proof. This is the idea behind proof recursion, and it can be used with two main goals: -Maybe we want faster proving and don't care about proof size. Maybe we want the fastest proof verification and smallest size and can do more work on the prover. The system may be optimized to prove Keccak really fast. Or we can skip the traditional hashes altogether and just optimize for Poseidon, Rescue, or one hash not created yet. +1. Convert one proof type to another (for example, a STARK proof to a Plonk proof) either to reduce the proof size, have efficient recursion, or because the proof system cannot be verified where we want. +2. Proof aggregation: if we have to verify $N$ proofs on-chain, we can generate a single proof that we verified the $N$ proofs off-chain and just check the single proof on Ethereum. -Aligned solves all of this. No matter how or what you want to prove, it can be verified efficiently here while still inheriting the security of Ethereum as other L2s. +Proof recursion is the primary tool used by Aligned’s aggregation mode. + +### What is restaking? +EigenLayer introduced the concept of Restaking. It allows Ethereum’s validators to impose additional slashing conditions on their staked ETH to participate in Actively Validated Services (AVS) and earn additional rewards. This creates a marketplace where applications can rent Ethereum's trust without competing for blockspace. Aligned's fast mode is an AVS. + ### Is Aligned an aggregation layer? -Aligned provides proof aggregation as part of its aggregation mode, a feature shared with all aggregation layers. However, Aligned offers a unique fast mode designed to provide cheap and low-latency proof verification, leveraging the power of restaking. Aligned is a decentralized network designed to verify zero-knowledge proofs and uses recursive proof aggregation as one of its tools. +Aligned provides recursive proof aggregation as part of its aggregation mode, a feature shared with all aggregation layers. However, Aligned offers a unique fast mode designed to provide cheap and low-latency proof verification, leveraging the power of restaking via EigenLayer. Aligned is a decentralized network designed to verify zero-knowledge proofs and uses recursive proof aggregation as one of its tools. ### What proof systems do you support? -Aligned is designed to support any proof system. Currently supported ones are Groth16 and Plonk (gnark), SP1, Halo 2 (IPA and KZG). +Aligned is designed to support any proof system. We [currently support](../2_architecture/0_supported_verifiers.md) Groth16 and Plonk (gnark), SP1, Risc0, and Halo 2 (IPA and KZG). -### How hard is it to add new proof systems? +### How easy is it to add new proof systems? Aligned is designed to make adding new proof systems easy. The only thing needed is the verifier function, which is written in a high-level language like Rust. For example, we could integrate Jolt into one of our testnets just a few hours after it was released. -### What are BLS signatures? - -[Boneh-Lynn-Shacham (BLS)](https://en.wikipedia.org/wiki/BLS_digital_signature) is a cryptographic signature that allows a user to verify that a signer is authentic. It relies on elliptic curve pairings and is used by Ethereum due to its aggregation properties. - ### How does Aligned work? -The flow for fast verification is as follows: +The flow for fast mode verification is as follows: 1. The user uses a provided CLI or SDK to send one proof or many to the batcher, and waits (Alternatively, the user can run a batcher or interact directly with Ethereum) 2. The batcher accumulates proofs of many users for a small number of blocks (typically 1-3). @@ -83,44 +96,40 @@ The flow for fast verification is as follows: 5. If the proofs are valid, they sign the root and send this to the BLS signature aggregator. 6. The signature aggregator accumulates the signed responses until reaching the quorum, then sends the aggregated signature to Ethereum. 7. Ethereum verifies the aggregated signatures and changes the state of the batch to verified. - -### What is restaking? - -EigenLayer introduced the concept of Restaking. It allows Ethereum’s validators to impose additional slashing conditions on their staked ETH to participate in Actively Validated Services (AVS) and earn additional rewards. This creates a marketplace where applications can rent Ethereum's trust without competing for blockspace. Aligned is an example of an AVS. ### How can I verify proofs in Aligned? -You can verify proofs in Aligned using our CLI. +You can verify proofs in Aligned using our CLI or Rust SDK. ### Can you provide an estimate of Aligned’s savings? -In Ethereum (does not include access cost): +Proof verification directly on Ethereum (not including the cost of accessing/reading) costs: - Groth 16 proofs: >250,000 gas - Plonk/KZG proofs: >300,000 gas - STARKs: >1,000,000 gas - Binius/Jolt: too expensive to run! -In Aligned, fast mode: +With Aligned's fast mode: - Just one proof (any!): 350,000 gas - Batching 1024 proofs: 350 gas + reading cost -It’s over 99% savings! +This means verifying proofs using Aligned can be 99% cheaper than directly on Ethereum. ### I want to verify just one proof. Can I use Aligned for cheap and fast verification? -Yes! +Yes! And all proofs cost the same to verify using Aligned. ### Is Aligned open-source? -Yes! +Yes! We are 100% open-source from day one. ### What are the goals of Aligned? -Aligned is an infrastructure that offers fast and cheap verification for zero-knowledge and validity proofs. It can take any proof system and verify it cheaply and fast. +Aligned is infrastructure that offers fast and cheap verification for zero-knowledge and validity proofs on Ethereum. It can take any proof system and verify it cheaply and quickly, thus accelerating Ethereum's roadmap and its capabilities as a settlement layer for ZK proofs. -This means that what Aligned wants to achieve is to allow anyone to build ZK applications. This can only be achieved by: +Aligned aims to make it possible for anyone to build ZK applications. This can only be achieved by: - Reducing operational costs when maintaining a ZK application -> anyone can afford to build ZK apps. - Offering more options so developers can choose how they want to build their protocols -> everyone can choose their tools. @@ -128,32 +137,34 @@ This means that what Aligned wants to achieve is to allow anyone to build ZK app ### What’s the role of Aligned in Ethereum? -Aligned’s role is to help advance the adoption of zero-knowledge proofs in Ethereum, increase verification throughput, and reduce on-chain verification time and costs. Aligned can easily incorporate proof systems without any further changes in Ethereum. In a more straightforward analogy, Aligned is like a GPU for Ethereum. - -### What is proof recursion? - -Zero-knowledge proofs let you generate proofs that show the correct execution of programs. If a program is the verification of a proof, then we will be getting a proof that we verified the proof and the result was valid. The validity of the second proof implies the validity of the original proof. This is the idea behind proof recursion, and it can be used with two main goals: - -1. Convert one proof type to another (for example, a STARK proof to a Plonk proof) either to reduce the proof size, have efficient recursion, or because the proof system cannot be verified where we want. -2. Proof aggregation: if we have to verify N proofs on-chain, we can generate a single proof that we verified the N proofs off-chain and just check the single proof in Ethereum. - -Proof recursion is the primary tool of Aligned’s aggregation mode. - -### What are the use cases of Aligned? - -Among the possible use cases of Aligned, we have: +Aligned’s role is to help advance the adoption of zero-knowledge proofs on Ethereum, increase verification throughput, and reduce on-chain verification time and costs. Aligned can easily incorporate proof systems without any further protocol changes to Ethereum. Aligned future-proofs Ethereum for ZK. + +### Why do we need a ZK verification layer? + +Verifiable computation allows developers to build applications that help Ethereum scale or even create applications that were not possible before, with enhanced privacy properties. We believe the future of Ethereum will be shaped by zero-knowledge proofs and our goal is to help increase its capabilities. + +### What are the use cases for Aligned? -Soft finality for Rollups and Appchains, fast bridging, new settlement layers (use Aligned + EigenDA) for Rollups and Intent-based systems, P2P protocols based on SNARKs such as payment systems and social networks, alternative L1s interoperable with Ethereum, Verifiable Machine Learning, cheap verification and interoperability for Identity Protocols, ZK Oracles, new credential protocols such as zkTLS based systems, ZK Coprocessor, encrypted Mempools using SNARKs to show the correctness of the encryption, protocols against misinformation and fake news, and on-chain gaming. +We believe that there are many things that will be built using Aligned that we have not even imagined yet. For some possible use cases please see [this page](../1_introduction/3_use_cases.md). + +### Why don’t you run Aligned on top of a virtual machine? -### Why build Aligned on top of Ethereum? +Running on a virtual machine adds complexity to the system and an additional abstraction layer. It can also reduce Aligned's throughput, which is needed to offer really fast and cheap verification. + +### Why don’t you build Aligned on top of a rollup? -Ethereum is the most decentralized and most significant source of liquidity in the crypto ecosystem. We believe it is the most ambitious and long-term project on the internet. Aligned is being built to help Ethereum achieve its highest potential, and we believe this is only possible through validity/zero-knowledge proofs. +The main problem with settling on top of a rollup is that you still need confirmation in Ethereum, which adds latency to the process. Besides, most rollups are not fully decentralized; even if they were, it would not be to the same extent as Ethereum. Aligned also already achieves a very low verification cost on Ethereum, so it would not be convenient to build Aligned on top of a rollup in terms of latency, cost, or decentralization. Rollups also need to use the EVM to settle on Ethereum. This means that the proofs need to be efficiently verified in the EVM, and their data made available there. +We are currently focused on bringing Aligned's **fast mode** to Ethereum mainnet but may support verifications on L2 networks in the future. + ### Why EigenLayer? -We believe Ethereum is the best settlement layer, and zero-knowledge will play a key role in helping it become the settlement layer of the internet. We want to build a verification layer that helps Ethereum achieve this goal. This layer needs to have a decentralized group of validators that will just re-execute the verification of different proofs, but how can we build such a decentralized network that will help Ethereum? Creating a new L1 doesn’t benefit Ethereum because it will add new trust assumptions to the Ethereum protocols relying on it. So, if we must have: +We believe Ethereum is the best settlement layer, and ZK will play a key role in helping it become the settlement layer of the internet. We want to build a verification layer that helps Ethereum achieve this goal. This layer needs to have a decentralized group of validators that will just re-execute the verification of different proofs: so how do we build such a decentralized network that will help Ethereum? + +Creating a new L1 doesn’t benefit Ethereum because it will add new trust assumptions to the Ethereum protocols relying on it. EigenLayer enables Aligned to have the following properties: + 1. A decentralized network of verifiers -2. A similar economic security level that can be easily measured in Ethereum +2. A similar economic security level that can be easily measured in ETH 3. Part of the Ethereum ecosystem 4. Flexible enough to support many current and future proving systems @@ -161,10 +172,6 @@ We believe Ethereum is the best settlement layer, and zero-knowledge will play a Aligned is just a network of decentralized verifiers renting security from Ethereum. On the other hand, the Polygon aggregation layer, in essence, is a rollup verifying multiple proofs. That is not the case for Aligned, which just executes a rust binary from different verifiers directly in multiple Ethereum validators. -### Why do we need a ZK verification layer? - -Verifiable computation allows developers to build applications that help Ethereum scale or even create applications that were not possible before, with enhanced privacy properties. We believe the future of Ethereum will be shaped by zero-knowledge proofs and help it increase its capabilities. - -### How about Aligned and TEE? +### What about TEEs? -We want Aligned to verify TEE attestations. We think TEEs provide an alternative to ZK in some applications where ZK is too computationally intensive or as an additional mechanism to provide integrity (the case of multiproofs). +Aligned will also verify remote attestations made by Trusted Execution Environments (TEEs). We believe TEEs provide an alternative to ZK in some applications where ZK is too computationally intensive or as an additional mechanism to provide integrity (_e.g._ in multiproofs). From 746a3ac9d3655564708cd203d1c7a93c70beac44 Mon Sep 17 00:00:00 2001 From: Boris Dyakov <47835702+bjdyakov@users.noreply.github.com> Date: Mon, 16 Sep 2024 21:38:24 +0200 Subject: [PATCH 6/6] Update 3_use_cases.md Added section for projects built using aligned. So far have only added a quick note about the Mina bridge and a link to the github. Would like to discuss other projects before adding, and also improve the overall formatting of this entire page. --- docs/1_introduction/3_use_cases.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/1_introduction/3_use_cases.md b/docs/1_introduction/3_use_cases.md index b41e44e83..89d03a186 100644 --- a/docs/1_introduction/3_use_cases.md +++ b/docs/1_introduction/3_use_cases.md @@ -13,3 +13,7 @@ - Encrypted Mempools using SNARKs to show the correctness of the encryption. - Protocols against misinformation and fake news: you can generate proofs that an image or audio comes from a given device, and show that a published image is the result of certain transformations performed on the original image. - On-chain gaming. + +## Projects built using Aligned + +- The Mina <> Ethereum bridge (in development) uses Aligned's fast mode for ZK proof verification. See the [github repo](https://github.com/lambdaclass/mina_bridge) for more information.

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 diff --git a/docs/images/payment_service_diagram.png b/docs/images/payment_service_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..14e10a567e6040a77c86953b43a71984c5cce0ea GIT binary patch literal 187767 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