Point system flaw?



You've played 45 Daily games. Your opponent played only a handful of games (all against you, by the way...?) That means your opponent has a higher Glicko RD rating, which is a compensatory value to make sure players in the beginning can get corrected to their likely ELO quicker than someone who's already played a lot of games and whose ELO is already pretty on point.
That's why your opponent lost so many points and you only gained 18 points. Someone who's already played a lot of games (50+) isn't likely to gain more than 20 points over any opponent because of the Glicko RD rating.

https://support.chess.com/article/210-how-do-ratings-work-on-chess-com
There is a difference between "points" and "rating points". On this site, "points" refer to a measure of how active a user is on the forums. What you are referring to is "rating points".
It has something to do with rating deviation (RD) values. The number of rating points you win or lose may be different from your opponent depending on (i) the difference in rating points and (ii) the number of games played by each player.
Since you only won 18 rating points, you must have played a lot of games beforehand. For Live games, I only earn a maximum of 16 rating points from winning a game, regardless of how high the rating of my opponent is, because I have established a sufficiently low RD value (for playing actively). In the case of your opponent, whom I have inspected, he/she has only played six games including yours. As such, the account is still in the relatively new stage where ratings are still unstable.