火星链 火星链
Ctrl+D收藏火星链
首页 > MANA > 正文

ICE:要给智能合约增加隐私性并不简单

作者:

时间:1900/1/1 0:00:00

对用户来说,普通交易的隐私保护基本上算是一个已解决了的问题。如果我们想在不透露账户余额或转账金额的前提下转移密码学货币,我们有诸如大零币或门罗币这样可接受的选项。不过,对于去中心化应用或者智能合约来说,隐私保护仍是一个尚未解决的问题。

是什么让智能合约与普通交易在输入/输出的隐私保护上有所不同呢?

在本文中,我们将解密隐私保护从普通交易拓展到智能合约上会遇到哪些挑战。为此,我们将考察应用于隐私币的常用密码学工具,并探讨为什么这些工具不太适合更复杂的隐私应用。最后,我们将简要介绍最近提出的一些智能合约隐私保护方案。

隐私保护的定义

“隐私保护”到底是什么意思?

我们将从函数的角度来定义隐私保护。例如,我们可以把?交易?看作是一些函数,它以账户余额和转账金额作为输入。然后它输出更新后的余额。

图1:以函数来表示交易过程。

我们可以考虑隐藏函数的输入和输出。就交易而言,这可以让我们隐藏账户余额和转账金额。你会愿意公开你的账户余额和转账历史吗?可能不会吧。因此,我们至少要支持函数的I/O隐私保护。

图2:隐藏函数的I/O。

我们也可以考虑隐藏函数的调用者信息。有时候,函数输入会留下关于函数调用者身份的线索。在实践中,隐藏函数的输入和输出通常会和隐藏函数调用者的身份相结合。

图3:隐藏函数调用者。

最后,我们可以考虑隐藏函数本身。这在密码学货币领域不太常见,其通常与隐藏函数的输入/输出相结合。

图4:隐藏函数本身。

当你在本文中看到“隐私保护”这个词时,请把它当成一个总称,指的是?至少支持I/O隐私保护?的东西。

Paradigm地址在10小时前解禁了3000枚MKR:金色财经报道,据Lookonchain数据,Paradigm地址在10小时前解禁了3000枚MKR(约合337万美元)。Paradigm曾于3月16日向Coinbase存入26625枚MKR(1980万美元)。

金色财经此前报道,链上数据显示a16z正在逢高出售700万美元的MKR代币。[2023/7/26 15:59:23]

好吧,但我们要在哪里用到隐私保护呢?

我们可以认为普通交易的隐私保护已被解决,所以让我们直接转到智能合约的隐私保护。

不过,我们先绕个弯子,回顾一下以太坊……

以太坊支持用户自定义的合约,合约以代码的形式执行。这些合约用以太坊自己的图灵完备的语言编写,每执行一个操作都要支付一些费用。因此,每笔交易都要附上交易费,以激励矿工打包交易。

应用的隐私保护

智能合约让我们在区块链上得以构建丰富的应用——从用户可交易各种密码学货币及其衍生品的去中心化交易所,到允许权益持有者对提案进行投票的去中心化自治组织。

我觉得没必要长篇大论讲解为什么DAO需要隐私保护;在现实生活中,投票通常都是私下进行的,所以想要隐藏我们的虚拟投票也是非常合理的。

另一方面,去中心化交易所的隐私保护需要解释一下。抢先交易无论是对中心化交易所还是去中心化交易所都是一个问题。在区块链世界里,抢先交易者密切观察已提交的订单,并通过支付更高的交易费实现插队。这使得抢先交易者Eve能够抢在Bob之前买到Bob想买的证券,并随后以更高的价格卖给Bob。封闭式拍卖是解决这个问题的一个可能的办法。对于有兴趣的读者,可以在这里找到更多关于在去中心化交易所的抢先交易的信息。

比特币NFT钱包Ordinals Wallet将支持向.Sats域名地址发送资金和铭文:5月30日消息,比特币 NFT 钱包 Ordinals Wallet 将支持向 .Sats 域名地址发送资金和铭文,但如果用户使用 Xverse 向 .Sats 域名地址发送资金,则不会显示在余额中(Xverse 使用多个地址,一个用于 Ordinals,另一个用于比特币)。[2023/5/30 9:49:48]

不过,以太坊的智能合约并没有提供任何形式的开箱即用的隐私保护。所有的信息都是公开可查看的——合约的输入/输出,合约的功能,参与的用户,等等。为以太坊的智能合约?添加?隐私保护不是一件容易的事情,因为以太坊从一开始就没有被设计成支持隐私保护。虽然在以太坊上可以实现隐私交易,但是更复杂的隐私保护操作往往过于昂贵,甚至超过以太坊单个区块的费用限额,以至于无法实现。

难道我们就不能设计一种新的密码学货币,从一开始就支持任何函数的隐私保护吗?毕竟,大零币和门罗币就是这样做的。

目前我们还不清楚如何在密码学货币中支持任意函数的I/O隐私保护。为了理解这些挑战,我们需要考察密码学货币是如何支持隐私交易的。

通往隐私保护之路

我们先考察用于普通交易?I/O隐私保护的密码学工具。我们将关注账户模型而非UTXO模型的加密货币。账户模型在支持智能合约的场景下尤其有用,不过账户模型对于隐私计算来说不是必须的。

工具1:同态加法

大多数密码学货币的隐私保护方案都依赖于具有?加法同态?的加密或承诺方案。为了简单起见,我们将专注于加密方案,但同样的原则也适用于承诺方案。

在加法同态加密方案下,我们有以下等式:Enc(a)Enc(b)=Enc(ab)。

矿企Stronghold Digital Mining拟通过1000万美元私募股权融资购买比特币矿机:金色财经报道,比特币矿企 Stronghold Digital Mining 宣布,已与机构投资者和公司董事长兼首席执行官 Greg Beard 签订证券购买协议,向机构投资者出售 900 万股 A 类普通股和股票等价物,以及向 Beard 赠送 100 万股 A 类普通股,每种情况下的价格为每股等值 1 美元。公司还将向购买者发行购买合计 1000 万股 A 类普通股的认股权证,初始行使价为每股 1.1 美元(可调整),此类认股权证在发行后六个月内不得行使。在扣除发行费用之前,私募的总收益预计为 1000 万美元,预计将用于收购更多的比特币矿机。私募预计将于 2023 年 4 月 21 日结束。

此前报道,2 月 3 日,Stronghold Digital Mining 提交招股说明书,计划出售 1000 万股 A 类股以提高现金储备。[2023/4/21 14:19:06]

因此,加法同态加密方案允许任何人?这样验证交易的有效性:Enc(balance)Enc(transferamount)=Enc(balancetransferamount)?。

图5:Alice在不透露账户余额或转账金额的情况下转账。

Alice有自己的的公钥——pk_a。她用自己的公钥加密账户余额bal_a。我们用β_a表示她加密后的余额,β_a=Enc(pk_a,bal_a)。Alice的公钥pk_a和加密后的余额β_a都公开在网上,任何人都能查看。

Bob同样如此;他也有自己的公钥pk_b,只有他自己知道的账户余额bal_b,以及用他的公钥加密后的余额β_b,β_b=Enc(pk_b,bal_b)。

Gala将于10月底上线公链Project GYRI上的首款链游Spider Tanks:9月2日消息,近日,链游工作室Gala Games宣布,其将于10月31日上线在其Gala生态公链项目Project GYRI上的首款链游《Spider Tanks》,这是一款Web3 PvP电子竞技格斗游戏。此外,Gala Games已开启Spider Tanks Planetary节点的限时销售,节点运营商可以定期赚取加密资产作为提供计算资源的奖励。(Coinpost)[2022/9/2 13:04:53]

如果Alice想在不透露转账金额或她自己的账户余额的情况下向Bob转账,她只需要公布用她自己的公钥加密后的转账金额,以及用Bob的公钥加密后的转账金额。我们分别用c_a=Enc(pk_a,amnt)和c_b=Enc(pk_b,amnt)来表示这些值。

现在任何人都可以计算更新后的余额。Alice更新后的账户余额是β_a-c_a,Bob更新后的账户余额是β_bc_b。

等一下!如果所有这些值都被加密了,我们怎么知道Alice的账户里有没有足够的钱支付amnt金额的转账呢?我们又怎么知道c_a和c_b加密的金额是不是一样的呢?

这就要用到我们的下一个工具——零知识证明了。

工具2:零知识证明

为了确保Alice没有在上述交易中作弊,她需要在交易中附上一个证明。这个证明需要表明她的账上有足够的资金以完成交易,她没有向Bob转一笔负数的金额,而且c_a和c_b确实加密了相同的金额。

当然,Alice不想透露她真实的账户余额和转账金额;因此,她附上了一个零知识证明π,让所有其他用户相信必要的条件已经被满足,而无需透露任何额外的信息。

灰度比特币信托负溢价达29.26%,创历史新低:金色财经报道,据Coinglass数据显示,灰度比特币信托负溢价达29.26%,创历史新低。以太坊信托的负溢价达30.16%,ETC信托的负溢价达54.23%,LTC信托的负溢价为39%,BCH信托的负溢价为10.48%。[2022/6/27 1:34:00]

现在把所有的工具放在一起...

图6:现在给隐私交易附上必要的ZKP?

Alice用她和Bob的公钥分别对转账金额进行加密,得到了c_a和c_b。她提供了一个ZKP,π,证明她在交易中没有作弊。矿工们会验证所有的必要条件是否被满足,ZKP是否有效。然后,他们会使用同态加法分别更新Alice和Bob的加密余额:β_a=β_a-c_a,β_b=β_bc_b。注意,虽然用户提供了加密后的输入和一个ZKP,但是矿工需要负责执行计算以及更新加密后的余额。在区块链中,我们假设大多数矿工是诚实的,所以我们知道他们会正确地更新Alice和Bob的余额。

注:这是一个大大简化的解释

将普通交易的隐私保护技术拓展到智能合约上面临的挑战

所以我们刚刚已经看到了,我们可以执行隐藏输入和输出的交易。那么我们可以把在隐私交易中用到的技术,用于支持应用的I/O隐私保护吗?换句话说:

隐私计算和隐私交易是否不同?如果是,为什么?

问题1

需要注意的是,隐私交易需要满足设定的条件才是正确的。我们如何能弄清楚一个任意的合约需要满足哪些条件?这些条件显然受特定的应用影响。在投票中,我们可能希望证明我们隐藏的投票是在正确的范围内进行的,而对于拍卖,我们可能希望证明我们的账上有足够的资金用于封闭投标。

对问题1的潜在解决方案

这个问题也没那么严重;只是需要用户做更多的工作。去中心化应用的开发者必须明确他们的特定应用需要满足哪些条件,并将这些条件传达给用户。为了能够证明各式各样的条件,我们可能希望在方案中支持一些通用的ZKP。所谓?通用?的ZKP就是能够证明任意的声明。

问题2

在普通交易中,我们只对属于同一个用户的值进行操作。比如在图6中,矿工把用Alice的公钥加密后的余额与用Alice的公钥加密后的转账金额相加。如果我们想对属于不同用户的输入值进行隐私计算呢?这并不是一个多么牵强的需求,比如我们考虑对投票做隐私保护时就会涉及。

对问题2的潜在解决方案

目前还不清楚如何在用户相互之间不透露输入明文的情况下,支持对不同用户的输入进行计算。有一些先进的密码学元件,允许用户对不同密钥加密的输入进行计算。然而,这些方案的成本都非常高,而且有很多缺点。在密码学货币的应用场景下,目前似乎没有人有一个很好的解决方案来解决这个问题。

问题3

普通交易只需要同态加法,因为我们只需要将加密的转账金额加到加密的余额上。如果我们想进行更复杂的计算,可能涉及到乘法呢?

对问题3的潜在解决方案

同态乘法允许我们将加密的输入相乘,使得?Enc(a)*Enc(b)=Enc(a*b)?。通过同态加法和同态乘法,我们可以表示任意多项式函数。所以,我们很自然地想到这个问题:

我们能够支持同态乘法吗?

一个既能支持同态加法,又能支持同态乘法的加密方案是全同态加密。使用FHE,我们仍然可以遵循图6中所描绘的模型。也就是,用户指定加密输入,要运行的函数,以及证明加密输入满足必要条件的ZKP。矿工能够验证ZKP。他们使用同态加法和同态乘法直接对用户提供的密文进行操作。

不幸的是,FHE方案使用基于格的加密技术,这与密码学货币中使用的超高效的ZKP并不兼容。我们曾经写过关于FHE及其问题的文章。目前,由于FHE存在一些缺点,还没有人提出基于FHE的解决方案。

这样,我们目前就只剩下两种方法来解决问题3了。

接受我们只能支持同态加法的现状,遵循隐私交易模型。

图7:遵循隐私交易模型

在这里,用户提供加密后的输入和一个ZKP,证明他们的输入满足特定应用的一些指定条件。矿工验证证明,使用同态加法对输入进行操作。需要注意,应用于输入的函数只能用加法来表示。因此,只要函数只需要用到同态加法,我们就可以要求矿工对我们加密的输入执行任意满足该条件的函数。这就是?Zether?所采用的方法。

要求用户线下计算。这样我们就不需要为加密/承诺支持同态乘法了。

图8:将工作外包给用户

在这里,我们要求用户Alice将对明文的几乎所有计算都放到线下进行。她会公布计算的加密输入和加密输出。因为计算是在线下完成的,她同样需要提供一个ZKP证明计算过程是正确的。注意,这一步对隐私交易来说是不必要的,因为矿工会执行计算,而我们假设大多数矿工是诚实的。就应用而言,她可能还需要另一个ZKP,证明应用指定的条件已被满足。矿工所需要做的就是验证ZKP是否有效,然后同意Alice提出的状态变更。这就是?Zexe?和?Zkay?所采取的办法。

我不会在这里讨论哪种方法更优;只想说明它们是不同?的。

智能合约的隐私保护

前面我们已经谈到了在区块链中支持任意函数的隐私保护要面临的一些问题,现在让我们来看一看一些已有方案的构造。

如果前面说得还不够清楚,我再重申一下,这个领域距离解决问题还有很长的路要走。设计这些构造的论文都是在过去两年中发表的。

Zether是一个建立在以太坊上的隐私交易方案。它可以延伸到支持有限的智能合约的I/O隐私保护——即那些可以通过同态加法表示的合约。这使得我们可以执行简单的封闭式拍卖和隐私投票。遗憾的是,由于gas的限制,目前在以太坊上只能实现在交易中隐藏用户余额和转账金额。与接下来的两种构造不同,Zether使用的是“透明”的ZKP。

Zkay同样延伸了以太坊的设计以支持智能合约的隐私保护。他们依赖ZKP保障隐私计算的正确性,从而可以将大部分工作丢给用户在线下完成。因此,这种设计选择使得它们能够支持比Zether更多类型的函数。

Zexe则试图延展大零币的设计,以支持任意脚本。与前两者不同,Zexe还可以支持函数本身的隐私保护。

方案隐私保护类型模型表达能力基于哪条链设计ZetherI/O图7加法函数以太坊Zkay*I/O图8任意函数以太坊Zexe*I/O,函数**图8任意函数大零币Zkay和Zexe使用的是带有可信设置的ZKP方案。不过,这些ZKP方案当然可以被不需要可信设置的方案替代。

**在区块链的场景中,I/O隐私保护似乎比函数隐私保护更有意义,因为用户很可能希望在决定是否参与合约之前先对合约进行审计。

请注意,还有其他一些用于智能合约隐私保护的构造,但是这些方案都需要某种准-受信任的管理器或受信任的硬件。

大多数智能合约的隐私保护方案都需要额外的安全假设——无论是受信任的启动设置,准-受信任的管理器还是受信任的硬件。然而,ZKP是一个快速发展的领域,更高效透明的构造很可能会被创造出来。

期许

当涉及表达能力,信任和效率时,在智能合约的隐私保护上进行的探索提出了很多有趣的理论和实践挑战。现在,很难说在图7或者图8所代表的方法中,哪种可能会在区块链的隐私计算中胜出。此外,未来全同态加密的进展能否转化到区块链中以解决问题3,这也是一个很有趣的看点。

标签:ZKPALIICEALICEZKP价格MoralitySLICE币alice币前景

MANA热门资讯
COIN:刘言秋:主流币受压缩量震荡,反弹势头能否迎来转机?

投资最重要的不是你一次能够赚取多少,而是能不能控制风险,长期稳健获利。任何操作,在入场操作之前,首先要看趋势,看准趋势再找合适的入场点位,最后是时间的把控.

1900/1/1 0:00:00
BTC:火币观察:摩根用JPM Coin结算 数字货币金融应用场景迅速增加

据yahoo12月10日消息,摩根大通宣布已完成了基于区块链的实时盘中回购交易。该交易使用摩根大通内部开发的区块链应用程序,并在其经纪人交易商和银行实体之间成功进行.

1900/1/1 0:00:00
COIN:2020年区块链行业总结:Filecoin公链

2020年即将结束,这一年,区块链行业让你印象最深的是什么?今天我们来聊一聊,2020年最火热的区块链项目Filecoin.

1900/1/1 0:00:00
FTX:谈喻凯:币圈牛市之路有多远,每日BTC ETH操作建议

投资千万条,风险第一条;策略千百种,哪个适合我;思路没跟上,踏空两行泪。关注谈喻凯公众號币圈散户联盟,精选全球最准行情分析,消息面,技术面为你指引解读,带你把握行情,瞄准良机,稳健交易.

1900/1/1 0:00:00
FIL:IPFS适合投资吗?Filecoin挖矿行业挣钱吗?

现阶段,市场上有几个主流加密币,很多未名币种。其中最赫赫有名的当是BTC和以太坊,二者的市值各自排第一和第二。做为币市的红人,引起许多投资人前仆后继.

1900/1/1 0:00:00
以太坊:财哥谈币:极弱行情 比特币是在悄无声息的酝酿着什么吗?

自己没有尽力,就没资格说别人不尽全力,开口抱怨很容易,但闭嘴努力寥寥无几,每一个单边疯狂,都历经了暗涛汹涌,每一场疯狂庆贺,都经历了砥砺前行,每一次风光无限,都经历过黯然神伤.

1900/1/1 0:00:00