出于安全考虑,solidity智能合约编码功能


我有一个简单的问题。

所以当我们处理链上的智能合约时,为了安全起见,我们为什么不做编码函数呢?

例如

function encodeFunction(address _callee, bytes calldata _callData, uint256 _value) public returns (bool) {
(bool success, bytes memory returnData) = callee.call{vaule: _value}(_callData);
require(success, "tx failed");
return success;
}

假设我们能够计算出任何合同地址和调用数据,那么使用这种函数来处理任何情况不是更安全吗?

难道没有人只听encodeFunction及其参数吗?例如,etherscan允许用户查看函数调用和参数。这将破坏编码函数的全部目的。

具有这种功能也违背了区块链概念透明的全部目的。

最新更新