We prove that hashing n balls into n bins via a random matrix over GF(2) yields expected maximum load O(\log n / \log \log n). This matches the expected maximum load of a fully random function and resolves an open question posed by Alon, Dietzfelbinger, Miltersen, Petrank, and Tardos (STOC '97, JACM '99). More generally, we show that the maximum load exceeds r\cdot \log n/\log\log n with probability at most O(1/r^2).