We all love proving to others our worth, so why not do that in ZK? Run a few commands and generate a snark that anyone can verify your ability to answer multiple choice questions correctly.
This project first turns the data in csv file into a merkle tree, with some structural features to add extra information to the tree. We also generate an inclusion proof for any specific datapoint. We also generate a zk snark to make this proof more succinct and easily verifiable (also hiding any information about other students). We also create bash commands to facilitate ease of use. I believe merkle trees are very cool data structures, and would love to see them used more often.
I used python code to read the csv and turn it into a MaintainedInformativeMerkleTree. In particular, this code stores the whole merkle tree and csv information. I have another variant of the tree that only remembers the root, so we can still prove inclusion, but we cannot generate new proofs. We then feed this proof to a zk circuit that generates a snark. This snark can then be used as a succinct proof of inclusion into the csv. I took the halo2-scaffold base code and modified it for my own purposes, which is kind of hacky I guess idk.