1. 引言
天知道我为啥要手工画一张?因为我没能从网站扒下原图。。。
原图见 Dusk ECOSYSTEM ROADMAP - EAGLE EYE VIEW:
关键内容有:
- Bulletproofs + MLSAG签名
- BLSAG签名
- Zerocaf(对dalek-curve25519 EC operation的零知识证明 以及 对Sonny曲线的实现)
- PLONK proving system
- Sonny曲线
- Halo Infinite
- Plumo
- zkRollup
- Poseidon Hash 和 Poseidon Merkle Tree
- PLOOKUP
- rusk智能合约平台
2. Bulletproofs + MLSAG签名
相关代码实现参见:
- https://github.com/particl/particl-core 【Fork自bitcoin,由Particl团队开发】
quarkslab 对该代码库实现进行了审计,并于2019年7月5日形成了相应的审计报告:
Evaluation of Bulletproofs and MLSAG
其中:
- Bulletproofs:用于证明某值在某具体范围内,不需要泄露该值,从而可避免空气币的产生(preventing money creation)。
- MLSAG:为环签名算法,用于隐藏交易金额,同时支持Sender在不泄露身份的情况下对交易进行签名。
3. BLSAG签名
代码实现可参看:
- https://github.com/dusk-network/dusk-crypto 【Go语言实现】
BLSAG为基于Discrete Logarithm假设构建的linkable ring signature。
BLSAG的签名大小随着ring中member数量线性增长。
其本质为一种零知识证明,证明:
至少ring中的一个成员采用了指定的公钥对特定的消息进行了签名,而不会泄露具体是哪个成员签名的。
4. Zerocaf (EC operation 零知识证明)
代码实现参见:
- https://github.com/dusk-network/dusk-zerocaf 【Rust语言实现】
实际就是对dalek-curve25519 中的EC operations构建了相应的零知识证明。
其中也基于Ristertto Scalar field
实现了Sonny curve。
5. PLONK proving system
代码实现参见:
- https://github.com/dusk-network/plonk【Rust语言实现】
为基于BLS12-381曲线构建的PLONK proving system。
6. Sonny 曲线
代码实现参见:
- https://github.com/dusk-network/dusk-zerocaf 【Rust语言实现】
Sonny 曲线为一条新曲线,暂未形成论文。详细参数信息可参见上述代码库中的docs
和sage
文件夹内容。
Is there more detailed doc for Sonny curve? #99
7. Halo Infinite
详细见Boneh 等人2020年论文:
Halo Infinite: Recursive zk-SNARKs from any Additive Polynomial Commitment Scheme
为 Boneh等人2020年论文 《Efficient polynomial commitment schemes for multiple points and polynomials》 的扩展版。
8. Plumo 跨链扩容
具体见Gabizon等人2020年论文:
《Plumo: Towards Scalable Interoperable Blockchains Using Ultra Light Validation Systems》
9. zkRollup扩容
可参见博客 以太坊扩容方案之zkRollup
10. Poseidon Hash 和 Poseidon Merkle Tree
代码实现参见:
- https://github.com/dusk-network/dusk-poseidon-merkle
- https://github.com/dusk-network/merkle-benchmarks
- https://github.com/dusk-network/poseidon252
- https://github.com/dusk-network/hades252
参考论文见:
- Grassi1等人 2019年论文 POSEIDON: A New Hash Function for Zero-Knowledge Proof Systems
11. PLOOKUP
代码实现参见:
- https://github.com/kevaundray/plookup
- https://github.com/neidis/plonk-plookup
- https://github.com/AztecProtocol/plonk-with-lookups
参考论文见:
- Gabizon 等人2020年论文 plookup: A simplified polynomial protocol for lookup tables
12. rusk智能合约平台
rusk为Dusk的智能合约平台,详细见:
- https://github.com/dusk-network/rusk