Skip to content
@sausaging

Quark Layer

As fundamental as a quark, Ethereum's Proof Verification and Aggregation layer.

Quark Layer

The quark layer is a decentralised proof verification and aggregation layer specifically built for verifying zero-knowledge proofs. Quark layer provides near-instant soft cryptoeconomic guarantees and delayed hard cryptographic guarantees on proof verification result(s).

Read more about Quark layer here: https://hackmd.io/@manojkogorle/quark-layer

What verification systems are supported now?

Support for verifiers to be added:

Quick Start

  • Rust and Golang must be installed.
  • Machine with >= 16 GiB of memory and cores >= 10.

Installation:

  • Clone all three repos in the same directory:
git clone https://github.com/sausaging/hyper-pvzk.git
git clone https://github.com/sausaging/jugalbandi.git
git clone https://github.com/sausaging/example-proofs.git

Hyper-PVZK contains the code behind the Quark layer's chain, while jugalbandi contains the hub and sausage instance that verifies proofs.

Starting Devnet:

  • Start hub and 5 sausage instances.
# Terminal 1: Rust Server Hub with port 8080
cargo run

# Terminal 2: Rust Server instance with rust port 8081 and unint port 8086
PORT=8081 cargo run

# Terminal 3: Rust Server instance with rust port 8082 and unint port 8087
PORT=8082 cargo run

# Terminal 4: Rust Server instance with rust port 8083 and unint port 8088
PORT=8083 cargo run

# Terminal 5: Rust Server instance with rust port 8084 and unint port 8089
PORT=8084 cargo run

# Terminal 6: Rust Server instance with rust port 8085 and unint port 8090
PORT=8085 cargo run
  • Start hyper-pvzk, with 5 nodes.
# Terminal 1:
./scripts/build.sh
./scripts/run.sh

# Terminal 2:
./build/morpheus-cli key import ed25519 demo.pk
./build/morpheus-cli chain import-anr

# Terminal 3:
./build/morpheus-cli chain watch

Verifing SP1 Proofs:

i. Register proof-related metadata.

# Run in Terminal 2 of Hyper-pvzk

./build/morpheus-cli testing register
  • The txID obtained will be the image ID for this proof instance.

ii. Register elf/proof with their hashes to their image ID.

  • Image ID is the txID obtained in (i).
  • Proof val type is 1 for ELF.
  • Root hash is the root hash of elf. (feature not yet implemented, so any string works).
# Run in Terminal 2 of Hyper-pvzk

./build/morpheus-cli testing register-image
  • Do the same for proof with the same image ID, but proof val type above 1.

iii. Broadcast elf/proof over the p2p network.

  • File name is the path of the elf file. Here it will be ../example-proofs/sp1/riscv32im-succinct-zkvm-elf
  • Chunk index can be anything.(feature not yet implemented)
# Run in Terminal 2 of Hyper-pvzk

./build/morpheus-cli testing broadcast
  • Do the same for proof, but with file path as ../example-proofs/sp1/proof-with-io.json

iv. Verify the correctness of proofs.

  • Verification type is 1 for SP1.
  • Time-out blocks are the number of blocks in which a validator needs to cast their vote. (feature may change)
# Run in Terminal 2 of Hyper-pvzk

./build/morpheus-cli testing verify

v. Query if a proof is valid or invalid.

# Run in Terminal 2 of Hyper-pvzk

./build/morpheus-cli testing verify-status
  • Follow the same procedure for JOLT, but with JOLT related data from example-proofs
  • RiscZero & miden involves a few changes from the previous process.

Popular repositories Loading

  1. go-relayer go-relayer Public

    Listens to blocks at the quark layer and submits data to the Avail DA

    Go 2

  2. jugalbandi jugalbandi Public

    Server-side implementation that incorporates verification for RISC0, Miden VM, SP1, Jolt, Plonky2

    Rust 1 2

  3. micro-quark micro-quark Public

    Quark Layer as a MRU leveraging Stackr

    TypeScript 1

  4. hyper-pvzk hyper-pvzk Public

    A Zero-knowledge verification layer built using Hypersdk.

    Go 2

  5. hypersdk hypersdk Public

    Forked from ava-labs/hypersdk

    Opinionated Framework for Building Hyper-Scalable Blockchains on Avalanche

    Go

  6. miden-examples miden-examples Public

    TypeScript

Repositories

Showing 10 of 12 repositories
  • sausaging/zkvm-1032’s past year of commit activity
    0 MIT 0 0 0 Updated Jun 13, 2024
  • hyper-pvzk Public

    A Zero-knowledge verification layer built using Hypersdk.

    sausaging/hyper-pvzk’s past year of commit activity
    Go 0 2 6 0 Updated May 24, 2024
  • sausaging/plonky2-verifier’s past year of commit activity
    Rust 0 0 0 0 Updated May 22, 2024
  • jugalbandi Public

    Server-side implementation that incorporates verification for RISC0, Miden VM, SP1, Jolt, Plonky2

    sausaging/jugalbandi’s past year of commit activity
    Rust 1 2 3 0 Updated Apr 23, 2024
  • .github Public
    sausaging/.github’s past year of commit activity
    0 0 0 0 Updated Apr 21, 2024
  • sausaging/example-proofs’s past year of commit activity
    0 0 0 0 Updated Apr 17, 2024
  • jolt Public Forked from a16z/jolt

    The simplest and most extensible ZK VM. Fast and fully open source from a16z crypto. ⚡ 💌

    sausaging/jolt’s past year of commit activity
    Rust 0 MIT 147 0 0 Updated Apr 10, 2024
  • hypersdk Public Forked from ava-labs/hypersdk

    Opinionated Framework for Building Hyper-Scalable Blockchains on Avalanche

    sausaging/hypersdk’s past year of commit activity
    Go 0 111 0 0 Updated Apr 5, 2024
  • go-relayer Public

    Listens to blocks at the quark layer and submits data to the Avail DA

    sausaging/go-relayer’s past year of commit activity
    Go 2 0 0 0 Updated Apr 1, 2024
  • micro-quark Public

    Quark Layer as a MRU leveraging Stackr

    sausaging/micro-quark’s past year of commit activity
    TypeScript 1 0 0 0 Updated Mar 31, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…