  This paper studies the parameters for which Reed-Muller (RM) codes over
$GF(2)$ can correct random erasures and random errors with high probability,
and in particular when can they achieve capacity for these two classical
channels. Necessarily, the paper also studies properties of evaluations of
multi-variate $GF(2)$ polynomials on random sets of inputs.
  For erasures, we prove that RM codes achieve capacity both for very high rate
and very low rate regimes. For errors, we prove that RM codes achieve capacity
for very low rate regimes, and for very high rates, we show that they can
uniquely decode at about square root of the number of errors at capacity.
  The proofs of these four results are based on different techniques, which we
find interesting in their own right. In particular, we study the following
questions about $E(m,r)$, the matrix whose rows are truth tables of all
monomials of degree $\leq r$ in $m$ variables. What is the most (resp. least)
number of random columns in $E(m,r)$ that define a submatrix having full column
rank (resp. full row rank) with high probability? We obtain tight bounds for
very small (resp. very large) degrees $r$, which we use to show that RM codes
achieve capacity for erasures in these regimes.
  Our decoding from random errors follows from the following novel reduction.
For every linear code $C$ of sufficiently high rate we construct a new code
$C'$, also of very high rate, such that for every subset $S$ of coordinates, if
$C$ can recover from erasures in $S$, then $C'$ can recover from errors in $S$.
Specializing this to RM codes and using our results for erasures imply our
result on unique decoding of RM codes at high rate.
  Finally, two of our capacity achieving results require tight bounds on the
weight distribution of RM codes. We obtain such bounds extending the recent
\cite{KLP} bounds from constant degree to linear degree polynomials.
