code: def proveG1(x,tTilde,kw,y):
      
      # Verify types
      assertType(x, G1Element)
      assertType(tTilde, G2Element)
  
      # Compute the proof.
      beta = pair(x,tTilde)
      Q = generatorG1()
      p = Q*kw
      v = randomZ(orderGt())
      t1 = Q*v
      t2 = beta**v
  
      t1.normalize()
  
      c = hashZ(Q,p,beta,y,t1,t2)
      u = (v-(c*kw)) % orderGt()
      return (p,c,u)
docs: Generate a zero-knowledge proof that DL(Q*kw) == DL(e(x,tTilde)^kw) where
      <Q> = G1.