The change in a player's ELO score after a game depends that player's position in the winners list, and how the player's current score compares to the other players'. The player's ELO score increases for every opponent that is behind them in the list, and decreases for every player ahead of them, but the amount of each score-shift depends on the difference between the two players' existing ELO scores. Beating a player with a higher ELO score is worth significantly more than besting one whose score is less than yours. Similarly, being defeated by a player whose ELO score was already larger than yours won't hurt your score as much as losing to someone who came to the table with a lower score.
All ELO scores are kept by the bookkeeper, computed from game records. Like the records, they are public knowledge, though currently there's no way to view them! In the near future, the bookkeeper will have an API for getting a player's ELO scores, or using these scores as a criteria when searching for opponents.
The Volity [the ELO system described in this Wikipedia article], giving each player/ruleset intersection an initial score of 1500 and then adjusting it after each recorded game that involves them. For any ruleset, a player's initial 20 games will have a K value of 30, and all games thereafter in that ruleset have a K of 15.