Ditto's documentation says that shorters are compensated for the risks they take on because they are given the yield of the zETH of the long user they matched with, allowing them to earn more than they would have just holding staked ETH. But the maximum zETH tithe percentage (which is taken from their yield) is 33%, which means they can lose up to a third of their yield, and the initial margin is 5x. By adding the collateral of the long user, they gain 20% more yield but with a zETH tithe of 33%, they may end up with less than if they just held staked ETH.
The maximum zeth tithe percentage should take the minimum initial margin into account. It should be no more than (and probably should be less than, if you want to incentivize people to short) a percentage equal to (1/initial minimum margin) * 100.
This function is OwnerFacet.sol allows the tithe to be as high as 33.33%:
This function in LibAsset.sol sets initial minimum margin to 5:
Currently this is not an issue because zeth tithe is set to 10%, but owner could always change it. User should also be aware that the owner could have it set to 10% now but increase it higher later, such that they are now losing yield compared to just holding staked ETH (especially because you are taking on a lot of additional risk placing your staked ETH into another contract). The impact of this issue is that people may hesitate to short on Ditto, especially if the zeth tithe is near or above a percentage equal to (1/initial minimum margin) * 100. If people don't short on Ditto, then no pegged assets will be created, and there won't be much liquidity on the exchange.
Manual review
Make the maximum zeth tithe percentage equal to less than (1/initial minimum margin)*100. You could also consider updating it automatically whenever initial minimum margin is increased.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.