Difference between revisions of "Value overflow incident"

From Bitcoin Wiki
Jump to: navigation, search
(Add See Also section with entry for Common Vulnerabilities and Exposures.)
(Mention that it was a soft fork, and link to actual soft fork commit)
 
(3 intermediate revisions by 2 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
 
|in1=237fe8348fc77ace11049931058abb034c99698c7fe99b1cc022b1365a705d39-000
 
|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 184,467,440,737.09551616 bitcoins for three different addresses.<ref>https://bitcointalk.org/index.php?topic=822.0</ref>
 
 
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.
 
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.<ref>http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-5139</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 of the client was published within five hours of the discovery.
+
 
 +
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>
 
The block chain was forked.
 
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.
+
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.
 +
 
 
The bad transaction no longer exists for people using the longest chain.
 
The bad transaction no longer exists for people using the longest chain.
 
Therefore, the bitcoins created by it do not exist either.
 
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.
 
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.
+
It appears to have come from a faucet and has not been used since.<ref>{{cite tx|237fe8348fc77ace11049931058abb034c99698c7fe99b1cc022b1365a705d39}}</ref>
  
 
==See Also==
 
==See Also==
Line 29: Line 18:
 
<references/>
 
<references/>
 
[[Category:Notable transactions]][[Category:2010 events]]
 
[[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.