以太坊采用不同的事務類型來定義不同的操作,例如,將以太幣發送至某個地址、部署合約等等。
在最近的柏林升級之前,以太坊主要有4種不同的事務「類型」:
·帶有收款方地址、數據字段的常規事務
·不帶有收款方地址的合約部署事務,其數據字段填寫的是合約代碼
·簽名?v?值不含鏈ID的事務
·簽名?v?值含有鏈ID的事務??
上述事務類型都采用相同的格式。不同的以太坊客戶端、庫和其它工具必須分析每個事務來判斷它屬于哪個類型。這四種不同的事務類型引入了很多復雜的情況。我們需要查看事務的所有字段來判斷其所屬類型。這是人們在提議新的事務類型時不得不面對的重大難題,直到EIP2718出現才打破這一困境。
以太坊現在有了新的事務標準TypedTransactionEnvelope,由?EIP2718?的提議者?MicahZoltu?定義。該標準為以太坊上的一些新功能和即將開發的功能奠定了基礎。在本文中,我們將回顧柏林升級引入的一些標準以及未來有可能引入的其它標準。
Beosin:sDAO項目遭受攻擊事件簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin?EagleEye 安全風險監控、預警與阻斷平臺監測顯示,BNB鏈上的sDAO項目遭受漏洞攻擊,Beosin分析發現由于sDAO合約的業務邏輯錯誤導致,getReward函數是根據合約擁有的LP代幣和用戶添加的LP代幣作為參數來計算的,計算的獎勵與用戶添加LP代幣數量正相關,與合約擁有總LP代幣數量負相關,但合約提供了一個withdrawTeam的方法,可以將合約擁有的BNB以及指定代幣全部發送給合約指定地址,該函數任何人都可調用。而本次攻擊者向其中添加了LP代幣之后,調用withdrawTeam函數將LP代幣全部發送給了指定地址,并立刻又向合約轉了一個極小數量的LP代幣,導致攻擊者在隨后調用getReward獲取獎勵的時候,使用的合約擁有總LP代幣數量是一個極小的值,使得獎勵異常放大。最終攻擊者通過該漏洞獲得的獎勵兌換為13662枚BUSD離場。Beosin Trace追蹤發現被盜金額仍在攻擊者賬戶,將持續關注資金走向。[2022/11/21 7:53:09]
標準化的事務封套??
安全團隊:獲利約900萬美元,Moola協議遭受黑客攻擊事件簡析:10月19日消息,據Beosin EagleEye Web3安全預警與監控平臺監測顯示,Celo上的Moola協議遭受攻擊,黑客獲利約900萬美元。Beosin安全團隊第一時間對事件進行了分析,結果如下:
第一步:攻擊者進行了多筆交易,用CELO買入MOO,攻擊者起始資金(182000枚CELO).
第二步:攻擊者使用MOO作為抵押品借出CELO。根據抵押借貸的常見邏輯,攻擊者抵押了價值a的MOO,可借出價值b的CELO。
第三步:攻擊者用貸出的CELO購買MOO,從而繼續提高MOO的價格。每次交換之后,Moo對應CELO的價格變高。
第四步:由于抵押借貸合約在借出時會使用交易對中的實時價格進行判斷,導致用戶之前的借貸數量,并未達到價值b,所以用戶可以繼續借出CELO。通過不斷重復這個過程,攻擊者把MOO的價格從0.02 CELO提高到0.73 CELO。
第五步:攻擊者進行了累計4次抵押MOO,10次swap(CELO換MOO),28次借貸,達到獲利過程。
本次遭受攻擊的抵押借貸實現合約并未開源,根據攻擊特征可以猜測攻擊屬于價格操縱攻擊。截止發文時,通過Beosin Trace追蹤發現攻擊者將約93.1%的所得資金 返還給了Moola Market項目方,將50萬CELO 捐給了impact market。自己留下了總計65萬個CELO作為賞金。[2022/10/19 17:32:31]
過去,以太坊的事務都采用同一種格式。每個以太坊事務都有6個字段:nonce、gasprice、gaslimit、toaddress、value、data、v、r和s。這些字段需要經過?RLP編碼,如下所示:
安全團隊:LPC項目遭受閃電貸攻擊簡析,攻擊者共獲利約45,715美元:7月25日,據成都鏈安“鏈必應-區塊鏈安全態勢感知平臺”安全輿情監控數據顯示,LPC項目遭受閃電貸攻擊。成都鏈安安全團隊簡析如下:攻擊者先利用閃電貸從Pancake借入1,353,900個LPC,隨后攻擊者調用LPC合約中的transfer函數向自己轉賬,由于 _transfer函數中未更新賬本余額,而是直接在原接收者余額recipientBalance值上進行修改,導致攻擊者余額增加。隨后攻擊者歸還閃電貸并將獲得的LPC兌換為BUSD,最后兌換為BNB獲利離場。本次攻擊項目方損失845,631,823個 LPC,攻擊者共獲利178 BNB,價值約45,715美元,目前獲利資金仍然存放于攻擊者地址上(0xd9936EA91a461aA4B727a7e3661bcD6cD257481c),成都鏈安“鏈必追”平臺將對此地址進行監控和追蹤。[2022/7/25 2:36:51]
RLP()
EIP2718?為類型化事務定義了一種新的通用封套。在新的標準下,事務如下所示:
慢霧:Harmony Horizon bridge遭攻擊簡析:據慢霧安全團隊消息,Harmony Horizon bridge 遭到黑客攻擊。經慢霧 MistTrack 分析,攻擊者(0x0d0...D00)獲利超 1 億美元,包括 11 種 ERC20 代幣、13,100 ETH、5,000 BNB 以及 640,000 BUSD,在以太坊鏈攻擊者將大部分代幣轉移到兩個新錢包地址,并將代幣兌換為 ETH,接著將 ETH 均轉回初始地址(0x0d0...D00),目前地址(0x0d0...D00)約 85,837 ETH 暫無轉移,同時,攻擊者在 BNB 鏈暫無資金轉移操作。慢霧 MistTrack 將持續監控被盜資金的轉移。[2022/6/24 1:28:30]
TransactionType?||?TransactionPayload
上述字段的定義是:
·TransactionType:0至0x7f范圍內的某個值,最多可代表128種事務類型。
慢霧:DEUS Finance 二次被黑簡析:據慢霧區情報,DEUS Finance DAO在4月28日遭受閃電貸攻擊,慢霧安全團隊以簡訊的形式將攻擊原理分享如下:
1.攻擊者在攻擊之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。
2.在幾個小時后攻擊者先從多個池子閃電貸借出143200000USDC。
3.隨后攻擊者使用借來的USDC在BaseV1Pair進行了swap操作,兌換出了9547716.9個的DEI,由于DeiLenderSolidex中的getOnChainPrice函數是直接獲取DEI-USDC交易對的代幣余額進行LP價格計算。因此在此次Swap操作中將拉高getOnChainPrice函數獲取的LP價格。
4.在進行Swap操作后,攻擊者在DeiLenderSolidex合約中通過borrow函數進行借貸,由于borrow函數中用isSolvent進行借貸檢查,而在isSolvent是使用了getOnChainPrice函數參與檢查。但在步驟3中getOnChainPrice的結果已經被拉高了。導致攻擊者超額借出更多的DEI。
5.最后著攻擊者在把用借貸出來DEI兌換成USDC歸還從幾個池子借出來的USDC,獲利離場。
針對該事件,慢霧安全團隊給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/4/28 2:37:18]
·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:以太坊GASTRACELO以太坊價格今日行情美元兌人民幣MEGASHIBUltraman TigaCelo Euro
頭條 ▌人民日報:央行數字貨幣研發持續推進5月11日,人民日報刊文“央行數字貨幣研發持續推進”。文章表示,為增強金融服務普惠性,提高支付效率和安全性,越來越多國家和地區加速研究布局央行數字貨幣.
1900/1/1 0:00:00比特幣挖礦自09年至今已經歷經了12年的歷史,算力增長的爆發期也是從2013年阿瓦隆挖礦芯片的批量生產開始,至今已經達到了數百萬倍的增長.
1900/1/1 0:00:00原文標題:《幣圈OTC涉嫌幫信犯罪的辯護要點》來源:明德慎刑撰文:劉揚,北京德恒律師事務所顧問、刑委會執委、執業律師當前,幣圈涉嫌犯罪的情況越來越引起辦案機關的重視.
1900/1/1 0:00:00隨著區塊鏈領域的不斷發展,偶爾的協議更新是必要的,以確保項目跟上最新的發展,并為用戶提供可能的最佳用戶體驗。EOS最近的協議升級提高了該項目的通脹率,自5月5日以來,EOS價格上漲超過100%.
1900/1/1 0:00:00來源|?PrysmaticLabs作者|?RaulJordan https://beaconcha.in/epoch/32302 事故概要 從epoch32302開始,信標鏈丟失了大量區塊提議.
1900/1/1 0:00:004月30日消息,Protolambda啟動首個實驗性質的Eth1-Eth2合并后測試網。目前網絡上有7個客戶端,雖然Steklo開發者網絡非常脆弱,但這是測試合并的一大步.
1900/1/1 0:00:00