Value overflow incident: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Taras (talk | contribs)
Created page with "{{Transaction |hash=1d5e512a9723cbef373b970eb52f1e9598ad67e7408077a82fdac194b65333c9 |in1=17TASsYPbdLrJo3UDxFfCMu5GXmxFwVZSW |val1=0.5 |out1=1Hk51V49a58fC2r471hScXopEQpioDEuqx..."
 
Harding (talk | contribs)
Mention that it was a soft fork, and link to actual soft fork commit
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Transaction
On August 15 2010, it was discovered that block 74638 contained a transaction that created 184,467,440,737.09551616 bitcoins for three different addresses.<ref>{{cite block|74638|offchain=Value overflow incident bad chain|year=2010|month=08|day=15|hash=0000000000790ab3f22ec756ad43b6ab569abf0bddeb97c67a6f7b1470a7ec1c}}</ref><ref>{{cite tx|hash=1d5e512a9723cbef373b970eb52f1e9598ad67e7408077a82fdac194b65333c9}}</ref><ref>{{cite btct|id=822|title=Strange block 74638|date=2010-08-15}}</ref>
|hash=1d5e512a9723cbef373b970eb52f1e9598ad67e7408077a82fdac194b65333c9
Two addresses received 92.2 billion bitcoins each, and whoever solved the block got an extra 0.01 BTC that did not exist prior to the transaction.
|in1=17TASsYPbdLrJo3UDxFfCMu5GXmxFwVZSW
This was possible because the code used for checking transactions before including them in a block didn't account for the case of outputs so large that they overflowed when summed.<ref>http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-5139</ref>
|val1=0.5
|out1=1Hk51V49a58fC2r471hScXopEQpioDEuqx
|pay1=92,233,720,368.54275808
|out2=12vRJXnnA21YAaLacWXpNshy7MBAwrigtQ
|pay2=92,233,720,368.54275808
|fee=0.51
|time=?
|size=?
|special=a
}}
On August 15 2010, it was discovered that block 74638 contained a transaction that created over 184 billion bitcoins for two different addresses.<ref>https://bitcointalk.org/index.php?topic=822.0</ref> This was possible because the code used for checking transactions before including them in a block didn't account for the case of outputs so large that they overflowed when summed.<ref>http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-5139</ref> A new version was published within a few hours of the discovery. The block chain had to be forked. Although many unpatched nodes continued to build on the "bad" block chain, the "good" block chain overtook it at a block height of 74691. The bad transaction no longer exists for people using the longest chain. Therefore, the bitcoins created by it do not exist either.


The block and transaction:
A new version of the client was published within five hours of the discovery that contained a soft forking change to the consensus rules that rejected output value overflow transactions (as well as any transaction that paid more than 21 million bitcoins in an output for any reason).<ref>[https://github.com/bitcoin/bitcoin/commit/d4c6b90ca3f9b47adb1b2724a0c3514f80635c84#diff-118fcbaaba162ba17933c7893247df3aR1013 "Fix for block 74638"]<br>Satoshi Nakamoto</ref>
<pre>CBlock(hash=0000000000790ab3, ver=1, hashPrevBlock=0000000000606865, hashMerkleRoot=618eba,
The block chain was forked.
nTime=1281891957, nBits=1c00800e, nNonce=28192719, vtx=2)
Although many unpatched nodes continued to build on the "bad" block chain, the "good" block chain overtook it at a block height of 74691<ref>{{cite block|74691|year=2010|month=08|day=16|hash=00000000005c22d199706df1c38b38d76f8401920dcbe91edf3417f8847da707}}</ref> at which point all nodes accepted the "good" blockchain as the authoritative source of Bitcoin transaction history.
  CTransaction(hash=012cd8, ver=1, vin.size=1, vout.size=1, nLockTime=0)
    CTxIn(COutPoint(000000, -1), coinbase 040e80001c028f00)
    CTxOut(nValue=50.51000000, scriptPubKey=0x4F4BA55D1580F8C3A8A2C7)
  CTransaction(hash=1d5e51, ver=1, vin.size=1, vout.size=2, nLockTime=0)
    CTxIn(COutPoint(237fe8, 0), scriptSig=0xA87C02384E1F184B79C6AC)
    CTxOut(nValue=92233720368.54275808, scriptPubKey=OP_DUP OP_HASH160 0xB7A7)
    CTxOut(nValue=92233720368.54275808, scriptPubKey=OP_DUP OP_HASH160 0x1512)
  vMerkleTree: 012cd8 1d5e51 618eba


Block hash: 0000000000790ab3f22ec756ad43b6ab569abf0bddeb97c67a6f7b1470a7ec1c
The bad transaction no longer exists for people using the longest chain.
Transaction hash: 1d5e512a9723cbef373b970eb52f1e9598ad67e7408077a82fdac194b65333c9</pre>
Therefore, the bitcoins created by it do not exist either.
While the transaction does not exist anymore, the 0.5 BTC that was consumed by it does.
It appears to have come from a faucet and has not been used since.<ref>{{cite tx|237fe8348fc77ace11049931058abb034c99698c7fe99b1cc022b1365a705d39}}</ref>
 
==See Also==
* [[Common Vulnerabilities and Exposures]]


The transaction does not exist anymore, but the 0.5 BTC output used in it does. It has not been spent after the fork. This fund appears to have come from a faucet.
== References ==
== References ==
<references/>
<references/>
[[Category:Notable transactions]][[Category:2010 events]]
{{Bitcoin Core documentation}}

Latest revision as of 18:13, 22 July 2016

On August 15 2010, it was discovered that block 74638 contained a transaction that created 184,467,440,737.09551616 bitcoins for three different addresses.[1][2][3] Two addresses received 92.2 billion bitcoins each, and whoever solved the block got an extra 0.01 BTC that did not exist prior to the transaction. This was possible because the code used for checking transactions before including them in a block didn't account for the case of outputs so large that they overflowed when summed.[4]

A new version of the client was published within five hours of the discovery that contained a soft forking change to the consensus rules that rejected output value overflow transactions (as well as any transaction that paid more than 21 million bitcoins in an output for any reason).[5] The block chain was forked. Although many unpatched nodes continued to build on the "bad" block chain, the "good" block chain overtook it at a block height of 74691[6] at which point all nodes accepted the "good" blockchain as the authoritative source of Bitcoin transaction history.

The bad transaction no longer exists for people using the longest chain. Therefore, the bitcoins created by it do not exist either. While the transaction does not exist anymore, the 0.5 BTC that was consumed by it does. It appears to have come from a faucet and has not been used since.[7]

See Also

References

  1. Block 74638. Value overflow incident bad chain. 2010-08-15. Hash 0000000000790ab3f22ec756ad43b6ab569abf0bddeb97c67a6f7b1470a7ec1c. [ Block]
  2. Transaction 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b.
  3. BitcoinTalk thread 822. Strange block 74638 2010-08-15.
  4. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-5139
  5. "Fix for block 74638"
    Satoshi Nakamoto
  6. Block 74691. Main chain. 2010-08-16. Hash 00000000005c22d199706df1c38b38d76f8401920dcbe91edf3417f8847da707. Block explorer
  7. Transaction 237fe8348fc77ace11049931058abb034c99698c7fe99b1cc022b1365a705d39.