- Study and summary of the latest Verkle Tree
- Run a node of Reth
- Fraud Proof Comparison https://norswap.com/bedrock-vs-nitro/
- Replayable geth-compiled op-program on top of wasm_exec.js https://github.com/ethstorage/optimism/tree/js-io/op-program#build-js-wasm-and-replay
- Replayable geth-compiled op-program with GOOS=wasip1 https://github.com/ethstorage/optimism/tree/js-io/op-program#build-wasi-and-replay-without-op-host-program
- zkWASM
- 利用 zkWASM 技术链接浏览器端应用 https://b23.tv/NTm7A8W
- https://www.youtube.com/watch?v=SzT7zHUuvm4
- Hostio design https://hackmd.io/@sinka/BJUIyufEc
- ZAWA paper
- Halo2 study @ 0xPARC: https://learn.0xparc.org/materials/halo2/learning-group-1/introduction
- Study and summary of other x fraud-proof proposals in https:/github.com/ethereun-optinsn/ecesysten-contrbutions/1ssues/61
- Explore geth compiled op-program
- OP Stack Grant
- Stage 2: Continuation
- Tracegen
- Segment memory dump
- Lookup optimization
- Dump parallelization
- Try-run with initial segment data and offload tracegen per segment to the prover
- Productize Segment ethstorage/zkWasm#4
- Exercise: U64 and U64 add/mul/div operations, Memory operations, Function call operations
- Smoke test memory measurement (< 32MB)
- Continuation Proof
- Learn continuation last write table
- Replay continuation in-memory code (branch cont_dev)
- DelphinusLab/zkWasm#198
- DelphinusLab/zkWasm#210
- Determine whether to push segment code first or later vs in-memory code
- (Frank) Prepare a wasm with about 5M~10M runtime instructions and determine the number of lines
- E2E in-memory segment with aggregation script
- (pending blocked by lacking circuit.data & name_advice) rlp testcase
- Completed a script that could help on batching + continuation
- A unit test to compare in-memory segment vs optimized segment
- (Po) Find continuation glue code (e.g., last write circuit)
- EID extension (20B)
- Continuation support for host
- Exercise: A simple write table with the last write table?
- (Frank) How does the aggregation/batcher work?
- zkWasm GPU/CUDA
- zkGo optimization
- Proof pre-image for Go initialization
- zkWASM optimization
- Parallelizing synthesize
- Replace wasm code to customized hostio (e.g., hash/signature/rlp/ssz)
- Keccak256 DelphinusLab/zkWasm-host-circuits#47 (by Grant)
- zk Fraud Proof in Rust
- Risc0 zkWasm performance comparison (by Grant)
- Single GPU profiling
- k = 23 / 24 benchmark
- Experiment with op-reth (Frank)
- Large memory support / prove speedup (Sinka)
- 32MB memory & code size
- 64MB memory is in progress
- Tracegen
-
Stage 1: zkGo
- Dry-run zkWASM
- Softfloat support issue (Frank/Qi) (link)
- No bulk memory such as memory.copy, memory.fill (Frank) link
- Set default impl of wasip1 (noop or template) (Po) link
-
static link with wasm-ld - or zkWASM with wasip1 default support (need to discuss with Sinka)
-
- Other zkWASM no support instructions?
-
Add env.wasm_exit support in zkWASM (sinka) - Add clean exit in zkGo
-
- zkWASM hostio support (Po)
- https://github.com/DelphinusLab/zkWasm-host-circuits
- https://github.com/DelphinusLab/zkWasm/tree/host-ops-1.3
- https://github.com/DelphinusLab/zkWasm-rust/blob/main/src/lib.rs
- wasm_input in op-program with node zkWASM emulator
- zkWASM private input using files
- Stage 1 Publication Preparation
- Article
- Better code organization
- Toolchain for zkWASM go compilation
- zkWASM node simulator
- zkWASM adapter
- Replace floating point opcode to softfloat?
- Or even better, remove them?
- Memory size issue: solved by removing cache in client (and be completed moved to server)
- Reduce memory to 39MB (or no GC 47MB) from ~300MB
- External Oracle support in WASM (with WASI?) (Qi)
-
tiny-go compiled wasm with target=zkwasm - zkWASM emulator with provable state/trace
- Dry-run zkWASM
-
zkWASM optimization (Oct 11 ZK Fraud Proof Meeting)
- DUP
Compact overhead due to wasm generated from goroutine (large etable before zkMain()) - Indicator eid continuation problem
- Parallel dump segments
- DUP(Segment memory dump): Large Memory Occupation: find ot invent an alternative of std::vec to avoid OOM
- DUP
-
Explore Arb rust interpreter- How to replace wasm import with a rust func (https://github.com/wasmerio/wasmer/blob/master/examples/hello_world.rs) (Yanlong)
- (Skipped) Implement an interpreter with hostio (POSIX style) and replace existing Arb runtimes (and replay geth-compiled op-program)
- How is Wasm code replaced by wavm in Arb?
-
op-program compilation with WASM target [yanlong / po)
- [fastcache](https: //github.cam/ethstoragefastcache)
- https://github.cam/ethstarage/optimism/tree/ap-wasm-Pa/op-program
-
Golang host communication In WASM (WASI)
-
[zkwASM training (Q1)
-
WASH emulator used in Arb
- Arbitrum now uses a customized emulator as they use customized WAWM
-
mini-program (like Fib) with host func to input and be verified on zkWASM
-
Find a WASM emulator to replay block transition -
Explore tiny-go compiled wasm interpreter with go runtime with geth compiled op-program- Implement a fully-functional interpreter on existing go implementation (e.g., https://github.com/mattn/gowasmer/blob/matn/gowasmer.go)
- Implement an interpreter with hostio (POSIX style)
- Replay a simple program with I0 (read/write/open/close with similar IO size as op-program) compiled with geth
-
Explore tiny-go compiled op-program- Issue of compilatlon e.g., missing crypto library in tiny-go (or more libraries)? (code)
- Any issue of zkWASM running tiny-go compiled code, e.g., all syscalls/hostio to virtual functions? A: Expose 3-5 external functions
- Need to confirm the time and efforts with sinka on compilation and zkWASM support (Qi)
- Replay the tiny-go compiled op-program in any emulator (emulator can be node+wasm_exec.js, target=wasm/wasi)
- Replay op-program native binary
- Check memory size usage
- Check # instructions using Cannon example command line
- Replace hint/preimage IO with external functions (Qi)