Utilities for Vyper
Convenient on-chain state compression via secure hashes and compiler-verified proofs
Screenshots



Problem Statement
https://github.com/vyperlang/vyper/issues/2892 Build support into the compiler (vyper) for storing a secure hash of arbitrary data (e.g. a struct), and then "unpacking" (validating) the data back from a user-provided "proof" in calldata. Smart contract developers can conveniently compress (hash) their data and re-hydrate it with the "proofs".
Solution
We used the Vyper compiler (Python3). Charles (on the vyper team) helped us get started by copying/modifying compiler primitives for arrays and abi.encode. From there, we modified the type details to make this work on arbitrary structs/type. So you can have Witness[MyStruct] or Proof[MyStruct]. Our team was brand new to EVM compilers, and we got the parsing working really quickly!
Hackathon
ETHNewYork 2022
2022
Contributors
- jacqueswww
1326 contributions
- iamdefinitelyahuman
996 contributions
- fubuloubu
791 contributions
- charles-cooper
644 contributions
- DavidKnott
361 contributions
- davesque
111 contributions
- jakerockland
100 contributions
- vbuterin
68 contributions
- nrryuya
40 contributions
- tserg
37 contributions
- pipermerriam
36 contributions
- skellet0r
32 contributions
- ben-kaufman
32 contributions
- jamesray1
29 contributions
- whb07
23 contributions
- JackieXu
14 contributions
- yograterol
14 contributions
- adrianhacker-pdx
13 contributions
- MadelineAu
13 contributions
- saikat041
13 contributions
- hskang9
10 contributions
- jessebmiller
9 contributions
- gbisaga
9 contributions
- fulldecent
9 contributions
- pdaian
9 contributions
- Dan-Nolan
9 contributions
- siraben
8 contributions
- daejunpark
7 contributions
- liamzebedee
7 contributions
- michaelsproul
7 contributions