![見出し画像](https://assets.st-note.com/production/uploads/images/122413460/rectangle_large_type_2_9d0db208b1a75140174e4b0f5a05779e.png?width=800)
Web3セキュリティ_#5:ウォレットを使用する(2)DeFi編
DAppsにはDeFi、NFT、GameFiなどがあります。それらのセキュリティについては、共通するものがほとんどですが、それぞれの特徴もありますので個別に見ていきましょう。この単元ではDeFiのセキュリティについて解説します。DeFiを利用する上で考慮すべきセキュリティには、少なくとも以下のようなものがあります。
・スマートコントラクトのセキュリティ
・ブロックチェーン基盤のセキュリティ
・フロントエンドのセキュリティ
・通信のセキュリティ
・ヒューマンセキュリティ
・金融のセキュリティ
・コンプライアンスのセキュリティ
スマートコントラクトのセキュリティ
ここでは「スマートコントラクトの権限」について見ていきましょう。権限とはすなわち、スマートコントラクトの管理者が、スマートコントラクト変更に対してどれほどの権力を持つかということです。
例えば、対象とするスマートコントラクトの管理プロジェクトが強力で、評判も問題なければ、その権限は中央集権でもいいかもしれません。しかし知名度の低いプロジェクト、新興のプロジェクトが管理するスマートコントラクトを利用する時に、管理者の権限が大きい場合はどうでしょうか。特にその権限の行使によって、ユーザーの元本や収益にも悪影響を及ぼすようであれば、利用されないでしょう。
要するに、スマートコントラクトの管理者が持つ権限にはバランスが重要だということです。プロジェクトにとっては、もしもスマートコントラクトに重大なリスクが見つかり、緊急対応をしたいと思った場合、権限が大きければできることが多いでしょう。しかし、ユーザーにとっては、かえって悪い方向に向かう懸念もあるのです。
業界では、このような過剰な権限に対応するためにいくつかの妥協案があります。例えばスマートコントラクトを変更する際にTimelockを追加することで、権限の行使が開始されるまでに時間差を設け、管理者の行動を監視することができます。
有名なDeFiプロジェクトの一つCompound(コンパウンド)は、スマートコントラクトのコアモジュールであるComptrollerと、Governanceの管理者権限にTimelock機能を追加しています。このスマートコントラクトを確認すると、以下の図のようにDelayパラメーターが、通常48時間(17万2,800秒)、最大720時間、最小48時間と設定されていることが分かります。
![](https://assets.st-note.com/img/1700631371361-T3PxzZhCV4.jpg?width=800)
また、Gnosis Safe(ノーシスセーフ)などで管理者にマルチシグネチャを利用することで、スマートコントラクトの変更を一人が独占的に実行しないようにすることもできます。
上級者の場合、スマートコントラクトのセキュリティ自体をコントロールすることもできるかもしれません。例えば、自分でしっかり監査できるか、専門機関のセキュリティ監査報告書を読むといいでしょう。
ブロックチェーン基盤のセキュリティ
ブロックチェーン基盤のセキュリティとは、ブロックチェーン自体のセキュリティのことです。例えば、コンセンサス台帳のセキュリティ、バーチャルマシンのセキュリティなどがあります。
ブロックチェーン自体が安全でなければ、その上で動くスマートコントラクトのプロジェクトは安全であるとは言い難いです。十分なセキュリティと知名度を備えたブロックチェーンを選ぶことが重要です。
フロントエンドのセキュリティ
フロントエンド(Webサイトへのアクセス)のセキュリティは見過ごされがちですが、フロントエンドのセキュリティこそ鬼門であることを強調しておきます。特にユーザーにとって最も身近なものなので、悪意のあるユーザーからすれば、ユーザーを詐欺に遭わせることが簡単だと言えるでしょう。
フロントエンドのセキュリティは、主に次の二つのリスクによってもたらされます。
■内部による改ざん
例えば、開発者がフロントエンドページのターゲットスマートコントラクトアドレスをこっそりバックドア付きのスマートコントラクトアドレスに置き換えたり、承認権限にフィッシングスクリプトを仕込んだりすることです。フロントエンドページにアクセスすると、ウォレット内の暗号資産に関わる一連の操作が行われ、いつの間にかトークンが無くなってしまうというようなことがあります。
■第三者による改ざん
大きく分けて2種類あります。一つ目は、フロントエンドが依存するサードパーティのモジュールにバックドアを仕込み、パッケージのリリースとともに対象のフロントエンドページに直接持ち込むというサプライチェーンによる不正行為です。二つ目は、フロントエンドページに利用されるサードパーティ製のリモートJavaScriptファイルです。このJavaScriptファイルが悪意のあるものであったり、ハッキングされたりすると、対象のフロントエンドページが影響を受ける可能性があります。
通信のセキュリティ
通信のセキュリティについては、まずはサイトがHTTPではなく、暗号化されたHTTPSであることを重視しましょう。これは、HTTPのプレーンテキスト転送が中間者による盗聴やハイジャック攻撃に対して脆弱なためであり、現在ではHTTPSは一般的で安全な転送プロトコルとなっています。標的となるフロントエンドページに悪意のあるJavaScriptコードを仕込むなど、HTTPSを乗っ取る中間者攻撃があった場合には、ブラウザがHTTPSの証明書が正しくないという警告を視認性の高い形で表示します。
Webウォレットを使ったり、DAppを利用したりする際に、サイトにHTTPS証明書エラーの警告が表示されたら、すぐにアクセスを中止してページを閉じてください。
ヒューマンセキュリティ
ヒューマンセキュリティに関しては内部関係者による悪用であることが多いため、ここでは述べません。「〓ヒューマンセキュリティ〓」にて解説します。
金融のセキュリティ
金融のセキュリティという言葉から複雑かつ大規模なものをイメージし、何をしたらいいか分からないと感じる人も多いかもしれません。ですがDeFiに関して言えば、ユーザーはDeFiを通してお金を稼ぐのが目的であるため、ユーザーが最も気にすることはトークンの価格とリターンと言えるでしょう。つまり、トークンの価格もリターンも高い方がメリットがあり、少なくとも安定した収益になることが重要になります。このDeFiにおけるセキュリティリスクには、以下の六つが挙げられます。
・プレマイニングやインサイダー取引などの不公平なトークンオファリング
・クジラ(資金力)による攻撃
・トークン価格のPump&Dump
・突発的な市場のブラックスワン(例:突然の暴落)
・利用しているDeFiが他のDeFiと相関性がある場合のリスク波及(例:ステーブルスワップDEXのCurveに対する攻撃があった時、同社のCRVトークンが担保として大量に預け入れられているレンディングプラットフォームAbracadabraに影響があった)
・フロントランニング、サンドイッチ攻撃、フラッシュローン攻撃など、より技術的な手法
コンプライアンスのセキュリティ
コンプライアンスセキュリティについては、AML(アンチ・マネーロンダリング)、KYC(Know Your Customer、本人確認)、金融制裁による地域制限、証券リスクなどたくさんの種類があります。ただしこれらは、ユーザーからすると何か対策ができるという類のものではありません。プロジェクトを利用する際に対象プロジェクトが特定の国のセキュリティ規制を受けている可能性もあるため、利用の前にチェックする必要があります。
これらのセキュリティリスクにとどまらず、将来的には何らかの追加・変更によって新しい問題が表面化してくることもあり得ます。新しいリスクが現れる度に、セキュリティもまた新しいリスクに対応するべく変化していくことに注意しましょう。
制作:株式会社Kudasai
![](https://assets.st-note.com/img/1700631532829-I3yP62ZgZU.jpg)
Web3ポケットキャンパスはスマホアプリでも学習ができます。アプリではnote版にはない「クイズ」と「学習履歴」の機能もあり、よりWeb3学習を楽しく続けられます。ぜひご利用ください。
▼スマホアプリインストールはこちら
![](https://assets.st-note.com/img/1700631562590-nLvVBEhnOd.png)
この記事が気に入ったらサポートをしてみませんか?