# [WW23] implementation > Lattice-Based Functional Commitments: Fast Verification and Cryptanalysis (https://eprint.iacr.org/2024/028) ### Survey on Implementation Components - Arithmetic over finite field and integer math - [Z_p[x]/(x^32 + R)](https://github.com/zhenfeizhang/lb-vrf/blob/master/src/poly32.rs) - mul - will need [NTT](https://github.com/zhenfeizhang/lb-vrf/blob/master/src/ntt.rs) - [Three approach](https://github.com/zhenfeizhang/lb-vrf/blob/master/src/poly256.rs): mul_trinary, mul_karatsuba, mul_school_bool - [sample random poly from modulo q](https://github.com/zhenfeizhang/lb-vrf/blob/03171c5831b730193a645ded9541d16b0d73e781/src/poly32.rs#L85C5-L96C6) - Lattice construction - [parameters](https://github.com/zhenfeizhang/lb-vrf/blob/master/src/param.rs) - [serde](https://github.com/zhenfeizhang/lb-vrf/blob/master/src/poly256.rs) ### Components in WW23 - Construct the l-succinct SIS assumption - use l_inf-norm for vectors and matrices - Gadget trapdoors - TrapGen - SamplePre - Functional Commitment for Constant-Degree Poly - Param instatiation - Setup - Commit - Eval - Verify