ZK-WASM

https://github.com/DelphinusLab/zkWasm

Bring generic applications into Layer 2 over blockchains via Delphinus-ZKWASM.

Introduction

The technology trend of blockchain currently mainly focuses on two tracks. One is on increasing the TPS and volume of transactions and the other is on improving the programming model of smart contracts to make the contracts scale to large applications.

For the first track, the layer2 technologies are developed extensively to enhance the TPS and volume for block-chain transactions, including optimistic rollup, zk rollup, zkstark, etc. Recently the great idea of ZKEvm was developed, which provides a way for porting solidity contracts to layer2 without changing the compiled bytecode. Once this technology becomes mature, it will help layer 2 establish an ecology quickly by absorbing existing solidity contracts.

However, since evm bytecode is not supported by most of the programming languages, its potential ecology is still a bit far from the leading programming community that uses (C,C++, java, rust, swify) to build their applications.

Regarding the second track, there are more and more block-chains starting to support Web Assembly as their bytecode for compiled smart contracts.

WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machine. It is designed to be a portable compilation target for various programming languages including (.Net, AssemblyScript, C, C#, C++, Clean, COBOL, D, Eel, Elixir, F#, Faust, Forest, Forth, Go, Haskell, Java, JavaScript, Lisp, Lua, Ruby, Rust, Scheme, Swift, TypeScript).

The adoption of WASM will bring more traditional programmers into the world of blockchain. Thus the demand for a nice inter-play framework between WASM contracts and traditional applications and libraries is obvious.

Since traditional WASM application is of high volume and TPS, it is reasonable to predict that the layer2 technology on WASM-based application is going to be the merge point of the above two tracks. Thus, we set our mission to build a ZKWASM-based layer2 framework to connect the traditional WASM community (including web, gaming, office, and social applications) with decentralized applications running on the blockchain.

More details:

Testnet of proving node can be found at http://zkwasm-explorer.delphinuslab.com/

Tutorials available at https://delphinuslab.com/tutorial/

ZKWASM emulator source code can be found at https://github.com/DelphinusLab/zkWasm

Proof batching can be found at https://github.com/DelphinusLab/halo2aggregator-s

Road Map:

  • Proof of concept (2022):
    • Supporting a minimum set of wasm instructions.
    • A demo virtual machine that runs a set of wasm instructions and generates ZK proofs.
    • Implementing a recursive zksnark scheme thus solves the scalability problem.
  • Full implementation of ZKWasm (2023)
    • Supporting the full instruction set of ZKWasm.
    • Building a demo game to illustrate the power of our ZKWasm framework.
  • Providing a development SDK (2024)
    • Traditional WASM developers port their existing program onto our layer2 framework with minimal code change.
    • Provide an incentive framework to establish a financial system so ZK computing power providers can earn tokens from application developers and users.
  • Full delivery of a decentralized chain that can connect other blockchains with traditional applications (2025)
    • This will be a new definition of Web3 since web applications developed in WASM can be seamlessly backed by blockchain technologies.