# Research DarkFi maintains a public resource of zero-knowledge and math research in the [script/research](https://github.com/darkrenaissance/darkfi/tree/master/script/research) directory of the repo. It features simple sage implementations of zero-knowledge algorithms and math primitives, including but not limited to: * [ZK](https://github.com/darkrenaissance/darkfi/tree/master/script/research/zk) * [bootle16](https://github.com/darkrenaissance/darkfi/blob/master/script/research/zk/bootle16.py) (precursor to sonic) * [sonic](https://github.com/darkrenaissance/darkfi/blob/master/script/research/zk/sonic.sage) * [plonk](https://github.com/darkrenaissance/darkfi/blob/master/script/research/zk/plonk.sage) * [halo1](https://github.com/darkrenaissance/darkfi/blob/master/script/research/zk/halo1.sage) and [halo2](https://github.com/darkrenaissance/darkfi/blob/master/script/research/zk/halo2.sage) * [curve trees](https://github.com/darkrenaissance/darkfi/blob/master/script/research/zk/curve_tree.sage) * [FFT](https://github.com/darkrenaissance/darkfi/tree/master/script/research/zk/fft) * [groth16](https://github.com/darkrenaissance/darkfi/tree/master/script/research/zk/groth16) * [bulletproofs](https://github.com/darkrenaissance/darkfi/tree/master/script/research/zk/bltprf) * [Poseidon hash](https://github.com/darkrenaissance/darkfi/tree/master/script/research/poseidon) * [x3dh](https://github.com/darkrenaissance/darkfi/tree/master/script/research/x3dh) double ratchet algorithm used in signal. * [Various EC math](https://github.com/darkrenaissance/darkfi/tree/master/script/research/ec) such as valuations, riemann-roch basis, hyperelliptic curves, divisor reduction.