0%

Zcash区块数据结构解析

简介

Zcash(ZEC)由Zooko Wilcox-O’Hearn于2016年推出,基于Zerocoin协议,Zcash(ZEC)是一种去中心化,开放源代码,以隐私为重点的加密货币,可实现交易的选择性透明化。Zcash交易可以是透明的,也可以通过称为zk-SNARKs的零知识证明来屏蔽。这允许网络维护余额的安全分类帐,而无需透露各方或涉及的金额。代替发布支出授权和交易值,对交易元数据进行加密,并使用zk-SNARK证明没有人是不诚实的。

Zcash区块的结构

结构图

Zcash_block

Block Header

  • nVersion:版本号。
  • hashPrevBlock:前一个区块的哈希值。
  • hashMerkleRoot:内部字节顺序的SHA-256d哈希。 merkle根源自此块中包含的所有事务的哈希值,从而确保在不修改header的情况下不能修改这些事务。
  • hashReserved /hashFinalSaplingRoot:
  • nTime:时间戳,旷工打包区块的时间。
  • nBits:工作量证明的难度目标。
  • nNonce:随机数,用于工作量证明,矿工可以更改其任意字段以修改标头哈希,以产生小于或等于目标阈值的哈希。
  • solutionSize:Equihash解决方案的大小(以字节为单位)。
  • solution:Equihash解决方案

transactions

  • header:(version>=1)
  • nVersionGroupId:版本组ID(version>=3)
  • tx_in_count:此交易的输入数量(version>=1)
  • tx_in:交易输入(与bitcoin类似)(version>=1)
  • tx_out_count:此交易的输出数量(version>=1)
  • tx_out:交易输出(与bitcoin类似)(version>=1)
  • lock_time:锁定交易的时间(version>=1)
  • nExpiryHeight:块高度在{1 .. 499999999}范围内,之后交易将到期,或者为0以禁用到期时间(version>=3)
  • valueBalance:sapling花费的值减去output的值(对Zcash的交易过程不懂,所以不太懂这个的定义)(version>=4)
  • nShieldedSpend:
  • vShieldedSpend:
  • nShieldedOutput:
  • vShieldedOutput:
  • nJoinSplit:
  • vJoinSplit:
  • vJoinSplit:
  • joinSplitPubKey:JoinSplitSig公共验证密钥的编码(version>=2)
  • joinSplitSig:对整个TransacTion数据使用私钥进行的签名(version>=2)
  • bindingSig:是整个Transaction数据的签名(verson>=4)

小结

今天一开始想学习的是XRP(瑞波币),了解了一番,大体知道它的优点:

  • 打包一个区块的时间仅需几秒钟,而比特币需要10分钟
  • 交易记录的确认方式更加快速,所有节点一起确认,仅仅需要3至5秒钟,而比特币是一个节点一个节点的确认,速度大大降低,需要40至50分钟
    此外还了解到,XRP是一个去中心化、覆盖全货币币种的互联网金融交易系统,它的网关是资金进出如波系统的进出口,人们可以通过这个中介将各类货币注入或者抽离瑞波系统,它的货币供应量是1000亿。
    本来是想先把它的区块结构图画出来的,结果寻找半天无果,我也想过通过分析源码找出结构代码,但是能力有限,好在Zcash有一篇白皮书让我找到了,这才得到了区块结构,慢慢深入了解Zcash的交易过程吧,进而完善blog!
-------------本文结束感谢您的阅读-------------
#