def prove(x,beta,kw,y):
<EOL>assertScalarType(kw)<EOL>assertType(beta, G1Element)<EOL>assertType(y, G1Element)<EOL>Q = generatorG1()<EOL>p = Q*kw<EOL>v = randomZ(orderG1())<EOL>t1 = Q*v<EOL>t2 = beta*v<EOL>t1.normalize()<EOL>t2.normalize()<EOL>c = hashZ(Q,p,beta,y,t1,t2)<EOL>u = (v-(c*kw)) % orderG1()<EOL>return (p,c,u)<EOL>
Generate a zero-knowledge proof that DL(Q*kw) = DL(beta*kw) where
<Q> = G1.