スマートコントラクトとDeFi|承認・ブリッジ安全確認 | SG Group
本文へ移動
Crypto Currencies解説 · 最終内容確認 Read in English
SMART CONTRACT SECURITY · CR09

スマートコントラクトとDeFi:承認・オラクル・ブリッジのリスク

DeFiで「walletを接続する」操作は、閲覧だけとは限りません。token支出権限、swap、deposit、borrow、bridge message、governance voteへの署名が含まれ、誤ったcontractや広いapprovalはwallet内の別資産へも影響し得ます。本稿はcodeが公開されていること、audit済みであること、TVLが大きいことを安全保証とせず、権限・依存先・損失の伝播・退出を一つのchecklistで確認します。

この記事が役立つ方: DEX、lending、liquid staking、bridge、NFT marketplace等へwalletを接続する人

まず押さえる重要ポイント

DEPENDENCY GRAPH

一つのtransactionが複数のcontractと外部systemへ依存する

USER AUTHORITY
  • Wallet signaturechain ID、function、amount、deadline
  • Token approvalspender、allowance、expiry
  • Collateralprice、liquidity、liquidation terms
PROTOCOLSmart contracts

state、collateral、accountingを実行

EXTERNAL DEPENDENCIES
  • Oracleprice source、heartbeat、fallback
  • Admin keysupgrade、pause、guardian、multisig
  • Bridge/frontendmessage verification、DNS、UI
core contractだけでなく、価格・鍵・画面・bridge・liquidityの故障を追います。
DIRECT ANSWER

DeFi利用の第一歩はcontract identityと権限の照合

スマートコントラクトはblockchain上のaddressに配置され、transactionを受けるとcodeに従ってstateを変更するprogramです。自動実行でも、codeが正しい、管理者がいない、結果が公正という意味ではありません。protocolのofficial domain、docs、repository、deployment list、explorer verified sourceを照合し、chain ID、proxy address、implementation、version、creation transactionを記録します。

偽frontendや検索広告は正規protocol名を使って悪意あるcontractへ署名させます。bookmarkしたofficial URLから入り、walletのnetworkと表示contractを確認します。upgradeable proxyでは利用者がinteractionするaddressと実際のlogic contractが異なり、administratorがimplementationを変更できます。upgrade delay、timelock、multisig signer、emergency pauseを確認します。

署名前のidentity chain
確認するもの失敗例
Domain/frontendofficial link、TLS、DNS、app version偽site、frontend改ざん
Networkchain ID、RPC、block explorer誤chain、悪意あるRPC
Contractaddress、verified code、proxy偽token、旧version、implementation差替え
Functionmethod、arguments、value、deadlineblind signing、unlimited approval
Authorityadmin、multisig、timelock、guardian即時upgrade、単一鍵

表示名ではなくaddressとchain IDを証拠にします。

TOKEN APPROVAL

approveは送金ではなく将来の支出上限を渡す

ERC-20のapprove/allowanceは、spender contractがholderに代わってtokenを移す上限を設定します。swap時に必要ですが、unlimited approvalを残すと、将来spenderが侵害・upgrade・悪用されたとき残高まで移転される可能性があります。approval transaction自体はtokenを送らないため見落としやすく、walletをdisconnectしてもon-chain allowanceは残ります。

spender address、token contract、amount、expiry/permit deadline、chainを確認し、必要額だけ承認します。利用後はrevoke toolまたはtoken contractでallowanceを減らしますが、revokeもtransactionでgasが必要です。revoke site自体の偽物に注意し、explorerのtoken approval機能や信頼できるofficial linkを使います。NFTのsetApprovalForAllはcollection全体の移転権限になり得ます。

approval riskを数量化する簡易上限exposed amount ≈ min(current wallet token balance, active allowance)aggregate exposure = Σ exposed amount by token and spenderrevoke priority = value exposed × spender risk × time left実際のtransfer可能性はtoken実装、permit、operator権限、contract状態で異なります。
CODE & ADMIN RISK

code bugと管理者権限を別の列へ置く

smart contractの典型的riskにはreentrancy、access control、integer/precision、unchecked external call、flash-loanを使ったeconomic exploit、front-running、denial of service、bad upgrade、incorrect accountingがあります。codeがopen sourceでも、利用者が全経路を検証したことにはなりません。compiler、library、oracle、tokenの非標準挙動、governance proposalもattack surfaceです。

audit reportはaudit firm、date、commit hash、scope、severity、unresolved finding、remediation、re-auditを読みます。audit後にcodeやparameterが変わればcoverage外です。bug bountyの上限がTVLに比べ小さい、incident pauseが単一EOA、multisig signerが同一組織に集中する等も確認します。長い無事故履歴は有益なevidenceですが将来保証ではありません。

ORACLE & LIQUIDATION

価格source・更新遅延・liquidationを一つのscenarioで確認する

lendingやderivative protocolはoracle priceでcollateral valueとliquidationを計算します。source venue、median/TWAP、heartbeat、deviation threshold、fallback、stale price handlingを確認します。薄い市場のspot priceを直接使う、更新が遅い、同じvenueへ集中する場合、market manipulationや急変で誤liquidationが起き得ます。

health factorやloan-to-valueは価格が下がるだけでなく、borrowed assetが上がる、interestが累積する、collateral factorがgovernance変更されることで悪化します。liquidation bonus、close factor、auction、network congestion、gas competitionを含め、価格shockとoracle delayを同時にstressします。

簡易collateral healthadjusted collateral = collateral market value × collateral factorhealth ratio = adjusted collateral ÷ debt market valueliquidation risk rises when health ratio approaches protocol threshold各protocolの正式な式、asset factor、oracle、roundingを公式docsで確認します。
BRIDGE & COMPOSABILITY

bridgeは資産移動ではなく別の検証systemを追加する

bridgeはsource chainでlockしてdestinationでmint、sourceでburnしてdestinationでmint、またはliquidity networkでswapする方式があります。blockchain同士が自然に互いのstateを信頼するわけではないため、light client、validator set、multisig、oracle、relayer、fraud proof等のmessage verificationが必要です。誰が誤messageを止め、どのdelayでfinalizeするかを確認します。

bridge exploitではwrapped assetのbackingが失われてもdestination上のtokenが残り、priceがdepegします。pause後にassetを戻せない、source chain finality前にmintする、upgrade keyが侵害される、liquidity providerが枯渇する経路があります。stablecoinのreserve・償還・depegと同様に、original asset、bridge liability、wrapped supply、exitをbalance sheetとして読みます。

SAFE INTERACTION WORKFLOW

専用wallet・simulation・少額・revoke・exitを一巡する

長期保管walletを未知のdAppへ接続せず、interaction用に残高を限定したwalletを分けます。official linkから入り、network・contract・functionを確認し、transaction simulationとminimum receivedを読み、少額でdeposit→claim/repay→withdrawまで試します。approvalは必要額に限定し、終了後に残高とallowanceを確認します。

  1. 依存graphを作る

    contract、proxy、oracle、bridge、admin、frontendを列挙。

  2. reportを読む

    audit commit、未解決finding、bug bounty、incidentを保存。

  3. 専用walletで少額test

    balanceとapprovalを限定し、simulationを確認。

  4. exitを完了

    withdraw、repay、bridge back、revokeを実行。

  5. 証拠を記録

    tx hash、contract、amount、fee、status、review dateを保存。

Financial Templates Hubには公開address、contract、approval、audit、dependency、exit testを記録し、seedやprivate keyは入力しません。free TradingView indicatorsはchart contextを補助しますが、smart contractの安全性、oracleの正しさ、protocolのsolvencyを判定しません。

よくある質問

walletをdisconnectすればtoken approvalは消えますか?

通常は消えません。disconnectはfrontend接続を切るだけで、on-chain allowanceはrevokeまたは変更transactionまで残ります。

audit済みDeFiなら安全ですか?

保証されません。auditは特定version・scope・時点の検査で、未発見bug、economic exploit、admin key、oracle、bridge、変更後codeのriskが残ります。

contract addressはどこで確認しますか?

official docsとdeployment page、block explorerのverified contractを複数経路で照合し、network/chain IDも一致させます。SNS投稿だけを使いません。

bridgeはなぜriskが高いのですか?

複数chainのstateをつなぐため、bridge contract、message verifier、multisig、oracle、liquidity等の追加信頼を置き、大きな資産が集まりやすいからです。

根拠資料と確認先

  1. Solidity Documentation | Security Considerations再入、外部呼び出し、送金、公開実行環境などの安全設計
  2. Ethereum Improvement Proposals | ERC-20 Token Standard代替可能トークンの標準インターフェースと承認機能
  3. Ethereum Improvement Proposals | ERC-721 NFT Standard非代替性トークンの識別、所有、移転、メタデータ仕様
  4. ethereum.org | Bridgesブリッジ方式、検証者、接続性、コストとセキュリティのトレードオフ
  5. ethereum.org | Gas and feesガス使用量、単価、base feeとpriority feeの技術解説

編集・発行: SG Group · 編集方針: 公開情報のうち、中央銀行・監督当局・国際機関などの一次資料を優先して確認しています。制度、取引条件、発表時刻は変わるため、実際の判断前にリンク先と利用先の最新情報を確認してください。

重要事項: 本記事は暗号資産、ブロックチェーン、ウォレット、関連サービスの仕組みを説明する一般的な教育情報です。投資助言、法務・税務助言、特定銘柄・取引所・ウォレット・プロトコルの推奨、売買シグナル、価格予測、利益や元本の保証ではありません。暗号資産は価格変動、秘密鍵喪失、誤送金、詐欺、スマートコントラクト障害、デペッグ、流動性、事業者破綻、規制・税制変更等により全部または一部を失う可能性があります。数値は明示しない限り架空の学習例です。利用前にネットワーク、コントラクトアドレス、手数料、登録・規制状況、利用規約、税務上の扱いを公式資料と専門家により確認してください。