比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 以太坊 > Info

簡析以太坊EIP-2718_SWAP

Author:

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

以太坊采用不同的事務類型來定義不同的操作,例如,將以太幣發送至某個地址、部署合約等等。

在最近的柏林升級之前,以太坊主要有4種不同的事務「類型」:

·帶有收款方地址、數據字段的常規事務

·不帶有收款方地址的合約部署事務,其數據字段填寫的是合約代碼

·簽名?v?值不含鏈ID的事務

·簽名?v?值含有鏈ID的事務??

上述事務類型都采用相同的格式。不同的以太坊客戶端、庫和其它工具必須分析每個事務來判斷它屬于哪個類型。這四種不同的事務類型引入了很多復雜的情況。我們需要查看事務的所有字段來判斷其所屬類型。這是人們在提議新的事務類型時不得不面對的重大難題,直到EIP2718出現才打破這一困境。

以太坊現在有了新的事務標準TypedTransactionEnvelope,由?EIP2718?的提議者?MicahZoltu?定義。該標準為以太坊上的一些新功能和即將開發的功能奠定了基礎。在本文中,我們將回顧柏林升級引入的一些標準以及未來有可能引入的其它標準。

安全公司:AurumNodePool合約遭受漏洞攻擊簡析:金色財經報道,據區塊鏈安全審計公司Beosin EagleEye監測顯示,2022年11月23日,AurumNodePool合約遭受漏洞攻擊。

Beosin分析發現由于漏洞合約的changeRewardPerNode函數未進行驗證,導致攻擊者可以調用該函數進行任意值設置。

攻擊者首先調用changeRewardPerNode函數將每日獎勵值設置成一個極大數,接下來調用claimNodeReward函數提取節點獎勵,而節點獎勵的計算取決于攻擊者設置的rewardPerDay值,導致計算的節點獎勵非常高。而在這一筆交易之前,攻擊者便通過一筆交易(0xb3bc6ca257387eae1cea3b997eb489c1a9c208d09ec4d117198029277468e25d)向合約存入了1000AUR,創建了攻擊者的節點記錄,從而使得攻擊者能夠提取出該節點獎勵。最終攻擊者通過該漏洞獲得約50個BNB($14,538.04)。[2022/11/23 8:01:04]

標準化的事務封套??

Beosin:EthTeamFinance項目遭受到了漏洞攻擊事件簡析:據Beosin EagleEye 安全預警與監控平臺檢測顯示,ETH鏈上的EthTeamFinance項目遭受漏洞攻擊,攻擊合約0xCFF07C4e6aa9E2fEc04DAaF5f41d1b10f3adAdF4通過LockToken合約的migrate函數沒有正確驗證_id和params的漏洞,將WTH,CAW,USDC,TSUKA代幣從V2流動性池非法升級到V3流動性池,并且通過sqrtPriceX96打亂V3流動池的Initialize的價格,從而獲取大量refund套利。共計套利了約1300多萬美元。[2022/10/27 11:49:12]

過去,以太坊的事務都采用同一種格式。每個以太坊事務都有6個字段:nonce、gasprice、gaslimit、toaddress、value、data、v、r和s。這些字段需要經過?RLP編碼,如下所示:

RLP()

慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:

1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。

2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。

3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。

4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。

針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]

EIP2718?為類型化事務定義了一種新的通用封套。在新的標準下,事務如下所示:

慢霧:BSC項目Value DeFi vSwap 模塊被黑簡析:據慢霧區情報,幣安智能鏈項目 Value DeFi 的 vSwap 模塊被黑,慢霧安全團隊第一時間介入分析,并將結果以簡訊的形式分享,供大家參考:

1. 攻擊者首先使用 0.05 枚 WBNB 通過 vSwap 合約兌換出 vBSWAP 代幣;

2. 攻擊者在兌換的同時也進行閃電貸操作,因此 vSwap 合約會將兌換的 vBSWAP 代幣與閃電貸借出的 WBNB 轉給攻擊者;

3. 而在完成整個兌換流程并更新池子中代幣數量前,會根據池子的 tokenWeight0 參數是否為 50 來選擇不同的算法來檢查池子中的代幣數量是否符合預期;

4. 由于 vSwap 合約的 tokenWeight0 參數設置為 70,因此將會采用第二種算法對池子中的代幣數量進行檢查;

5. 而漏洞的關鍵點就在于采用第二種算法進行檢查時,可以通過特殊構造的數據來使檢查通過;

6. 第二種算法是通過調用 formula 合約的 ensureConstantValue 函數并傳入池子中緩存的代幣數量與實時的代幣數量進行檢查的;

7. 在通過對此算法進行具體分析調試后我們可以發現,在使用 WBNB 兌換最小單位(即 0.000000000000000001) vBSWAP 時,池子中緩存的 WBNB 值與實時的值之間允許有一個巨大的波動范圍,在此范圍內此算法檢查都將通過;

8. 因此攻擊者可以轉入 WBNB 進行最小單位的 vBSWAP 代幣兌換的同時,將池子中的大量 WBNB 代幣通過閃電貸的方式借出,由于算法問題,在不歸還閃電貸的情況下仍可以通過 vSwap 的檢查;

9. 攻擊者只需要在所有的 vSwap 池子中,不斷的重復此過程,即可將池子中的流動性盜走完成獲利。詳情見原文鏈接。[2021/5/8 21:37:37]

TransactionType?||?TransactionPayload

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: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也會變得更容易。

Tags:USDNCESWAPGASusdc幣倒閉的可能性大嗎Euler FinanceParaSwapMEGASHIB

以太坊
狗狗幣開發者稱,自2019年以來一直在與馬斯克合作_NIC

本文來自?Decrypt,原文作者:ByAdrianaHamacherOdaily?星球日報譯者?|念銀思唐 摘要: -埃隆·馬斯克從?2019?年起就開始為?Dogecoin開發人員提供咨詢.

1900/1/1 0:00:00
關于5月14日起釋放第二期Chia Network算力收益的公告_BANK

尊敬的LBank藍貝殼用戶:接藍貝殼礦業消息,原于4月23日20:00完成ChiaNetwork算力的售賣,原定于30日內上線并啟動P盤工作,經團隊共同努力,提前10天上線.

1900/1/1 0:00:00
NFT開創作者新時代,Winb首發上線Biki漲幅達600%_NFT

DeFi熱潮漸退,NFT相較之前獲得了更多人的關注。NFT的出現,讓區塊鏈和現實世界更有趣了一些,內容的呈現方式更豐富了一些.

1900/1/1 0:00:00
錢遷誠:馬斯克再度搞事主流幣暴跌 比特幣以太坊FIL操作建議_Voyage

比特幣,漲也馬斯克,跌也馬斯克,一句言論足以引起幣圈巨震。今日凌晨馬斯克稱比特幣耗能過高,使用過多不可再生能源且造成惡略環境影響,因此特斯拉停止比特幣作為支付手段.

1900/1/1 0:00:00
BiONE關于5月17日首發上線SPACE-T的公告_VIBE

尊敬的用戶: BiONE平臺將于2021年5月17日20:00(UTC8)正式上線SPACE-T,并在Heco專區開放SPACE-T/USDT交易對.

1900/1/1 0:00:00
關于支持KNC(Kyber Network)合約置換的公告_DAO

尊敬的用戶: AOFEX將支持KNC合約置換計劃,具體安排如下:AOFEX將于2021年5月17日09:00暫停KNC充值、提現業務.

1900/1/1 0:00:00
ads