Marcel Keller
Marcel Keller
The implementation always follows the protocol. Malicious behaviour isn't implemented because there are countless possibilities thereof, so there I cannot tell you how to do it.
I'm not quite sure how to understand the question. By malicious detection I meant that the parties are able to detect that some parties are malicious but not which one.
The malicious protocols execute checks and simply abort if the checks fail. This makes it moot trying to benchmark malicious behaviour because the malicious behaviour can happen at any time...
Not exactly. The identification of malicious behaviour happens through the MAC check, which is triggered by a number of events: 1. Every 1 million openings (hard-coded as `POPEN_MAX` in `Protocols/MAC_Check.h`)....
1. This is done here: https://github.com/data61/MP-SPDZ/blob/ac31098bb5dd04ca81c863c55b67233846be5740/Protocols/MAC_Check.hpp#L127 2. A plain call of `reveal()` sets the check flag (https://github.com/data61/MP-SPDZ/blob/ac31098bb5dd04ca81c863c55b67233846be5740/Compiler/types.py#L2378). This then leads the virtual machine to run the check after every round...