上級者用語を調べる
メタトランザクションとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
メタトランザクションは、利用者が署名した内容を第三者が代理で送信する方式です。署名した本人が実行者である必要がなくなるため、手数料の肩代わりが成立します。裏を返せば、署名した時点で内容は他人の手に渡り、いつ実行されるかは自分で決められません。
要点
- 署名する人と送信する人を分ける方式
- 手数料の肩代わりが成立する土台になる
- 署名した内容はそのまま実行の許可になる
- 実行の時期を署名者が制御できない
定義
利用者が実行したい処理の内容に署名し、その署名を受け取った中継者が自分の手数料でチェーンに送信する形式の取引。コントラクト側が署名から本来の実行者を判定する。
通常の取引では、署名した人がそのまま送信者となり、手数料も負担します。メタトランザクションではこれを分けます。利用者は処理の内容に署名し、中継者がそれを包んでチェーンへ送ります。コントラクトは署名を検証して、本来の実行者が誰かを判定します。
この分離により、利用者はネイティブ通貨を持たずに操作できます。また、複数人の操作をまとめて1つの取引として送るといった効率化もできます。ERC-2771など、中継者が正しく本人を伝えているかを検証するための規格が整備されています。
設計上の注意点は、署名が使い回されないようにすることです。同じ署名を二度送られると処理が重複するため、署名にはnonceと有効期限が含まれます。これらが正しく検証されていないコントラクトでは、再送による二重実行が起こりえます。
注意点
- · 署名した内容は資産を動かす許可そのもの。中身を読まずに署名しない
- · 中継者は署名を握ったまま実行を遅らせたり、実行しないこともできる
- · 署名後に相場が動いてから実行される可能性を前提に、有効期限を短くする