引言
DApp(Decentralized Application)是通往去中心化世界的應用程式,讓人們真正能夠感受到去中心化魅力的工具,但令人沮喪的是,使用它意味著你需要有一定的對區塊鏈(以太坊)基礎知識的掌握,包括但不限于錢包地址、哈希函式(散列、Hash)、公私鑰、交易、智能合約等,
這對一個對區塊鏈陌生的用戶來說,太可怕了!他需要學大量的知識,只為了使用 DApp,這阻撓了 DApp 的發展,而元交易可以減輕普通用戶的學習壓力,只需要他基本掌握使用一個區塊鏈錢包,例如 MetaMask、TrustWallet、ImToken 等等,
什么是元交易?
元交易(Metatransaction),是一種讓用戶不需要支付 gas 費就能夠使用 DApp、發起交易、呼叫智能合約的手段,
這意味著用戶將不再需要深入了解什么是交易、什么是智能合約,只需要確保自己的錢包是安全的,知道什么是錢包地址就可以了,這大大的簡化了 DApp 的使用流程,
為什么元交易能夠讓用戶不需要支付 gas 費?
聊元交易之前,首先了解一下什么是交易(Transaction),一筆以太坊交易由以下內容構成:
- from – 發送者地址
- recipient – 接收地址(如果為一個外部持有的帳戶,交易將傳輸值, 如果為合約帳戶,交易將執行合約代碼)
- signature – 發送者的簽名, 當通過發送者的私鑰簽名交易來確保發送者已授權此交易時,生成此簽名,
- value – 從發送者向接收者轉移 ETH 的金額 (以 WEI 為單位,ETH 的一種面值單位)
- data – 可包括任意資料的可選欄位
- gasLimit – 交易可以消耗的 Gas 的最大數量, Gas 單位代表了計算步驟
- gasPrice – 發送者按單位 gas 支付的費用
- nonce – 區塊鏈嚴格根據 nonce 值從小到大的順序執行交易
注意其中的 signature 欄位,通過它任何人都能夠驗證這筆交易就是發送者地址簽署的,交易會被發送給區塊鏈節點,發送者會支付 gas 費,通過驗證的交易才會被節點包含進自己的區塊鏈中,并進行廣播,而如果說,這樣一筆交易發給某個中間人/節點,讓他幫忙來付 gas 費并執行該交易,我們的目的就實作了,
但問題是,簡單的將這樣一筆交易發給中間人,中間人也并不能幫你支付 gas 費,因為它是一個普通的交易,它會被驗證通過,并認為是發送者來支付 gas 費,
那我們如何繞過這個限制呢?答案是智能合約,
如果這筆交易發生在智能合約內部,也就是說,在普通的交易內部嵌入一個交易(這個交易就被稱作元交易),交易被你的中間人/節點簽署,并指定接收者地址為元交易智能合約的地址,因此 gas 費由中間人/節點支付;而元交易智能合約在收到一筆元交易后,會驗證元交易的簽名資訊,確認無誤后,你的元交易在元交易智能合約中被執行,
舉個例子
Alice 想向 Bob 轉賬 0 ETH,而由于 Alice 賬戶上沒有任何 ETH,即便是轉賬 0 ETH,但她仍然需要支付一定數額的 gas 費,因此 Alice 無法直接執行這樣一筆交易,
而 Alice 知道 Carol 恰好賬號上有足夠多的 ETH 去支付 gas 費,于是請求他的幫助,
Carol 讓 Alice 簽署這筆元交易,并將所有內容發送給他;Carol 收到 Alice 的元交易后,構造出一個發送給元交易智能合約地址的交易,廣播給區塊鏈的節點,
區塊鏈節點將驗證 Carol 的交易合法性;元交易智能合約 扣除 Carol 的 gas 費作為執行智能合約的費用,并驗證該交易中的元交易是否合法(驗證是否為 Alice 的簽名,nonce 值是否合法等),
驗證合法后,元交易智能合約執行該元交易,從而 Alice 在沒有花任何 gas 費的情況下,通過中間人 Carol 執行了交易,
總結
元交易是讓 DApp 迅速發展的關鍵性技術之一,它減小了普通用戶理解區塊鏈運作機制的成本,讓用戶不需要支付 gas 費即可發起交易,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/355389.html
標籤:區塊鏈
