There is a reduction in Sipser's book "Introduction to the theory of computation" on page 286 from 3SAT to Hamiltonian path problem.
Is there a simpler reduction?
By simpler I mean a reduction that would be easier to understand (for students).
Is there a reduction that uses linear number of variables?
The reduction in Sipser uses $O(kn)$ variables where $k$ is the number of clauses and $n$ is the number of variables. In other words, it is possible for the reduction to blow the size from $s$ to $O(s^2)$. Is there a simple reduction where the size of the output of the reduction is linear in the size of its input?
If it is not possible, is there a reason? Would that imply an unknown result in complexity/algorithms?