zcash

作者: 文博园 | 来源:发表于2018-11-14 11:32 被阅读0次

    ZCASH是基于bitcoin,加入了零知识证明加密交易信息,具体理论原理不在本文范围,读者可以参考zcash白皮书

    1.  术语:

    zk–SNARKs: zero-knowledge succinct non-interactive arguments of knowledge

    R1CS: Rank 1 Constraint System

    QAP: Quadratic Arithmetic Program

    secp256k1:是数字签名算法ECC中的一种,称为ECDSA曲线,参考https://zhuanlan.zhihu.com/p/33195438

    SHA3:属于RSA数字签名算法中的一种,在以太坊代码中可以找到Keccak256就是SHA3的一种实现,但不是SHA3最新标准的实现,参考https://zhuanlan.zhihu.com/p/33195438

    2. 使用的库:

    使用SCIPR实验室的零知识证明库libsnark

    https://github.com/zcash/libsnark 

    https://github.com/scipr-lab/libsnark

    3.  加密地址:

    参考z_getnewaddress

    4.  两种地址:

    T-address:公开地址

    Z-address:加密地址

    5.  两种key

    Viewing key

    Spending Key

    6.  交易:

    生成证明:

    参考r1cs_ppzksnark_prover、to_libsnark_proof

    具体实现在JSDescription的构造函数中,调用了JoinSplitCircuit:: prove 最后保存到类JSDescription的proof中

    加密:Commitment = HASH(recipient address, amount, rho, r)

    Nullifier = HASH(spending key, rho)

    7.  校验证明:

    使用ProofVerifier:: check 调用库函数r1cs_ppzksnark_verifier_strong_IC

    8. 四个级别:

    Privacy:input output都隐蔽,z-address发往z-address

    Deshielding:input 隐蔽,z-address发往t-address,

    Shielding:output隐蔽,t-address发往z-address,

    Public:input output都不隐蔽,t-address发往t-address

    9.  交易签名:

    采用了ed25519算法,zcash交易的零知识证明、签名需要的公钥、密钥使用ed25519算法生成的,详细参考函数:crypto_sign_keypair

    签名参考函数sign_send_raw_transaction

    https://github.com/zcash/zcash/blob/master/src/wallet/asyncrpcoperation_sendmany.cpp#L660

    10. 性能

    creating a shielded Zcash transaction can take up to40 seconds

    verifying that a transaction is valid only takesmilliseconds

    11. 调试

    ./configure --enable-debug

    ./zcutil/build.sh CXXFLAGS="-g -ggdb -O0"

    12.  通信

    RegisterNodeSignals 使用slot/signal的方式

    enum {

        MSG_TX = 1,

        MSG_BLOCK,

        // Nodes may always request a MSG_FILTERED_BLOCK in a getdata, however,

        // MSG_FILTERED_BLOCK should not appear in any invs except as a part of getdata.

        MSG_FILTERED_BLOCK,

    };

    相关文章

      网友评论

          本文标题:zcash

          本文链接:https://www.haomeiwen.com/subject/oqidfqtx.html