用户意见反馈

请在下面填写您遇到的问题或意见建议,并留下您的联系方式,
我们将为您提供更好的产品和服务。

您的邮箱地址

请详细描述您的问题或建议*

上传截图支持 jpg,jpeg,png,gif等图片格式,图片小于5MB

取消提交
举报
  • 内容涉嫌抄袭,代表月亮消灭他/她
  • 发布不实消息,画个圈圈诅咒他/她
  • 诱导投资,放毛毛,揍他/她
  • 侵犯名誉、隐私,这个借一步说话
  • 其他
具体描述(选填):
取消提交
我要爆料

填写邮箱地址/手机号码(仅管理人员可见)

请详细描述您要爆料的内容*

上传截图支持 jpg,jpeg,png,gif等图片格式,图片小于5MB

取消 提交
提交网址
常用工具
取消 提交

投稿奖励Token领取申请 我的奖励

选择您要兑换的Token

填写兑换文章信息

请填写您在链向财经平台已审核通过且未申请兑换Token的文章

*兑奖信息一旦提交将无法修改,请认真核对兑换规则及接受地址

取消 提交

已成功提交审核

期待您更多优秀的作品

Token奖励领取最新状态,可前往
个人中心“我的奖励-投稿奖励”查看

后,弹窗自动关闭

扫码领取奖励 更多详情

链小象(CFOR)未来可兑换比特币、以太坊、瑞波、EOS等区块链资产;链向财经合作区块链项目资产;链向财经应用内的增值产品和服务、链向财经主办活动的奖品。

  • 15014
  • 1
  • 喜欢
  • 举报
  • 分享到
  • 微信
    打开微信“扫一扫”,打开网页后点击屏幕右上角“分享”按钮
  • 空间
  • 微博
  • twitter
  • facebook

如何在现有的区块链上增加隐私功能?

06-24 10:16

标签: QTUM 隐私

来源: QtumChain

者的话:近日,Qtum量子链发起2019全球线上隐私主题黑客马拉松,我们收到了许多关于大赛的问题——如何将Qtum与现有的隐私技术结合?哪些技术适合移植到Qtum上?在哪些具体的结合点上可以开发?本文通过结合Qtum与Zether的思考,希望带给你更多隐私方向的启发。

众所周知,区块链上交易和合约都处于透明状态,不适合部分商业应用场景。Zether通过智能合约赋予区块链隐私交易的功能,帮助了链上资产、投票、拍卖等应用的隐私化。可是目前Zether面临Gas过高的问题,那我们怎么通过Qtum降低Gas和增加预编译合约呢?

01

简介

区块链网络中,尽管用户的地址来自于随机生成的私钥,但地址和实体之间的对应关系还是有可能被交易所、商户泄漏,甚至被区块链数据的抓取和聚类算法所挖掘。这种程度的隐私性限制了商业场景的应用。

隐私币的热潮中,出现了包括Monero、ZCash、Grin和Beam在内具有隐私特性的公有链,而这些也已经被大多数用户所认可。但是它们使用的方法都需要对区块链系统进行较大的改动,想要在现有的区块链上去实现有一定的难度。

斯坦福大学的博士生Benedikt Bunz(Bulletproofs防弹协议发明者之一)、斯坦福大学教授Dan Boneh以及Visa研究部门,提出了一种基于以太坊智能合约的隐私协议:Zether。

Zether的基本想法是通过智能合约实现隐私交易——即隐藏交易的金额和账户的余额,并最终应用于拍卖、投票等场景中。为了满足智能合约基于Account的特性,它提出了ElGamal encryption、Pending transfer、Rolling over等机制。为了增加Zether和其他合约的交互性,它又增加了lock/unlock的功能。为了提升Bulletproofs的性能,它使用新的Σ-Bullets进行代替。

Zether提出之后,受到了广泛的关注。JP Morgan不但将其用于自己Quorum区块链系统中,而且还尝试对其进行进一步的改进。

Zether的最初设计文档位于[1],作者公布了部分源码[2]。JP Morgan对其的改进文档位于[3],源码位于[4]。

02

原理

已有的隐私交易方法,例如Confidential Transactions[5]与其衍生方法MimbleWimble[6],都是基于UTXO实现的。Zether的主要想法是将这一类方法应用到智能合约中,实现基于Account的隐私交易。为此,它对已有的方法进行了如下修改。

UTXO到Account

如果在智能合约中实现UTXO,会占用大量的存储空间。所以Zether的一大主要工作是将Confidential Transactions的UTXO模型改造为Account模型。

ElGamal encryption

Confidential Transactions使用了Pedersen commitments隐藏每个UTXO的金额。如果对方发送给你一个Pedersen commitments取值错误的UTXO,不会影响你其他UTXO的使用。

当改成Account模型的时候,需要对每个用户接收的UTXO进行金额累加,得到最终余额,存储于合约中。但如果直接对Pedersen commitments进行累加,其中一个的错误会导致最终余额的错误,影响所有金额的使用。

因此,Zether采用了ElGamal encryption的方式,用接收方的公钥来加密交易金额。这样,接收方就能验证加密金额的正确性,然后合入到余额中。

解决Front-running问题

交易的过程中,需要对交易金额和交易后余额进行范围证明。但在Account模型中,如果你发起交易的同时,另一用户给你发送了一笔交易,并且在你的交易之前打包进行了区块,这样余额就发生了改变,你交易中的范围证明就不再有效。

因此,Zether提出了Pending transfers和Rolling over的机制。即用户收到的交易并不立即合入到余额中,而是周期地合入。每个周期中,当你第一次与自己账户交互的时候,进行接收交易合入余额的操作。即,只有账户的所有者可以改变账户的余额。这样,Front-running就不会发生。

重放攻击保护

假定用户在某个特定的余额下发起了一笔交易。当用户再次出现这个余额时,则这笔交易能够再次生效。这种情况就称作Relay Attack(重放攻击)。为了防止Relay Attack,Zether参照了Ethereum的方式,在每个账号上加上了一个nonce。用户每发起一笔交易,nonce的取值就会增加。用户的交易都需要对nonce进行签名,这样就保证了每笔交易都无法被relay。

范围证明

Zether使用了Σ-Bullets替代Bulletproofs。Σ-Bullets是Bulletproofs和Σ-protocols的结合。它的特点是可以证明更为复杂的陈述,且证明和验证的过程更加高效。

03

思考

评价Zether

Zether的优点如下:

1.基于智能合约实现,对区块链底层逻辑不需要进行改动

2.基于Confidential Transactions方案修改,不需要zkSNARK那样需要信任的初始化过程

Zether的缺点如下:

1.Gas消耗太高。如图,每次Transfer需要7188k的Gas,其中6455k消耗在椭圆曲线相关计算上。

2.没有隐藏地址。相比MimbleWimble,Zether没有隐藏用户的地址。需要后续进一步的改进。

还有2点问题值得考虑:

  1. Zether官方并未对论文中的实现进行完全开源,所以无法对其进行充分验证。只能尝试对[4]中JP Morgan的改进算法进行验证。

  2. 需要考虑是否可以对Zether进行简化,减少椭圆曲线的计算次数,从而减轻对节点计算资源的消耗。



Zether & Qtum

Zether举例了4个主要的应用场景,包括Sealed-bid Auctions(私密竞标的拍卖)、 Payment Channels(支付通道)、Stake Voting(权益证明投票)、Privacy-preserving Proof-of-Stake(保护隐私的PoS)。其中,前两个是和隐私相关的商业应用场景,是Qtum当前重点关注的方向之一;后两者增加了PoS过程的隐私性,可适用于Qtum共识机制的改进。

Zether目前Gas消耗太高,无法有效应用于Ethereum。以太坊的一些EIP[7][8]可以降低其Gas,但需要很长的一段时间来实现这些改进。另外,通过增加预编译合约来实现隐私算法中一些常用的算法,也会对Zether的应用有很大帮助。这些改进都可以基于Qtum来实现。

未来计划

首先,需要在Qtum运行Zether的智能合约,查看其Gas消耗以及对节点计算资源的真实消耗。其次,需要深入调研其他基于智能合约的隐私方案,例如AZTEC[9]等。最后,可以考虑如何基于Qtum即将推出的x86虚拟机上增加一些隐私解决方案。

欢迎对隐私主题有兴趣的开发者一同加入2019 Qtum量子链全球线上隐私黑客松,共同探索隐私相关的解决方案。此次大赛也邀请了隐私协议 MimbleWimble 代表项目 Beam 与 Grin 的核心开发者担任此次大赛评委,跟开发者共同交流。更多黑客松细节请访问大赛官网:

https://hackathon.qtum.org/

(点击阅读原文或复制下方链接即可)

大赛官方交流渠道

戳这里寻找队友:

https://trello.com/b/g4LHnM5L/2019-qtum-privacy-hackathon-team-formation

技术交流群discord.:

https://discord.gg/mFFNZhB

大赛咨询reddit:

https://www.reddit.com/r/Qtum/

(选择频道:hackathon-2019)

*需科学上网

04

参考文献

[1] https://crypto.stanford.edu/~buenz/papers/zether.pdf.

[2]https://github.com/bbuenz/BulletProofLib/tree/master/src/test/java/edu/stanford/cs/crypto/efficientct/zether.

[3] https://github.com/jpmorganchase/anonymous-zether/blob/master/docs/AnonZether.pdf.

[4] https://github.com/jpmorganchase/anonymous-zether.

[5] https://elementsproject.org/features/confidential-transactions.

[6]https://github.com/mimblewimble/grin/blob/master/doc/intro.md

[7]https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1108.md.

[8]https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1109.md.

[9]https://github.com/AztecProtocol/AZTEC/blob/master/AZTEC.pdf.

+1

已有0人喜欢

本文经授权发布,不代表链向财经立场。如若转载请标注文章来源:链向财经(www.chainfor.com)

为了您能更及时的获取到最新热门资讯,请关注链向财经微信公众号:LXcaijing

发表评论
已有1 发布
    查看全部评论