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协议在中的应用(待补充)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。