主页 > imtoken苹果钱包 > 智能合约内部转账与洗钱案例分析
智能合约内部转账与洗钱案例分析
一、简介
说到ETH的转账方式以太坊转账备注,最常用的就是sendTransaction,但是有一种转账方式往往被人们所忽视。 这种转账方式不仅在大额转账时手续费较低,而且隐蔽性也比sendTransaction高。 这种转账方式常用于脚本批量转账,这种转账方式为以太坊合约内部转账。
2.特点
合约内转账有以下优点
手续费低
与普通的sendTransaction相比,需要的手续费至少是21000 GAS,而通过合约转账只需要2300 GAS。
隐蔽性强
普通sendTransaction的转账金额和目的地址在web3中可以通过getTransaction直接查询,但是合约内部的转账只能通过转账上的debug_traceTransaction进行分析,相比getTransaction直接获取结果更难自动化分析。
3.分析
富辰区块链威胁情报平台发现,目前以太坊上 6% 的 ETH 转账是通过对全网交易的自动分析,通过智能合约进行的。 虽然占比不大,但大部分用于大额ETH转账,其对于分析黑资产流向的重要性不言而喻。
近日,富臣区块链威胁情报平台发现以下地址涉嫌参与黑资产转移。
0x02CACEb4BFc2669156B2eb3b4d590E7aC10A4E73
该合约已在ETHScan上开源其合约代码,代码如下:
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) onlyOwner public {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract DistributeETH is Ownable {
function distribute(address[] _addrs, uint[] _bals) onlyOwner{
for(uint i = 0; i < _addrs.length; ++i){
if(!_addrs[i].send(_bals[i])) throw;
}
}
function () payable {}
}
可以看出,合约代码其实很简单,主要功能只有一个,就是合约管理员通过一个数组来分配合约中的ETH。
在分析时以太坊转账备注,合约共向 1800 个地址发送了 204,979.07 ETH
这是其中一笔交易
可以看出,它只支付了0.004251912 ETH,就向25个地址发送了730.33678 ETH。 可见,如果利用这种转账方式来迷惑黑资金,将大大增加追踪难度。
进一步分析后发现,该地址最大的ETH来源是
0x6705120db9fb682dec120cdecc8220385d25fc50
该地址将 879 笔交易共计 181145.6 ETH 转移到 0x02CACEb4BFc2669156B2eb3b4d590E7aC10A4E73。
最大的资金来源是0x6705120db9fb682dec120cdecc8220385d25fc50的ETH,来自数千个钱包地址的连续转账,而这些钱包地址都是由脚本创建的,企图隐藏其资金来源。 然而,经过我们的追踪,我们发现这笔资金实际上来自以下几个钱包地址。
地址流出 ETH 总量 ETH 来源备注
0xb18cb7cda7779139b4c660275afa309a600b71bf
31,813.98 以太币
海妖交易所
0xEcB979D7294c82d8B07a279f942AAe0ec458b0EF
1,729.65 以太币
币安交易所
0x9ae63ee2e8ed29f4a4edb982f918a33c2caf3f98
11,370,000 以太币
波兰交易所
Bitfinex 交易所
海妖交易所
Bittrex 交易所
0xe4abc54f5a6288b60c18b361442a151fc4911da6
30,297.50ETH
波兰交易所
Bittrex 交易所
累计流出2615万个GNT币
累计流出25,055 REP币
累计流出48,730,000 ZRX币
共流出21,793.17枚MKR币
总流出107,140.00 NMR币
0xd9acba6f45c7bed110cf7e86406ba2d295e9cc3a
774.42 以太币
XRPC 和 ARB ICO
XRPC 和 ARB 的发行人
4。结论
可以看出,这个合约背后的所有者通过ICO和交易,通过制作小币种和发行数字货币的方式获得了大量的ETH,然后通过脚本或智能合约分散这些ETH,企图掩盖其被盗的痕迹。贸易。
因此,如果安全人员想要跟踪或分析以太坊上的黑金转账,不能只关注普通的转账流程,更应该关注合约内的转账,因为其天然的手续费低廉,隐蔽性强。 黑钱转移的温床。