Adding a parameter and model that limit the ability for a very large maker to be systematically included in every transaction.#1718
Conversation
…ines the maximum expected probability for a single maker to be included in a collaborative transaction. A value of 1 (100%) for this probability corresponds to the previous behavior. A value smaller than 1 allows to prevent a large maker from always being included in a transaction. For a given total amount of fidelity bonds, this mechanism allows to reduce the ability of an attacker to be systematically included in a transaction, and also to be the only entity included as makers in the transaction.
… the number of desired counterparties before entering the algorithm that limits the maximum expected probability for large bond makers. -Modifying which log statements are warning vs debug statements to reduce the number of lines printed on the console -Adding an extra warning log statement that prints the number of large makers that have their weight constrained by tx_max_expected_probability
8968600 to
8be8453
Compare
|
Say we have malicious operator running maker Let's say after this change, their probability gets slashed to Now, they make five new fidelity bonds So while it would be a one-time penalty for any existing actor, the sybil vector is still there and apart from having to split up their operations a bit more, nothing really changes to shift the incentives for an attacker for this vector. Arguably it could make the situation worse in practice. Combined with the impact on honest makers with larger bonds I believe this is why the response to this suggested approach has been lukewarm. Am I missing something? |
Adding support for tx_max_expected_probability, a parameter that defines the maximum expected probability for a single maker to be included in a collaborative transaction. A value of 1 (100%) for this probability corresponds to the previous behavior. A value smaller than 1 allows to prevent a large maker from always being included in a transaction. For a given total amount of fidelity bonds, this mechanism allows to reduce the ability of an attacker to be systematically included in a transaction, and also to be the only entity included as makers in the transaction.
The maximum probability of a maker to be included in each maker draw is calculated based on the number of remaining draws and the probability for such a maker to have been excluded so far in the transaction's previous single maker draws. This maximum probability per draw is used to effectively cap the fidelity bond values of makers that could be otherwise included in every single transaction. It makes it more expensive for an attacker to either prevent transactions or to be the only entity used as counter-party (it increases the total value of bonds required to be distributed across more maker bots in order to achieve the same attack. This is partly due to bond_value_exponent). Makers with less oversized bond values are unaffected by the cap and their incentives remain exactly the same as previously. The bond value cap rises with the median value of bonds and also with the number of makers that hold bonds whose values are distributed as such.