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');
Binance及其創始人CZ要求美國法官駁回CFTC提起的訴訟:金色財經報道,加密貨幣交易平臺運營商Binance Holdings Ltd.及其聯合創始人CZ要求美國聯邦法官駁回商品期貨交易委員會(CFTC)提起的訴訟。
Binance和CZ的律師周四向芝加哥法院提出了駁回動議。他們在文件中寫道,在本案中,CFTC尋求監管在美國境外居住和經營的外國個人和公司,超越其法定權力的限制,并踐行與外國主權國家的根深蒂固的禮讓原則。
CFTC在3月份起訴該公司和CZ,指控他們故意采取措施規避美國法律,包括故意允許美國人使用該平臺買賣加密貨幣衍生品,盡管幣安從未注冊。[2023/7/28 16:04:12]
處理方式分析:瀏覽器js
通過webpack打包好js文件并對文件進行引用,然后在瀏覽器上進行調試分析。
Aptos基金會提出完全可重現的性能測試基準:4月28日消息,Aptos 基金會提出完全可重現的性能測試基準,并提出了交易和峰值性能等術語的定義,以便正確衡量性能。為了實現此評估的端到端、真實世界設置,Aptos 基金會建立了一個完整的節點網絡,并在其上運行了完整的節點堆棧。為了使其盡可能接近真實世界的設置,Aptos 基金會將其建模為接近主網網絡。[2023/4/28 14:32:20]
首先輸入的示例字符33974229950.550003會進入到intToBuffer的函數中進行處理。同步分析intToBuffer的處理過程,這部分和」關鍵代碼分析「部分的代碼邏輯是一樣的,處理轉換部分得到的結果是7e9059bbe.8ccd。接下來分析如何將轉換后的字符填充進入的buffer中,通過這步可以得到buffer的內容是126,144,89,187,14,140,205對應的是7e,90,59,bb,e,8c,cd。
報告:2月份全球加密貨幣交易所交易產品的資產管理規模略有上升:金色財經報道,Fineqia International對全球交易所交易產品 (ETP) 的分析以加密貨幣為基礎資產,顯示 2 月份管理資產 (AUM) 值增長 1%,而同期加密貨幣市值增長 1.5%。根據 Fineqia Research 的數據,2 月 1 日至 3 月 1 日期間,加密貨幣ETP AUM總額從277 億美元增至280 億美元。?上市的 ETP 總數從 164 個減少到 155 個,奧地利的Bitpanda GmbH 停止了 5 個 ETP 的交易,英國的 ETC Group 關閉了 4 個 ETP。ETP 包括交易所交易基金 (ETF) 和交易所交易票據 (ETN)。[2023/3/10 12:52:54]
>0x7e->126>0x90->144>0x59->89>0xbb->187>0xe->14>0x8c->140>0xcd->205
USDC Treasury銷毀220,000,000枚USDC:金色財經報道,Whale Alert數據顯示,北京時間2023年2月15日05:16,USDC Treasury銷毀220,000,000枚USDC。[2023/2/15 12:06:58]
這里發現e.這部分的小數點消失了,于是開始解小數點消失之迷,追蹤到hexWrite這個函數,這個函數會將得到的數據2個一組進行切分。然后用了parseInt對切分后的數據進行解析。
然而parseInt('e.',16)->14===parseInt('e',16)->14消失的小數點被parseInt吃掉了,導致最終寫入到buffer中的數據發生了錯誤,寫入buffer的值是7e9059bbe8ccd。
知情人士:即將橋接至 Ethereum 的 DeGods 實際上已經失敗:12月28日消息,推特 KOL @3orovik 表示,即將橋接至 Ethereum 的 DeGods 實際上已經失敗,團隊已經破產。其分析認為,由于把所有資金用 SOL 保管,DeGods 損失了 90% 的鑄造資金(Frank 曾在說過被迫出售 85% 的國庫資金以支付稅款,彼時 SOL 約 $30)。
不過也有 DeGods 持有者質疑稱,Frank 實際是在 SOL 約為 $80 的時候出售國庫資金。Frank 曾在 FTX 崩盤時表示,所有資金都以 USDC 保管。[2022/12/28 22:12:14]
處理方式分析:nodejs
由于瀏覽器上出問題的是7_**__**_e9059bbe.8ccd在寫入buffer的時候小數點被parseInt吃掉了導致數據出錯,但是經過分析,node的數據也是錯誤的,且產生錯誤的原因是和瀏覽器的不一樣。
首先我們先看下如下的示例:
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:UFFFERBUFFINTBUFFDOGE價格Minimal Initial SushiSwap OfferingBUSD BuffetJOINT價格
Gate.ioDFA、BDT、SKILL、CRE凈買入賽已圓滿結束,根據活動規則,我們已為符合規則的用戶發放了活動獎勵。用戶可進入“錢包—賬單明細”查詢獎勵發放情況.
1900/1/1 0:00:00作者|秦曉峰 編輯|郝方舟 出品|Odaily星球日報本周五,法國興業銀行旗下子公司SocieteGenerale-Forge(簡稱SG-Forge)向DeFi協議MakerDAO提交了一項提案.
1900/1/1 0:00:00尊敬的用戶: AOFEX將於2021年9月28日16:00開通DYDX/OT交易對的交易功能。為回饋用戶,AOFEX現開啟「DeFi衍生品狂歡趴,享2,000OT」主題活動,充值&交易D.
1900/1/1 0:00:009月24日中午,名為“街舞怪才”的用戶在淘寶阿里拍賣平臺拍賣編號為NO.1的杭州亞運會數字火炬數字藝術品。有用戶出價至大約315萬人民幣.
1900/1/1 0:00:00親愛的BitMart用戶:為配合GIX項目方要求,BitMart將會支持GIX的智能合約更換。BitMart將暫停所有GIX相關的功能,移除相關交易對.
1900/1/1 0:00:00鏈聞消息,去中心化被動投資管理協議IndexedFinance宣布用戶可以將治理代幣NDX鎖定90天到360天不等,以鑄造dNDX代幣,每個NDX鑄造dNDX比例從1:1到4:1不等.
1900/1/1 0:00:00