Zero-knowledge problem of Pinocchio (verifiable computation) This is a similar (and further) question of 
Verification of Pinocchio (verifiable computation)

In Section 2.1, it said 


  the outsourced computation is a function, $F(u,w)$, of two inputs: the client’s input $u$ and an auxiliary input $w$ from the worker. A VC scheme is zeroknowledge if the client learns nothing about the worker’s input


But in section 3.1, Protocol 2, the verification function requires all the elements $c_k$, which I think contain the value of all the input wires (including $w$). So how can it hide $w$ from the client?  The Zero Knowledge section said that the GGPR’s rerandomization technique could be used, but the rerandomization is only added to $v(x),w(x),r(x)$, and I guess the client still have to know all the $c_k$? 

I've been confused on this for days. Can anyone please help me to understand how the ZK is done?
It is true that the verification procedure needs the values of the input wires, but "input wires" refers only to the wires of $u$, the value provided by the client.  The wires for $w$ are considered "middle wires", and are included in the computation of $v_{mid}$, $w_{mid}$, and $y_{mid}$ (i.e., their indices are included in $I_{mid}$).

On a higher level, the protocol does this:

The client sends (to the worker) values for some (not necessarily all, and possibly even zero) wires.  The wires for which a value is provided by the client are called the "input wires".

The worker sends (to the client) two things:


Values for some wires of the circuit whose values have not been provided by the client.  The wires for which a value is provided by the worker are called "output wires".  All wires that are not input or output wires are called "middle wires".
A proof of the following statement: It is possible to assign values to all the middle wires of the circuit so that "everything works", meaning that the input and output wires for every gate of the circuit are correct for the operation that the gate is supposed to perform, and moreover, the worker knows some such values.  This proof can be zero-knowledge; in that case it reveals nothing about the values of the middle wires.


The case where "input wires" (resp. "output wires") in the above sense correspond to the input and output wires of the circuit in the usual sense is actually just a special case, which corresponds to the "non-ZK" case discussed in the paper.  In the ZK case discussed in the paper, the "input wires" in the above sense correspond to only some of the input wires of the circuit: the wires for $u$. The wires for $w$ are "middle wires", so that the worker proves, in zero-knowlege, that it knows appropriate values for those wires.