non custodial

EIP-712 とは? 署名付き注文があなたの資金を守る仕組み

EIP-712 を使うと、中身の読めない16進数ではなく、読める構造化データに署名できます。ノンカストディアル取引を安全かつ検証可能にする仕組みを解説します。

POTS Team ·
  • #eip-712
  • #signatures
  • #non-custodial
  • #security

ノンカストディアルの取引は、どれもひとつの行為の上に成り立っています。メッセージへの署名です。EIP-712 は、その署名を安心して渡せるものにする Ethereum の規格です。読める、範囲が限られている、改ざんできない。暗号学の専門用語なしで、仕組みを説明します。

EIP-712 が解決した問題

初期の暗号資産の署名は危険でした。ウォレットが差し出してくるのは、読めない16進数の塊。10ドルの取引を認めているのか、ウォレットを空にする許可を出しているのか、知るすべがありません。いわゆるブラインド署名です。悪意あるアプリは、まさにそこを突いてきました。

EIP-712 は型付きの構造化データに署名させることで、これを解決しました。項目に名前が付いたメッセージなので、ウォレットがふつうの言葉で表示できます。0x9fa3... ではなく、承認する前に実際の注文、つまりトークン、価格、数量、売買の向きが見えるのです。

取引で何に署名しているのか

Pots Market のようなノンカストディアルのプラットフォームで注文を出すと、ウォレットに構造化された注文が表示され、あなたはそれに秘密鍵で署名します。その署名が認めるのはその注文だけで、ほかには何も認めません。

Order
  token:  YES (Will event X happen?)
  side:   BUY
  price:  0.62
  size:   100
  maker:  0xYourAddress

安全を支えている性質は3つです。

  1. 読める:本当の条件が見えるので、別のものに署名させられることがありません。
  2. 範囲が限られている:署名が有効なのはこの注文の項目だけ。どれかひとつでも変えれば、署名は無効になります。
  3. ドメインに紐づく:EIP-712 には「ドメイン」(チェーン、コントラクト、アプリ)が含まれるので、あるコントラクト向けの署名を別のコントラクトで使い回すことはできません。

なぜ取引がノンカストディアルになるのか

注文はあなたの鍵で署名され、オンチェーンで検証されるので、どんな仲介者も書き換えられません。アプリは署名済みの注文を決済用のコントラクトへ届けますが、価格を変えることも、売買を逆にすることも、数量を水増しすることもできません。どこか一か所いじれば署名が壊れるからです。資金を預かることもなく、決済はオンチェーンで直接行われます。これがモデル全体をノンカストディアルにしています。

Pots Market では、注文は Polygon 上の Polymarket の監査済み CTF Exchange で決済され、それぞれにオンチェーンの帰属コードが付きます。だから、正しく経由したと信じるのではなく、自分で確かめられます。

それでも気をつけたいこと

EIP-712 が守るのは注文であって、ウォレット全体ではありません。

  • 署名の画面は毎回読む。 規格のおかげで条件は見えるようになっています。実際に目を通しましょう。
  • ドメインを確認する。 コントラクトやアプリが、取引するつもりの場所と一致しているかを見ます。
  • 古い承認は取り消す。 トークンの承認は注文の署名とは別物です。定期的に見直してください。

まとめ

EIP-712 は、危険なブラインド署名を、読めて改ざんできない承認に変えました。資産を預けずに取引できるのは、この地味な規格のおかげです。自分が意図したとおりのものに署名し、それをチェーンが守らせる。全体の中でどう位置づけられるかは、Pots Market のセキュリティモデルで確認できます。

よくある質問

01 EIP-712 とは何ですか?
EIP-712 は、型付きの構造化データに署名するための Ethereum の規格です。読めない16進数の塊に中身も見ずに署名するのではなく、承認の前にウォレットが実際の注文の項目(トークン、価格、数量、売買の向き)をふつうの言葉で表示します。
02 EIP-712 が以前の署名方式より安全なのはなぜですか?
以前の方式では、読めない16進数を承認させられていました。EIP-712 はデータを読める形にし、ドメインにも紐づけます。署名が有効なのは自分が見たその項目だけで、別のコントラクトや別のチェーンで使い回すこともできません。
03 EIP-712 なら、アプリが注文を書き換えることはできないのですか?
その通りです。署名済みの注文を少しでも変えると(価格、数量、向き)、署名が無効になります。アプリは注文を中継できても書き換えはできません。これが、信頼を前提にしないノンカストディアル取引を成り立たせています。
04 EIP-712 を使うときに、それでも気をつけることは?
署名を求められたら毎回きちんと読み、ドメインが取引するつもりの場所と一致しているか確認してください。EIP-712 が守るのは注文そのものです。トークンの承認(アプルーブ)は別物なので、古い承認は定期的に見直して取り消しましょう。
Pots に参加