For a general Calderón-Zygmund operator T on R N , it is shown thatfor all Muckenhoupt weights w ∈ A2. This optimal estimate was known as the A2 conjecture. A recent result of Pérez-Treil-Volberg reduced the problem to a testing condition on indicator functions, which is verified in this paper. The proof consists of the following elements: (i) a variant of the NazarovTreil-Volberg method of random dyadic systems with just one random system and completely without "bad" parts; (ii) a resulting representation of a general Calderón-Zygmund operator as an average of "dyadic shifts;" and (iii) improvements of the Lacey-Petermichl-Reguera estimates for these dyadic shifts, which allow summing up the series in the obtained representation.