An ownership holder with no access control: it stores one address and any account at all can overwrite it.
Historical Significance
An ownership base contract written without the check that makes ownership mean anything. The pattern this one is missing, a guard comparing msg.sender against the stored owner, became the modifier that nearly every later contract inherits.
Context
Ethereum's Frontier network went live on 30 July 2015. Almost nothing was deployed in its first months except tutorial code and small experiments, written in a Solidity only a few months old and with no test network in common use, so the experiments happened on mainnet.
Key Facts
Description
A contract that stores a single address and exposes two functions: setOwnerAddress(newOwner) writes it and get() reads it back.
setOwnerAddress carries no check on who is calling, so the owner slot is not owned by anybody: any account can take it at any time by sending one transaction. Nothing else in the contract depends on the value, so nothing is at risk here, but the same two functions inherited by a contract that holds funds would give them away.
The same account published these two functions again four thousand blocks later with the declarations in the opposite order.
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
This contract has verified source code on Etherscan.
Show source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
contract Owned {
address owner;
function setOwnerAddress(address newOwner) {
owner = newOwner;
}
function get() returns (address) {
return owner;
}
}
External Links
Related contracts
SimpleStorage
Same deployerThe SimpleStorage example that opens the Solidity documentation, retyped with its two functions in the other order.
0xbde154...a32a80October 11, 2015Contract 0x57cc5f...8286fc
Same deployerA two function ownership holder from October 2015 whose setter has no access control, so any address can take it over.
0x57cc5f...8286fcOctober 11, 2015Contract 0x17f031...35b178
Same deployerA two function ownership holder from October 2015 whose setter has no access control, so any address can take it over.
0x17f031...35b178October 11, 2015Contract 0xadcfd2...82e810
Same deployerA two function ownership holder from October 2015 whose setter has no access control, so any address can take it over.
0xadcfd2...82e810October 12, 2015Contract 0x856f42...7b2781
Same deployerA two function ownership holder from October 2015 whose setter has no access control, so any address can take it over.
0x856f42...7b2781October 12, 2015Contract 0xcc1cb6...c7f752
Same deployerA two function ownership holder from October 2015 whose setter has no access control, so any address can take it over.
0xcc1cb6...c7f752October 12, 2015