cryptape / ckb-crypto-demo

Fundamental cryptography libraries for CKB
4 stars 4 forks source link

bulletproof hash、曲线调研 #4

Closed timfaner closed 4 years ago

timfaner commented 4 years ago

bulletproof

DXPlus commented 4 years ago

Pedersen 承诺对椭圆曲线的选择

经过研究,Bulletproofs 对 Pedersen 承诺中椭圆曲线的选择没有特殊要求。Rust 实现的 Bulletproofs 库里使用的 Pedersen 承诺是采用的 curve25519 曲线,具体调用的库为curve25519-dalek . 关于为什么选择这条曲线以及为什么要用上面这个库,开发者的解释差不多是这个意思:第一,curve25519 曲线的运算速度快;第二,curve25519-dalek 库中实现了 Ristretto255,这个技术可以对椭圆曲线进行压缩,避免椭圆曲线的某个安全问题。总的来说采用这样的组合是经过考量的,在速度和安全上都有保障。

Fiat-shamir Heuristic 算法对哈希函数的要求

关于非交互转化所使用的库是 Merlin,是 Bulletproofs 开发组自己实现的库。Merlin 库中使用了 Keccak 哈希函数。至于离散对数的使用,目前通过源代码还没有找到相应的地方。

timfaner commented 4 years ago

Keccak hash 是一个hash算法族,里面分为SH3、SHAKE等(参照这里),Merlin库里面具体是哪一个算法可以再了解清楚一些。
@Mz-Z 之前在做hash 你们可以一起

DXPlus commented 4 years ago

好的,我问问明哲。我记得Merlin源代码里面好像有文档说 SHAKE ,我再仔细探究探究。