以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > MATIC > Info

INT:天價手續費分析:我不是真土豪

Author:

Time:1900/1/1 0:00:00

9月27日,Bitfinex的一個主要錢包以7676

將int轉成Hexhttps://github

判斷是否可以被2整除,如果不行需要在字符開頭添加一個0,這里主要是為了能夠成功的將數據2個1組寫入到buffer。https://github

if(a

returna;}

以出錯的示例數據:33974229950.550003進行分析,經過intToBuffer函數中的intToHex和padToEven處理后得到7e9059bbe.8ccd,這部分瀏覽器js和nodejs的結果都是一致的。

不一致的地方是在newBuffer的操作:

newBuffer(padToEven(hex.slice(2)),'hex');

BitChute尋求以7.5億至10億美元估值完成1000萬美元A輪融資:7月4日消息,去中心化視頻分享網站BitChute正尋求以7.5億至10億美元估值完成1000萬美元A輪融資,新資金將用于構建允許用戶進行直播和向內容創建者付款的新功能。比特幣投資者Patrick Dai和Matthew Branton已向BitChute投資并共同獲得BitChute60%的股份,長期目標是基于區塊鏈實現去中心化,用戶可以決定是否進行內容審核。[2023/7/4 22:16:33]

處理方式分析:瀏覽器js

通過webpack打包好js文件并對文件進行引用,然后在瀏覽器上進行調試分析。

首先輸入的示例字符33974229950.550003會進入到intToBuffer的函數中進行處理。同步分析intToBuffer的處理過程,這部分和」關鍵代碼分析「部分的代碼邏輯是一樣的,處理轉換部分得到的結果是7e9059bbe.8ccd。接下來分析如何將轉換后的字符填充進入的buffer中,通過這步可以得到buffer的內容是126,144,89,187,14,140,205對應的是7e,90,59,bb,e,8c,cd。

禁止CBDC的佛羅里達州法案或將意外禁止比特幣:金色財經報道,上周佛羅里達州通過了一項立法提案,旨在禁止在其州內使用國家中央銀行數字貨幣(CBDC)作為貨幣,但據稱此舉可能會意外禁止比特幣,因為該法案將CBDC定義為外國政府“直接驗證”的數字貨幣,但比特幣已被薩爾瓦多認定為法定貨幣,從而在非技術意義上“驗證”了(目前尚不清楚薩爾瓦多的中央銀行或其他政府機構是否運行完全驗證的比特幣節點),但據支持該法案的佛羅里達州眾議院議員Wyman Duggan表示,他們并未打算與CBDC一起禁止比特幣,如果有必要,他們可能會修改法案。 (blockworks)[2023/3/30 13:33:52]

>0x7e->126>0x90->144>0x59->89>0xbb->187>0xe->14>0x8c->140>0xcd->205

美眾議員Garcia因涉嫌FTX關系而被眾議院委員會開除:金色財經報道,美國眾議員Jesus “Chuy” Garcia因涉嫌FTX關系而被眾議院委員會開除,在共和黨人取代眾議院以及Kevin McCarthy擔任眾議院議長后,民主黨代表Jesus “Chuy” Garcia已被免職于眾議院金融服務委員會。將Garcia免職的決定似乎主要源于他接受SBF的金錢和捐贈的指控。[2023/2/20 12:16:25]

這里發現e.這部分的小數點消失了,于是開始解小數點消失之迷,追蹤到hexWrite這個函數,這個函數會將得到的數據2個一組進行切分。然后用了parseInt對切分后的數據進行解析。

然而parseInt('e.',16)->14===parseInt('e',16)->14消失的小數點被parseInt吃掉了,導致最終寫入到buffer中的數據發生了錯誤,寫入buffer的值是7e9059bbe8ccd。

DeFi借貸協議OpenLeverage:關于“將協議部署至Arbitrum”的提案已獲投票通過:2月10日,據官方消息,DeFi借貸協議OpenLeverage發推稱,將協議部署至Arbitrum的提案已獲投票通過。

提案稱,OpenLeverage作為多鏈無許可保證金交易協議,應部署在Arbitrum上,以幫助用戶獲得更多的交易機會。[2023/2/10 11:59:40]

處理方式分析:nodejs

由于瀏覽器上出問題的是7_**__**_e9059bbe.8ccd在寫入buffer的時候小數點被parseInt吃掉了導致數據出錯,但是經過分析,node的數據也是錯誤的,且產生錯誤的原因是和瀏覽器的不一樣。

首先我們先看下如下的示例:

Memeland旗下NFT系列將版稅從9%降低到3.33%:2月2日消息,據OpenSea相關頁面信息,Memeland旗下的NFT項目YOU THE REAL MVP、The Captainz以及The Potatoz已將版稅從9%降低到3.33%。此外,Memeland官方將于北京時間22時在推特召開Townhall,向社區分享該決策的原因。[2023/2/2 11:43:09]

node三組不同的數據填充到buffer得到的結果居然是一樣的,經過分析node的buffer有個小特性,就是2個一組切分后的數據,如果沒法正常通過hex解析的,就會把那一組數據以及之后的數據都不處理了,直接返回前面可以被正常處理的那部分數據。可以理解為被截斷了。這部分可以參考node底層的buffer中node_buffer.cc中的代碼邏輯。

>newBuffer('7e9059bbe','hex')>newBuffer('7e9059bbe.8ccd','hex')>newBuffer('7e9059bb','hex')

執行結果的比較

node由于會將原始數據7e9059bbe.8ccd中的e.及之后的數據進行截斷,所以最終錯誤的值是7e9059bb,相比正確的值07e9059bbe小。

node的執行結果:瀏覽器由于會將原始數據7e9059bbe.8ccd中的.吃掉,所以最終錯誤的值是7e9059bbe8ccd,相比正確的值07e9059bbe大很多。

瀏覽器的執行結果:

問題的原因

ethjs-util的intToBuffer函數不支持浮點型的數據,且在這個函數中沒有判斷傳入的變量類型,來確保變量類型是預期內的。由于ethereumjs的toBuffer引用了ethjs-util的intToBuffer進行處理,也沒有對數據進行檢查。導致了這次事件的發生,所幸最終善良的礦工歸還了「天價手續費7626ETH」。

吸取的教訓

從第三方的庫的角度來看,在編碼過程中應該要遵循可靠的安全的編碼規范,在函數的開頭要對傳入的數據進行合法性的檢查,確保數據和代碼邏輯是按照預期內執行。

從庫的使用者的角度來看,使用者應該要自行閱讀第三方庫的開發文檔和對接文檔,并且也要對代碼中接入第三方庫的邏輯進行測試,通過構造大量的數據進行測試,確保業務上能夠正常按照期望執行,保證高標準的測試用例的覆蓋率。

參考資料:

https://github.com/ethereumjs/ethereumjs-monorepo/issues/1497

https://blog.deversifi.com/23-7-million-dollar-ethereum-transaction-fee-post-mortem/

https://www.chainnews.com/news/611706276133.htm

來源鏈接:mp.weixin.qq.com

免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。

慢霧

慢霧

慢霧科技是一家專注區塊鏈生態安全的國家高新技術企業,通過「威脅發現到威脅防御一體化因地制宜的安全解決方案」服務了全球許多頭部或知名的項目。慢霧科技的安全解決方案包括:安全審計、威脅情報、漏洞賞金、防御部署、安全顧問等服務并配套有加密貨幣反洗錢、假充值漏洞掃描、漏洞監測、被黑檔案庫、智能合約防火墻、SafeStaking等SAAS型安全產品,已有商業客戶上千家。慢霧慢霧科技慢霧AML慢霧安全Slowmist查看更多以太坊

Tags:FERUFFBUFFINTMake A Difference Tokenbuff幣與股票區別OnbuffSplinterlands

MATIC
UNI:Rangers Protocol與UniArts達成合作,將為UniArts提供跨鏈服務

區塊鏈基礎設施RangersProtocol與多網絡?NFT?生態系統UniArts達成合作,RangersProtocol將為UniArts的NFT提供跨鏈服務.

1900/1/1 0:00:00
MCA:OHM(Olympus?)

專案簡介: 奧林巴斯(Olympus)的目標是打造一種演算法浮動貨幣。OHM是該浮動代幣。$OHM在推出時由DAI提供1:1的支持。DAI將由演算法央行持有.

1900/1/1 0:00:00
BZRX:BZRX(bZx Protocol)

項目簡介: BZRX是最強大的開放金融協議,構建的應用程序使貸款人借款人和交易員能夠在以太坊上使用最靈活的去中心化金融協議。BZRX令牌是管理令牌.

1900/1/1 0:00:00
STA:Gate.io 已發FAN、HMT、OLYMPUS凈買入賽活動獎勵公告

Gate.ioFAN、HMT、OLYMPUS凈買入賽已圓滿結束,根據活動規則,我們已為符合規則的用戶發放了活動獎勵。用戶可進入“錢包—賬單明細”查詢獎勵發放情況.

1900/1/1 0:00:00
BKK:BKEX Global 關于下架OG/USDT交易對的公告

尊敬的用戶:? 本著保護用戶的宗旨,BKEXGlobal為保證交易幣種的高標準,將定期對平臺內的代幣進行綜合性審查;如項目方出現對投資者不利因素,我們將采取對應措施,并下架對應項目.

1900/1/1 0:00:00
TMA:BitMart上線Perpetual Protocol (PERP)

親愛的BitMart用戶:BitMart將于2021年9月29日上線代幣PerpetualProtocol(PERP)。屆時將開通PERP/USDT交易對.

1900/1/1 0:00:00
ads