1.部署了智能合约之后,很多方法所有人都可以调用的,而且一旦调用就会产生 gas 费用,这个 gas 费用由创建者承担还是调用者承担呢 2. 合约的很多方法都可以公共调用,如果费用由合约创建者承担,攻击者就可以无限调用然后把 gas 消耗光 3. eth_sendTransaction 必须要求账号被解锁,一次解锁之后,那岂不是可以盗别人的资产了,嘻嘻 4. 在大多数情况下用 eth_sendTransaction 还是 eth_sendRawTransaction 呢
1
harrytse94 2022-09-23 16:24:02 +08:00 1
1/2.
view 方法调用不需要 account 签名,所以不需要 gas 费用。 对于其他非 view 的方法,eth 上的 gas 由交易的 from account 支付,也就是发起交易的那个 account ,所以是谁调用合约谁支付 gas 3. eth_sendTransaction 仅需要提供此次交易的 签名,而签名是无法复用的,所以不存在后面盗用别人的资产,当然如果在签名的过程中或者其他过程中 account 对应的私钥被泄漏了,那么可以到用资产 4. 一般情况下这两种都不需要,直接用 ethers.js 就可以了,库已经处理好了 |
2
Liuwilliam1 OP @harrytse94 受教了,小白向大佬鞠一躬
|