市值: $2.1487T -2.35%
成交额(24h): $134.6863B -6.16%
恐惧与贪婪指数:

16 - 极度恐惧

  • 市值: $2.1487T -2.35%
  • 成交额(24h): $134.6863B -6.16%
  • 恐惧与贪婪指数:
  • 市值: $2.1487T -2.35%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

合约中的后备和接收函数的目的是什么?

Ethereum's fallback and receive functions handle unexpected transactions and plain Ether transfers, ensuring contracts respond securely and efficiently to all incoming calls.

2025/11/11 03:59

回退和接收函数:以太坊智能合约的核心机制

以太坊区块链上的智能合约旨在通过函数调用与外部账户和其他合约进行交互。然而,在某些情况下,合约会在没有指定函数调用的情况下接收以太币。这就是后备接收函数发挥作用的地方。这些特殊函数管理意外或简单的以太传输,确保即使没有调用目标函数,合约也能做出适当的响应。

处理意外的交互

当合约收到与其定义的任何函数都不匹配的交易时,回退函数将充当默认处理程序。它在各种条件下执行,特别是当有人发送以太币以及无效或没有呼叫数据时。该函数的行为随着 Solidity 版本的发展而演变,特别是在版本 0.6.0 中引入专用接收函数之后。

  1. 当合约收到对不存在函数的调用时,回退函数就会运行。
  2. 当使用空呼叫数据发送 Ether 并且不存在接收功能时,也会触发它。
  3. 如果回退函数和接收函数都存在,则接收函数处理普通的以太传输。
  4. 当数据包含在事务中但与任何函数签名不匹配时,回退保留控制权。
  5. 如果没有任何一个功能,将以太币发送到合约将会失败,除非它被标记为应付。

区分回退和接收

这两个功能之间的分离提高了合约设计的清晰度和安全性。开发人员现在拥有不同的工具来根据数据是否伴随交易来处理价值转移。

  1. 接收功能专门针对没有关联数据的以太网接收进行了优化。
  2. 它必须声明为外部且可支付,并且每个合约只能存在一个这样的函数。
  3. 回退函数可以执行更复杂的逻辑,包括解码传入的数据有效负载。
  4. 当事务包含数据时,即使数据很少,后备功能也优先于接收。
  5. 结构良好的合约使用接收来进行简单的存款,并使用回退来进行交互路由或日志记录。

安全和实际用例

这些功能不仅仅是技术形式——它们在现实世界的应用中发挥着至关重要的作用,从去中心化交易所到 NFT 铸造平台。配置错误可能会导致资金损失或可利用的切入点。

  1. 接受直接付款的合约通常会实施接收功能来简化存款。
  2. 代理模式使用后备函数将调用委托给实现合约。
  3. 恶意行为者可能会利用安全性较差的后备措施来迫使以太币进入合约,从而破坏依赖于平衡的逻辑。
  4. 开发人员必须确保回退逻辑消耗最少的 Gas,以避免在代币分发等事件期间交易失败。
  5. 这些函数中的可见性控制和访问限制有助于防止意外的执行路径。

常见问题解答

合约可以同时具有后备功能和接收功能吗?是的,合同可以定义两者。接收函数处理普通的以太传输(空调用数据),而后备函数则管理所有其他不匹配的调用,包括那些带有数据的调用。

如果合同缺少应付回退或接收功能会发生什么?任何将以太币直接发送到此类合约的尝试都将恢复。除非合约继承或实现接受价值的机制,否则交易将失败。

为什么Solidity 0.6.0中引入了接收函数?它被添加到单独的关注点:与通用函数调用不同地处理简单的以太传输。这减少了歧义,并防止开发人员意外地将复杂的逻辑放入本应简单的存款处理程序中。

可以使用后备功能来升级代理合约吗?在委托代理模式中,后备函数将低级调用转发给实现合约。这可以通过重定向执行来实现升级,同时保持相同的存储和地址。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

在Bybit上进行BTC交易如何选择线性永续合约和反向永续合约?

在Bybit上进行BTC交易如何选择线性永续合约和反向永续合约?

2026-06-06 02:54:55

合同结算机制1. Bybit的线性永续合约以USDT结算,这意味着所有盈亏计算、保证金要求和清算门槛均以稳定币单位计价。 2.反向永续合约以BTC本身结算,因此每笔交易都会直接影响交易者的BTC余额——收益会增加BTC持有量,而损失会减少BTC持有量。 3. 反向合约的定价引擎使用 BTC/USDT...

如何在Bybit上设置风险管理规则来限制我的每日最大损失?

如何在Bybit上设置风险管理规则来限制我的每日最大损失?

2026-06-04 16:40:15

账户级损失限额配置1. 使用双因素身份验证通过网络或移动应用程序登录您的 Bybit 帐户。 2. 导航至“资产”部分,然后从左侧菜单中选择“风险管理”。 3. 选择“每日损失限制”并将该功能切换为“开”以激活控制。 4. 输入代表当前交易日 USDT 最大允许净亏损的数值。 5. 使用您的电子邮件...

如何在币安上启用投资组合保证金模式以降低我的保证金要求?

如何在币安上启用投资组合保证金模式以降低我的保证金要求?

2026-06-05 04:59:43

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...

如何将我的未平仓期货头寸从币安迁移到Bybit而不平仓?

如何将我的未平仓期货头寸从币安迁移到Bybit而不平仓?

2026-06-04 03:59:47

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...

如何处理美国加密货币期货交易利润的税务影响?

如何处理美国加密货币期货交易利润的税务影响?

2026-05-29 18:19:59

Bitcoin 减半机制1. Bitcoin 的协议强制规定 2100 万枚代币的固定供应上限,并通过区块奖励引入新单位。 2. 每 210,000 个区块(大约每四年)区块奖励就会减少一半,这个过程称为减半。 3. 最近一次减半发生在 2024 年 4 月,每个区块的奖励从 6.25 BTC 减少...

如何利用Bybit交易机器人市场寻找有利可图的期货策略?

如何利用Bybit交易机器人市场寻找有利可图的期货策略?

2026-06-02 04:39:47

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...

在Bybit上进行BTC交易如何选择线性永续合约和反向永续合约?

在Bybit上进行BTC交易如何选择线性永续合约和反向永续合约?

2026-06-06 02:54:55

合同结算机制1. Bybit的线性永续合约以USDT结算,这意味着所有盈亏计算、保证金要求和清算门槛均以稳定币单位计价。 2.反向永续合约以BTC本身结算,因此每笔交易都会直接影响交易者的BTC余额——收益会增加BTC持有量,而损失会减少BTC持有量。 3. 反向合约的定价引擎使用 BTC/USDT...

如何在Bybit上设置风险管理规则来限制我的每日最大损失?

如何在Bybit上设置风险管理规则来限制我的每日最大损失?

2026-06-04 16:40:15

账户级损失限额配置1. 使用双因素身份验证通过网络或移动应用程序登录您的 Bybit 帐户。 2. 导航至“资产”部分,然后从左侧菜单中选择“风险管理”。 3. 选择“每日损失限制”并将该功能切换为“开”以激活控制。 4. 输入代表当前交易日 USDT 最大允许净亏损的数值。 5. 使用您的电子邮件...

如何在币安上启用投资组合保证金模式以降低我的保证金要求?

如何在币安上启用投资组合保证金模式以降低我的保证金要求?

2026-06-05 04:59:43

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...

如何将我的未平仓期货头寸从币安迁移到Bybit而不平仓?

如何将我的未平仓期货头寸从币安迁移到Bybit而不平仓?

2026-06-04 03:59:47

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...

如何处理美国加密货币期货交易利润的税务影响?

如何处理美国加密货币期货交易利润的税务影响?

2026-05-29 18:19:59

Bitcoin 减半机制1. Bitcoin 的协议强制规定 2100 万枚代币的固定供应上限,并通过区块奖励引入新单位。 2. 每 210,000 个区块(大约每四年)区块奖励就会减少一半,这个过程称为减半。 3. 最近一次减半发生在 2024 年 4 月,每个区块的奖励从 6.25 BTC 减少...

如何利用Bybit交易机器人市场寻找有利可图的期货策略?

如何利用Bybit交易机器人市场寻找有利可图的期货策略?

2026-06-02 04:39:47

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...

查看所有文章

User not found or password invalid

Your input is correct