Cycle Detection is a foundational algorithm with a wide variety of applications. For example, while modern anti-money laundering (AML) detection systems include advanced techniques such as machine learning, cycle detection still plays a core role. This project explores how to produce zk-SNARKs proving a graph has no cycles, with an eye towards allowing banks to prove a specific customer passes an AML check. We implement our scheme using the Arkworks library, discuss some of the challenges and intricacies we discovered when working to prove graph properties, and benchmark our performance.
More information can be found in our explainer: https://medium.com/@ssolit/zycle-zk-snarks-for-cycle-detection-ad820fbc66bb