公链分析报告(6)--Zcash

Zcash

Zcash是zk-SNARKs的第一个广泛应用,zk-SNARKs是一种新颖的零知识密码学形式。Zcash的强大隐私保证源于Zcash中的屏蔽事务可以在区块链上完全加密,但仍然可以通过使用zk-SNARK证明在网络共识规则下验证为有效。

开发公司

Zerocoin

起源

零币,也叫Zcash,其前身为Zerocoin项目,这也是一种基于区块链的加密数字货币,并且它的总量跟比特币一样也是2100万枚,并且同样通过PoW算法进行挖矿发行。Zcash最大的特点是:提供了交易数据的隐匿性。

ZCash是bitcoin的分支,保留了bitcoin原有的模式,基于比特币0.11.2版代码修改的.ZCash钱包资金分2种: 透明资金(地址t开头)和私有资金(地址z开头). 透明资金类似比特币资金;私有资金加强了隐私性,涉及到私有资金的交易是保密不可查的,自动隐藏区块链上所有交易的发送者,接受者及数据.只有那些拥有查看秘钥的人才能看交易的内容.用户拥有完全的控制权,他们可自行选择向其他人提供查看秘钥.

当使用隐藏地址发送 ZEC 时,有关交易的数据被隐藏,也因此将余额发送回发送地址是可以被允许的方式。

区块链和零知识证明生成器的硬件要求

  • 每个区块的最高容量是 2 MB,每 2.5分钟出一个块,在一年后区块链的最大体积为 420 GB
  • C端自证的硬件要求:
    • 使用零知识证明创建交易的过程将占用 4GB RAM,并持续1至2分钟。虽然我们会在未来的版本中对这点进行升级,但这对于在Zcash发布后,想向隐藏抵制中发布 ZEC 的交易同样重要。将 ZEC 发送到透明的地址中不需要零知识证明,因此只需要占用很小的内存(相比于比特币的交易)。
    • 在Sapling发布之前,需要至少2GB的RAM才能生成屏蔽的Zcash事务
    • 证明的产生通常需要高计算强度的处理器才能创建
    • 支付降载 功能是解决允许在低功率等级的设备上使用 zk-SNARK产生证明 的课题
  • 节点客户端的硬件要求:
    • 64-bit Linux操作系统
    • 64-bit 处理器
    • 5GB 免费RAM
    • 25GB免费磁盘(块链的大小随时间增加)

共识 POW算法–Equihash

Equihash是由Alex Biryukov和Dmitry Khovratovich设计的工作证明算法。它基于计算机科学和密码学概念,称为广义生日悖论。
抗ASIC, 小矿工也能挖

Equihash是一种面向内存的工作证明,这意味着您可以进行多少挖掘,这主要取决于您拥有多少RAM。我们认为,在可预见的未来,任何人都不可能为采矿业建立具有成本效益的定制硬件(ASIC)。

多签交易

Zcash 支持多签名交易,也就是说,可以让交易需要两个乃至以上的签名才可以发出。但是,多签名交易必须是透明的,不能变成隐蔽交易。

智能合约

智能合约的执行需要透明性

比如,通过将 ZSL 添加至以太坊的代码库,可以为以太币的转账添加隐私功能,从而保护用户转账的私密性。但是智能合约的执行需要透明性。

密钥

这些密钥在上面讨论的公共参数仪式中生成,并在Zcash网络中的所有参与者之间共享

  • 支出密钥: 当花费匿名交易时,发送者使用他们的支出密钥来发布一个无效符号
    • Nullifier = HASH(支出密钥,rho)
  • 证明密钥: 发送方使用其证明密钥生成其输入有效的证明
  • 验证密钥: 通过用验证密钥检查证明者的计算,矿工检查匿名交易是否遵循共识规则

Zcash的证明生成方式的设计要求证明者预先做更多的工作,但它简化了验证,因此主要的计算工作被卸载到事务的创建者(这就是为什么创建一个屏蔽的Zcash事务可以占用到40秒,

  • 收款人的公钥: 使用收款人的公钥来加密交易给他的out数据(和收款人相关的那条), 仅供收款人使用
  • 查看密钥: 交易的发送方或接收方分享给了第三方, 第三方就能够在区块链上查看备注栏,交易数量和收款人地址

查询链上数据

匿名地址到匿名地址间的交易

透明地址到匿名地址间的交易

匿名与透明交易的数据结构

发布了58 篇原创文章 · 获赞 66 · 访问量 8169

猜你喜欢

转载自blog.csdn.net/wcc19840827/article/details/99580351