A system for anonymous job allocation and majority voting in a cloud computing environment, the system comprising: one or more processors and a non-transitory memory having instructions encoded thereon such that when the instructions are executed, the one or more processors perform operations of: broadcasting an executable job to a plurality of physical nodes, each of the physical nodes having a single control operations plane, COP, node and one or more service nodes associated with the COP node; creating, jointly amongst a plurality of COP nodes, a private job assignment schedule; distributing a set of redundant job assignments with value m to individual COP nodes pursuant to the private job assignment schedule, such that each individual COP node is only aware of its own assignment and corresponding job, wherein at least m COP nodes are assigned to the job with a probability greater than a predetermined threshold; executing, by the service nodes, the job assigned to the at least m COP nodes such that the service nodes each complete a task associated with the job and forward an individual result y i to their associated COP node; performing, jointly amongst the at least m COP nodes, a privacy-preserving result checking protocol such that the at least m COP nodes obtain secret shares of a majority result, where in performing the result checking protocol, a voting algorithm for determining the majority value is implemented, wherein the voting algorithm comprises a voting phase, wherein during the voting phase, each node P i assigned to the job secretly shares [ hash ( y i)]; each node P i not assigned the job shares nothing; each node P i computes v i j = b i j ⋅ hash y i; each node P i computes c j = ∑ i = 1 n v i j; and each node P i broadcasts [ c j] for all j, where [] is a notation for shares of a secret, v is an intermediate value, b is an input, 1 ≤ i ≤ n where n is the number of the nodes and 1 ≤ j where j is the the index of a job replica, wherein the majority result is the individual result y i obtained by a determined majority of the service nodes; and providing the majority result to a client. broadcasting an executable job to a plurality of physical nodes, each of the physical nodes having a single control operations plane, COP, node and one or more service nodes associated with the COP node; creating, jointly amongst a plurality of COP nodes, a private job assignment schedule; distributing a set of redundant job assignments with value m to individual COP nodes pursuant to the private job assignment schedule, such that each individual COP node is only aware of its own assignment and corresponding job, wherein at least m COP nodes are assigned to the job with a probability greater than a predetermined threshold; executing, by the service nodes, the job assigned to the at least m COP nodes such that the service nodes each complete a task associated with the job and forward an individual result y i to their associated COP node; performing, jointly amongst the at least m COP nodes, a privacy-preserving result checking protocol such that the at least m COP nodes obtain secret shares of a majority result, where in performing the result checking protocol, a voting algorithm for determining the majority value is implemented, wherein the voting algorithm comprises a voting phase, wherein during the voting phase, each node P i assigned to the job secretly shares [ hash ( y i)]; each node P i not assigned the job shares nothing; each node P i computes v i j = b i j ⋅ hash y i; each node P i computes c j = ∑ i = 1 n v i j; and each node P i broadcasts [ c j] for all j, where [] is a notation for shares of a secret, v is an intermediate value, b is an input, 1 ≤ i ≤ n where n is the number of the nodes and 1 ≤ j where j is the the index of a job replica, wherein the majority result is the individual result y i obtained by a determined majority of the service nodes; and providing the majority result to a client.