木星链 木星链
Ctrl+D收藏木星链
首页 > BNB > 正文

RC20:无限代币授权 —— 我们能做些什么?

作者:

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

近来以太坊上最火爆的领域就是DeFi。主要的DeFi应用包括ERC20代币的借贷、质押和交易。若想在Uniswap、Aave和Yearn等DeFi协议上使用ERC20代币,你需要授权dApp来使用这些代币。这就是所谓的?*ERC20授权*?。这些授权对于DeFi平台的运作来说必不可少,但是如果不加以控制,那将是非常危险的。

ERC20授权的必要性

有了以太坊上的原生代币ETH,你就可以将ETH发送至该智能合约,同时调用智能合约功能。这是通过所谓的可支付函数实现的。但是,由于ERC20代币本身就是智能合约,你无法通过直接将代币发送到智能合约来调用其函数。

因此,ERC20标准让智能合约使用?transferFrom()?函数代表用户转移代币。为此,用户需要允许智能合约代表他们转移代币。

这样一来,用户就可以将代币“存入”智能合约,同时智能合约会更新其状态来显示这笔存款。相反,如果你将ERC20代币发送至该智能合约,则合约不会更新其状态。

长期持有者过去一年增持逾110万枚BTC,价值约330亿美元:7月29日消息,链上分析师Ali发推称,根据Glassnode的数据,长期比特币持有者(即持有比特币至少155天的钱包地址)在过去一年里增持了超过110万枚BTC,价值约330亿美元。[2023/7/30 16:06:25]

例如,如果你将DAI“存入”Aave来赚取利息,你首先要允许Aave合约从你的钱包中取出一些DAI。然后你调用Aave合约里的函数,指定你想要存入的DAI的数量。然后,Aave合约使用?transferFrom()?函数从你的钱包中取出相应数量的DAI,并将同等数量的aDAI代币记入你的账户。

无限ERC20授权的危害

将特定数量的ERC20代币存入合约时,你就可以选择将授权额设成这个数量。然而,许多应用会向用户要求无限授权。

数据:179,500,000枚XRP从未知钱包转移到另一未知钱包:金色财经报道,据WhaleAlert监测数据显示,179,500,000枚XRP(价值约63,135,788美元)从未知钱包转移到另一未知钱包。[2022/12/19 21:52:44]

这会带来极好的用户体验,因为用户不需要在每次存款时重新授权。设置无限授权后,用户只需要同意一次,之后存款时就不会再重复这一过程。

但是,该设置存在很大的弊端。众所周知,即使是成熟的项目,也有可能存在漏洞。一旦你给了这些平台无限授权,不只是你的存款会陷入风险之中,你的钱包中的代币也是如此。

在Devcon5上,我第一次与PaulBerg谈到了这个问题。在这次大会上,Paul就本文所讨论的问题做了陈述。在开发Sablier时,Paul在他的智能合约中发现了一个漏洞,不仅所有存入该智能合约的DAI有风险,所有测试者的钱包中的DAI也是如此!

美国检察官正调查SBF等人是否将数亿美元资金转移至巴哈马:12月10日消息,消息人士透露,美国检察官正在调查FTX创始人SBF和其他参与FTX破产事件的人的潜在欺诈案件。检察官目前正在仔细审查FTX于11月11日在特拉华州申请破产时,数亿美元资金是否被不当转移到巴哈马。

消息人士表示,美国司法部官员已开始对FTX如何处理客户的现金和资产进行全面调查,本周会见了法院任命的监督员,讨论他们打算收集的材料,还在深入研究FTX是否通过将资金违法转移到Alameda Research。(彭博社)

据此前报道,消息人士表示,美国曼哈顿的联邦检察官正在调查FTX创始人Sam Bankman-Fried(SBF)是否操纵了UST和LUNA的市场,以使他控制的实体(包括FTX和Alameda Research)受益。消息人士透露调查还处于早期阶段,目前尚不清楚检察官是否已经确定SBF有任何不当行为,或者他们何时开始关注UST和LUNA的交易。[2022/12/10 21:35:21]

实际风险

名人NFT卡片交易平台Zoop完成1500万美元种子轮融资:10月27日消息,名人 NFT 卡片交易平台 Zoop 宣布完成 1500 万美元种子轮融资,此外跨游戏头像平台 Ready Player Me 也与 Zoop 达成合作以提供 Zoop 头像与兼容游戏和应用程序之间互操作性、以及交易处理等方面的支持。Zoop 允许粉丝购买、出售和交易名人 NFT 卡片,还可以参加比赛和挑战以获得积分,解锁特殊奖励,包括进入具有相似兴趣的社区。据悉,Zoop 已基于分布式账本平台 Hedera 构建,让用户以告诉、可追溯且透明的方式购买、交易、交换和销售名人数字藏品。[2022/10/27 11:49:59]

长期以来,无限授权的风险主要是理论上的。在Paul所开发的Sablier平台正式上线之前,这个漏洞就被修复了。当时,还没有出现利用ERC20授权的攻击,但是只要平台继续要求无限授权,迟早会出状况。

以太坊网络当前已销毁263.27万枚ETH:金色财经报道,据Ultrasound数据显示,截止目前,以太坊网络总共销毁263.27万枚ETH。其中,ETHtransfers销毁24.2万枚ETH,OpenSea销毁23万枚ETH,UniswapV2销毁13.7万枚。

注:自以太坊伦敦升级引入EIP-1559后,以太坊网络会根据交易需求和区块大小动态调整每笔交易的BaseFee,而这部分的费用将直接燃烧销毁。[2022/9/26 7:20:49]

去年,我们已经看到了几起利用ERC20授权的攻击事件。

意外漏洞

今年早些时候,Bancor出现了一个漏洞,危及用户资金。执行ERC20?transferFrom()?函数的函数变成了public属性,因此任何人都可以执行该函数,并取走用户钱包中的资金。Bancor执行了一次白帽黑客攻击,控制了损失,并将资金还给了用户。

恶意利用漏洞

除了Bancor的意外漏洞之外,还有很多恶意利用漏洞的情况。在今年夏天的DeFi热潮中,人们都在为各种以食物命名的DeFi分叉产品狂欢,其中也包括一些局。即使人们为了规避风险只存入少量代币,他们钱包中的代币也会因为无限授权而陷入风险。

ZenGo就在一个名为UniCats的项目中发现了可利用漏洞。人们可以存入Uniswap代币,然后通过流动性挖矿获得MEOW代币。但是如果要存款,用户必须提供?无限授权。如果项目遭到攻击,攻击者不仅可以拿走项目的存款,还可以拿走用户钱包内的所有UNI代币。

另一个例子是DegenMoney项目。DegenMoney项目采用了一种不怎么高明的办法。这个项目没有开发自己的智能合约,而是创建了一个前端来进行两次授权交易。一次是向一个运行中的智能合约,另一次是向完全不同的地址。

由于很多人没有专门检查钱包地址,这就导致攻击者可以取走用户钱包中的代币。

那硬件钱包呢?

总的来说,硬件钱包比手机、手提电脑和基于浏览器的钱包安全的多。原因是,控制资金的私钥安全地存储在硬件钱包中,并且永远不会离开该设备。因此,通过硬件钱包,你可以确保没人能窃取你的私钥。

ERC20授权的问题在于,没人需要窃取你的私钥才能从你的钱包中取走代币。因此,硬件钱包也无法防范本文所讨论的恶意利用漏洞问题。

使用硬件钱包依然是一种好习惯,因为硬件钱包确实能保护你免受其它漏洞攻击。但是,你需要注意的是,硬件钱包不能抵御授权漏洞和其它很多智能合约漏洞。

dApp开发者可以做些什么?

在Devcon的讲话中,Paul提到了一些关于无限授权问题的解决方案。这些方案各有优缺点。其中最实用的方案是即批即用模式。在这种模式下,应用只会要求用户授权确切的数额,而非不限额。

这种方案的用户体验确实会差一些,因为每当用户想要发送交易时,都需要发送一笔新的授权交易,不能再像无限授权那样一劳永逸。这个模式的缺陷是会增加交易费成本,如果交易费像去年那样暴涨,就会带来很大的麻烦。

另一种替代型方案是,可以让用户选择仅授权当下需要花费的数额,还是授权更高的数额以便后续进行更多交易。已经有多个项目采用这种策略,例如1inch.exchange和Curve.fi。

另一个减少交易成本的解决方案是,采用EIP2612之类的标准,让用户可以通过签署消息来设置其授权额度,无需再通过发送交易的形式。但是,这类标准并未得到广泛采用,而且围绕该标准打造的工具也不多。

用户可以做些什么?

由于ERC20授权是很多智能合约所不可或缺的部分,完全停止授权的方案并不可行。但是在可能的情况下,请尽量避免无限授权。

人们已经比一年之前更加了解这一问题,因此有些dApp可以让用户选择只授权当前需要花费的数额,但是大多数dApp依然不行。尽管如此,高端用户还可以通过Metamask的界面来降低其授权额度。

在使用dApp时,请你思考一下是否需要经常使用这个dApp,以及你是否信任这个项目,还是说你只会偶尔使用这个dApp,或者根本不信任这个项目。无论是哪种情况,你最好都要定期查看你的授权额度,并取消对不再使用的dApp的授权。

为便于检查并撤销这些授权,我开发了一种名为revoke.cash的工具。通过这个工具,你可以查看地址的代币余额和授权额度,之后就可以轻而易举地撤销或降低授权。类似的工具还有approved.zone等。

结论

许多去中心化应用的运行都离不开授权,但是无限授权通常并不利于安全性。2020年已经出现过几起利用ERC20授权的漏洞事件,人们对这个问题的认识比一年前深得多。作为一名用户,你可以采取一些措施来降低上文所述风险,包括定期查看并撤销多余授权。

标签:RC20ERC20RC2C20brc20官网erc20币的类型brc20sPlayCoin [ERC20]

BNB热门资讯
BIT:12/20中午以太坊行情分析及操作策略参考

读万卷书不如行万里路,行万里路不如阅人无数,阅人无数不如名师指路,大家好,每天不定时的推荐出个人观点和操作策略供大家参考??行情分析:昨日晚间币价打破白盘震荡走势.

1900/1/1 0:00:00
PSM:八哥币圈:12/20晚间ETH行情分析与操作策略

ETH行情分析:???????????小时图上看,早间K线四连阴下跌,20多美金的下探,在触及布林下轨后,受到支撑随后币价就在布林中下轨区间震荡,下午3点的时候,一根阳柱拉升突破布林中轨.

1900/1/1 0:00:00
DEFI:DeFi在中国的发展趋势

很高兴dForce创始人杨民道先生受邀GlobalCoinResearch专访,传播更多中国DeFi信息到西方先看看精彩评论.

1900/1/1 0:00:00
加密货币:楚汉财金:12.21大饼再破历史新高24288牛市还未结束?

大饼今早凌晨转点后迅速跳水三百点,之后逐步上涨再次带动多头情绪,直至再破历史新高达到24288,日线走势图来看,MACD快慢线呈金叉线但开始有缩口的趋势,KDJ三线平缓突破100轴.

1900/1/1 0:00:00
区块链:XBT小比特第三方应用库克区块技术生态

库克区块技术生态——为区块链公链技术免费普及而生2020年12月11日,中共中央局召开会议,分析研究2021年经济工作,会上要求强化反垄断和防止资本无序扩张.

1900/1/1 0:00:00
DOG:亮亮说币:12/20ETH晚间行情实时分析.主力究竟是何目的.

前言:一直相信,这世界上,有一种默契是可以沁骨的,犹如一种初相遇,不是在路上,而是在心里,没有擦肩而过,却会留下瞬间惊喜,不用回过头去,那过往的涨跌,依然是心中的美丽,一波行情,一次感动.

1900/1/1 0:00:00