In mechanism design, the Vickrey–Clarke–Groves (VCG) mechanism is a generic truthful mechanism for achieving a socially optimal solution whenever monetary transfers are available. It generalizes the Vickrey–Clarke–Groves auction into a general-purpose mechanism for social choice, which can be used to select any outcome from a set of possible outcomes.[1]: 216–233 However, the VCG mechanism also has several problems which keep it from fully solving the public goods problem, including its vulnerability to collusion and the issue of participants failing to pay their bids.