Develop applications utilizing ZKP protocols. Submit a writeup detailing the application, the use of ZKPs and the security properties. In addition, submit a proof-of-concept implementation of the ZKP protocol and the blockchain smart contract using existing libraries and compilers.