From 942671e4cfe0b0883564b6b959e47f516a5f7527 Mon Sep 17 00:00:00 2001 From: A-sh2000 <73600637+A-sh2000@users.noreply.github.com> Date: Sat, 4 May 2024 23:47:16 +0530 Subject: [PATCH] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. In the first paragraph, "This is done by incorporating Zero-Knowledge technology with Microprocessors without Interlocked Pipeline Stages (MIPS) architecture" can be improved for clarity. Maybe break it into two sentences. 2. In the second paragraph, the sentence "The process of ZKM’s zkVM looks like this:" is followed by a figure, which seems a bit redundant. You can simply say "The zkVM process consists of the following steps:" 3. In the numbered list, it's better to avoid using a comma after "Execution Trace" in the first item. 4. In the third paragraph, the sentence "The result of this process is a Zero-Knowledge Proof for the correct execution of a program that is public with an input that might or might not be public, depending on the use case." could be clarified. Perhaps split it into two sentences for better readability. 5. In the last paragraph, the phrase "an execution trace is generated, capturing the detailed sequence of operations" can be enhanced by adding "which" before "capturing" to make it clearer. 6. In the last paragraph, the phrase "Then the prover generates a ZKP proof based on the program’s execution trace." seems redundant. Maybe simplify it to "The prover then generates a ZKP based on the program's execution trace." --- zkm-architecture/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zkm-architecture/README.md b/zkm-architecture/README.md index 6219837..731dbfc 100644 --- a/zkm-architecture/README.md +++ b/zkm-architecture/README.md @@ -1,20 +1,20 @@ # ⚡ ZKM Architecture -ZKM is actively developing a zkVM solution to facilitate verifiable computation for interoperability between blockchains, IoT devices and other web2 solutions. This is done by incorporating Zero-Knowledge technology with Microprocessors without Interlocked Pipeline Stages (MIPS) architecture to provide a verifiable computing solution to trust the computation results generated by untrusted computers and potentially storing the generated ZKPs on Ethereum. Hence, ZKM’s initiative and vision for Ethereum as a foundational settlement layer for blockchains and non-blockchain technologies that apply the developed zkVM.\ +ZKM is actively developing a zkVM solution to facilitate verifiable computation for interoperability between blockchains, IoT devices, and other web2 solutions. This involves incorporating Zero-Knowledge technology with Microprocessors without Interlocked Pipeline Stages (MIPS) architecture. The aim is to provide a verifiable computing solution to trust the computation results generated by untrusted computers and potentially store the generated ZKPs on Ethereum. Hence, ZKM envisions Ethereum as a foundational settlement layer for both blockchains and non-blockchain technologies that apply the developed zkVM.\ \ -The process of ZKM’s zkVM looks like this: +The zkVM process consists of the following steps:

zkVM Steps

-1. First we run our target program with the given input and collect every intermediary state of its execution. We call the set of all internal states the Execution Trace. , -2. Then, we encode the program, its inputs and their execution trace into sets of polynomials that represent the correct execution of that instance. We call this step arithmetization. -3. Finally, we commit to these sets of polynomials using advanced techniques that compress them into small and sophisticated cryptographic objects. -4. These cryptographic objects allow us to easily test properties of their respective polynomials, which is what our zkVM does in the final step. More specifically, we can check if the program, input and trace polynomials are compatible and if their properties hold as they should. +1. First, we run our target program with the given input and collect every intermediary state of its execution. We call the set of all internal states the Execution Trace. +2. Then, we encode the program, its inputs, and their execution trace into sets of polynomials that represent the correct execution of that instance. This step is called arithmetization. +3. Finally, we commit to these sets of polynomials using advanced techniques that compress them into small and sophisticated cryptographic objects. +4. These cryptographic objects allow us to easily test properties of their respective polynomials, which is what our zkVM does in the final step. Specifically, we can check if the program, input, and trace polynomials are compatible and if their properties hold as they should. -The result of this process is a Zero-Knowledge Proof for the correct execution of a program that is public with an input that might or might not be public, depending on the use case. +The result of this process is a Zero-Knowledge Proof for the correct execution of a program. The input may or may not be public, depending on the use case. -Any program written in C, Go, Rust, etc., can be compiled using a generally available MIPS compiler into MIPS R3000 BE ELF executable. The resulting ELF file is loaded into MIPS VM with the ELF loader. The VM executes the input executable. Communication Manager implements syscalls handlers, which can be used by the MIPS program during execution. Finally, the zkVM generates an execution trace for the Prover. The Prover then creates a ZK Proof. +Any program written in C, Go, Rust, etc., can be compiled using a generally available MIPS compiler into MIPS R3000 BE ELF executable. The resulting ELF file is loaded into the MIPS VM with the ELF loader. The VM executes the input executable, and the Communication Manager implements syscall handlers, which can be used by the MIPS program during execution. Finally, the zkVM generates an execution trace for the Prover, who then creates a ZK Proof. -The zkVM will consider different blockchain nodes as its computations and enable them to process their private transactions and provide a ZKP to prove the validity of their results. +The zkVM considers different blockchain nodes as its computations and enables them to process their private transactions and provide a ZKP to prove the validity of their results. -It carries out the execution of the MIPS program and meticulously verifies the input batch. As a result of this execution, an execution trace is generated, capturing the detailed sequence of operations. This execution trace serves as input for the subsequent step in the process, as it is handed over to the ZK Prover for further processing and generation of a ZK proof. Then the prover generates a ZKP proof based on the program’s execution trace. +During the execution of the MIPS program, the zkVM meticulously verifies the input batch. As a result of this execution, an execution trace is generated, which captures the detailed sequence of operations and serves as input for the subsequent step in the process. This trace is handed over to the ZK Prover for further processing and generation of a ZK proof.