二、要害技能
2.两步转账机制:发送者先发送资金至区块链,吸收者再从区块链存入资金,以到达掩护收发两边的关联干系。
上周我们发布了云象研究中心在隐私掩护和零常识证明技能方面的最新研究成就《BlockMaze: An Effificient Privacy-Preserving Account-Model Blockchain Based on zk-SNARKs》,该论文针对账户模子区块链提出了一种基于zk-SNARKs零常识证明的高效隐私掩护方案BlockMaze,得到网络与信息安详规模CCF A类顶级期刊TDSC任命。本文就该方案详细研究内容举办详解。
如图1所示,每一个账户(A,B,C,D,E,F…)都包括两个余额,一个是明文余额(pt_balance),另一个是零常识余额(cmt)。个中cmt是真实余额的哈希值。
1.双余额模子:为了埋没账户余额,我们将账户余额由单余额模子扩展为双余额模子,别离为明文余额和零常识余额,零常识余额即余额的哈希值或余额理睬。
我们来展示一个详细的转账进程。以图3为例,初始状态时,发送方A的明文余额为1000,零常识余额为0。A首先将部门明文余额转化为零常识余额,因此明文余额变为500,零常识余额变为500。接下来,A从本身的零常识余额中转出300,获得零常识金额,并将其存放于区块链;B选择多笔转账零常识金额,并将个中的300存入其零常识余额。余额理睬可以将账户余额埋没起来,我们将账户A的余额理睬暗示为,是A的账户地点,是对应于的金额,是关联的序列号,是用于掩护的随机数,通过该理睬,账户A中值为的余额转换为(是果真的,可是其他人不知道它详细对应的金额);资金转移理睬则在埋没金额的同时生成一笔无明晰收款方的资金,A向B转账的资金转移理睬暗示为,是发送方A的账户地点,是转账金额,是收款方B的公钥,是用于掩护的随机数,是关联发送方A的的序列号,A通过该理睬将值为的转账金额转换为(会被转账方果真,可是其他人不知道它详细对应的金额,也不知道收款方)。
一、焦点道理
为了埋没账户余额,我们将账户余额由单余额模子扩展为双余额模子,别离为明文余额和零常识余额。明文余额的金额是果真的,而零常识余额对应的金额被埋没了起来。零常识余额通过余额理睬来实现,A的零常识余额在当地记录为,个中是只有A知道的奥秘数据,而会和明文余额一起存储到MPT(Merkle Patricia Tree)上,在区块链的记录中,A的零常识余额表示为(下面我们用代指零常识余额)。我们新增了Mint生意业务和Redeem生意业务用于同一账户余额转换,个中Mint生意业务将明文余额转换为零常识余额,Redeem生意业务将零常识余额转换为明文余额。
如图2所示,发送方在转账时,转出金额以零常识金额(留意与零常识余额的区别)的形式放在一颗Merkle树上;吸收方从个中将相应的零常识金额存入本身的账户。发送和吸收进程均由零常识证明zk-SNARK确保其安详和隐私。区块链验证者通过验证零常识证明执行转账操纵,可是无法得知转账金额可能收发两边干系。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。