A first node for use in a system, wherein the first node is configured to: determine a plurality of keys for enabling a computation by a plurality of worker nodes in the system, wherein the computation comprises a plurality of computation parts, each computation part being computed in a privacy-preserving manner by a respective committee of worker nodes of the plurality of worker nodes, at least one worker node being part of a committee for a first computation part but not of a committee for a second computation part, wherein the plurality of computation parts comprises one or more types of computation part, and wherein an output from one computation part to another computation part is a shared block; and publish the determined plurality of keys for access by at least one input node in the system, the plurality of worker nodes, and at least one recipient node in the system; wherein the plurality of keys comprises: a computation part prove key for each part of the computation for use by a worker node of the committee computing the computation part in proving that the worker node performed the computation part correctly; a computation part verification key for each part of the computation for use by a recipient node of the at least one recipient node to verify that the worker nodes in each committee performed the respective computation part correctly with respect to one or more input commitments, one or more shared block commitments, and output commitments or output commitment openings; a shared block commitment generation key for each shared block for use by a worker node of the plurality of worker nodes in determining a shared block commitment or a secret share of a shared block commitment for the shared block; an input commitment generation key for each input node and computation part combination for use by the input node in determining an input commitment for an input to the computation part; and an output commitment generation key for each recipient node and computation part combination for use by a worker node of the committee computing the computation part in determining an output commitment or a secret share of an output commitment for a result of the computation part. determine a plurality of keys for enabling a computation by a plurality of worker nodes in the system, wherein the computation comprises a plurality of computation parts, each computation part being computed in a privacy-preserving manner by a respective committee of worker nodes of the plurality of worker nodes, at least one worker node being part of a committee for a first computation part but not of a committee for a second computation part, wherein the plurality of computation parts comprises one or more types of computation part, and wherein an output from one computation part to another computation part is a shared block; and publish the determined plurality of keys for access by at least one input node in the system, the plurality of worker nodes, and at least one recipient node in the system; wherein the plurality of keys comprises: a computation part prove key for each part of the computation for use by a worker node of the committee computing the computation part in proving that the worker node performed the computation part correctly; a computation part verification key for each part of the computation for use by a recipient node of the at least one recipient node to verify that the worker nodes in each committee performed the respective computation part correctly with respect to one or more input commitments, one or more shared block commitments, and output commitments or output commitment openings; a shared block commitment generation key for each shared block for use by a worker node of the plurality of worker nodes in determining a shared block commitment or a secret share of a shared block commitment for the shared block; an input commitment generation key for each input node and computation part combination for use by the input node in determining an input commitment for an input to the computation part; and an output commitment generation key for each recipient node and computation part combination for use by a worker node of the committee computing the computation part in determining an output commitment or a secret share of an output commitment for a result of the computation part. a computation part prove key for each part of the computation for use by a worker node of the committee computing the computation part in proving that the worker node performed the computation part correctly; a computation part verification key for each part of the computation for use by a recipient node of the at least one recipient node to verify that the worker nodes in each committee performed the respective computation part correctly with respect to one or more input commitments, one or more shared block commitments, and output commitments or output commitment openings; a shared block commitment generation key for each shared block for use by a worker node of the plurality of worker nodes in determining a shared block commitment or a secret share of a shared block commitment for the shared block; an input commitment generation key for each input node and computation part combination for use by the input node in determining an input commitment for an input to the computation part; and an output commitment generation key for each recipient node and computation part combination for use by a worker node of the committee computing the computation part in determining an output commitment or a secret share of an output commitment for a result of the computation part.