编者的话:近日,Qtum量子链发起2019全球线上隐私主题黑客马拉松,我们收到了许多关于大赛的问题——如何将Qtum与现有的隐私技术结合?哪些技术适合移植到Qtum上?在哪些具体的结合点上可以开发?本文通过结合Qtum与Zether的思考,希望带给你更多隐私方向的启发。 众所周知,区块链上交易和合约都处于透明状态,不适合部分商业应用场景。Zether通过智能合约赋予区块链隐私交易的功能,帮助了链上资产、投票、拍卖等应用的隐私化。可是目前Zether面临Gas过高的问题,那我们怎么通过Qtum降低Gas和增加预编译合约呢? 1. 简介 区块链网络中,尽管用户的地址来自于随机生成的私钥,但地址和实体之间的对应关系还是有可能被交易所、商户泄漏,甚至被区块链数据的抓取和聚类算法所挖掘。这种程度的隐私性限制了商业场景的应用。 隐私币的热潮中,出现了包括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]。 2. 原理 已有的隐私交易方法,例如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的结合。它的特点是可以证明更为复杂的陈述,且证明和验证的过程更加高效。 3. 思考 评价Zether Zether的优点如下: 1.基于智能合约实现,对区块链底层逻辑不需要进行改动 2.基于Confidential Transactions方案修改,不需要zkSNARK那样需要信任的初始化过程 Zether的缺点如下: 1.Gas消耗太高。如图,每次Transfer需要7188k的Gas,其中6455k消耗在椭圆曲线相关计算上。
2.没有隐藏地址。相比MimbleWimble,Zether没有隐藏用户的地址。需要后续进一步的改进。 —- 编译者/作者:不详 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何在现有的区块链上增加隐私功能?
2019-07-10 不详 来源:网络
- 上一篇:边际改进理论与安全代币
- 下一篇:ILCoin :解决区块链市场的安全性问题
LOADING...
相关阅读:
- 瑞波首席执行官布拉德·加林豪斯(Brad Garlinghouse)反对Coinbase的“不政2020-10-26
- DeFi新玩法 | 人人都能创建保险合约,一分钟了解Protekt Protocol想做什么2020-10-26
- Pionex派网携手币安,全新交易工具开启「区块链券商」新赛道 - 律动B2020-10-26
- Binance Launchpad添加了游戏宠物宇宙Axie Infinity2020-10-26
- 大多数欧洲专业投资者购买了数字资产或计划2020-10-26