FAQ

FAQ

About ZKM

What challenges does ZKM aim to address?

The project aims to address several challenges, including the elimination of the 7-day Withdrawal Window, achieving Unified Security for all Layer 2 (L2) solutions and alternative Layer 1 (Alt L1) blockchain networks, as well as enabling tamper-proof Internet of Things (IoT) and cloud computing. By tackling these challenges, the project seeks to provide faster and more convenient fund withdrawals, establish a standardized security framework across diverse L2 and Alt L1 platforms, and enhance the security and integrity of IoT devices and cloud computing systems.

What are the main features of ZKM?

The main features of ZKM (Zero-Knowledge Proof MIPS) include:

  • One ZKP for All: By securing the CPU/MIPS beneath every VM, framework, or app above, all software above the CPU is secured. This allows everyone to claim Zero-Knowledge Proof (ZKP) security without needing to perform ZK proofing themselves.
  • Work with All VMs: ZKM sits beneath every Virtual Machine (VM), enabling compatibility with various blockchain smart contract engine VMs, such as MoveVM (zkMVM), WASM (zkWASM), and RustVM (zkRVM).
  • Plug and Play Adoption: Developers can adopt ZKM without changing or adapting their existing codebase for ZKP. It offers zero- or low-cost adoption and technology-agnostic adoption, allowing the use of different smart contract languages and even traditional programming languages.
  • Long-Term Stability: Leveraging the stability of the MIPS instruction set, ZKM eliminates concerns about constantly changing EVM instruction sets, providing a more stable environment for development.
  • Free Security for All: ZKM leverages the large, decentralized security base of Ethereum to validate all transactions, ensuring security for both blockchain and non-blockchain applications.
  • Better L2 Rollup User Experience: With ZKM-enabled Hybrid Rollup, users can enjoy an improved experience. Former Optimistic Rollup users benefit from instant confirmation and finality without waiting for a 7-day withdrawal period from Layer 2 to Layer 1. Depository users experience doubled security through ZKP verification and a fraud-proof challenge window that can be extended well beyond the standard 7-day window for safe transfers of large amounts.
  • Going Far Beyond L2s, and Beyond Blockchain: ZKM expands the scope of Optimistic Rollups' potential market. It extends its reach to alternative Layer 1 blockchains (such as BNB, Celo, etc.), providing the benefits of ZKM security. Additionally, ZKM enables tamper-proof Internet of Things (IoT) devices and enhances security in cloud computing environments.

In simple terms, what is zkMIPS?

zkMIPS is the first zero-knowledge virtual machine (zkVM) that supports the MIPS instruction set architecture. MIPS (Microprocessor without Interlocked Pipeline Stages) is a stable and widely adopted 32/64-bit computer architecture, particularly popular in IoT devices. zkMIPS leverages this stability to implement a zero-knowledge proof system for verifiable computing​​.\

At a basic level, how does zkMIPS work?

zkMIPS uses Plonky2 to prove the correctness of any program compiled to MIPS. This is achieved by breaking the program into small segments and proving each of them using STARK. The generated proofs are recursively combined using PLONK, resulting in a constant-size proof that can be verified on or off-chain.\

Why was there a need for an updated whitepaper?

Deviations from the original paper were made during the development of zkMIPS. The new version corrects the discrepancies between the documentation and the codebase to more accurately reflect the current state of zkMIPS, providing clear and accurate information to developers.

What are the key updates in the new whitepaper?

The new whitepaper provides a comprehensive overview of the MIPS instruction set and how zkMIPS compiles a program to a ZK proof. It details the high-level specifics of the proving routine, including how general-purpose registers, memory states, and instruction are managed. Furthermore, the paper offers a detailed explanation of how computation steps are transformed into polynomial forms, which is essential for creating succinct proofs. This involves encoding the computation trace as polynomials, ensuring efficient verification through arithmetization, and the use of interactive oracle proofs (IOPs)​​ like the STARKs and LogUp used to efficiently verify polynomial properties​​. In the coming weeks, the paper will be updated with a detailed description of the polynomial codification of each MIPS instruction.\

How can this paper be used, and by who?

This whitepaper bridges the gap between theoretical concepts and practical implementation. It ensures transparency and accuracy in zkMIPS documentation, making it an invaluable resource for various audiences. For developers, it simplifies understanding and working with the codebase. The explanations and examples provided in the document make the codebase more accessible and less daunting​​. The paper also connects academic knowledge with real-world applications, serving as a comprehensive guide to cover everything from the basics of zero-knowledge proofs to the specific implementation details of zkMIPS​​. Overall, it provides a detailed yet accessible overview of zkMIPS in a way that is more complete and accessible than any material previously published by ZKM Research​​.\

Why is zkMIPS significant?

zkMIPS is significant because it is the first zkVM to support the MIPS instruction set, a widely adopted and stable CPU architecture. By providing a verifiable computing environment for a well-established CPU architecture, zkMIPS opens up new possibilities for developers and researchers to explore zero-knowledge proofs in practical applications.

Why did ZKM choose MIPS over RISC?

MIPS offers greater stability and compatibility with higher-level languages, making it a more reliable choice for zkMIPS. Its long-standing presence in the industry and unchanged instruction set provide a stable foundation for developing a zkVM. In contrast, RISC-V allows custom instructions and is less stable over time, making MIPS a preferable choice​​.\

What can we expect from future updates?

ZKM Research will strive to make periodic updates to ensure that the documentation remains aligned with the evolving zkMIPS codebase​​. Future updates will include information on the design of MIPS instructions as polynomials and will also explore practical decisions made during the zkVM's development.

How can I contribute to zkMIPS?

ZKM Research is inviting collaborations to help improve this ever-evolving work. To offer your much appreciated feedback, please join the discussion in our Discord Server (opens in a new tab), or to make a code contribution, proceed to the zkMIPS GitHub (opens in a new tab). Do I need substantial hardware resources to build with zkMIPS?

Our freshly launched Proof Network is designed to address this exact concern by providing access to powerful servers and tools necessary for generating validity proofs. This infrastructure allows developers and projects to utilize zkMIPS without the need for high-cost, resource-intensive hardware setups. You can find more details about our proving service here: zkm.io/blog/zkms-proving-service-breaking-down-the-barriers-for-proof-generation

Where can I read the zkMIPS whitepaper?

Please refer to the following link for the full ‘zkMIPS: a high-level specification’ whitepaper: https://whitepaper.zkm.io/new_zkMIPS_white_paper.pdf (opens in a new tab)

About Hybrid Rollups

What is a Hybrid Rollup?

Hybrid Rollup is a Rollup protocol that combines two existing Rollup solutions, Optimistic Rollup and ZK Rollup, into a single cohesive protocol.

What are Optimistic and ZK Rollups?

Optimistic Rollup and ZK Rollup are two distinct Layer 2 scaling solutions for blockchain networks. Optimistic Rollup relies on optimistic execution and fraud proofs, while ZK Rollup utilizes zero-knowledge proofs for scalability.

What advantages does Hybrid Rollup offer?

Hybrid Rollup aims to give users the option to withdraw with a less expensive but longer 7-day withdrawal time of a Optimistic Rollup or a shorter, but more expensive withdrawal option of a ZK Rollup.

About MIPS

What is MIPS?

MIPS is a computer architecture that stands for Microprocessor without Interlocked Pipeline Stages. It is a reduced instruction set computing (RISC) architecture developed by MIPS Technologies.

What does the term "Interlocked Pipeline Stages" mean in MIPS?

"Interlocked Pipeline Stages" refers to a feature in some computer architectures where pipeline stages can be stalled or delayed due to dependencies between instructions. MIPS, on the other hand, does not have interlocked pipeline stages, which allows for simpler and more efficient pipeline execution.

What are the advantages of using MIPS?

Some advantages of MIPS include a simplified instruction set, high performance, low power consumption, and good code density. It is often used in embedded systems, digital signal processing, and other applications that require efficient execution of instructions.

Which companies have used MIPS in their products?

MIPS has been used by various companies, including Sony, Toshiba, Cisco Systems, and many others. It has been employed in gaming consoles, networking equipment, routers, and other devices.

What are some common instructions in MIPS?

Common MIPS instructions include arithmetic operations (add, subtract, multiply, divide), logical operations (and, or, not), memory access (load, store), control flow (branch, jump), and data movement (move, copy).

Can I run MIPS programs on a personal computer?

Yes, you can run MIPS programs on a personal computer using an emulator or simulator that emulates the MIPS architecture. There are various MIPS simulators available that allow you to execute and test your MIPS programs on a PC. One example of a MIPS emulator is the "MARS" (MIPS Assembler and Runtime Simulator) emulator. MARS is a Java-based emulator that provides a complete development environment for MIPS assembly language programming. It offers a graphical user interface (GUI) and supports a range of MIPS instruction sets.

Is MIPS an open-source architecture?

Yes, MIPS is now available as an open-source architecture. In 2018, MIPS Technologies was acquired by Wave Computing, which subsequently released the MIPS instruction set architecture (ISA) as open source.

Can I run operating systems like Linux on MIPS-based devices?

Yes, MIPS-based devices can run operating systems like Linux. Linux has been ported to MIPS architecture, and there are distributions available that support MIPS-based systems.

Is MIPS a 32-bit or 64-bit architecture?

MIPS can support both 32-bit and 64-bit architectures. The original MIPS architecture was 32-bit, but later versions and extensions introduced support for 64-bit processing.

Can I develop software for MIPS architecture using popular programming languages like C or C++?

Yes, you can develop software for MIPS architecture using popular programming languages like C or C++. MIPS compilers are available that can translate high-level code written in languages like C or C++ into MIPS assembly language or machine code.

Does MIPS support multi-core processors?

Yes, MIPS architecture supports multi-core processors. Multi-core MIPS processors have been developed, allowing for parallel execution of instructions and improved performance in multi-threaded applications.

Is MIPS suitable for real-time systems?

Yes, MIPS is often used in real-time systems. Its simplified instruction set and deterministic execution make it well-suited for applications that require real-time responsiveness, such as automotive systems, industrial control, and medical devices.

Can I use MIPS to develop software for embedded systems?

Yes, MIPS is commonly used for developing software for embedded systems. Its low power consumption, compact code size, and efficient execution make it well-suited for various embedded applications, including consumer electronics, automotive systems, and industrial devices. This was one of our motives when designing architecture for ZKM.

What is the difference between MIPS and ARM architectures?

MIPS and ARM are both RISC architectures but have some architectural differences. MIPS has a fixed instruction size of 32 bits, while ARM supports variable instruction sizes (16-bit and 32-bit). MIPS uses delayed branching, whereas ARM uses conditional execution. Additionally, the instruction sets and registers of MIPS and ARM architectures differ.

Can I use MIPS to develop software for embedded systems?

Yes, MIPS is commonly used for developing software for embedded systems. Its low power consumption, compact code size, and efficient execution make it well-suited for various embedded applications, including consumer electronics, automotive systems, and industrial devices.

About Zero Knowledge Proofs

What is a zero-knowledge proof (ZKP)?

A zero-knowledge proof is a cryptographic protocol that allows one party (the prover) to prove to another party (the verifier) the validity of a statement without revealing any additional information beyond the truth of the statement itself.

What is the purpose of zk proofs?

Zero-knowledge proofs are used to demonstrate the truthfulness of a claim or statement without disclosing any sensitive or confidential information. They enable secure and private interactions where trust and verification are required.

How does a zk proof work?

In a zero-knowledge proof, the prover convinces the verifier of the truth of a statement without revealing any underlying information. This is accomplished by constructing an interactive protocol that demonstrates knowledge of information that could only be known if the statement were true.

Are zk proofs secure?

Zero-knowledge proofs are designed to be secure and provide strong cryptographic guarantees. However, the security of zero-knowledge proofs relies on the underlying cryptographic assumptions and the proper implementation of the protocols.

Can zk proofs be verified without knowing the underlying secret?

Yes, zero-knowledge proofs can be verified by the verifier without knowing the underlying secret or information. The verifier can validate the proof's integrity and correctness based on the interactions and responses received from the prover.

What is a zk-STARK?

zk-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge**)** is a cryptographic proof system that enables the creation of zero-knowledge proofs for demonstrating knowledge of certain statements without revealing any sensitive information. It stands for Zero-Knowledge Scalable Transparent Arguments of Knowledge.

How does STARK differ from other zero-knowledge proof systems?

STARKs are different from other zero-knowledge proof systems like zkSNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) in terms of transparency and scalability. STARKs offer transparent setups, which means they do not require a trusted setup, and they are designed to be scalable for larger computations.

What are the advantages of STARKs?

STARKs offer several advantages, including transparency, which eliminates the need for a trusted setup ceremony. They also provide scalability, allowing for efficient verification of complex computations without sacrificing security or privacy.

What are STARKs used for?

STARKs have various applications, including privacy-preserving transactions, secure multiparty computation, verifiable computation, and proving integrity of large datasets. They can be used in blockchain technologies, ensuring privacy and security while verifying the validity of transactions or computations.

How does the verification process work with zkSTARKs?

In STARKs, the verifier can efficiently and publicly verify the correctness of the prover's claim without knowledge of any underlying information. The prover constructs a STARK proof that convinces the verifier that the statement is true without revealing the secret inputs.

Are STARKs post-quantum secure?

STARKs are believed to be post-quantum secure, which means they are resistant to attacks by powerful quantum computers. Their security relies on mathematical problems that are considered hard to solve, even with quantum algorithms.

Are STARKs computationally efficient?

STARKs are generally more computationally intensive compared to some other zero-knowledge proof systems. The proof generation and verification processes involve complex computations. However, ongoing research aims to optimize STARKs for improved efficiency.

What is Arithmetic Intermediate Representation (AIR) in the context of zero-knowledge proofs?

Arithmetic Intermediate Representation (AIR) is an intermediate language or format used to express arithmetic computations and constraints in a standardized manner within zero-knowledge proof systems.

How does AIR facilitate the generation of zero-knowledge proofs?

AIR provides a structured and standardized representation for arithmetic computations, making it easier to optimize and transform them into more efficient forms for generating zero-knowledge proofs.

What are the benefits of using AIR in zero-knowledge proofs?

Using AIR allows for the separation of the computation from the proof generation process, enhancing the analysis, optimization, and validation of zero-knowledge proofs. AIR also enables the efficient expression of arithmetic constraints in a higher-level format.