How does Ripple solve the sock-puppet problem during consensus? I'm under the impression that Ripple uses a consensus based system in order to determine which of two payments is the authoritative one, with the other getting rejected due to a lack of proponents. This form of decision making appears to be prone to a sock-puppet attack.

Would it be possible for someone to create a high value spend in one store and then negate it through a carefully timed sock-puppet attack such that the original   spend is outvoted by a lesser value payment that has vastly more (fake) backing? 

In short, how are resources consumed during the consensus process?
A key point in Ripple is that the consensus doesn't take everyone's opinions into account. Each user has a list of trusted nodes. It will not do much good for an attacker to create multiple anonymous, untrusted sockpuppet accounts.