ERC-721 隐私泄露问题凸显 三种方案或能缓解

?钱包和身份隔离、隐身地址以及零知识证明。

撰文:隔夜的粥

当前,NFT市场主要使用了三种token标准,它们分别是ERC-721、ERC-1155以及ERC-998,而占据整个市场主导地位的依旧是ERC-721token标准,例如无聊猿、加密朋克、ENS等众多第一梯队的NFT项目均采用了该token标准。

然而,随着链上分析工具的发展,采用ERC-721标准的NFT面临的隐私泄露问题变得越来越严峻。

为了说明问题的严重性,本文先通过一个例子来进行说明。

ERC-721NFT如何泄露隐私

使用ERC-721代币标准发行的资产都具有独一无二的特点,这无疑是推动NFT资产炒作的一个重要属性,然而当前以太坊等公链还具有了账本公开透明的特点,意味着用户可使用区块链浏览器等工具,通过ERC-721代币查询自己或他人的钱包信息。

最容易暴露隐私的ERC-721token,自然就是ENS,其在为用户提供便利的同时,造成了非常严重的隐私泄露,例如近期的「知名ENS地址遭投」事件,仅仅是ENS隐私泄露问题的冰山一角。

巴西加密货币交易所Mercado Bitcoin今年将进入墨西哥市场:金色财经消息,巴西加密货币交易所Mercado Bitcoin的首席执行官Reinaldo Rabelo在接受采访时表示:“确定的是,在今年下半年,我们将开始在墨西哥运营。”他补充说,关于该国监管部门批准的谈判已进入最后阶段。

一年前,该公司从软银集团(SoftBank Group)的拉丁美洲基金筹集了2亿美元,希望利用这些资金进行扩张。(路透社)[2022/7/22 2:30:06]

除了ENS,头像类的ERC-721token也会带来严重的隐私泄露问题。

举例来说,近日,用户名为KinkyBedBugs的Twitter用户花费了400ETH购买了一只胖企鹅NFT,并将其用作自己的Twitter头像。

BurgerCities与区块链域名服务商Unstoppable Domains达成合作:据官方消息,基于BNB Chain的元宇宙项目BurgerCities与区块链域名服务商Unstoppable Domains达成合作。用户可以使用Unstoppable Domains NFT域名登陆BurgerCities平台。[2022/7/17 2:18:49]

通过查询opensea的数据记录,我们可得知购买该NFT的钱包地址就是saudietheran.eth,在该网站上,我们可以看到该钱包地址持有的所有NFT。

而通过链上数据查询工具,我们甚至可以追踪到该钱包的关联地址及持仓情况。

ThunderCore与台北市政府网络投票平台i-Voting实现技术集成:据官方消息,ThunderCore与台北市政府网络投票平台i-Voting已实现技术集成,集成后,2020年6月1日第一天的民意数已超19,400票。通过ThunderCore的技术,大众可随时在指定的ThunderCore Scan纪录平台上看到公开纪录,从而避免曾有的灌票,人工验票失误等问题。

ThunderCore(TT 链)是一个区块链公链平台,由业内研究人员和工程师创立,其本地通证为TT币。ThunderCore 的服务器完全公开、去中心化,并具备容错机制。ThunderCore 通过解决可使用性和技术应用的难题,从而推动区块链技术的广泛应用。[2020/6/3]

动态 | 以太坊版闪电网络上线主网 可与所有ERC20代币兼容:据ethnews消息,以太坊版闪电网络Raiden Network第一个版本Red Eyes已经被部署到以太坊主网。Raiden是一个二层解决方案,旨在改进以太坊的延展性和隐私性。这一支付网络需要通过状态通道来进行链下交易,然后向主链上传状态改变。和闪电网络一样,这个方案能够提高交易速度,同时降低成本所有ERC20代币都可兼容,而在闪电网络中目前仅可使用比特币和莱特币。[2018/12/23]

图片来自watchers

在这个例子当中,由于KinkyBedBugs是一个匿名账户,并且其显然做好了NFT钱包与主钱包地址的分离,因此,以上的信息泄露可能都是KinkyBedBugs故意而为之的。

但如果通过NFT关联到了持有者的真实身份,并且其没有做好钱包联系分离,一旦被怀有恶意的对手方利用,NFT持有者就可能面临非常危险的攻击。

在了解了ERC-721NFT带来的隐私泄露问题的严重性后,我们需要了解一些缓解措施。

动态 | TRON令牌迁移工作完成后仍将销毁剩余ERC-20令牌:据Cryptovest消息,TRON(TRX)团队在最近博客文章中宣布,在交换完成向新资产的迁移后,TRON(TRX)网络不仅冻结,还会销毁剩余的ERC-20令牌。TRON基金会持有另外34亿个ERC-20令牌,这些令牌被锁定并且不会被移动。据悉,燃烧的代币总量现已达到TRX代币总量1000亿供应量的92.42%。[2018/7/17]

缓解措施1:做好钱包隔离和身份隔离工作

正如在本文当中提到的例子,我们在使用ENStoken时,应尽量避免将自己的真实身份与钱包地址联系在一起,例如真实姓名拼音或常用英文名可能都是糟糕的选择,而采用一些较通用的词,例如DeFi、NFT、DAO、DEX等,可以增加一些隐私性。

接下来,钱包隔离工作将是至关重要的,一般来说,我们都会有多个以太坊钱包地址,其中会有1-2个存放资金的主地址,而其余存放小额资金的钱包地址会用于日常的交易或协议交互。

而我们要做的,就是切断主钱包地址和日常交易地址之间的任何联系,这意味着这些钱包之间不能有任何相互转账的操作。

做好钱包隔离工作之后,我们将主钱包用于存钱用途,而将日常用的钱包用于存放价值较低的ENS或NFT小图片。

缓解措施2:隐身地址(stealthaddress)

近期,以太坊研究人员AntonWahrst?tter在ethresear.ch发表了一项ERC721扩展提案?,其提议将zk-SNARK技术应用到ERC-721,以保护相关NFT持有者的隐私。

对此,以太坊联合创始人Vitalik评论称,使用常规隐身地址?。

那这种技术方案的原理是怎样的呢?Vitalik解释称:

「1、每一个用户都有一个私有p;

2、要发送给某人,首先生成一个新的一次性密钥s,然后发布公钥S

3、发送方和接收方都可以计算一个共享密钥Q=P*s=p*S。他们可以使用这个共享密钥生成一个新地址A=pubtoaddr(P+G*hash(Q)),并且接收者可以计算相应的私钥p+hash(Q)。发送方可以将他们的ERC20发送到该地址;

4、发送方将扫描所有提交的S值,为每个S值生成对应的地址,如果他们找到包含ERC721token的地址,他们将记录地址和密钥,以便他们可以跟踪他们的ERC721token,并在未来快速发送;

通过在智能合约钱包内纳入此方法,你可以将该方案推广到智能合约钱包:

generateStealthAddress(bytes32key)returns(bytespublishableData,addressnewAddress)

这样发送方将在本地调用,发送方将发布publishableData并使用newAddress作为ERC721目标地址。假设接收者将以这样的方式对generateStealthAddress进行编码,以便他们可以使用publishableData以及他们个人拥有的一些秘密来计算可在newAddress访问ERC721的私钥。

而剩下的一个挑战就是弄清楚如何支付费用。」

这一想法也获得了AntonWahrst?tter的认可,其目前正在根据vitalik的建议撰写一份EIP?,计划将提议的generateStealthAddress(bytes32key)应用到智能合约钱包当中。

缓解措施3:零知识证明方案

然而,正如BainCapitalCrypto研究合伙人WeiDai指出的那样?,隐身地址方案的缺点在于,如果它应用于ERC-721以外的任何token(例如ERC-20或ERC-1155),由于可以追踪传输链,其可添加的隐私性是非常有限的。相比之下,基于zk-SNARK零知识证明的方法可以完全保持机密性或匿名性。

在他看来,理想情况下,L1应支持可由智能合约应用使用的隐私保护token,这可以通过已知技术实现,实际上,用户可以充分利用Aztec等以隐私为中心的L2,并在L1上默认设置隐私保护token记账,他进一步解释称:

「以太坊内置隐私的主要问题是,我们有一个和EOA相关的固定gas费用支付机制,除非我们有保护隐私的gas支付方式,否则所有隐私保护token标准都没有实际意义。这就是为什么目前最好在以太坊的单独层中完成隐私,除非可以进行保护隐私的gas支付。」

而摆在用户面前的另一个问题是,采用零知识证明隐私解决方案,可能会遇到监管上的一些麻烦,例如FTX交易所就屏蔽了一些Aztec用户地址,并发出了相关警告。

可见,更好的隐私性,也不一定是一件好事。

一点浅见

作为一名普通的以太坊用户,就目前来说,我们首先应做好身份隔离和钱包隔离工作,以避免严重的隐私泄露问题,而在不久的将来,内置隐身地址方案的智能合约钱包,可能会得到更多的采用。

而隐私性更好的零知识证明方案,由于监管方面的担忧,或许会遇到一些阻力,这还需要我们更多的观察。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:0ms0-1:801ms