  NuLink provides privacy-preserving technology for decentralized applications
via APIs. Users can securely store its valuable data, trade with others and so
on. To ensure the privacy and security of service provided by NuLink,
(zero-knowledge) proof systems are necessary. Zero-knowledge proof systems
allow the prover to make the verifier believe that a certain conclusion is
correct without providing any useful information to the verifier. In NuLink, we
are going to use (zero-knowledge) proof system in the following three methods:
1. Users store their data through NuLink in a decentralized manner. To ensure
that the storage clients are indeed storing the data, we employ proof of
storage systems. In this system, users prepare certain challenges that can only
be correctly answered by those who are actually storing the data. 2. Users have
the option to outsource computations to NuLink. To verify the correctness of
the computation results provided by the compute node, we require the node to
provide a proof of correctness via SNARK systems. When sensitive parameters are
used as inputs for computation, we utilize zk-SNARKs to prevent any potential
leakage of these parameters. 3. Users may choose to trade their data through
NuLink. To confirm that the buyer has sufficient digital funds and the seller
possesses the desired data, both parties can provide a proof via zk-SNARKs.
This builds confidence and prevents cheating during transactions. Using
zero-knowledge proof systems, we can ensure that all nodes in NuLink behaves
honestly and avoid cheating in the whole system.
