一文了解以太坊上的新交易類型
本文來自Mycrypto本文來自

本文來自
本文來自
,原文作者:Maarten Zuidhoorn,由Odaily譯者Katie 辜編譯。
以太坊上存在著不同的交易類型,比如,將ETH發送到某個地址,部署合約等等。在柏林網絡升級之前,以太坊上就有四種不同的交易類型:
帶接收地址的常規交易,數據域等;
沒有目的地址的合約部署交易,數據域用於合約代碼;
帶v值簽名方式的交易,但不包括鏈ID(pre-EIP-155);
本文我們將詳細介紹柏林昇級中包含的一些標準,以及其它可能未來可能包括的內容。
二級標題
二級標題
RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])
二級標題
TransactionType || TransactionPayload
標準交易信封
以太坊有一個交易格式。每個交易包括一個隨機數(nonce)、gas價格、gas極限、目的地址、value、數據、v、r、和s。這些字段是RLP編碼的,如下所示:
EIP-2718為類型化交易定義了一個新的廣泛的信封。在新標準中,交易如下所示:
其中,這些字段被定義為:
交易類型:介於0和0x7f之間的數字,總共有128個可能的交易類型。
增加的複雜性的一個很好的例子是EIP-155,它通過在交易中使用鏈ID來引入了回复保護(reply protection)。向交易參數中添加一個新字段將會破壞向後兼容性(backwards compatibility),所以鏈ID被編碼到交易簽名(v)的恢復參數(v)中。使用EIP-2718,我們可以簡單地創建一個新的交易類型,以維護向後兼容性。
二級標題
二級標題
二級標題
向後兼容性和原始交易
EIP-2718的一個大主題是向後兼容性。 EIP-2718採用完全向後兼容模式,這意味著任何現有的工具、庫、(硬件)錢包和交易都可以使用它,但他們將無法使用EIP-2718提供的新“功能”以及使用它的標準。舊的交易格式(現在稱為原始交易)對於以太坊網絡上的新交易仍然有效。
新交易類型的最大數目為0x7f,被選為維持這些舊交易的向後兼容性。 RLP編碼的交易總是以一個為l的字節開頭,參數大於或等於0xc0,因此類型化交易永遠不會與舊交易發生衝突,並且只需檢查第一個字節,就可以區分類型化交易和舊交易。
EIP-2718本身不定義任何交易類型,但有一些建議使用新標準:
其中一些標準將在下面進一步詳細說明。
二級標題
二級標題
二級標題
二級標題
EIP-1559的新交易格式
0x02 || RLP([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS])
二級標題
EIP-1559的新交易格式
在EIP-1559中,gas的工作方式發生了顯著的變化。不再向礦工支付全部gas,而是燃燒一部分gas。我們不詳細介紹EIP-1559的所有變化,但它確實指定了一種新的交易格式:
最顯著的變化是:
Gas價格已被“每個gas最高優先費用”和“每個gas最高費用”所替代。
二級標題
二級標題
原始元交易(meta transactions)和分批交易(batch transactions)
二級標題
0x02 || RLP([...SenderPayload, ...SenderSignature, ...GasPayerPayload, ...GasPayerSignature])
原始元交易(meta transactions)和分批交易(batch transactions)
[1, ChildTransaction[], nonce, ChainId, ValidUntil, gasLimit, gasPrice]
二級標題
二級標題
總結
總結
總結


