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
- jacqueswww1326 contributions 
- iamdefinitelyahuman996 contributions 
- fubuloubu791 contributions 
- charles-cooper644 contributions 
- DavidKnott361 contributions 
- davesque111 contributions 
- jakerockland100 contributions 
- vbuterin68 contributions 
- nrryuya40 contributions 
- tserg37 contributions 
- pipermerriam36 contributions 
- skellet0r32 contributions 
- ben-kaufman32 contributions 
- jamesray129 contributions 
- whb0723 contributions 
- JackieXu14 contributions 
- yograterol14 contributions 
- adrianhacker-pdx13 contributions 
- MadelineAu13 contributions 
- saikat04113 contributions 
- hskang910 contributions 
- jessebmiller9 contributions 
- gbisaga9 contributions 
- fulldecent9 contributions 
- pdaian9 contributions 
- Dan-Nolan9 contributions 
- siraben8 contributions 
- daejunpark7 contributions 
- liamzebedee7 contributions 
- michaelsproul7 contributions