论文题目:Hawk: The Blockchain Model of Cryptography and
Privacy-Preserving Smart Contracts
作者:Ahmed Kosba, Andrew Miller, Elaine Shiy, Zikai Weny, Charalampos Papamanthou
来自:2016_S&P
内容提供者:yifan & lpl
Hawk是一个去中心化的智能合约系统,它使用编译器自动将私有智能合约编译生成一个有效的密码协议,保护了交易隐私。编译器编译过程分为三步:一、预处理。将程序分为公开合约和私有合约部分,公开部分可以直接在普通的加密电子货币平台上运行,私有部分作为Pinocchio算数电路编译器的输入,得到算术电路。二、电路增强。使用定制的电路集成工具组装电路,附加上密码约束。三、密码协议.将增强的算数电路作为zkSNARK库的输入。
Hawk首次同时实现交易隐私和可编程两种功能。Zerocash可以实现简单的转账交易的用户金额隐私保护,不适用于有智能合约的场景。比如拍卖,n个竞拍者先保密出价,最后公开自己的出价,得到获胜者。用户可能全程都不希望公开自己的出价,而且合约还能正常执行。为了解决这个问题,Hawk提出了一个新的计算架构。将合约分成 保密部分和公开部分。对于保密部分,引入了Manager参与。具体包含Freeze算法、Compute算法和Finalize算法。
以拍卖合约为例,用户、链和Manager需要做如下工作:
1, 用户执行类似Zerocash的铸币和融币算法产生Freeze信息发给区块链(其中包括用户币的承诺cm,序列号sn,merkle树根和zk-snark证明Z1)
2.在到达某个时间节点后,用户可以申请Compute过程。具体的,用户将币值、承诺随机数等信息用Manager的公钥加密,并做zk-snark证明Z2,将消息(Compute, 密文CT和证明Z2)发给区块链。
3.Manager收集到(Compute, Pi,密文CT)后,解密密文CT,得到用户的明文币值(还有用户承诺的随机数等)。判断谁是中标者,从而对各竞拍者输出进行重分配。产生新的输出币的承诺值coin'和密文ct,并证明其的确诚实的进行了合约运算和产生融币(zk-snark),证明记为Z3。将信息(finalize,Z3,{coin_i',ct_i},..)发给链平台。
4.用户收到(finalize,coin,ct)后,解密ct,将币存到自己钱包。
网友评论