We want to add the feature to simulate malicious clients in the system.
The workflow
Initially, we thought of simulating nodes that send inf/0 values to the system.
But a better version for simulation is as follows:
So each node would get the weights of the previous round.
Now, to these weights the malicious clients will add some noise(maybe Gaussian noise, we can explore more things here).
This is better than the inf/0 one because it makes the system more robust in terms of detecting the outliers.
Now the various algorithms implemented to detect the malicious clients would come into play and detect these clients.
Implementation details
We need to create a class that will change the structure of Node. It will be like a map of <node, int>.
The node would represent the node_id and the int is the type of malicious client.
Types of malicious clients
We will have different classes representing the type of malicious clients. The various types can be in the form of malicious clients
Outlier Addition: sending outlier weights
Label Flipping: flipping the labels of their data
Byzantine Attacks: sending incorrect model updates/weights
Sybil Attacks: sending correlated updates to create a bias
Targeted Model Poisoning: degrading performance on a particular class while maintaining overall accuracy.
Free riding: not contributing any/useful updates but still receiving the global model.
Large model updates: sending large or complex updates that slow down the server’s aggregation process or cause memory overflow
Communication DoS: flooding the network with useless requests to create issues with the communication infrastructure
Idea
We want to add the feature to simulate malicious clients in the system.
The workflow
Initially, we thought of simulating nodes that send inf/0 values to the system. But a better version for simulation is as follows:
Implementation details
We need to create a class that will change the structure of Node. It will be like a map of
<node, int>
. The node would represent thenode_id
and theint
is the type of malicious client.Types of malicious clients
We will have different classes representing the type of malicious clients. The various types can be in the form of malicious clients