日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > Mt.Gox破產(chǎn),都是錯誤編程惹的禍

Mt.Gox破產(chǎn),都是錯誤編程惹的禍

來源:程序員人生   發(fā)布時間:2014-09-12 00:13:14 閱讀次數(shù):2573次

全球最大的比特幣交易平臺MT.GOX正陷入破產(chǎn)邊緣,這無疑給還在火熱的中國比特幣市場潑了一盆冷水。不過冷靜思考一下,這瀕臨倒閉的背后原因是什么?是不是無法避免?本文作者Ken Shirriff 就結(jié)合2011年Mt.Gox出現(xiàn)的問題分析一下這個全球最大的比特幣交易平臺的技術(shù)問題。


在2011年10月份的時候,Mt.Gox因為突發(fā)事故導(dǎo)致超過2609個比特幣的損失。(當(dāng)時2609個比特幣的總價值是8000美元。如果是現(xiàn)在的話,這2609個比特幣價值約超過150萬美元。)不過當(dāng)時在比特幣論壇上就有相關(guān)的猜想,具體原因沒有官方說明。所以說,這次Mt.Gox被盜事件也不是空穴來風(fēng),主要原因還是軟件上的漏洞給黑客份子以可乘之機。當(dāng)然這也暴露了Mt.Gox對之前事故的疏忽和軟件編程錯誤之嚴(yán)重。

問題結(jié)癥在哪?

當(dāng)你向一個地址發(fā)送比特幣的時候,在比特幣交易過程中所要發(fā)生的事情遠(yuǎn)比你想象的復(fù)雜得多。交易程序里包含一個微型計算機程序,而這個程序是由Bitcoin Script語言編寫的,它的任務(wù)主要是執(zhí)行這個比特幣能否交易的出去進行判斷。這個程序還能檢查公開密鑰是否和你發(fā)送比特幣的地址相吻合,如果實名驗證是有效的,那樣就能證實發(fā)送者是比特幣的真正擁有者,交易也就可以順利進行。

你可能會想知道為什么比特幣交易平臺要使用這么一個復(fù)雜的系統(tǒng)來進行交易信息驗證。其實他們的想法是,通過這種編程語言編寫出來的程序,比特幣就會允許多種不同類型的交易方式,例如第三方交易或者是更加復(fù)雜的合同交易。

這里可以講述的更詳細(xì)一點,一種典型的ScriptPubKey編程語言看起來就像這樣:

code_snippet_id="216060" snippet_file_name="ptcms_1393899010_0.js">OP_DUP OP_HASH160 f2e63314c350094550c703fcdcd4850ad37d8310 OP_EQUALVERIFY OP_CHECKSIG

這些就是將比特幣發(fā)往指定地址(1P9LHy6K2c9cwbfSfdaaoYVAprqUYtcFnB,十六進制形式是 f2e633...)的程序。如果想要用這個地址兌換比特幣的話,賣家必須提供這個地址的公開密鑰1P9L...,同時在交易協(xié)議上簽名(這主要是證明他們擁有私人密鑰)。走過這些程序之后,首先是要復(fù)制提供的公開密鑰,計算160位散列,并驗證公開密鑰是否和所提供的公鑰地址相等同。然后檢查實名驗證的有效性。如果一切順利,比特幣就可以交易了。如果有問題,交易就會被拒絕。


但是不難發(fā)現(xiàn),在Mt.Gox一些失敗的交易中,程序里出現(xiàn)了一個很小但很致命的錯誤:

code_snippet_id="216060" snippet_file_name="ptcms_1393899010_1.js">OP_DUP OP_HASH160 0 OP_EQUALVERIFY OP_CHECKSIG

我們可以看到在項目地址的散列中,交易行中有一個0字節(jié),表現(xiàn)為OP_0,還增加了一個空的字節(jié)數(shù)組。因為160位散列不可能匹配一個空數(shù)組,所以這個腳本不可能成功地執(zhí)行任務(wù),因此比特幣也不可能被交易出去。

為什么Mt.Gox允許蹩腳的比特幣交易存在?

也許你很想知道為什么Mt.Gox平臺允許有些比特幣交易無法完成。至于準(zhǔn)確的答案無法考究,或許我們可以猜測:因為眾口難調(diào),比特幣交易平臺所制定的交易規(guī)則根本無法讓所有的買賣雙方感到滿意。比特幣的設(shè)計理念就是用Bitcoin Script語言編寫一個可以給人們帶來更靈活、更便利的虛擬產(chǎn)物,即使是這樣,在條件不成熟的情況下還是會搬起石頭砸自己的腳,正如現(xiàn)在遇到的事情一樣。另外,如果僅僅因為一個復(fù)雜的語法問題就拒絕一筆比特幣交易的話,這是很危險的,因為用戶會質(zhì)疑比特幣的有效性,無疑會引起混論。

計算機科學(xué)家們可能會在這個時候說是因為“計算機設(shè)備停機問題”導(dǎo)致了現(xiàn)在這種結(jié)局。然而,這根本就說不通,因為Bitcoin Script沒有循環(huán)體,程序是不會停下來的。

如果你沒有私人密鑰而去使用一個地址的話,那么丟掉比特幣是很常見的事情,并且也沒有軟件能夠檢查出這一缺陷。但是有一個很奇怪的現(xiàn)象就是有些交易故意向一個有問題的地址發(fā)送少量的比特幣,這樣就能在blockchain里面隱藏文本和圖片了。這個漏洞應(yīng)該不算小吧!?


另一個很有趣的腳本Bug

上面只是分析了基于比特幣交易層面上的問題,不過還有另外較為有趣的可以丟失比特幣的bug,有些交易記錄里包含毫無意義且不可修改的腳本錯誤:

code_snippet_id="216060" snippet_file_name="ptcms_1393899358_2.js">OP_IFDUP OP_IF OP_2SWAP OP_VERIFY OP_2OVER OP_DEPTH

原來這些腳本都是ASCII文本腳本,本來是應(yīng)該將贖回腳本放入交易當(dāng)中的,可是有些P2Pool淘幣者一不小心將文字腳本放了進去,這就導(dǎo)致相關(guān)的比特幣由于這個錯誤而不知不覺就沒了。

總結(jié)

由于軟件編程錯誤導(dǎo)致比特幣丟失是一件并不復(fù)雜的事情,Mt.Gox在之前就已經(jīng)因為同樣的錯誤使得數(shù)千個比特幣丟失。但是Mt.Gox并沒有吸取教訓(xùn)對自身技術(shù)進行改進加固,所以說這次Mt. Gox因交易系統(tǒng)存在缺陷令黑客盜取大量比特幣,最終崩潰是一件不足為奇的事情。(編譯/薛梁  責(zé)編/付江)

原文:RighTo

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 午夜精品久久久久久99热软件 | 亚洲成人一区 | 日韩中文字幕电影 | 在线观看成人网 | 久久精品欧美 | 欧美成人午夜电影 | 亚洲三区四区 | 国产精品国产三级国产 | 日韩在线播放一区 | 亚洲一区二区三区免费在线观看 | 在线观看一区二区视频 | 在线一区视频 | 91精品国产日韩91久久久久久 | 色性视频 | 欧美日韩综合在线 | 欧美激情一区二区三区 | 麻豆国产原创 | 日本高清视频在线观看 | 国产成人精品一区二区在线观看 | 亚洲欧美日韩久久精品 | 久久精品日产第一区二区三区 | 久久九九九九 | 精品久久久久久国产 | 乱视频在线观看 | 国产精品麻豆欧美日韩ww | 99精品欧美一区二区三区综合在线 | 青青草成人网 | 久久久二区 | 日韩电影一区二区三区 | 成人夜晚看av | 久久全国免费视频 | 久久99精品久久久久久久青青日本 | 国产日韩一区二区三区 | 一区久久久 | 久久精品久久久久 | 欧美一区二区在线观看视频 | 国产一区二区三区高清在线观看 | 国产在线一区二区三区四区 | www.色网 | 美国三级日本三级久久99 | 中文字幕亚洲国产 |