文章前言 ERC-20为以太坊智能合约提供了一套编写规范,而IERC-20则规定了一个Token需要实现的基本接口,本篇文章将对此进行解读。 allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } ERC -20 ERC-20是对IERC-20接口的实现,具体代码如下所示: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master -20中的关键所在,也是项目方关注的重点,下面是ERC-20中对于转账的规范性示例: /** * @dev See {IERC20-transfer} 文末小结 至此,我们对ERC-20标准的解读已完结,这里的代币销毁、增发代币逻辑在IERC-20中并没有具体的定义,在这里我们可以看做是ERC-20的功能扩展,同时也表明基于ERC-20我们可以自定义跟多的功能函数来实现不用的业务逻辑
1 ERC-20 token 支付手续费流程流程:图片1)client 向 relay service 发送签名后的请求,不需要用 ETH 支付手续费。 3-5)RelayHub 合约请求 TokenPaymaster 合约将最大可能的手续费换算成 ERC-20 token,并从用户账户扣除。 9-11)RelayHub 合约请求 TokenPaymaster 合约将多向用户收取的 ERC-20 token 退还给用户。 12-13)RelayHub 合约收到 TokenPaymaster 合约将 ERC-20 token 换成的 ETH 后,为 relay service 报销其为用户垫付的 ETH 手续费。 需要在 RelayHub 注册 relayer,目的是:为 relayer 质押 ETH 或 ERC-20 token,以免 relayer 提交无效 tx。
所以我们来实现一个 ERC-20 并写一些测试。创建 ERC20 合约,你也可以参考社区的这篇文章如何创建并部署 ERC20 代币[6] 。 1. 实现一个 ERC-20 现在让我们创建一个 ERC-20 合约,并对其进行一些测试。首先让我们安装 Openzeppelin 合约并更新 std 库。 2: 打印所有测试的日志 3: 打印失败的测试的执行堆栈 4: 打印所有测试的执行堆栈,以及失败测试的 setup 堆栈 5: 打印所有测试的执行和 setup 堆栈 ERC-20 Forge 模板
ERC-20标准的出现解决了上述的难题。在本文中,我们将从智能合约的出现开始,结合以太坊平台众筹活动存在的问题,着重讲述ERC-20标准的细则,并分析ERC-20通证的未来。 ERC-20标准就是有着这样的魔力,在我们了解ERC-20通证是什么以及它们如何影响加密世界之前,让我们先来回顾一些基础知识。 ERC-20标准剖析 符合ERC-20标准的通证都遵循一系列规则,以便满足通证共享,通证之间交换或转移和数字钱包等应用场景。ERC-20标准包含3个可选规则和6个强制性规则。 ERC-20标准的缺陷 缺陷1:transfer()错误 尽管ERC-20通证具有很多优良品质,但金无足赤,人无完人,它也受到了很多批评。 ERC-20通证的未来 虽然ERC-20通证确实对加密生态系统的发展至关重要,但事实仍然是ERC-20标准可能已经过时了。 人们已经在尝试更新的标准,如ERC-223,ERC-777等等。
本文以一起典型的ERC-20代币授权钓鱼事件为切入点,深入剖析了攻击者利用approve函数及permit签名机制窃取用户资产的完整技术链路。 2 ERC-20授权机制的技术原理与风险异化要深入理解授权钓鱼攻击,必须首先厘清ERC-20标准中授权机制的设计初衷及其在实际应用中的异化过程。 ERC-20作为以太坊最基础的代币标准,定义了一套标准化的接口,使得不同的代币能够在去中心化交易所(DEX)、借贷协议等应用中无缝交互。 2.2 Permit签名机制的滥用与隐蔽性随着EIP-2612标准的引入,permit函数成为ERC-20授权机制的演进方向。 多态变种:针对不同代币标准(ERC-20, ERC-721, ERC-1155)生成定制化攻击合约。
以太坊令牌最常见的标准是目前的ERC-20标准,但也有ERC-223,ERC-721和ERC-777标准。在下文中,我们将解释每个标准以及如何在分散的生态系统中使用它。 什么是ERC-20令牌? 事实上,前20个以太坊令牌中的所有项目都是ERC-20令牌。 此外,ERC-223令牌通过使转移只需要1步而不是2来提高ERC-20的效率。这意味着与ERC-20转移相比,ERC-223令牌转移仅需要一半的GAS(即更便宜)。 TL; DR ERC-223代币: 使用ERC-20令牌标准解决关键缺陷 仅需要ERC-20令牌的一半GAS(转账手续费) 向后兼容ERC-20 尚未被任何值得注意的加密货币项目使用 什么是ERC-721 考虑到它比ERC-20更具可定制性并减少交易摩擦,今天ERC-20上的每一个应用程序都可以从将来转向ERC-777中受益。
GOOD NIGHT ERC-20 ERC-20是现下最广为人知的标准,诞生于2015年,到2017年9月被正式标准化。 在ERC-20标准里没有价值的区别,Token之间是可以互换的。也就是说,在ERC-20标准下,任何单位币的价值都是相同的。 正因为ERC-20标准的存在,使得发行Token变得很简单。目前,以太坊上ERC-20 Token的数量超过了180000种。 相对于别的ERC标准,erc-20的解释较为麻烦,因为它算是许多标准的基础,例如erc-223、erc621、erc777等都是对erc-20某些不足的补充或升级,所以当解释它们时只需说明是对ERC-20 ERC-20和ERC-721都是以太坊Token发行的一种标准协议。其具体对比如下图: 基于ERC-20标准发行的Token没有价值区别,可以互换,可以分割。
目前,最常见的以太网标记标准是ERC-20和ERC-721。那么ERC20和ERC721代表什么,它们之间有什么区别 先简单介绍一下什么是ERC-20和ERC-721。 1、ERC-20 ERC-20是最广为人知的标准。 Erc-20标准规定令牌必须有其名称、符号、总供应量和其他功能,包括转账和汇款。 这个标准的优点是,只要令牌符合 erc-20标准,它将与以太钱包兼容。也就是说,你可以把代币加到你的以太坊钱包里,然后通过你的钱包发送给别人。 由于ERC-20标准的存在,发行Token非常简单。 目前,以太坊的ERC-20代币数量超过18万。 2、ERC-721 如果 erc-20如此强大,为什么还有额外的 erc-721标准? 前面提到的 erc-20标准令牌在价值上没有差别,而且不再适用于需要独特属性的资产,比如加密的收藏品和游戏道具。 ERC-721标准规定,每个符合其标准的令牌都有一个唯一的令牌标识。
其中ERC-20是整个加密社区中最流行的标准,以太坊平台上的所有通证都使用这一标准。下面我们就来了解什么是ERC-20标准,以及其他的一些ERC标准。 ERC-20 ERC-20标准包括以下方法: totalSupply():返回通证的总供应量。 balanceOf(address _owner):_owner账户的账户余额。 Dexaran提出的ERC-223标准就解决了这一问题,而且,它与ERC-20标准非常相似。 ERC-621 状态:打开 提出日期:2017年5月1日 ERC-621标准是ERC-20通证标准的扩展。 另外,最重要的一点是,由于它是ERC-20标准的扩展,所以它也跟ERC-20标准兼容。
比如,可替代、不可替代、多令牌和ERC-20、ERC-721、ERC-777和ERC-1155等令牌合约。 最流行的标准可能是ERC-20,这是一种用于发行具有20个唯一标识号的令牌协议,用来区别于其他令牌。 ERC-20的开发有助于简化钱包和去中心化交易所的集成,因为它们可以信任所调用函数的标准化签名。 Polkadot Standards Proposal 22(PSP22)是Polkadot生态系统中WASM部分的ERC-20标准。 在这种情况下,PSP22具有特定的规则和方法,能够在实施中与ERC-20区分开来”伊万尼科克补充道。 PSP22与ERC-20的不同之处还在于,如果接收者是合约,那么在传输结束时调用before_received方法。PSP22Receiver 接口也使它与 ERC-20 区分开来。
译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3] 你可能认为在 ERC-20 调用几个函数非常简单,对吗?很不幸,不是的。 ZRX 仍然符合 ERC-20 标准,因为没有任何地方规定 ERC-20 合约必须在发生失败时回退交易。这两种方法都有优点和缺点。 // handle success case } else { // handle failure case without reverting } } 这样你就可以为两个版本的 ERC 怎样支持所有 token 现在你已经支持了 ERC-20 标准的 token, 然而有相当多的 token 看起来像 ERC-20 ,但是它的有些行为却不像,有些出现缺少返回值的错误[8]。 这是一个围绕 ERC-20 调用的包装库。不要感到困惑,这不是为了创建自己的 token ,而是为了安全地交易。
image.png 每当发生ERC-20 token转账失败的错误时,发送方发送的金额/token不会离开发送方地址,但会扣除“gas费用”。 主要原因是智能合约和token失败。 以下是ERC-20 token转账可能失败的最常见原因: 1,token合约已锁定或暂停(token尚未转让)。变量包括:铸造,铸造完成,已暂停,可转让,可转让StartTime,已暂停。 2,已锁定发送方地址的token余额不足,在将token发送到另一个地址之前,请确保发送地址具有足够的转移token余额即使实际扣除了余额(不完全符合ERC-20标准),代币合同也不会发出转让事件。 此问题归因于针对ERC-20令牌的合规性政策。 如需其他帮助,请直接联系发件人/交易创建者以获取更多信息。
ERC-20是整个加密社区中最为人熟知的标准,在Ethereum平台之上发布的大多数通证(token)都使用它。 ERC-20标准的内容 ERC-20标准中定义了以下函数接口: totalSupply():返回代币供给总量 balanceOf(address _owner):返回_owner的帐户余额 transfer ERC-20只允许单一的通证发放事件。 这将供应量限制在一个固定的不可改变的数目。 ERC-621建议totalSupply应当是可修改的。 ERC-721 状态:打开 建议日期:9/22/2017 ERC-721与ERC-20和ERC-223都大不相同。 它描述了一个不可互换的通证。 最重要的是,由于ERC-827是ERC-20的延伸,它也与ERC-20兼容。
这是因为创建这些收藏品的系统依赖类似于ERC-20的技术标准,这一技术在2017年引发了最初的硬币发行热潮(ICO)。 独特的效用 根据许多加密开发者的说法,ERC-721比ERC-20更适合作为数字收藏品。 首先,用ERC-20创建的代币是“可替换的”,意思是每一个代币都和其他的一样好。 其次ERC-20代币可以被分割,这意味着用户可以将它们分成很小的数量,用于购买、销售或交易。 虽然这一财产对货币有用,但它对收藏品没有什么帮助,因为收藏品一般都和它们的条件一样好。 对于ERC-20代币的分散式交换,0x的开发者们看到了ERC-721这一前景光明的未来,他们正计划在不久的将来增加对这个代币的支持。 通过这种方式,ERC-721代币可以被交易为ERC-20代币和以太。 卡斯顿圭总结说: “我们看到了它的未来,所有这些不同类型的代币都可以自由地交换。”
ERC-20代币 采用以太坊创建的ERC-20代币,指的是遵循ERC-20标准的代币,该标准指出,在代币合约中需要实现以下方法: balances: 余额变量,该变量里面存储了所有拥有代币的地址的余额 transferFrom方法原型 function transferFrom(address _from, address _to, uint256 _value) returns (bool success) 这里仅列出ERC
关键词:Web3安全;钓鱼攻击;ERC-20授权;智能合约;DeFi;钱包安全;链上监控1 引言Web3技术范式以去中心化、用户主权和无需许可为基本原则,其核心组件之一是自托管钱包(如MetaMask、 在授权安全方面,Wang & Liu(2023)指出ERC-20标准中approve()函数的设计缺陷:一旦授权额度设为type(uint256).max(即无限授权),用户将永久丧失对该代币的控制权, 3 攻击机理分析3.1 技术基础:ERC-20授权机制ERC-20是当前最广泛使用的代币标准,其核心函数包括:function approve(address spender, uint256 amount 4.4 协议层优化长远来看,ERC-20标准可引入时效性授权(time-bound approval)或条件授权(conditional approval)。 5 讨论本文方案存在若干局限:覆盖范围有限:上述脚本仅处理ERC-20,未涵盖ERC-721(NFT)或自定义代币。
一个典型的例子是 Wrapped Bitcoin ( WBTC ),这是一种使用比特币作为抵押的 ERC-20 代币。 用户可以通过 Polygon (POS) 桥或 Plasma 桥这两种跨桥解决方案将 ERC-20 代币和以太坊 NFT 转移到 Polygon 第 2 层链上。 另一方面,Plasma Bridge 采用以太坊 Plasma 扩容解决方案,支持以太坊 (ETH)、ERC-20 代币、ERC-721 代币和 Polygon (MATIC) 的转账。 雪崩桥 Avalanche Bridge是一种跨链协议,可促进 ERC-20 代币与 Avalanche C 链之间的传输。该桥通过从以太坊网络接收 ERC-20 代币来工作。 交易经过验证,并在 Avalanche 网络上铸造一个包装的 ERC-20 代币。通过解开智能合约上的代币来解锁本机 ERC-20 代币,可以逆转该过程。
contract helloWorld { function renderHelloWorld () public pure returns (string) { return 'helloWorld'; }}ERC ERC-20 是一种代币的标准协议,简单地说,任何 ERC-20 代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括 MIST、imToken 等),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币 一个基于 ERC-20 的代币包含以下接口:contract ERC20Interface { function totalSupply() public constant returns (uint
这正是ERC-20发挥其作用的地方! 这个标准允许开发者建立可与其他产品和服务互操作的代币应用。 ERC-20 是一个同质代币的标准,换句话说,使每个代币与另一个代币完全相同(类型和价值)。 例如,ERC-20代币的作用就像ETH一样,这意味着1个代币现在和将来都等于所有其他代币。 如果你想了解更多关于ERC-20代币的信息,你可以看一下这些链接。 以太坊文档: ERC-20代币标准[14] EIP-20 以太坊改进建议[15] 设置项目 首先,我们需要设置它。
也就是说,每当你转移ERC-20通证或任何其他的数字资产时都会在区块链上留下记录,任何第三方都可以轻而易举地监控到这些记录。 批准 image.png 在代码中,我们制作了一些通证并授予NoteRegistry智能合约从ERC-20智能合约中支出它们的权限。 image.png 就像ERC-20一样,NoteRegistry需要被授予使用AZTEC证明的权限。我们承认这是一个需要积极研究的领域,我们也正在研究大幅度提升用户体验的方法。 请注意,第一笔交易仅转移ERC-20通证,因此第三方可以分析得到转移的通证数。但第二笔交易就是完全保密的了。 以下是我们本篇文章所有操作逻辑的思维导图: ? 可以请查看以下两笔以完全成熟的零知识证明形式,使用一些AZTEC证明转移10个ERC-20通证的交易: ?