There is a treasure trove of tokens sent to address(0) to "burn" under the assumption that no one has the private key. and no one ever will.
In a manner of speaking, I would classify it as a very large open bounty. It's like a pinata for mathematicians and quantum computers.
Hope it helps.
Answer from Rob Hitchens on Stack ExchangeThere is a treasure trove of tokens sent to address(0) to "burn" under the assumption that no one has the private key. and no one ever will.
In a manner of speaking, I would classify it as a very large open bounty. It's like a pinata for mathematicians and quantum computers.
Hope it helps.
The genesis block is a special block which was mined by nobody and therefore is associated with the account 0x0000000000000000000000000000000000000000.
It's impossible to generate the private key for this address and people can use it as proof-of-burn account on the Ethereum blockchain.
Why is the Connected EOA Address 0x0000000000000000000000000000000000000000
solidity - what is the meaning of 0x0? say when variable gets assigned to it, example: keccak256(number) = 0x0; - Ethereum Stack Exchange
Is 0x0000000000000000000000000000000000000000 a "burn address"?
What happens when you transfer a ERC20 token to a ethereum wallet adress?
The 0x prefix means hexadecimal and it's a way to tell programs, contracts, APIs that the input should be interpreted as a hexadecimal number (we'll shorten to hex). 0x0 is actually 0 but in hex. Usually we use 0x0 to check whether the address is not set by us and it is set to default value by the solidity which is 0x0.
require(_addressIn != address(0))
E.g. 0x0 in Solidity is short for 0x0000000000000000000000000000000000000000, and if we use this as some address than it does have value greater than zero. check here.
Keccak256 computes the Ethereum-SHA-3 (Keccak-256) hash (doc) of the arguments passed into the function. So the above line of code is not correct because keccak256(number) is returning the hash value which you can store in some variable, instead you are trying to treat the output hash value as an variable and assigning the 0x0 to that.
I hope it helps.
The example given wouldn't actually work because you're trying to assign 0x0 to the keccak function.
It has the same meaning as bytes32(0). So, you can go:
require(bytes32(0) == 0x0);
That would be comparing equivalents. It was possible to compare address and 0x0 but the trend seems to be toward explicit type casting, so you would go address(0) with a recent compiler.
This type of expression is often used to validate inputs, in particular, catching important values that were not passed in. This is common:
function doSomething(bytes32 key) ... {
require(key != 0x0);
// carry on
}
Hope it helps.
I see that https://etherscan.io/address/0x0000000000000000000000000000000000000000 owns almost $3 billion in tokens plus $3.5 million ETH.
Is this a burn address? I know in Bitcoin that one can send BTC to an address where no-one knows the private key. Is the same true in Ethereum? If someone wanted to prove that they had "destroyed" a token could they send it to the above-referenced address?