http://www.7klian.com

以太坊蜜罐智能合约阐明

这个智能合约有趣的处地址于它配置了最大转账上限是 50 finney,最小转账下限是 2 wei(条件是大于 1 wei,也就是最小 2 wei)。每次转账之后,最大转账上限城市缩小本钱来的一半,当总转账数量大于便是 100 finney,那就可以取出庄家在初始化智能合约时放进的钱。

Github 地点:Solidlity-Vulnerable/honeypots/OpenAddressLottery.sol

按照这个智能合约的内容,只要转高出 0.1 ether 并挪用 Test() ,将会进入轮回最终获得 amountToTransfer 的值,并将 amountToTransfer wei 发送给会见者。在不思量整数溢出的环境下,amountToTransfer 将会是 msg.value*2。这也是这个蜜罐合约吸引人的处所。

翻译成 Solidity 的伪代码大抵是:

4.2 偷梁换柱的地点 (会见节制):firstTest

contract For_Test

固然此时用户 A 的余额仍然存在,但由于合约中已经没有以太币了,所以 A 将无法取出其存入的 50 个以太币

function loggedTransfer(uint amount, bytes32 message, address target, address currentOwner) { Transfer(amount, message, target, currentOwner); } function divest() public { this.loggedTransfer(1, "a", 0x1, 0x2); this.loggedTransfer(1, "", 0x1, 0x2); }

{
uint variable = 0;

智能合约地点:0x42dB5 Bfe8828f12F164586AF8A992 B3a7 B038164

uint256 evalue;

====================
revert();
}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读