# zerocash notes, and highlights ## zerocoin drawbacks zerocoin isn't used in daily transaction due to performance limitations, but rather for anonymization, or laundrying coins through decentralized mix. performance bottleneck is that redeeming zerocoins requires double-discrete-logarithm proofs of knowledge which have size that exceeds 45kb, and 450ms to verify(at the 128-bit security level), it uses fixed denominations, can't pay in zerocoin directly, provides anonymity for the original address only. # minting minting coin $c := ((a_{pk}, PK_{enc}), v, \rho, r, s, cm)$ is: $$tx_{mint}:=(v,k,s,cm)$$ $$cm :=COMM_{s}(v||k)$$ $$a_{pk} :=PRF_{a_{sk}}^{addr}(0)$$ $$k:=COMM_{r}(a_{pk}||\rho)$$ # spending Spending the coin c: $$tx_{spend}:=(cm,sn,\pi)$$ $$sn:=PRF_{a_{sk}}^{sn}(\rho)$$ ### pouring pouring $coin^{old}$ into $coin_1^{new}$, $coin_2^{new}$. with $v^{old}=v_{pub}+v_1^{new}+v_2^{new}$ as follows: $$tx_{pour}:=(rt,sn^{old},cm_1^{new},cm_2^{new},\pi_{pour}, enc_{pk_{enc,1}^{new}}(C_1),enc_{pk_{enc,2}^{new}}(C_2)$$ $$C_i=(v_i^{new},\rho_i^{new},r_i^{new}, s_i^{new})$$ $\pi_{pour}$ is the pouring sk-snark proof of the spending/pouring process. address for each participant is the pair $(addr_{pk}, addr_{sk})$, $addr_{pk}=(a_{enc},pk_{enc})$, $addr_{sk}=(a_{sk}, sk_{enc})$