Operator incentivization is not implemented properly, making it unlikely new operators will join and destabilization the network. #449
Labels
bug
Something isn't working
disagree with severity
Sponsor confirms validity, but disagrees with warden’s risk assessment (sponsor explain in comments)
duplicate
This issue or pull request already exists
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
responded
The Holograph team has reviewed and responded
sponsor confirmed
Sponsor agrees this is a problem and intends to fix it (OK to use w/ "disagree with severity")
Lines of code
https://github.com/code-423n4/2022-10-holograph/blob/f8c2eae866280a1acfdc8a8352401ed031be1373/contracts/HolographOperator.sol#L503
Vulnerability details
Description
Operators can choose which pod level to belong to, with each one having a different bond amount. The docs state :
"The probability of job selection is based on a specific pod being joined, and the number of Operators bonded in the specific Pod. "
This makes sense. Because the operator's only revenue is through fees collection for each operation, which is the same for every pod, the only incentive to go for a higher pod is higher frequency of job execution.
However, the crossChainMessage() code that is in charge of operator scheduling chooses an operator pod uniformally:
As a consequence, operators of different tiers make the same yield but have different bonded amount requirement and risk, making the platform uncompetitive.
Impact
Operator incentivization is not implemented properly, making it unlikely new operators will join and destabilization the network.
Tools Used
Manual audit
Recommended Mitigation Steps
Calculate the next pod to execute using a fairer distribution.
The text was updated successfully, but these errors were encountered: