Blob 交易
Blob 交易是一種以太坊的新交易型別(第 3 型,由 EIP-4844 引入),在一般欄位之外攜帶一份或多份大型資料 blob。一份 blob 是固定 128 KiB 的資料塊——技術上是 4096 個各 32 位元組的體元素——用來裝載彙整壓縮過的一批交易。其決定性特徵是:blob 資料對網路可得,卻不被 EVM 存取:智慧合約永遠讀不到 blob 的位元組,只能讀到對它的一段簡短密碼學承諾。正是這個刻意的設計選擇,讓 blob 比 calldata 便宜得多。
有兩件事讓 blob 維持便宜。第一,它們在一個獨立的 blob-gas 市場裡定價,有自己一套 EIP-1559 式的基礎費用,與執行 gas 各自獨立地漲跌,因此 DeFi 繁忙的一天不會直接推高彙整的資料成本,反之亦然。第二,資料是短暫的:共識節點保證 blob 約 18 天(4096 個紀元)的可得性後便將它修剪,因為這段窗口長到足以讓任何人下載資料、也足以讓任何爭議解決。永久的歷史則交給任何想保存它的人在鏈下保管。
鏈永久保留的不是 blob,而是其 KZG 承諾的一個帶版本雜湊。合約可透過 BLOBHASH 操作碼讀到該承諾,並能用點求值預編譯合約證明關於 blob 內容的事實——這讓彙整的驗證器得以確認「某個特定值位於 blob 中某個特定位置」,而 blob 本身從不進入 EVM。樂觀彙整的詐欺證明、或 ZK 彙整的有效性檢查,正是藉此引用「執行層自身看不見的資料」,同時付的是 blob 的價格、而非 calldata 的價格。
依設計,blob 資料對智慧合約是不可見的。合約只能取用 KZG 承諾(透過 BLOBHASH),並以點求值預編譯合約證明 blob 的求值結果——永遠取不到原始位元組。把 blob 當成可在鏈上讀取的儲存,是一個常見誤解。