Meta-Transactions
元交易解釋
如果我理解正確的話,元交易模式就像是客戶端和支付交易費用的區塊鏈之間的中間件軟體。
如果我簽署交易並將其發送到中間件軟體,我的交易簽名是否已經包含諸如(來自:收取交易費用的帳戶)之類的資訊。在不影響過多去中心化的情況下,這如何真正發揮作用。
為了打破這一點,我將簡要解釋元交易是如何工作的,然後我將解釋它是如何去中心化的。
- 您必須有一個私鑰/公鑰對
- 有人為您創建了一個 1-of-x 多重簽名帳戶。您可以自己執行此操作,也可以是某個錢包提供商。步驟 1 中的地址用作多重簽名上的授權帳戶
- 當你想創建一個交易時,你簽署一條多重簽名可以 A. 驗證簽名和 B. 像交易一樣執行的消息,例如,你將簽署目標地址、消息數據和要發送的值。
- 您將此簽名消息送出給人們所謂的“中繼者”。這些只是接收您的消息、將其捆綁到實際交易中並將其發送到您的多重簽名的服務。這可能涉及也可能不涉及從多重簽名中以 eth 或代幣支付的費用。
- 您的多重簽名驗證消息由授權帳戶簽名並執行消息,就像它是交易一樣。
上述方案中當然存在中心化問題,因為如果我使用一些具有硬編碼“中繼器”(這只是一個 url 或 IP 地址)的錢包,那麼我依賴於該服務提供商活躍和線上。他們當然不能執行我沒有授權的事情,但是他們離線仍然讓我很難受。
解決此問題的一種方法是標準化 meta-tx-relayer API,以便:
- 任何人都可以將他們簽名的消息傳遞給任何標準的中繼者
- 有一個類似於乙太坊客戶端中使用的發現協議,它允許我找到許多不同的活動中繼器,所以我有備份,以防有些出現故障或無法執行我的交易
- 有一種標準的、商定的方式來激勵中繼者執行這些消息。這可能是通過讓您簽署的消息實際上是消息列表,其中第一個是對正在送出的中繼者的令牌支付。
對於中繼者來說,一個類似但更好的方法是讓列表中的第一筆交易始終是 Uniswap,以使用者想要的任何代幣支付,因此中繼者總是可以接受 ETH。