Adversary model: We assume that at most \(q\)  workers can be adversarial, i.e., they can return arbitrary values to the PS. The workers know the data assignment of all nodes, the parameters \(\mathbf {w}_t\)  and the defense at every iteration (omniscient attack); they can also collude. The adversarial machines may change at every single iteration. We will suppose that \(q < K/2\) . We emphasize that our attack setting is more powerful than random failures considered in related redundancy-based work [1]}, [2]}.
For each assigned file \(B_{t,i}\)  a worker \(U_j\)  will return the value \(\hat{\mathbf {g}}_{t,i}^{(j)}\)  to the PS. Then,
\(\hat{\mathbf {g}}_{t,i}^{(j)} = \left\lbrace \begin{array}{ll}\mathbf {g}_{t,i} & \text{ if } U_j \text{ is honest},\\\mathbf {*} & \text{otherwise}, \\\end{array}\right.\) 
