以太坊采用不同的事務類型來定義不同的操作,例如,將以太幣發送至某個地址、部署合約等等。
在最近的柏林升級之前,以太坊主要有4種不同的事務「類型」:
·帶有收款方地址、數據字段的常規事務
·不帶有收款方地址的合約部署事務,其數據字段填寫的是合約代碼
·簽名?v?值不含鏈ID的事務
·簽名?v?值含有鏈ID的事務??
上述事務類型都采用相同的格式。不同的以太坊客戶端、庫和其它工具必須分析每個事務來判斷它屬于哪個類型。這四種不同的事務類型引入了很多復雜的情況。我們需要查看事務的所有字段來判斷其所屬類型。這是人們在提議新的事務類型時不得不面對的重大難題,直到EIP2718出現才打破這一困境。
以太坊現在有了新的事務標準TypedTransactionEnvelope,由?EIP2718?的提議者?MicahZoltu?定義。該標準為以太坊上的一些新功能和即將開發的功能奠定了基礎。在本文中,我們將回顧柏林升級引入的一些標準以及未來有可能引入的其它標準。
LendHub被黑簡析:系LendHub中存在新舊兩市場:金色財經報道,據慢霧安全區情報,2023 年 1 月 13 日,HECO 生態跨鏈借貸平臺 LendHub 被攻擊損失近 600 萬美金。慢霧安全團隊以簡訊的形式分享如下:
此次攻擊原因系 LendHub 中存在兩個 lBSV cToken,其一已在 2021 年 4 月被廢棄但并未從市場中移除,這導致了新舊兩個 lBSV 都存在市場中。且新舊兩個 lBSV 所對應的 Comptroller 并不相同但卻都在市場中有價格,這造成新舊市場負債計算割裂。攻擊者利用此問題在舊的市場進行抵押贖回,在新的市場進行借貸操作,惡意套取了新市場中的協議資金。
目前主要黑客獲利地址為 0x9d01..ab03,黑客攻擊手續費來源為 1 月 12 日從 Tornado.Cash 接收的 100 ETH。截至此時,黑客已分 11 筆共轉 1,100 ETH 到 Tornado.Cash。通過威脅情報網絡,已經得到黑客的部分痕跡,慢霧安全團隊將持續跟進分析。[2023/1/13 11:11:00]
標準化的事務封套??
Beosin:SheepFarm項目遭受攻擊事件簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin EagleEye 安全風險監控、預警與阻斷平臺監測顯示,BNB鏈上的SheepFarm項目遭受漏洞攻擊,Beosin分析發現由于SheepFarm合約的register函數可以多次調用,導致攻擊者0x2131c67ed7b6aa01b7aa308c71991ef5baedd049多次利用register函數增大自身的gems,再利用upgradeVillage函數在消耗gems的同時累加yield屬性,最后調用sellVillage方法把yield轉換為money后再提款。本次攻擊導致項目損失了約262個BNB,約7.2萬美元。Beosin Trace追蹤發現被盜金額仍在攻擊者賬戶,將持續關注資金走向。[2022/11/16 13:10:39]
過去,以太坊的事務都采用同一種格式。每個以太坊事務都有6個字段:nonce、gasprice、gaslimit、toaddress、value、data、v、r和s。這些字段需要經過?RLP編碼,如下所示:
慢霧:GenomesDAO被黑簡析:據慢霧區hacktivist消息,MATIC上@GenomesDAO項目遭受黑客攻擊,導致其LPSTAKING合約中資金被非預期的取出。慢霧安全團隊進行分析有以下原因:
1.由于GenomesDAO的LPSTAKING合約的initialized函數公開可調用且無權限與不可能重復初始化限制,攻擊者利用initialized函數將合約的stakingToken設置為攻擊者創建的虛假LP代幣。
2.隨后攻擊者通過stake函數進行虛假LP代幣的抵押操作,以獲得大量的LPSTAKING抵押憑證。
3.獲得憑證后再次通過initialized函數將合約的stakingToken設置為原先真是的LP代幣,隨后通過withdraw函數銷毀LPSTAKING憑證獲取合約中真實的LP抵押物。
4.最后將LP發送至DEX中移除流動性獲利。
本次事件是因為GenomesDAO的LPSTAKING合約可被任意重復初始化設置關鍵參數而導致合約中的抵押物被惡意耗盡。[2022/8/7 12:07:06]
RLP()
Force DAO 代幣增發漏洞簡析:據慢霧區消息,DeFi 量化對沖基金 Force DAO 項目的 FORCE 代幣被大量增發。經慢霧安全團隊分析發現: 在用戶進行 deposit 操縱時,Force DAO 會為用戶鑄造 xFORCE 代幣,并通過 FORCE 代幣合約的 transferFrom 函數將 FORCE 代幣轉入 ForceProfitSharing 合約中。但 FORCE 代幣合約的 transferFrom 函數使用了 if-else 邏輯來檢查用戶的授權額度,當用戶的授權額度不足時 transferFrom 函數返回 false,而 ForceProfitSharing 合約并未對其返回值進行檢查。導致了 deposit 的邏輯正常執行,xFORCE 代幣被順利鑄造給用戶,但由于 transferFrom 函數執行失敗 FORCE 代幣并未被真正充值進 ForceProfitSharing 合約中。最終造成 FORCE 代幣被非預期的大量鑄造的問題。 此漏洞發生的主要原因在于 FORCE 代幣的 transferFrom 函數使用了`假充值`寫法,但外部合約在對其進行調用時并未嚴格的判斷其返回值,最終導致這一慘劇的發生。慢霧安全團隊建議在對接此類寫法的代幣時使用 require 對其返回值進行檢查,以避免此問題的發生。[2021/4/4 19:45:30]
EIP2718?為類型化事務定義了一種新的通用封套。在新的標準下,事務如下所示:
Harvest.Finance被黑事件簡析:10月26號,據慢霧區消息 Harvest Finance 項目遭受閃電貸攻擊,損失超過 400 萬美元。以下為慢霧安全團隊對此事件的簡要分析。
1. 攻擊者通過 Tornado.cash 轉入 20ETH 作為后續攻擊手續費;
2. 攻擊者通過 UniswapV2 閃電貸借出巨額 USDC 與 USDT;
3. 攻擊者先通過 Curve 的 exchange_underlying 函數將 USDT 換成 USDC,此時 Curve yUSDC 池中的 investedUnderlyingBalance 將相對應的變小;
4. 隨后攻擊者通過 Harvest 的 deposit 將巨額 USDC 充值進 Vault 中,充值的同時 Harvest 的 Vault 將鑄出 fUSDC,而鑄出的數量計算方式如下:
amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());
計算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的變化將導致 Vault 鑄出更多的 fUSDC;
5. 之后再通過 Curve 把 USDC 換成 USDT 將失衡的價格拉回正常;
6. 最后只需要把 fUSDC 歸還給 Vault 即可獲得比充值時更多的 USDC;
7. 隨后攻擊者開始重復此過程持續獲利;
其他攻擊流程與上訴分析過程類似。參考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。
此次攻擊主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在鑄幣時采用的是 Curve y池中的報價(即使用 Curve 作為喂價來源),導致攻擊者可以通過巨額兌換操控預言機的價格來控制 Harvest Finance 中 fToken 的鑄幣數量,從而使攻擊者有利可圖。[2020/10/26]
TransactionType?||?TransactionPayload
上述字段的定義是:
·TransactionType:0至0x7f范圍內的某個值,最多可代表128種事務類型。
·TransactionPayload:由事務類型定義的任意一個字節數組。??
將上述字段連接起來,即可得到一個類型化事務。EIP2718?沒有為事務的有效負載定義格式。因此,事務的有效負載可以是任意一段經過編碼的字節序列,只要采用符合新的事務類型定義的編碼器即可。之所以選擇簡單的字節相連方式,是因為讀取字節數組的第一個字節非常簡單,無需使用任何庫或工具。也就是說,你不需要使用RLP或SSZ解析器來判斷事務類型。
這個方法可以避免新的EIP在引入新的事務類型時增加現有事務格式的復雜性,并讓不同的以太坊工具更容易區分不同的事務。
在增加復雜性這一點上,EIP-155?就是一個很好的例子。它通過在事務中引入鏈ID來實現重放攻擊保護。由于在事務參數中增加新的字段會破壞向后兼容性,鏈ID被編碼進了事務簽名的恢復參數,就像我在上一篇關于數字簽名的文章中解釋的那樣。實行EIP2718后,我們可以在不影響向后兼容性的情況下定義新的事務類型。??
向后兼容性和傳統事務
EIP2718的一大特點就是向后兼容。EIP2718是完全向后兼容的。也就是說,現有的工具、庫、錢包和事務都是開箱即用的,但是它們無法使用EIP2718提供的新「功能」。以太坊網絡上的新事務依然可以使用舊的事務格式。
新的事務類型最多可達0x7f種。選擇這一上限是為了保證向后兼容傳統事務。經過RLP編碼的事務的第一個字節始終大于或等于0xc0,因此類型化事務永遠不會與傳統事務產生沖突,而且類型化事務和傳統事務之間可以通過第一個字節來區分。??
EIP2718本身并未定義任何事務類型,不過已經出現了一些采用這一新標準的EIP:
·EIP1559:改革ETH1.0鏈的交易費市場。你肯定聽說過這個EIP。
·EIP2711:代付事務、限期事務和批量事務。這個EIP同樣由MicahZoltu提出,EIP-2718中定義的標準就是為此創建的。
·EIP2930:可選訪問列表。??
我們將在下文詳細解釋其中一些標準。??
為什么要引入新的事務類型?
新的事務類型可以實現原本需要借助于Solidity合約或第三方解決方案的功能集成。以限期事務為例。在現有解決方案中,你可以將資金發送至Solidity合約,簽署一個事務并將其發送到專門的節點,讓該事務獲得額外的參數。然后,該節點會處理該事務,確保它在有效期之前執行,否則該事務不會被廣播。一些dApp和合約內置該功能,但是對于大多數事務而言很難實現。
EIP2711可以將該功能添加到以太坊網絡上,同時保證向后兼容傳統事務,而且無需使用智能合約或專門的節點。但是,EIP2711目前還是草案,我們還無法確定它近期是否會在以太坊網絡上實行。EIP2711也有可能被拆分成幾個小的EIP。??
?-圖源:f2pool-??
EIP1559提出的新的事務格式
在EIP1559中,gas的運作方式發生了巨大變化:gas會被部分銷毀,不再全部支付給礦工。本文不會具體闡述EIP1559的所有變化,但是EIP1559確實提出了一種新的事務格式:??
0x02||RLP()??
最顯著的變化包括:
·用「每單位gas的最高優先費用」和「每單位gas的最高費用」來代替gasprice。
·鏈ID是單獨編碼的,不再包含在簽名v值內。這實際上是使用更簡單的實現來代替EIP155。
·簽名v值變成了一個簡單的校驗位,不是0就是1,具體取決于使用橢圓曲線上的哪個點。??
EIP1559還提供了一種基于EIP2930指定訪問列表的方法。這樣可以減少事務的gas成本。
由于EIP1559極大地改變了gas費的運作方式,它并不能直接兼容傳統事務。為了保證向后兼容性,EIP1559提出了一種將傳統事務升級成兼容EIP1559事務的方法,即,使用「每單位gas的最高優先費用」和「每單位gas的最高費用」來代替?「gas價格」。??
原生元事務和批量事務
元事務誕生已經有幾年了,但是到目前為止都需要依靠智能合約。和限期事務一樣,元事務也要求用戶將以太幣發送至專為元事務創建的智能合約。
EIP2711使得原生元事務和批量事務成為可能,無需依賴于智能合約。這里定義了一個新的事務格式,事務類型是?0x02。交易如下所示:??
0x02?||?RLP()??
EIP2711主要包括gas付款方的有效負載和簽名。這樣一來,即使不持有任何以太幣的地址也能發送ERC20代幣。
發送方的有效負載和簽名等均基于事務子類型定義。例如,如果交易類型為?1,發送方的有效負載被定義為:??
,?nonce,?ChainId,?ValidUntil,?gasLimit,?gasPrice]??
ChildTransaction?被定義為?,可以在單個事務內指定收款方地址、值和數據。例如,ChildTransaction?可以用來在單筆事務中調用ERC20的?approve?和?transferFrom。
如果你想了解更多關于EIP2711的事務子類型的信息,我建議你閱讀?EIP2711的規范。??
結論
類型化事務為以太坊網絡帶來了更多可能性。我們在創建類型化事務時不會增加以太坊客戶端、庫和其它工具的復雜性。
目前,由于EIP2718最近才被添加到網絡中,新的事務類型還沒有得到廣泛應用,但是目前還有一些很棒的EIP正在開發中,例如,EIP2711提出了限期事務、批量事務和代付事務。由于以太坊上可以定義新的事務類型,提出新的EIP也會變得更容易。
撰文:FionaKobayashi,軟件工程師,目前致力于MEV領域的研究編譯:PerryWangDeFi普通用戶不清楚的是,在我們討論MEV時,該領域疆土正不斷變化,內部已形成多條戰線.
1900/1/1 0:00:00撰文:7 CME比特幣期貨 5月15日,CFTC公布了最新一期CME比特幣期貨周報,最新統計周期內BTC價格表現非常微妙,整周內行情并未出現特別明顯的波動.
1900/1/1 0:00:00本文是《Web3.0Explorer》系列的第二篇,第一篇是:《對Web3.0概念的梳理》。本文也會承接上一篇的理念繼續探討.
1900/1/1 0:00:00來源:金十 比特幣是世界上最大的加密貨幣。據最新數據,芝商所微型比特幣期貨在新合約上市的頭六天交易量超過了10萬份。與此同時,比特幣ETF申請在美國上市的嘗試已經持續了近10年.
1900/1/1 0:00:004月30日,Coinbase宣布將收購加密市場機構數據可視化和分析平臺Skew。Coinbase機構子公司CoinbasePrime將集成Skew的數據.
1900/1/1 0:00:003月,80后網絡藝術家Beeple的作品“每一天:頭五千天”,被著名藝術品拍賣行佳士得做成NFT,拍出了六千九百三十萬美元的天價.
1900/1/1 0:00:00