I’m exploring the intersection of ZK-proofs and Machine Learning (zkML). The idea is that we could prove a model was trained on valid data without actually seeing the data itself. Has anyone here actually implemented this in a production environment? I’m worried that the computational overhead of generating ZK-proofs for large datasets is still way too high to be practical for anything other than toy models.
3 answers
You are right to be skeptical about the overhead. Currently, the "proving time" for a full neural network is massive. However, we’ve found success using zkML for "inference verification" rather than the full training phase. For example, in a medical dApp, we can prove that an AI model correctly identified a condition without the user needing to upload their private health records to a centralized server. We use a framework called EZKL, which converts ONNX models into ZK circuits. It’s still slow, but for a 30-second medical scan, a 2-minute proof time is actually acceptable for the privacy gains.
Michelle, that’s a fascinating use case. Are you finding that the hardware requirements for the users to generate those proofs are too high for standard mobile phones?
I think Federated Learning is a much more mature solution for this right now. zkML is the future, but it’s still in the "research paper" phase for most enterprises.
I agree with Donna. Federated Learning is ready now, but keeping an eye on zkML is vital because it provides a much higher level of cryptographic certainty once it scales.
Alan, that was a huge bottleneck. To fix it, we use "Delegated Proving." The user encrypts their data locally, and a decentralized network of provers generates the ZK-proof. The provers never see the raw data, but they provide the compute power. It’s a complex architecture involving both Blockchain and Deep Learning, but it’s the only way to make it work on a consumer-grade smartphone today.