Given a separation oracle for a convex set K c R.' that is contained in a box of radius R, the goal is to either compute a point in K or prove that K does not contain a ball of radius c. We propose a new cutting plane algorithm that uses an optimal 0(n log(K)) evaluations of the oracle and an additional 0(n2) time per evaluation, where K = TIR/C. " This improves upon Vaidya's 0(SO " n log(K) + n- 1 log(K)) time algorithm [Vaidya, FOCS 1989a] in terms of polynomial dependence on n, where 6) < 2.373 is the exponent of matrix multiplication and SO is the time for oracle evaluation. " This improves upon Lee-Sidford-Wong's 0(SO " nlog(K) + n3 logc)(1)(K)) time algorithm [Lee, Sidford and Wong, FOCS 2015] in terms of dependence on K. For many important applications in economics, K = Q(exp(n)) and this leads to a significant difference between log(K) and poly(log(K)). We also provide evidence that the n2 time per evaluation cannot be improved and thus our running time is optimal. A bottleneck of previous cutting plane methods is to compute leverage scores, a measure of the relative importance of past constraints. Our result is achieved by a novel multi-layered data structure for leverage score maintenance, which is a sophisticated combination of diverse techniques such as random projection, batched low-rank update, inverse maintenance, polynomial interpolation, and fast rectangular matrix multiplication. Interestingly, our method requires a combination of different fast rectangular matrix multiplication algorithms. Our algorithm not only works for the classical convex optimization setting, but also generalizes to convex-concave games. We apply our algorithm to improve the runtimes of many interesting problems, e.g., Linear Arrow-Debreu Markets, Fisher Markets, and Walrasian equilibrium.