首页 > 区块链 > 区块链 > 为什么不能用ZKPs构建一个私有的uniswap?
最近,人们对私人智能合约产生了浓厚的兴趣。认为我们有EVM是好的。因此,如果我们有一个EVM的私有版本,那也会很好。没有人知道其他人在做什么。
EVM具有两个组成部分,执行部分混合了来自用户和全局状态的输入。 全局状态是用户在交易期间能够更新的任何变量。 例如,可以通过向合同发送1 eth来更新合同余额。 或合约内部变量,例如erc20令牌的合约余额。
ZKP允许您证明某些已知数据的状态。 他们不允许您证明您不知道的事情。
因此,ZKP解决了第一部分,使您可以私人执行。 但是,它们不允许您拥有私有的全局状态。
这里我们讨论一个不可能实现的智能合约示例。我们希望这将帮助其他人推断什么是基于zkp的私人智能合约,什么是不可能的
缺乏全局状态
Uniswap是持续的产品交换。 这是一个非常简单的以太坊智能合约,允许人们进行交易。 XM外汇MT5 xmtradingclub.com 合同持有两个令牌,令牌a和令牌b的余额。 它允许您存放代币a并提取一些代币b,代币b由bal(token_a)和bal(token_b)之间的池中的比率定义
在Alen Lu 13的原始帖子中找到有关恒定产品交换的更多信息。
为了建立一个私有的uniswap,用户需要存入令牌A并取出令牌B。为了证明他们已经正确取出令牌,他们需要知道令牌a和令牌B的当前余额是多少。
如果您告诉用户当前的状态,他们将能够观察其他用户的交互,看到其他人使用合同之前的状态和之后的状态。这样他们就可以推断出这些用户做了什么。
例如,该池有1个eth和1个dai。我知道状态,但我看不到用户的操作。假设用户做了一些事情。我不知道是什么,但是系统的新状态是2 eth和0.5 dai。我知道他们存入1个eth,取出0.5个dai。
结论
因此,任何能够更新系统的人都必须拥有这个状态信息,以便创建他们正确更新的zkp。如果它们有状态信息,它们可以在状态更改时监视。如果他们能监视状态的变化,他们就能看到其他人在做什么。
因此,使用ZKPs,您最终只能使用特定于用户的状态来构建私有的东西。所以一切都像是原子交换。如果存在全局状态,那么这就违反了隐私,因为它需要被分享给其他人来证明该状态。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69995368/viewspace-2767167/ ,如需转载,请注明出处,否则将追究法律责任。