My textbook states that CIRCUIT-SAT is in NP because you can guess an input and verify it in polynomial time.
My textbook also states that a problem is in NP if and only it has a polynomial-time verifier V(I, X) such that:
if I is a YES instance, then there exists an X s.t. V(I, X) = YES
if I is a NO instance, then for all X, V(I, X) = NO
I see how the textbook explanation satisfies case 1. Just feed the variables' assignment to the circuit and check the output. But what if I is a NO instance? Then all X must be passed through V(I, X). And since there is an exponential number of X's (each variable can be 1 or 0, yielding 2^n combinations for n variables), then even assuming computing the circuit output happens in constant time, the overall verification is O(2^n).
On a side note: Decision problems return a boolean: YES or NO. Then, how can one even verify the output of such a problem, if the X itself is not known? The only way I can see verification possible is to simply re-run the algorithm. I.e. the explanation given by the textbook above is not plausible because CIRCUIT-SAT returns a boolean (I), not the specific variable assignment (X). Since we don't know X, we cannot just feed X through the circuit and obtain an answer.