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 programming languages, its potential ecology is still a bit far from the leading programming community that uses (C, C++, java, rust, and 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.

Our Approach

ZK-WASM: A web assembly virtual machine that emulates the web assembly and generates a ZKSNARK proof for the emulation so that the execution result can be synchronized to underlying blockchains.

ZK-Relayer: Compile attestation protocol into WASM and run it in ZK-WASM to create a trustless message communication relayer. The cloud service can be found at explorer.zkwasmhub.com

ZK-WASM-SDK: A development kit that leverages the power of ZK-WASM virtual machine which supports generic programming primitives: File, Database, ML, etc.

More Details in Learning Resource