ERC-7699:带有转账参考扩展的ERC-20

本文详细介绍了ERC-7699,这一新提议扩展了广泛采用的ERC-20代币标准,允许用户在转账中附加参考信息,从而提高交易的清晰度和可追溯性。文章涵盖了ERC-7699的背景、功能、实现方式及其在去中心化金融(DeFi)等应用中的潜在好处,强调了为用户带来的更高体验和更广泛的采用可能性。

介绍

在不断发展的区块链技术领域,以太坊生态系统继续通过新的提案和标准推动创新的边界,旨在提高功能性和用户体验。其中一个提案是ERC-7699,这是对广泛采用的ERC-20代币标准的扩展。ERC-7699引入了一个新概念:在ERC-20代币转账中包含参考信息。这一看似简单的补充有可能显著提高交易的清晰度和可追溯性,使用户能够直接将上下文信息(例如支付细节或交易目的)附加到他们的转移中。随着去中心化金融(DeFi)和其他基于区块链的应用变得日益复杂,ERC-7699作为简化以太坊网络内沟通和问责的实际解决方案应运而生。本文深入探讨ERC-7699的机制、好处和潜在用例,揭示它如何塑造代币交互的未来。

EIPs和ERCs的简要概述

ERC,即以太坊请求注释, governs和设置以太坊区块链上代币的边界/规则。ERC与以太坊的代币相关。

ERC为以太坊提供了显著的好处,特别是在标准化、开发效率和协调方面。标准化确保用户安全,通过防止与遵循不同、不统一标准的代币和DeFi协议交互所带来的风险。通过遵循已接受的ERC,用户可以更安全地参与DeFi。此外,ERC通过提供预定义框架简化了开发,降低了与区块链技术和以太坊虚拟机(EVM)相关的复杂性。这提高了开发级别的互操作性,使开发人员更容易构建和集成新功能。最后,ERC促进了以太坊生态系统内的协调,确保开发人员和DeFi产品与已接受的提案保持一致。当ERC或EIP被采纳时,项目必须实施该标准以保持兼容性并受益于新的改进,从而维护无缝和互联的DeFi环境。

ERC标准可作为可替代和不可替代的代币。主要的可替代代币标准是ERC-20,而不可替代的标准是ERC-721

ERC-20:可替代代币标准化与互操作性的基石

以太坊的主要可替代代币标准是ERC-20。ERC-20允许开发者与其他产品和服务构建互操作的代币应用程序。

ERC-20引入了如namesymboldecimalstotalSupplybalanceOfapproveallowancetransfertransferFrom等方法。它还提供了两个额外的事件:TransferApproval。基本上,它实现了智能合约内的代币API。

ERC-20提供了:

  • 将代币从一个账户转移到另一个账户,
  • 获取账户当前的代币余额,
  • 获取网络上可用的代币总供应量,
  • 批准第三方账户可以从一个账户支出代币金额。

ERC-7699在transfertransferFrom方法中改进了ERC-20,增加了一些补充内容。以下是ERC-20在ERC-7699中获得的改进概述。

在ERC-20中,

  • transfer:包括代币金额的标识符、目标地址的标识符,以及一个名为Transfer的事件。它检查标识符是否满足某些成功的标准。
  • transferFrom:包括代币金额和目标地址的标识符,以及一个名为Transfer的事件。它允许合同代表你转移代币和/或收取费用。

ERC-7699介绍:ERC-20改进的标准,带有转移参考扩展

ERC-7699提出一种新的代币标准,并在ERC-20可替代代币标准的基础上引入转移参考扩展。它建议在每个ERC-20交易中包含一个唯一标识符,以将转移与ERC-7699中的订单/发票关联。通过标准化参考,ERC-7699试图实现传统金融(TradFi)转移中的用户体验。

背景和动机

通过标准化的以太坊改进过程是实现其最佳版本的关键。ERC标准化开启了许多使用和开发DeFi生态系统的新路径。

1- 实现更好的用户体验: 传统银行系统中的转移扩展实现了更好的用户体验。ERC-20奠定了代币转账的基础,但ERC-7699改进了处理流程并引入了用户体验的提升。这个transferReference方法可以包含发票/采购订单的用户ID。

2- 提高大众采用率: 以太坊需要更多用户,ERC-7699提供与TradFi系统相同的用户界面和体验。ERC-7699可能提高大众采用率。

此外,ERC-7699还允许以太坊在发送ETH时提供任意消息,这是ERC-20标准所没有的功能。

理解ERC-7699

ERC-7699为以太坊的新用例建立了标准,通过为ERC-20交易提供参考;支付和价值的转移将变得更加简单。

理解ERC-20基础

由于这一EIP是对以太坊协议升级的进一步改进和扩展,因此该ERC提案需要EIP-20EIP-165来进行开发。

  • EIP-20(ERC-20):这定义了以太坊上可替代代币的标准接口,确保不同代币之间的互操作性,并简化与钱包、交易所和智能合约的集成。
  • EIP-165(ERC-165):该标准引入了一种方法,使智能合约能够声明其支持的接口,从而使其他合约更容易高效地与它们互动。

ERC-20核心包括TransferApproval事件,这些事件触发并促进代币转账。Transfer事件记录代币流动,而Approval事件允许第三方合约代表用户支出代币。

在ERC-7699中,我们关注transfertransferFrom方法中额外标识符的变化,增强它们的功能,同时保持与ERC-20标准的兼容性。

ERC-7699:对ERC-20的附加功能

ERC-7699仅为ERC-20的transfertransferFrom方法带来基本补充。

在ERC-20中,transfer方法是:

function transfer(address _to, uint256 _value) public returns (bool success)

这包括一个地址参数作为目标和一个值参数作为代表要发送的代币数量的代币的数量。它还公共返回该函数在调用中是否失败。

transferFrom方法是:

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)

这包括一个地址参数作为来源,另一个作为目的地。它还包括一个值参数作为代表要发送的代币数量的代币的数量。它也公共返回该函数在调用中是否失败。

ERC-7699引入了一个新参数,称为transferReference

在ERC-7699中,transfer方法是:

function transfer(address to, uint256 amount, bytes calldata transferReference) external returns (bool);

这包括相同的目标地址和数量参数,但增加了transferReferencetransferReference参数定义为calldata,因为它可以保持一些数据。

publicexternal的更改使结构更高效。使用external关键字的原因是:

1- external关键字旨在从calldata读取数据,而public关键字旨在将数组参数复制到内存中。这种方法提高了Solidity的效率。

2- 与从calldata读取数据相比,内存分配更为昂贵。在使用publicexternal关键字定义一些代码的例子中,使用public关键字的Gas费用几乎是external关键字的两倍。

transferFrom方法类似于:

function transferFrom(address from, address to, uint256 amount, bytes calldata transferReference) external returns (bool);

这个函数与其ERC-20版本具有相同的参数,并增加了transferReference。它使用external关键字来提高效率并降低Gas成本。

ERC-7699还包括一个名为TransferReference的小事件。这不是ERC-20中的附加更改,而是在此标准中新事件。

event TransferReference(bytes32 indexed loggedReference);

TransferReference事件只有一个名为loggedReference的参数。loggedReference可以是transferReference参数的确切副本,或者可以从transferReference参数的处理过程中得到。所有loggedReference参数和TransferReference事件的作用是以calldata形式记录参考。通过这样做,参考内容将被哈希到事件日志中。此外,由于bytes32类型的非哈希存在,它将是公开可读的。

为什么是现在?

通过新用户实现更好的用户体验和大众采用率对以太坊的可持续性至关重要。此外,带来更好的用户体验的改进需要与大多数或所有司法管辖区的法规相一致。

全球范围内正在实施针对加密货币、区块链,特别是稳定币的法规。例如,欧盟有MiCa,而美国证券交易委员会(SEC)负责US法规。理解并推动法规使主要金融科技公司(如Visa和Mastercard)能够参与该领域。ERC-7699引入了交易和意图的配对,这是传统金融的一个关键特征。

目前,如果用户想在其交易中包含支付参考,他们必须依赖于链下外部系统或自定义支付代理实施来存储和处理信息。然而,在传统金融系统中,支付参考自然地包括在转账中。以太坊通过ERC-7699引入了这一功能,这一功能在链上交易中一直是基本需求。

协作、采用和社区参与

协议和产品可以在其项目中采用ERC-7699,以增强用户体验并推动区块链和加密用例的大众采用。

1- 钱包: 传统银行系统在移动银行系统和应用程序成熟时达到了最佳用户体验。通过日常设备让相关产品易于用户掌握是关键。类似地,以太坊通过增强移动开发和抽象采用而受益。钱包在这方面发挥了重要作用。网页扩展钱包很好,但移动钱包容易使用。具有抽象使用特性的移动钱包是抽象改进的成果。通过使用ERC-7699的整合,它们将实现更多用户,因为这样的举措将带来更好的用户体验。实质上,ERC-7699将ETH转移与ERC-20代币转账等同对待。

2- 协议: ERC-7699可以在DeFi协议中进行常规交易,例如交换和质押。人们可以使用文本扩展为交换发送消息。该标准在国库、DAO和有链上活动的CEX中具有相关的用例。国库可以发送带有唯一参考参数的资金。CEX在链上的常规活动成本高昂,不应如此。此类CEX可以为用户提供一个集账号,并要求转账包括唯一参考。

3- 正式机构: 像政府部门这样的正式机构可以使用ERC-7699进行链上转账或持有资金,而无需利用去中心化协议国库。例如,美国用来持有网络犯罪收益的_战略加密储备_可以利用该标准提供的文本信息,适当地标记财务。那些在链下使用传统文书和简单治理程序的政府,但利用使用区块链的银行国库的方式,也可以应用ERC-7699的创新。

4- 项目: 主流采用意味着用户在日常挑战中转向加密和区块链用例。ERC-7699是推动这种方式的理想方法,因为其关键组成部分是可以改善用户体验的扩展。例如,采用可变ERC-20项目变得有吸引力,因为它们简化了项目管理流程。像CZKC这样的项目已经采用了ERC-7699标准。

主要范围

ERC-7699是ERC-20的扩展(或升级)版本,包含对ERC-20进行管理变更的接口规范。

希望与ERC-20标准相等并扩展ERC-7699的合同需要实现此接口:

interface IERC7699 {

  function transfer(address to, uint256 amount, bytes calldata transferReference) external returns (bool);

  function transferFrom(address from, address to, uint256 amount, bytes calldata transferReference) external returns (bool);

  event TransferReference(bytes32 indexed loggedReference);

}

上面的插图表明了在ERC-20基础上,该ERC增加了transfertransferFrom方法中的补充内容

如果查看ERC-7699接口的代码段和ERC-20中的方法版本,transfertransferFrom方法都有调用的事件transferReference,其参数为loggedReference

Transfer事件必须在TransferReference事件之后发出。条件是必须寻找Transfer事件的日志记录,才能触发TransferReference事件。此外,所发出的loggedReference可能是transferReference的确切副本,也可能是transferReference由其丰富的内容派生的数据。需要注意的是,transferReferenceloggedReference并非总是被期望相等。

重要的是,这些方法是扩展,因此不必总是满足新的标识符。例如,transferReference可以为空。在这种情况下,用户可以但不必发出TransferReference事件。在这种情况下,转账在正常的ERC-20标准下进行。

此外,TransferReference不应采用匿名说明符,以确保事件签名被记录,并且可以用作过滤器。

向后兼容性

ERC-7699与现有的ERC-20代币标准完全兼容。这意味着,由于它只是一个扩展,与现有的transfertransferFrom函数可以一起使用。这些现有的可升级ERC-20代币可以使用此标准,并可以选择通过此代币标准添加支付参考。

interface IERC7699 {

  event TransferReference(bytes32 indexed loggedReference);

  function transfer(address to, uint256 amount, bytes calldata transferReference) external returns (bool);

  function transferFrom(address from, address to, uint256 amount, bytes calldata transferReference) external returns (bool);

}

该代码段介绍了ERC-7699代币标准的接口。使用此代币标准的代币可以通过此接口实现诸如铸造和转移等过程。此外,transfertransferFrom函数都有transferReference。同时,TransferReference事件在接口中进行了定义以供发出。

contract ERC20TransferReference is ERC20, IERC7699 {

  constructor() ERC20("ERC20 Transfer Reference Example", "TXRE") {
    _mint(msg.sender, 987654321 * 1e18);
  }

    function _logReference(bytes calldata transferReference) internal virtual {
    if (transferReference.length > 0) {
      bytes32 loggedReference;
      assembly {
        loggedReference := calldataload(transferReference.offset)
        }
      emit TransferReference(loggedReference);
    }
  }

  function transfer(address to, uint256 amount, bytes calldata transferReference) public virtual returns (bool) {
    _logReference(transferReference);
    return transfer(to, amount);
  }

  function transferFrom(address from, address to, uint256 amount, bytes calldata transferReference) public virtual returns (bool) {
    _logReference(transferReference);
    return transferFrom(from, to, amount);
  }

}

该代码段是合约通过ERC-7699的接口铸造ERC-20代币的部分。该部分包含遵循默认ERC-20代币标准的transfertransferFrom函数。_logReference函数使我们能够将loggedReferenceTransferReference事件的输出进行比较。

安全性

关于标准的安全性,有两个问题值得关注:

  • 隐私: 因为该ERC包含支付参考,敏感数据可能会被暴露。用户必须对此保持警惕,注意不要通过透明交易泄露敏感信息。在支付参考输入中 Incorporating 加密可能为该代币标准提供完全的隐私保障。
  • 操控: 恶意行为者可能操控支付参考索引。对参考没有验证,这可能带来通过操控而导致的风险。

实际用例

  • 银行部门: 我们已经经历了接受ETF和CBDC的生态系统。这些过程是中央银行的先驱。想要利用以太坊进行工作流程的中央银行可以通过ERC-7699达到已经向其客户提供的传统用户体验。
  • 支付: 个人和企业已经在以太坊区块链上处理每月和每年的支付。而且,CZKC稳定币已经将ERC-7699作为其代币模型实现。通过使用ERC-7699,用户可以指定希望与其交易伴随的附加叙述。这些文本可以是用户ID、交易目的等等。
  • 交易所和加密网关: 交易所的一个痛点是需要在许多用户链上账户之间转移资金。这些过程增加了成本,并给网络造成了不必要的负担。为用户提供一个集合账户,如前面示例所述,并允许以唯一参考(根据用户请求)进行资金转移,将有助于减少与此类管理程序相关的成本。

结论

ERC-7699代表了ERC-20标准的深思熟虑和实际的演变,解决了代币转账中存在的长期空白,允许包含参考数据。允许用户将备忘录或上下文信息附加到交易中,提高了以太坊生态系统的透明度、问责制和可用性。无论是用于DeFi应用、跨境支付,还是企业用例,ERC-7699都为更清晰的沟通和更高效的交易追踪打开了新可能性。随着区块链领域的持续成熟,像ERC-7699这样的标准突显了迎合开发人员和用户不断增长的需求的渐进但影响深远的改进的重要性。凭借其简化工作流程和改善互操作性的潜力,ERC-7699有望成为去中心化技术持续演变中的一项有价值的工具。

我们由衷感谢Radek Svarz对文本的审阅,以及Daniel Ayuko对文章的编辑以及引言和结论部分的撰写。

由2077研究提供的内容仅供参考,并不构成财务、法律或税务建议。所表达的观点仅代表作者的观点,并不一定反映2077研究或其附属机构的观点。读者在解读所呈现的信息时,应进行自己的研究并运用独立判断。

  • 原文链接: research.2077.xyz/erc-76...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
2077 Research
2077 Research
https://research.2077.xyz