A decentralized trading protocol should have distributed control to prevent single points of failure and abuse of power.
The contract owner has excessive control over critical protocol functions including fee withdrawal, token allowlist management, and emergency withdrawals, creating centralization risks.
Likelihood:
When the owner's private key is compromised or stolen
When the owner acts maliciously or makes poor decisions
When the owner becomes unavailable (lost keys, death, etc.)
Impact:
Owner can disable trading for any token by setting allowedSellToken
to false
Owner can extract all protocol fees at any time without community approval
Owner can withdraw any accidentally sent tokens, potentially including user funds
Protocol becomes unusable if owner key is lost
Centralization Attack Scenario: This demonstrates how the owner can abuse privileges to harm users and the protocol.
Abuse Scenarios:
Immediate fee extraction: Owner can withdraw all accumulated fees without community approval
Market manipulation: Owner can suddenly disable popular tokens, causing market disruption
Selective censorship: Owner can prevent specific users from trading by disabling their preferred tokens
Emergency abuse: Owner can use emergencyWithdrawERC20
to extract legitimate user funds under false pretenses
Key compromise: If owner's private key is stolen, attacker has full control over the protocol
Availability risk: Lost owner keys make the protocol permanently unable to adapt or collect fees
Why this works:
Timelock mechanism: Forces a 48-hour delay before executing privileged actions
Community visibility: Users can see scheduled actions and exit if they disagree
Prevents immediate abuse: Compromised keys cannot instantly drain funds or disable tokens
Maintains owner control: Owner can still perform necessary actions after proper notice
Better alternatives for full decentralization:
Multi-signature wallet: Require multiple signatures for critical operations
DAO governance: Community voting on fee withdrawals and token changes
Immutable allowlist: Pre-approve tokens at deployment, remove owner token control
Automated fee distribution: Send fees to staking rewards or burn mechanisms
Proxy pattern with governance: Upgradeable contract controlled by token holders
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.