Commitment and Signatures
Definition Commitment Parameters $\mathsf{pp} \gets \mathsf{Gen}(1^n)$. $\mathsf{com} \gets \mathsf{Commit}(m, r)$ $\set{0, 1} \gets \mathsf{Open}(\mathsf{com}, m, r)$. Binding: an adversary can’t open the commitment to a different message $m’$. Hiding: $\mathsf{com}$ does not reveal any information about the message $m$. One naive approach is to use hash. However, hash is not hiding. Pedersen commitment $\mathsf{Gen}(1^n)$: group $\mathbb{G}$ with order $q$ and random generators $g, h$. $\mathsf{Commit}(m, r)$: pick a random $r \gets \mathbb{Z}_q$, compute $\mathsf{com} = g^mh^r$. $\mathsf{Open}(\mathsf{com}, m, r)$: check if $\mathsf{com} = g^mh^r$. This scheme is computationally binding: if we express $h = g^x$ for some $x$, then finding $m’ \neq m$ such that $g^mh^r = g^{m+rx} = g^{m’ + r’x} = g^{m’}h^{r’}$ is hard by discrete log assumption. ...