Suppose I have the witness $x$ and need to prove that I correctly computed $(g^x)^x$ to a verifier. $g$ and $g^x$ are public. The verifier asks me for $(g^x)^x$, but wants proof that I've given them the right answer.
Here's my attempt at a solution:
Let $X = g^x$ and $X' = (g^x)^x$
Step 1: Prover chooses a random $r$ and sends $R = g^r$ and $R' = X^r$
Step 2: Verifier sends a random $c$ (challenge)
Step 3: Prover sends $z = r + cx$ (response)
Step 4: Verifier checks if $g^z = RX^c$ and $X^z = R'(X')^c$.
I was wondering whether this is zero knowledge or just a proof of knowledge.