@woben.near [Posted on Developer DAO Board](https://near.social/#/devgovgigs.near/widget/Post?id=456) ## Idea: zk light client sync Node synchronization is a pain point for node operators today. There are plans to improve time to sync by implementing light client sync, i.e, sync to the most recent epoch as a light client and then transition to regular sync (header sync, state sync, block sync). While light client sync significantly reduces the syncing time, it still requires syncing one light client block per epoch and may still take some time due to network delays. One idea to further improve on that is to reduce light client sync to only downloading one light client block and verifying one (recursive) zero-knowledge proof that the light client block is valid. This essentially reduces the complexity of the light client sync from O(n) where n is the number of blocks on mainnet to O(1). There are two main steps to implement this idea: * Implement zero-knowledge proofs for light client blocks. I believe some teams are already working on that. * Integrate zk proofs for light client into the synchronization logic in [nearcore](https://github.com/near/nearcore). There are some complications here, however. For example, if the proof generation time is too long, it may be used as a vector of DDOS attack and some kind of rate limiting is needed.