本文剖析了以太坊交易中的元數據、緩存和數據三個重要組成部分,手把手地教會讀者看懂一筆交易的數據。

原文:SalomonCrypto On Twiiter

作者:Haym

編譯:EthereumCN

原用標題(譯後)以太坊的基礎原理:交易

封面:Photo by  Shubham Dhage  on  Unsplash

發送了 ETH?有為 AMM 提供流動性?部署了新的合約?你所做的任何事都會在世界計算機上留下鏈上記錄。想知道你的交易中有些什麼嗎?

交易封面.png
以太坊計算中逐個原子單位的指南

以太坊是一台世界計算機:一個存在於上千台計算機網絡之間的全球共享基礎設施。

用戶可以通過錢包(比如 MetaMask)與以太坊進行交互,錢包可以創建和發送交易到網絡中。一旦接收了交易,它就會被寫入區塊中。

額外的益處:對數據進行哈希計算 (應用哈希函數)

哈希函數:這是一段用於將任意數據量轉換為一個壓縮、統一數值的代碼。它的輸入數據可以是任意長度,但輸出數據的長度則是一樣的。

(好處)哈希函數不能反向運行。

交易圖2(1)(1).png
cr.  https://twitter.com/SalomonCrypto/status/1567541750151151616

一筆以太坊交易由三個部分組成:

  • 元數據(metadata),包括發送/接受的 ETH 金額、gas 詳細信息以及簽名數據
  • 緩存(cache),交易預計會使用的賬戶和私鑰的列表。
  • 數據,交易的 payload(智能合約代碼或者 API 調用)
交易圖3(1).png

元數據—— 交易相關信息

以下的圖片展示了所有元數據字段。我們會在接下來探討其中不顯著的部分。

交易圖4(2)(1).png
元數據的圖2(1).png

chainid  —— 由 EIP-155 提出,用來保護鏈不受 ETC  的重放攻擊。

type  —— 這裡有兩種類型:一個新的合約(0x0)還有其他所有合約(0x2)。EIP-2718 提出了一個封裝功能(0x2),讓更多不影響以太坊核心規範的類型得以使用。

nonce  —— 從特定地址發送過來的交易數量。一旦交易打包到區塊上,錢包的 nonce 值就增加了。避免受到重放攻擊。

to  —— 接受交易的地址(錢包或智能合約)

value  —— 將要轉賬的 ETH 數額。請注意—— 這裡只計算 ETH,不計算其他代幣。

gas  —— 這筆交易所使用的 gas 單位

maxFeePerGas  —— 創建交易的用戶願意支付的最高費用(每 gas 要支付 WEI。譯者註:WEI 是 ETH 的最小單位,1 個 ETH 相當於 10 的 18 次方 WEI。)它包括了基礎費用和優先費。

maxPriorityFeePerGas  —— 創建交易的用戶在基礎費用(base fee)之外願意支付的最高優先費(每 gas 要支付的 WEI)。這筆費用會直接支付給礦工/驗證者,作為激勵打包的小費。

gasPrice  —— 這筆交易需支付的每 gas 單位的成本

(r, s, v) —— 構成創建該交易的用戶簽名的三個值。它們可以用於驗證用戶是否在此交易上 EVM 執行之前許可了這筆交易。

更多信息,可以自行查閱:Elliptic Curve Digital Signature Algorithm (ECDSA)

緩存

這個部分包括了訪問列表(accessList),它是交易將用到的地址和私鑰的列表。這筆交易還可以使用該列表以外的資源,但成本會比較高。

交易圖5(1).png
交易圖6(2).png

訪問列表是由 EIP-2929 提案提出的,讓客戶端可以獲取/緩存交易期間的數據。

現在,通過訪問列表獲取地址和私鑰數據的折扣是 9 折。但這個折扣會隨著未來以太坊支持更多輕客戶端而變得更多。

數據—— 交易中傳輸的 payload 數據

數據可以用三種方式進行:

  • ETH 轉賬—— 空白
  • 智能合約 API 調用—— 函數和參數的名字
  • 新的智能合約—— 智能合約的代碼
交易圖7(1).png
交易圖片(2).png

輸入字段的數據以二進制形式記錄,但它可以轉譯成人類可讀的形式。

交易圖8(1).png
交易圖9(1).png

輸入字段存在於鏈上,但它不是 EVM 狀態的一部分。它只是在交易期間為合約提供數據,無法被以太坊追踪到,也不能在共識層上使用。

EVM 只能使用在此交易中提供的數據;它無法查看過去的交易。

這一特質對於想要將歷史數據寫入以太坊區塊鏈(比如,用於稍後的手動檢索)但不考慮直接訪問 EVM 的應用程序來說十分有用。

Rollup 是最早充分利用這個想法的一種應用程序。

有時間我們會談談 Rollup。現在,Rollup 依靠著這樣一種現實:將數據寫入輸入字段比直接寫入以太坊 EVM 狀態中要相對便宜。

你現在可以看啦!這就是一筆以太坊交易的樣子!

交易圖10(1).png

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。