The TwentyOne contract implements non-standard dealer stand rules where the dealer might continue hitting on hands of 17-20. This violates fundamental Blackjack rules where dealers must stand on 17 or higher, significantly impacting game fairness and player strategy.
Location: src/TwentyOne.sol
https://github.com/Cyfrin/2024-11-TwentyOne/blob/main/src/TwentyOne.sol#L142-L157
The contract randomly determines when the dealer will stand, rather than following standard Blackjack rules:
In standard Blackjack:
Dealers must stand on any hand of 17 or higher
This is a fixed rule, not randomized
Players rely on this rule for strategic decisions
The current implementation:
Randomly sets stand threshold between 17 and 21
Dealer might hit on 17-20 when they should stand
Creates unpredictable and non-standard gameplay
Game Fairness
Violates fundamental Blackjack rules
Players cannot use standard Blackjack strategy
Creates additional house edge not present in standard rules
Economic Impact
Players may lose when they should win under standard rules
Strategy becomes unreliable due to non-standard dealer behavior
Every game is affected by this rule deviation
Player Trust
Breaks expected game mechanics
May be perceived as intentionally unfair
Could lead to player dissatisfaction and reduced protocol usage
Manual Code Review
Standard Blackjack Rule Comparison
Implement Standard Dealer Rules:
Documentation Updates:
Clearly document dealer stand rules
Remove references to randomized stand threshold
Align documentation with standard Blackjack rules
Testing:
Add test cases verifying dealer stands on 17+
Verify dealer hits on 16 or below
Test edge cases around the stand threshold
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.