Key Facts
Description
A "doubler drain" contract deployed in January 2016. The fallback function calculates 2x the incoming ETH, caps it at the contract balance, and sends it to a hardcoded owner address. The add_funds() function accepts ETH deposits. 25 ETH remains locked, extractable only by the owner.
Source Verified
Compiled with native C++ solc v0.2.0 (webthree-umbrella v1.1.2, unoptimized). Required building the compiler from source - no pre-built binaries exist for this era. Key finding: source uses amount > this.balance (GT opcode), not this.balance < amount (LT opcode). Logically identical but different bytecode due to EVM stack operand ordering.
Historian Categories
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract Doubler {
address owner;
function Doubler() {
owner = 0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb;
}
function() {
uint amount = msg.value * 2;
if (amount > this.balance) {
amount = this.balance;
}
owner.send(amount);
}
function add_funds() {}
}