EtherscanのVerifiedは安全保証?ソース一致・監査・発行元を分ける

Verifiedは公式発行元、無欠陥、資産の安全を一括で保証する表示ではありません。ソース検証は公開ソースとオンチェーンのコードの対応を確認する仕組みで、監査や発行元確認とは目的が違います。

EtherscanのVerifiedは安全保証?ソース一致・監査・発行元を分ける

Verifiedは公式発行元、無欠陥、資産の安全を一括で保証する表示ではありません。ソース検証は公開ソースとオンチェーンのコードの対応を確認する仕組みで、監査や発行元確認とは目的が違います。

四つの確認

項目別に確認する点
ソース検証コードの対応。コメントの主張まで真実とは限らない
監査対象範囲・版・結果。全リスクの保証ではない
公式発行元公式情報とチェーン・アドレスの照合
変更の仕組みproxy・実装先・更新権限等の個別確認

ReadとWriteを区別

EtherscanはRead Contractを公開データの読取、Write Contractを署名・ガスを伴う状態変更の取引と説明しています。残高確認と承認・転送は別です。本稿は閲覧確認までで接続・署名・書込はしていません。

名前より対応関係を確認

仮に有名サービスと同名でも公式アドレスと照合します。proxyの場合は、どの実装を見ているか、変更され得るかも確認対象です。コードを読めることと安全性を評価できることは別で、表示一つで専門レビューを省略しません。個別コントラクトが安全かを判定した実績ではありません。

検証の結果表示の違い

ソース検証は、提出されたソースコードとコンパイラ設定から作ったバイトコードが、チェーン上のコードと一致するかを確かめる作業です。Etherscanは一致の程度を「Exact Match」と「Similar Match」で表示します。Similar Matchは、別のコントラクトで検証済みのソースと同じバイトコードだったため自動で照合された状態です。オープンソースの検証基盤Sourcifyも、メタデータまで一致する「full match」と、実行コードだけが一致する「partial match」を区別しています。

proxyでは2か所を見る

アップグレードできるコントラクトの多くは、利用者が呼ぶproxyと、実際の処理を書いた実装(implementation)に分かれています。Etherscanでは「Read as Proxy」「Write as Proxy」のタブで実装側の関数を確認できます。proxy自体がVerifiedでも、実装が未検証だったり、管理者が実装を差し替えられたりする場合があります。管理者権限を持つアドレスがマルチシグか、タイムロックが付いているかも、確認の対象に入れます。

確認の順番

  1. プロジェクトの公式サイトや公式ドキュメントに載っているアドレスと全桁で照合する
  2. Verifiedの有無と、Exact MatchかSimilar Matchかを見る
  3. proxyなら実装先と管理者権限を確かめる
  4. 公開されている監査報告の対象バージョンとアドレスが、いま使うものと同じかを見る

出典と確認範囲

個別適用や説明の拡張時に確認する事項:実装・権限、最新の表示、監査と発行者の対応を確認。

動画で確認する

ソース検証・監査・公式発行元・変更の仕組みの違いは、同じ題材の解説動画でも整理しています。

投資ラボの解説動画を見る(8分20秒)

カテゴリETHセキュリティ

この記事を書いた人

Labochan

Web3 & NFT リサーチャー/ライター(クリプト歴 7 年、ガチホ歴 3 年)。NFTLABO 編集長として月100本のニュース&エアドロNoteを監修。累計 $150,000 相当の大型エアドロ獲得ノウハウを発信。

運営: 投資ラボ運営者情報お問い合わせ