令牌批准:加密的致命弱点

小心你的加密货币——你不会想过授予任何人无限期使用你的银行账户的权利吗?然而,当你在不了解其机制的情况下使用令牌批准时,这确实是你在做的事情甚至你的Ledger 也无法保护你“批准”是一种允许第三方转

小心你的加密货币——你不会想过授予任何人无限期使用你的银行账户的权利吗?然而,当你在不了解其机制的情况下使用令牌批准时,这确实是你在做的事情甚至你的Ledger 也无法保护你“批准”是一种允许第三方转移你的代币的机制。不幸的是,如果你不完全了解批准的工作原理,它也可能为诈骗和重大经济损失铺平道路。在本文中,我们将了解什麽是代币背书,以及如何安全地使用它来转移你的数字资产。保持警惕,因为你的代币的安全性取决於你对这种机制的理解。概括: 什麽是加密货币背书以及为什麽要使用它?令牌批准,它是如何工作的? ERC20和ERC721的“批准”功能: ERC721和ERC1155的“setApprovalForAll”函数: 你的加密货币有哪些风险?如何防止潜在的盗窃?对於ERC721 / ERC1155: 对於ERC20: 什麽是加密货币背书以及为什麽要使用它?ERC20、ERC721 和ERC1155 代币是为定义数字资产标准而创建的代币标准。快速提醒一下,ERC20 代币是可替代的代币,而ERC721 和ERC1155 代币是不可互换的代币(ERC1155 代币是半可替代的)。这三个标准是通过整合我们今天要检查的机制创建的:批准。令牌的批准(批准)允许用户授予另一个用户转移一定数量的加密的权限。这在多种情况下很有用,例如,如果你想授权朋友代表你移动你的代币,或者你希望授权(或不授权)去中心化应用程序使用你的代币进行交易。重要的是要注意,此机制仅适用於在区块链上发行的代币,而不适用於後者的原生代币。例如,以太坊区块链的以太币没有批准机制,这就是为什麽一些应用程序使用盘点以太币(wETH) 来利用这种工具的强大功能。令牌批准,它是如何工作的?代币的批准直接通过发行该代币的合约完成。例如,如果你希望某个地址可以访问你的USDC,那麽你必须使用USDC 代币合约来完成批准。根据合约类型,你会发现两种不同的功能。这是这两个功能的出勤表:ERC20 ERC721 ERC1155✅
✅
🚫🚫
✅
✅按标准存在批准功能。approve 功能允许ERC20 和ERC721 代币的用户给另一个地址(通常是合约)授权以花费特定金额或NFT。ERC20和ERC721的“批准”功能:对於ERC20,approve 函数将花费者的地址、有权访问你的代币的人以及与你希望授权的代币数量相对应的金额作为参数。使用ERC20 令牌批准的应用程序往往会要求大量批准,因此他们不必在每笔交易中都要求你重新批准。摘自Openzeppelin的ERC20标准的官方代码,呈现函数"批准" 这是一个允许访问其加密的公共功能ERC20标准的“批准”功能——来源:github @openzeppelin对於ERC721,approve 函数始终将可以访问NFT 的地址作为第一个参数,但是这次,第二个参数将是你的NFT 的编号。因此,它允许你访问合约的单个NFT,前提是该NFT 是你的。取自Openzeppelin的ERC721标准的官方代码,定义了函数"批准" 这与ERC20 标准不同,因为它可以定义对特定NFT 的访问。ERC721标准的“批准”功能——来源:github @openzeppelinERC721和ERC1155的“setApprovalForAll”函数:setApprovalForAll 函数适用於ERC721 和ERC1155 类型的代币。两个标准的参数是相同的,第一个始终是可以访问的地址,第二个是布尔值(true 或false),这使得可以定义所讨论的地址是否对你的令牌具有权限.顾名思义,此功能会自动为同一合约授予你投资组合中存在的所有NFT 的权利。取自Openzeppelin的ERC721和ERC1155标准的官方代码,定义了函数"setApprovalForAll" 这使你可以在一次交易中访问所有加密货币/NFT。ERC721 和ERC1155 标准的“setApprovalForAll”审批函数——来源:github @openzeppelin你的加密货币有哪些风险?代币背书存在许多风险。首先,恶意第三方有可能通过欺诈性应用程序获得授权访问你的代币并在未经你同意的情况下转移它们。为了限制这种风险,仔细阅读你签署的交易非常重要。很多时候你的钱包会告诉你需要审批,正常不正常就看你自己了。此外,如果被黑客入侵,要求大量批准的应用程序可能会耗尽你的钱包。事实上,重要的是要注意批准是永久性的,并且随着时间的推移它始终处於活动状态。例如,假设你授权将价值一万美元的USDT 转移到协议中。後者使用一千美元。然後你决定取出剩下的九千美元来清空你的钱包。如果有一天你决定将USDT 放回你的钱包,即使是10 年後,该协议仍然可以使用你的9000 美元资金。如何防止潜在的盗窃?首先,重要的是检查你要签署的交易并仔细阅读批准请求。撤销你不再使用的批准权限并且只将权限授予你信任的人或应用程序也是一个好主意。但是如何撤销这些权限呢?好吧,只有一种方法可以重用之前看到的相同功能。默认情况下,平台对ERC721 和ERC1155 令牌使用setApprovalForAll 以及对ERC20 进行大量批准。这允许他们只要求你批准一次。要撤销这些批准,只需执行反向操作即可,即:对於ERC721 / ERC1155:使用setApprovalForAll 函数,将协议(或个人)地址作为第一个参数,将false 作为第二个参数,以删除批准。对於ERC20:使用协议(或人)的地址作为第一个参数的approve 函数,第二个参数的数量为零,这将完全撤销对你的加密的访问权限。一个小提示,如果你不知道你已经批准了谁,这个网站允许你识别他们并直接从他们的申请中撤销他们。定期执行此操作对於良好的数字卫生非常重要。总之,令牌背书可能是一种非常有用的安全传输加密的机制,但了解与此功能相关的风险很重要。为了保护你自己,仔细审查你签署的交易、仅向受信任的人或应用程序授予权限以及撤销你不再使用的批准权限至关重要。充分了解代币背书并负责任地使用此功能,你可以充分利用区块链及其所有应用程序的优势。不要吝啬谨慎因此,为了保证你的加密货币安全,最好的解决方案仍然是个人硬件钱包。在Ledger,所有配置文件和所有加密货币都有一些东西。不要等待将你的资金安全(商业链接)文章令牌批准:你的加密的致命弱点首先出现在Journal du Coin 上。资讯来源:由0x资讯编译自JOURNALDUCOIN。版权归作者Maxime – 0xNekr所有,未经许可,不得转载

原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/462572/