Bitcoin Forum
March 25, 2026, 02:01:12 PM *
News: Latest Bitcoin Core release: 30.2 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Ang Value Overflow Bug ng Bitcoin noong 2010  (Read 66 times)
coinrifft (OP)
Full Member
***
Offline Offline

Activity: 154
Merit: 123


Spinly.io - Next-gen Crypto iGaming Platform


View Profile
March 09, 2026, 12:57:17 AM
Merited by crwth (1), cryptoaddictchie (1), TypoTonic (1)
 #1


Ang Value Overflow Bug ng Bitcoin noong 2010

Talaan



1. Panimula

Noong mga unang taon ng Bitcoin, at katulad ng mga ibang softwares, hindi naman ito perpekto at marami itong bugs o kahinaan sa sistema. At isa rito ang yung tinatawag na Value Overflow Bug. Ito ay nangyari noong Agost 15, 2010. And bug na to, na-exploit ay gumawa ng transaksyon na napakalaking halaga na lagpas sa 21 million supply ng Bitcoin.



2. Ang Kalagayan ng Bitcoin noong 2010

Kung susuriin natin ang estado ng Bitcoin nung panahon na yun, na halos 1 taon pa lang tumatakbo, konti pa lang ang gumagamit, mga nag mine at maliit palang software developer community nito. At dahil nakapa bata pa nito, hindi pa talaga na tutuklasan ang kahinaan nito at ang mga bug sa sistema. Si Satoshi pa lang talaga naman ang nag-iisa nag maintain ng code nito at mangilan ngilan lang na developer.



3. Ano ang Value Overflow Bug

Ang Value Overflow Bug as isang bug sa code ng Bitcoin na nagbigay sa isang transaksyon ng ng 184,467,440,737 BTC (halos 184 billion BTC) sa  block 74638 mula sa 21 million supply lamang. At kung titingnan mo naman talaga, hindi ito pwede mangyari, pero paano nakalusot ito?



4. Paano Nangyari ang Insidente

Ito ay nangyari noong Agosto 15, 2010 na may makitang anomalya sa Bitcoin blockchain na mayroon nakapalaking halaga. At natuklasan na may bug ang Bitcoin software na tinatawag na Value Overflow Bug. Ang bug na ito ay integer overflow sa C++ code ng Bitcoin. Ang code ay sinusuri ang transaksyon, at binibilang ang output. At kung sobrang laki ng value, nag overflow ang signed-64 bit integer.

Code:
if (output_value > input_value)
    reject transaction

Sa madaling salita, pinagsama ang outputs, nagkaroon ng overflow, nakita nang sistema na maliit ang resulta, itinuring nya itong valid at tinanggap ng network ang transaksyon.

At isa sa mga nakapansin nito ay si Jeff Garzik at madali syang nag open ng thread sa komunidad para tanungin ang beripikayin ang nasabing transaksyon.


The "value out" in this block #74638 is quite strange:

Code:
{
    "hash" : "0000000000790ab3f22ec756ad43b6ab569abf0bddeb97c67a6f7b1470a7ec1c",
    "ver" : 1,
    "prev_block" : "0000000000606865e679308edf079991764d88e8122ca9250aef5386962b6e84",
    "mrkl_root" : "618eba14419e13c8d08d38c346da7cd1c7c66fd8831421056ae56d8d80b6ec5e",
    "time" : 1281891957,
    "bits" : 469794830,
    "nonce" : 28192719,
    "n_tx" : 2,
    "tx" : [
        {
            "hash" : "012cd8f8910355da9dd214627a31acfeb61ac66e13560255bfd87d3e9c50e1ca",
            "ver" : 1,
            "vin_sz" : 1,
            "vout_sz" : 1,
            "lock_time" : 0,
            "in" : [
                {
                    "prev_out" : {
                        "hash" : "0000000000000000000000000000000000000000000000000000000000000000",
                        "n" : 4294967295
                    },
                    "coinbase" : "040e80001c028f00"
                }
            ],
            "out" : [
                {
                    "value" : 50.51000000,
                    "scriptPubKey" : "0x4F4BA55D1580F8C3A8A2C78E8B7963837C7EA2BD8654B9D96C51994E6FCF6E65E1CF9A844B044EEA125F26C26DBB1B207E4C3F2A098989DA9BA5BA455E830F7504 OP_CHECKSIG"
                }
            ]
        },
        {
            "hash" : "1d5e512a9723cbef373b970eb52f1e9598ad67e7408077a82fdac194b65333c9",
            "ver" : 1,
            "vin_sz" : 1,
            "vout_sz" : 2,
            "lock_time" : 0,
            "in" : [
                {
                    "prev_out" : {
                        "hash" : "237fe8348fc77ace11049931058abb034c99698c7fe99b1cc022b1365a705d39",
                        "n" : 0
                    },
                    "scriptSig" : "0xA87C02384E1F184B79C6ACF070BEA45D5B6A4739DBFF776A5D8CE11B23532DD05A20029387F6E4E77360692BB624EEC1664A21A42AA8FC16AEB9BD807A4698D0CA8CDB0021024530 0x965D33950A28B84C9C19AB64BAE9410875C537F0EB29D1D21A60DA7BAD2706FBADA7DF5E84F645063715B7D0472ABB9EBFDE5CE7D9A74C7F207929EDAE975D6B04"
                }
            ],
            "out" : [
                {
                    "value" : 92233720368.54277039,
                    "scriptPubKey" : "OP_DUP OP_HASH160 0xB7A73EB128D7EA3D388DB12418302A1CBAD5E890 OP_EQUALVERIFY OP_CHECKSIG"
                },
                {
                    "value" : 92233720368.54277039,
                    "scriptPubKey" : "OP_DUP OP_HASH160 0x151275508C66F89DEC2C5F43B6F9CBE0B5C4722C OP_EQUALVERIFY OP_CHECKSIG"
                }
            ]
        }
    ],
    "mrkl_tree" : [
        "012cd8f8910355da9dd214627a31acfeb61ac66e13560255bfd87d3e9c50e1ca",
        "1d5e512a9723cbef373b970eb52f1e9598ad67e7408077a82fdac194b65333c9",
        "618eba14419e13c8d08d38c346da7cd1c7c66fd8831421056ae56d8d80b6ec5e"
    ]
}

92233720368.54277039 BTC?  Is that UINT64_MAX, I wonder?



5. Paano Ito Naayos ng mga Developer

At matapos na matuklasan ito, dali daling ang usap ang mga developers at miners kasama na si Satoshi at kung paano mare-resolba ito. At sa loob lamang ng 5 oras naayos na ito at ang labas na si Satoshi ng bagong version ng Bitcoin. Kasama na rito ang mahigpit na pag validate sa mga susunod na blocks.

Heto yung diskusyon ng komunidad: overflow bug SERIOUS.

seems a block at height 74638 has expoited a bug in the net. It uses an integer overflow to make a negative total transaction. The two transaction outputs are:

 out Value:92233720368.54(7ffffffffff85ee0) out Value:92233720368.54(7ff
ffffffff85ee0)

We need a fix asap

Edit:
(satoshi)
0.3.10 patch download links here:
http://bitcointalk.org/index.php?topic=827.0

At ito ang opisyal na pag labas ni Satoshi ng fix: Version 0.3.10 - block 74638 overflow PATCH!



6. Ang Pagkakaroon ng Hard Fork

At dahil dito, nagkaroon ng hard fork ang komunidad para maayos ito. At pag ganitong may hard fork, magkakaroon na ng bagong chain at yung may maling transaksyon ay hindi na validated ng mga lumang nodes

Meron din akong thread tungkol sa usapin na to: Pamamahala sa Bitcoin: Soft Fork at Hard Fork



7. Mga Aral na Natutunan ng Komunidad

Isa siguro sa natutunan ni Satoshi at ang komunidad na rin na kahit gaano katatag ang isang sistema, meron at meron parin talagang lalabas na bug. At ang komunidad ng Bitcoin at laging mapag matyag sa mga ganitong issue at mabilis ang koordinasyon ng isa't isang. Maganda ring sabihin na dahil open-source ang code ng Bitcoin, kahit sino ay pwede makita kung ano ang nangyayari sa loob at kung ano ang mali dito.



8. Konklusyon

Ang issue na to noong 2010 ay nagsilbing malaking hamon sa seguridad ng Bitcon network. Isipin mo na lang kung hindi ito nakita ng komunidad at hindi agarang na solusyuhan, maaring naging malaking problema ito noong kasisimula pa lamang ng Bitcoin.



9. Sources at Links

Value overflow incide
What was the bug for Bitcoin value overflow in 2010
Github

crwth
Copper Member
Legendary
*
Offline Offline

Activity: 3444
Merit: 1392


crwth.gunbot.com


View Profile
March 24, 2026, 02:03:04 PM
Merited by coinrifft (1)
 #2

Yung mga bagong technology talaga mag kakaroon at mag kakaroon ng bug at kasama yun sa journey ng isang bagay. Sa tingin ko, hindi naman sinasadya yun at parang aksidente lang yung nangyari diba? Wala naman known attacker na lumabas at hindi naman siya para sirain ang BTC.

Mabuti at na experience 'to nung una palang dahil 'to ang nag bigay na mas mahigpit na coding rules.

 
 b1exch.to 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
TypoTonic
Sr. Member
****
Offline Offline

Activity: 252
Merit: 511


'To err is human; to persist is diabolical'


View Profile WWW
Today at 08:28:38 AM
 #3

Sa tingin ko, hindi naman sinasadya yun at parang aksidente lang yung nangyari diba? Wala naman known attacker na lumabas at hindi naman siya para sirain ang BTC.
Hindi alam nung devs na meron palang vulnerability dun sa code, meron lang "unkown actor" na nag-exploit nung bug para makapag-generate ng ~184 billion BTC:

It seems that someone noticed a bug in the code and took advantage of that bug to intentionally create the "overflow" transaction. (It would be nearly impossible for someone to have "accidentally" created such a transaction, but they didn't "hack" anything.)

Kaya lang hindi nila nalaman kung sino yung gumawa. Pero since nagkaron nga ng soft fork, hindi niya rin napakinabangan yung mga bitcoin. Sana sinabi niya nalang kay Satoshi yung bug imbis na i-exploit, baka binigyan pa siya ng reward "for responsibly disclosing vulnerabilities", hahaha.

The person behind the "value overflow incident" exploit remains unknown.

██████
██
██
██
██
██
██
██
██
██
██
██
██████
 
b1exch.to
██████
██
██
██
██
██
██
██
██
██
██
██
██████
[  ETH   ] [  DAI  ]
[  BTC   ] [  LTC  ]
[  USDT  ] [  XMR  ] 
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
coinrifft (OP)
Full Member
***
Offline Offline

Activity: 154
Merit: 123


Spinly.io - Next-gen Crypto iGaming Platform


View Profile
Today at 09:03:10 AM
 #4

Sa tingin ko, hindi naman sinasadya yun at parang aksidente lang yung nangyari diba? Wala naman known attacker na lumabas at hindi naman siya para sirain ang BTC.
Hindi alam nung devs na meron palang vulnerability dun sa code, meron lang "unkown actor" na nag-exploit nung bug para makapag-generate ng ~184 billion BTC:

It seems that someone noticed a bug in the code and took advantage of that bug to intentionally create the "overflow" transaction. (It would be nearly impossible for someone to have "accidentally" created such a transaction, but they didn't "hack" anything.)

Kaya lang hindi nila nalaman kung sino yung gumawa. Pero since nagkaron nga ng soft fork, hindi niya rin napakinabangan yung mga bitcoin. Sana sinabi niya nalang kay Satoshi yung bug imbis na i-exploit, baka binigyan pa siya ng reward "for responsibly disclosing vulnerabilities", hahaha.

The person behind the "value overflow incident" exploit remains unknown.
Siguro napaka aga pa talaga ng Bitcoin noong panahon na yon. Kaya kahit may exploit na nakita kung sino man sya, hindi na sya nagpakilala. Pero tama si @crwth, sa isang banda eh napabuti pa sa atin to in the long run. Maagang nakita at na patch agad ni Satoshi at tumakbo parin ang Bitcoin mula noon. Para bang tinatawag nating blessing in disguise kasi kung hindi at later na to nakita baka naging malaking problema pa to at may posibilidad na hindi umusbong ang Bitcoin o kaya nagkagulo gulo ang block. Kaya kung sino man sya, maraming pasasalamat sa iyo,  Smiley

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!