Adding a parameter and model that limit the ability for a very large maker to be systematically included in every transaction. #1718
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.