zcash在sprout版本中,计算MerkleTreeRoot时,应用Sha256计算hash。因为Sha256须要依赖的位运算,在ZK电路中是实现计算复杂度和老本高,因而在sapling版本中采纳 Pedersen Hash Function来计算hash。

Pedersen Hash Function来源于Pedersen Commitment。安全性依赖于离散对数问题。Pedersen Hash Function不是齐全伪随机,所以不能和Sha256一样,作为一个随机数源。

Pedersen Hash Function的计算规定与相关性。
1.Pedersen Hash
2.Mixing Pedersen Hash
3.Windowed Pedersen Commitment
4.Homomorphic Pedersen Commitment

Pedersen Hash Function与zcash的sapling协定在中的利用(待补充)