Indeed, a solution to a computational
problem is merely a different representation of the information given;
that is, a representation in which the
answer is explicit rather than implicit.
For example, the answer to the question of whether or not a given Boolean
formula is satisfiable is implicit in the
formula itself (but the task is to make
the answer explicit). Thus, complexity
theory clarifies a central issue regarding representation; that is, the distinction between what is explicit and what
is implicit in a representation. Furthermore, it even suggests a quantification
of the level of non-explicitness.
In general, complexity theory provides new viewpoints on various phenomena that were considered also by
past thinkers. Examples include the
aforementioned concepts of solutions,
proofs, and representation as well as
concepts like randomness, knowledge,
interaction, secrecy, and learning. We
next discuss the latter concepts and
the perspective offered by complexity
theory.
Randomness. The concept of randomness has puzzled thinkers for
ages. Their perspective can be described as ontological: They asked
“what is randomness” and wondered
whether it exists at all (or is the world
deterministic). The perspective of
complexity theory is behavioristic: It
is based on defining objects as equivalent if they cannot be told apart by any
efficient procedure. That is, a coin toss
is (defined to be) “random” (even if one
believes that the universe is deterministic) if it is infeasible to predict the
coin’s outcome. Likewise, a string (or
a distribution on strings) is “random”
if it is infeasible to distinguish it from
the uniform distribution (regardless
of whether or not one can generate the
latter). Interestingly, randomness (or
rather pseudorandomness) defined
this way is efficiently expandable; that
is, under a reasonable complexity assumption (to be discussed next), short
pseudorandom strings can be deterministically expanded into long pseudorandom strings. Indeed, it turns
out that randomness is intimately
related to intractability. Firstly, note
that the very definition of pseudorandomness refers to intractability (i.e.,
the infeasibility of distinguishing
Figure 1. An illustration of the concept of zero-knowledge proof.
X
X is true!
???
!!
a pseudorandom object from a uniformly distributed object). Secondly,
as stated, a complexity assumption,
which refers to the existence of functions that are easy to evaluate but hard
to invert (called “one-way functions”),
implies the existence of deterministic
programs (or “pseudorandom generators”) that stretch short, random seeds
into long pseudorandom sequences.
In fact, it turns out that the existence of pseudorandom generators is
equivalent to the existence of one-way
functions.
Knowledge. Complexity theory offers its own perspective on the concept
of knowledge (and distinguishes it
from information). Specifically, complexity theory views knowledge as the
result of a hard computation. Thus,
whatever can be efficiently done by
anyone is not considered knowledge.
In particular, the result of an easy computation applied to publicly available
information is not considered knowledge. In contrast, the value of a hard-to-compute function applied to publicly available information is knowledge,
and if somebody provides you with
such a value then it has provided you
with knowledge. This discussion is related to the notion of zero-knowledge
interactions, which are interactions
in which no knowledge is gained (see
Figure 1). Such interactions may still
be useful, because they may convince a
party of the correctness of specific data
that was provided beforehand. For example, a zero-knowledge interactive
proof may convince a party that a given
graph is 3-colorable without yielding
any 3-coloring.
Interaction. The foregoing paragraph has explicitly referred to interaction, viewing it as a vehicle for gaining
knowledge and/or gaining confidence.
Let us highlight the latter application
by noting that it may be easier to verify
an assertion when allowed to interact
with a prover rather than when reading a proof. Put differently, interaction
with a good teacher may be more beneficial than reading any book. The added power of such interactive proofs is
rooted in their being randomized (i.e.,
the verification procedure is randomized), because if the verifier’s questions
can be determined beforehand then
the prover may just provide the transcript of the interaction as a traditional
written proof.
Secrecy. Another concept related
to knowledge is that of secrecy. Knowledge is something that one party may
have while another party does not have
(and cannot feasibly obtain by itself)—
thus, in some sense knowledge is a
secret. In general, complexity theory
is related to cryptography, where the
latter is broadly defined as the study of
systems that are easy to use but hard to
abuse. Typically, such systems involve
secrets, randomness, and interaction
as well as a complexity gap between
the ease of proper usage and the infeasibility of causing the system to deviate from its prescribed behavior. Thus,
much of cryptography is based on com-plexity-theoretic assumptions and its
results are typically transformations of
relatively simple computational primitives (e.g., one-way functions) into
more complex cryptographic applications (e.g., secure encryption schemes).