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数据(和收款人相关的那条), 仅供收款人使用
- 查看密钥: 交易的发送方或接收方分享给了第三方, 第三方就能够在区块链上查看备注栏,交易数量和收款人地址