Since there is no cross-user information used, I wonder if perhaps the algorithm was specifically designed for implementation client side...