'How to prevent a sender to send different messages to different receivers in a distributed system?

I am trying to implement a [1] distributed key generation protocol. Supposing that there are 5 nodes and one of them Alice should broadcast its public key to others. Considering a broadcast channel is implemented as several p2p channels between each couple of nodes, Alice may attack the protocol by sending the different public keys to different nodes.

Does anyone know how to prevent this kind of misbehavior?

I have looked into an open-source implementation of the protocol, which uses the ETH smart contract as a broadcast channel. But I would like to solve the problem off-chain. Also, I have researched "reliable broadcast" which looks pretty complex to implement. AFAIK, reliable broadcast ensures a message delivered to ALL correct nodes, which is not identical to what I need. I want to prevent a malicious sender from sending different messages. But an honest receiver failed to receive is okay to me.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source