Introduction
A zeroknowledge proof is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true without conveying any additional information apart from the fact that the statement is indeed true. It is used by privacypreserving chains like Zcash and Aleo, layer2 scaling solutions like ZKSync and StarkNet, and applications like Filecoin and Semaphore.
The generation of ZK proofs involves intensive computing with the bottlenecks usually being Fast Fourier Transforms (FFTs) and multiscalar multiplications (MSMs). Research into new algorithms has made such computations more efficient. However, proof generation for a block in a ZK rollup still takes between 10 to 20 minutes while sending a privacypreserving transaction can take more than a minute due to the time it takes to generate the proof in a local wallet or browser.
Hardware acceleration
Proof generation can be further optimized by using hardware optimized for ZK computations  GPUs, FPGAs, and ASICs. FPGAs are cheaper and more energyefficient than GPUs. ASICs, on the other hand, are expensive to develop and are less flexible than FPGAs as they need expensive development cycles for every individual ZKP logic design which themselves are at a nascent stage right now.
The Marlin network consists of nodes that provide FPGAs to which ZKproof generations can be outsourced. A scheduler running inside an Oyster delegates requests it receives from clients to nodes registered with it. Responses are similarly sent back to clients once the proof is generated by the node. Since Marlin nodes also feature enclaves (see Oyster), secrets that otherwise can't be shared publicly in ZK computations can be shared with thirdparty nodes in the Marlin network.
Use cases
As the generation of ZK proofs is computationally intensive and timeconsuming, applications that aim to be userfriendly benefit by outsourcing them to external hardware suited for such tasks instead of generating them locally in the user's device. Some obvious use cases are:

Mobile wallets: Mobile wallets that use ZK proofs for transactions can benefit by outsourcing the generation of proofs so as to not overload the device

ZK rollups: Since sequencers in ZK rollups might not have the best hardware for the generation of ZK proofs, the time and cost of proof generation can be minimized by timesharing common outsourced infrastructure