BlockSecのCEOであるAndy Zhou氏は、Spraping Bitsポッドキャストに招待され、Web3の混乱し複雑な環境において、BlockSecチームが潜在的なセキュリティ脆弱性をどのように特定し軽減するかというトピックについて議論しました。以下は、私たちがまとめた興味深いコンテンツの厳選されたコレクションです。ポッドキャストの全編を聴くには、こちらをクリックしてください。
Andy Zhou 00:00 私たちのチームには、ハッカーが攻撃トランザクションを送信する前に、攻撃コントラクトを検出できるシステムが稼働しています。なぜなら、彼らは攻撃コントラクトをデプロイしてから、プロトコルを攻撃するためのトランザクションを送信する必要があるからです。そのため、攻撃トランザクションよりも前に、ハッカーが攻撃スマートコントラクトをデプロイした時点で、私たちのAIベースのエンジンは悪意のあるコントラクトを正確に特定できます。
Andy Zhou 00:53 ありがとうございます、DeGatchiさん。私もここにいられることを光栄に思います。
DeGatchi 00:56 光栄です。本当にありがとうございます。あなたをご存知ない方のために、あなたは何者で、何をされていますか?
Andy Zhou 01:02 私の名前はアンディです。BlockSecのCEOであり、中国のトップ大学である浙江大学の教授でもあります。サイバーセキュリティ分野で10年以上の経験があります。以前はスマートフォンセキュリティ分野で働いていましたが、その後、数年間スマートコントラクトセキュリティに転向しました。
DeGatchi 01:22 スマートコントラクトセキュリティの初期の頃はどのようなことをされていましたか?手動監査を行っていましたか、それともすぐに自動化に移行しましたか?私のように。
Andy Zhou 01:30 スマートコントラクトセキュリティに関しては、当社および当社の研究チームでは、静的分析と動的分析の両方を行っています。静的分析については、スマートコントラクトの静的分析を強化するためのいくつかの異なる技術を開発しました。なぜなら、コミュニティで現在利用可能なツールのほとんどには、偽陽性が多すぎるという共通の問題があるからです。たとえば、ツールを使用してリエントランシーの問題を検出したい場合、単純なスマートコントラクトをツールに投入すると、多くのリエントランシーの問題や他の多くの問題が報告される可能性があります。しかし、手動でこのレポートを確認すると、そのほとんどが偽陽性であることがわかります。そのため、偽陽性は現在の静的分析ツールの主な問題であると認識しています。
Andy Zhou 02:20 そのような偽陽性の根本的な理由は、スマートコントラクトの意味論の理解が不足していることです。意味論とは、コントラクト内の変数とその関係の背後にある意味を指します。たとえば、ERC-20トークンがある場合、各所有者の残高を表す変数と、誰が誰にいくらを転送することを承認したかを示す承認済みの値があります。静的分析の精度を向上させるには、どの変数が残高に対応し、どの変数が承認やその他の特定の機能に関連しているかを正確に特定することが不可欠です。これにより、静的分析でより高い精度を達成できます。
Andy Zhou 03:00 静的分析ツール開発の経験から得られた洞察の1つは、変数間の相関関係を確立するための堅牢なテイント分析エンジンの必要性です。静的分析ツールで採用されている基本的な技術であるデータフロー分析は、重要な役割を果たします。これには、メモリとストレージのモデリング、および静的分析ツール内でテイント分析技術を正確かつ効率的に活用する方法が含まれます。テイント分析とデータフロー分析というこれら2つの主要な技術は、当社の静的分析ツールの機能を強化する上で非常に効果的であることが証明されています。
Andy Zhou 03:48 当社の研究チームでは、この静的分析ツールを開発および展開し、ブロックチェーンで作成される新しいスマートコントラクトをすべて分析しています。特定したゼロデイ脆弱性を開発者に報告します。残念ながら、開発者の一部は脆弱性を気にかけていません。また、効率的な報告チャネルさえ見つかりません。それは非常に残念です。
Andy Zhou 04:13 非常に効果的な静的分析ツールが必要な場合は、意味論とテイント分析エンジンが必要です。これが静的分析ツールに関する私たちの経験です。また、静的分析ツールとは別に、研究チームには動的分析ツールもあります。なぜなら、脆弱なスマートコントラクトだけでなく、悪意のあるトランザクションも特定したいからです。
Andy Zhou 04:31 脆弱なスマートコントラクトを分析するだけでなく、プロトコルや他のスマートコントラクトを攻撃する可能性のあるトランザクションを検出することも重要です。これを実現するために、インストルメンテーション機能を備えたカスタム仮想マシンがあります。これにより、独自の検出ルールを記述し、任意のスマートコントラクトの仮想マシンまたは実行環境に簡単にフックできます。トランザクションが悪意のあるものかどうかを判断するために、さまざまなシグナルをキャプチャします。たとえば、トランザクションの送信者に攻撃を実行した履歴があるかどうか、または資金が疑わしいソースから来ているかどうかを調べます。さまざまなシグナルを組み合わせることで、各トランザクションに関連するリスクを評価します。当社のチームは、この検出エンジンを展開し、攻撃トランザクションを迅速にキャプチャして特定できるようにしています。
DeGatchi 05:41 ええ、それは興味深いですね。私も静的アナライザーで同じことをしました。テイント分析は基本的に不可欠ですが、静的アナライザーで行ったことは何でも使用します。すべてのデータをファザーに転送するのですよね?私もファザーを構築していました。そして、人々がどのようにアプローチするかを見るのは本当に興味深いです。しかし、非常に興味深いソリューションがあります。この分野では、人々は非常に逐次的に考えており、考慮すべき次元はたくさんあるため、逐次的であることは正解ではありません。
DeGatchi 06:08 次元について話しましょう。トランザクションのcalldataがあるとします。関数やコントラクトもあります。そして、ステージという別の次元もあります。したがって、それは非常にコンテキスト依存です。そして今、これら4つの異なる変数、次元があり、それらはすべて、わずかな変更でも互いに影響します。たとえば、コントラクトA、コントラクトB、それらのすべての関数があるかもしれません。今、それらをさまざまな方法で並べる必要がありますが、関数Aと関数B、関数Bと関数Aの単一のものだけでなく。関数A、関数B、関数B、関数B、関数Aを実行する能力もあります。それは本当に難しい問題です。
DeGatchi 06:43 そして、あなたがあなたの仕事でしてきたことは非常に興味深いと思います。最近Phalconを、トランザクション検出を含むように進化させたことを知っています。それは、ハックのための、より一般的なフロントランナーのようなものです。そして、そうすることで、それは非常に示唆に富んでいます。そして、フロントランニングゲームは、これらの専用MEVチームによって支配されています。彼らはフロントランニング、サンドイッチ、バックランニングなどを実行します。そして、彼らは専用のインフラストラクチャ、レイテンシが非常に小さい高頻度取引のものを備えており、互いに、ブロックビルダー、リレーなどと提携しています。そこで、質問は、これらのMEVチームではなく、どのようにこれらのトランザクションをフロントランできるのですか?
Andy Zhou 07:24 はい、それは非常に良い質問です。基本的に、当社のシステムの主なターゲットはMEVボットをフロントランすることではなく、プロトコルを保護することであり、ハッカーをターゲットにしています。
DeGatchi 07:37 しかし、ハッカーがパブリックメモリプールにトランザクションを送信した場合、プライベートであれば誰もそれを取得できません。しかし、パブリックメモリプールであれば、他のすべての一般的なフロントランナーもそれを見るでしょう。だから、彼らに行かなければなりません。それで、どうやって彼らを打ち負かすのですか?どうやって彼らを打ち負かすのですか?
Andy Zhou 07:51 はい、私たちは常に、セキュリティは善玉と悪玉の間の軍拡競争であると言っています。初期の頃は簡単でした。なぜなら、悪玉は私たちのチームとMEVボットの存在を知らなかったからです。その時、それはガス料金をいくら支払うか、またはバリデーターにいくら賄賂を贈るかにかかっていました。それは初期の頃はずっと簡単でしたが、今日ではハッカーはMEVボットによるフロントランを防ぐためにある技術を使用しています。たとえば、ハッカーがMEVボットによるフロントランを防ぐために展開した非常に興味深い技術を見ました。基本的に、彼らのトランザクションでは、まず、別のスマートコントラクトからある値を取得して、その特定の値がこの変数の初期値と等しいかどうかを確認するなどの値をチェックします。攻撃を実行する際、ハッカーは最初にトランザクションを送信して、そのチェックを満たすように別のスマートコントラクトの変数を設定し、2番目のトランザクションを使用して実際にハッキングを実行します。MEVボットによって使用される一般的な技術のほとんどは、単一のトランザクションをシミュレートすることだからです。2番目のトランザクションのみをシミュレートすると、条件が満たされないため失敗します。これは、条件が最初の攻撃トランザクションによって設定されているためです。このトリックのために、一部のMEVボットはそれを処理できません。私たちは、異なるトランザクション間の相関関係を分析する技術を持っているため、それを処理できます。
DeGatchi 09:40 ええ、複数行う必要があります。1つだけではできません。なぜなら、一般的なフロントランニングを行っている場合、標準はアドレスを置き換えること、または複数のアドレスがある場合はすべてを置き換える必要があり、すべてのオプションを試す必要があります。
Andy Zhou 09:52 まさに。
DeGatchi 09:53 セットアップでマルチコントラクトを行っている場合、コントラクトのデプロイを行い、そのセットアップコントラクトの関数を呼び出して新しいものにセットアップしてから、それをエクスプロイトコントラクトで使用します。しかし、それを修正する方法は、基本的に再びシミュレートすることですが、呼び出されている状態を実際にチェックする必要があります。そして、それが元のコントラクトのデプロイ状態と一致しない場合、それを何らかの方法で設定し、CFGのような関数を見つけ、それが何であったかを見つけて、それを設定するためにもそのエクスプロイトコントラクトを変更するか、完全に削除する必要さえあります。だから、それは非常に難しいですが、あなたが実際にそれをやって、それが今機能しているというのはクレイジーです。
Andy Zhou 10:33 はい、機能していますが、それを行うには多くの開発作業が必要です。また、それを行うための非常に優れた効率的な分析エンジンも必要です。
DeGatchi 10:42 それは非常に印象的です。皆さんはすでに6か月で20件のハッキングと約1500万ドルの損失を防いでいます。
Andy Zhou 10:51 ハッキングの防止は、過去1年半にわたって行われてきました。つまり、1か月や2か月ではありません。1年半にわたる継続的な取り組みです。
DeGatchi 11:04 しかし、それでも、これを行っている人は誰もいません。それは本当に素晴らしいことであり、誰もが少なくともそれを持っているべきだと思います。それは重要なことだからです。すべての人にとって100%の救済ではないかもしれませんが、サインアップする必要があるからです。ほとんど不明瞭化技術は異なるかもしれません。それでも、何もないよりはましですよね?たとえば、何かを保存すると、ハッキングされることは会社全体、すべてのユーザー、すべての評判の崩壊です。それはすべて失われます。だから、それは非常に重要なことです。皆さんはこれをどのように構築しましたか?AIをまったく使用しましたか?それとも、まったくヒューリスティックであることはできませんか?
Andy Zhou 11:41 基本的に、さまざまな技術を組み合わせています。ハッキングの検出については、AIベースのソリューションと行動分析を組み合わせています。AIベースのソリューションについては、AI技術、機械学習技術を使用して攻撃コントラクトを検出します。私たちのチームには、ハッカーが攻撃トランザクションを送信する前に攻撃コントラクトを検出できるシステムがあります。なぜなら、彼らは攻撃コントラクトをデプロイしてから、プロトコルを攻撃するためのトランザクションを送信する必要があるからです。そのため、攻撃トランザクションよりも前に、ハッカーが攻撃スマートコントラクトをデプロイした時点で、私たちのAIベースのエンジンは悪意のあるコントラクトを正確に特定できます。偽陽性がないとは言いませんが、偽陽性はかなり低いです。そのため、ハッキングトランザクションの前であっても、攻撃スマートコントラクトを検出できます。問題は、攻撃スマートコントラクトを特定しても、このハッキングの実際の被害者を知らない場合があることです。なぜなら、宛先アドレスはスマートコントラクトにハードコードされていない場合があるからです。パラメータとして渡される可能性があります。それをトリガーするには、ある種のファジング技術が必要です。しかし、ターゲットとなるスマートコントラクトアドレスがすべてパラメータから渡される場合、ファジングも役に立ちません。
Andy Zhou 13:05 そのため、これらの複雑なものについては、この段階で攻撃スマートコントラクトを特定することはできないため、攻撃トランザクション検出段階で対処する必要があります。攻撃トランザクションについては、行動ベースのソリューションを使用してハックトランザクションを検出します。その主な考え方は、すべてのハッカーがお金を稼ぎたいということです。そのため、トランザクションから利益を得るためには正確である必要があります。これらの攻撃トランザクションを検出した後、MEVボットと同様の攻撃トランザクションを自動的に合成し、利益アドレスを置き換えてチェーンに配置します。これは、BlockSec Phalconをローンチする前のシステムの基本的な仕組みです。
DeGatchi 13:54 AIの件ですが、教師あり学習モデルだとは想像できません。ハッキングのサンプルがそれほど多くないので、強化学習である必要があると思います。それで、それを機能させるための十分なデータがありません。
Andy Zhou 14:08 機械学習については、非常に良い点を指摘したと思います。悪意のあるスマートコントラクトの検出では、モデルをトレーニングするためのサンプルがそれほど多くないため、効果がありません。この場合、これらのものを機能させるための鍵となる洞察は、スマートコントラクト内の主要な特徴を抽出する必要があるということです。誰かがバイトコードのシーケンスを使用してモデルをトレーニングするだけです。バイトコードのシーケンスはスマートコントラクトにとって一般的すぎ、一般的すぎるため、これは機能しません。スマートコントラクトの明確な特徴を抽出する必要があります。現在使用しているものには、制御フローグラフ、主要な関数の間のデータフロー関係が含まれます。また、アドレスラベルやコントラクト作成者のプロパティなども使用してモデルをトレーニングします。これは非常に効果的であることが証明されています。
DeGatchi 14:55 つまり、基本的に主要な特徴を抽出するのですね。たとえば、ハードコードされたアドレスや、コールデータとして渡されたアドレスなどです。Solidityを使用している場合、マスキングを行っているかもしれません。 Solidityではそれはかなり一般的です。しかし、カスタムのハイコードコントラクトの場合、まず非常に洗練されたハッカーになるでしょう。しかし、本当に計画的に計画を立てている洗練されたハッカーは、プライベートトランザクションとカスタムバイトコード、そしておそらくトランザクションのスワームを使用して不明瞭化する可能性が100%あります。これは私が研究していたもので、このものに非常に興味がありました。それは効果的であることが証明されました。実際、私はそれらの技術を使用した人を見たことがありません。それらについては記事を書くかもしれません。しかし、それは興味深いものでした。
Andy Zhou 15:46 ええ、この研究プロジェクトを行う前は、それが機能するとは思いませんでした。しかし、6か月後、それは非常に効果的であることが証明されました。
DeGatchi 16:02 ええ、ええ、それはクレイジーです。それは正しい方向への驚くべき一歩だと思います、そしてもっと多くのツールが必要です。しかし、これはまた疑問を投げかけます。AIを使用していることはわかっています。AIが、まずあなたのビジネスにどれほど影響を与えるか、そしてAIによって何が時代遅れになるか、そして今日、この革命のために準備するために何ができるか、どのように見ているのですか?
Andy Zhou 16:23 正直に言うと、私はAIの専門家ではありません。私たちはAIを研究分野に応用して悪意のあるスマートコントラクトを検出しています。セキュリティ分野におけるAIの可能性はまだ十分に探求されていないと思います。そしてその理由の1つは、AIをセキュリティ分野に応用するには、解決しようとしている問題について非常に深い理解が必要だからです。解決しようとしている問題について非常に深い理解があれば、非常に優れた特徴を抽出できます。特徴は非常に重要だと思います。同じコントラクトまたは同じトランザクションであっても、トレーニングのための非常に優れた特徴がない場合、結果は完全に異なります。私の見解では、AIの可能性はまだ十分に探求されていないと思います。なぜなら、非常に優れたAI担当者と非常にドメインエキスパートを組み合わせて特徴を抽出する必要があるからです。
DeGatchi 17:30 同意します。それは非常に異なります。2つの分野、2つのドメインの組み合わせです。まず、AIが得意であることは困難です。そして、それを学ぶには時間もかかります。数学を知る必要があり、AIに関するすべてのことを知る必要があります。パッケージ、ライブラリを知らなくても、暗号空間にも、バイトコードとサイバーという別のドメインがあり、これも時間がかかります。しかし、純粋なAIから暗号に移行する人々は、暗号からAIに移行するよりも難しくないと思います。なぜなら、純粋なAIは、数学の知識と現在のアーキテクチャの全体的な理解、そしてすべてがどのように機能するかという理解が必要なため、はるかに難しいからです。
DeGatchi 18:13 しかし、それは非常に興味深いです。AIは明らかにすべてを変えるので、何が時代遅れになると思いますか?そして、AIを使用しない場合、すべてのビジネスで他の人よりも有利になることはありません。競争するのは難しいからです。私もファザーとスタックアナライザーで同じことをしていましたが、AIを行う人々を知っています。そして、それは理にかなっています。無限のアクションスペースについて考えている場合、総当たりで実行することはできません。すべてのアクションをフィルタリングして、実際に何をターゲットにするべきかを知るための何らかの直感が必要です。だから、これにはAIが必要です。繰り返し実行されるインスタンスから学習できるものが必要です。特に、これらのすべてのプロトコル、すべてのコントラクト、何百万ものインスタンス、または実行をすべて実行している場合。直感を学習できる必要があります。それ以外の場合は、自分自身にその直感を構築していることになります。そして、それは非常に時間がかかり、また非常に欠陥があることです。なぜなら、すべての次元で考えることができず、最終的には何を知らないかわからないからです。個人的には、興味がない場合は、とにかくやるべきだと思います。私は数学も知りませんが、やっています。だから、私ができるなら、誰でもできます。だから、見てみましょう。しかし、それは大きな献身です。
Andy Zhou 19:36 まさに。最近のAIに関する実験を共有できます。前述したように、スマートコントラクトの脆弱性を発見するためのファジングシステムがあります。内部システムでそれを行っています。AIを使用してファジングのためのシード入力を生成でき、それは非常に効果的であることがわかりました。それで、それをどのように行うか。たとえば、ファズする5つのスマートコントラクトがあるとします。まず、これらのスマートコントラクトをChatGPTに入力し、GPTに「この関数は、主な機能はこれを行う、別の関数はあれを行う」と伝えて、各関数の主要な機能を要約できます。その後、GPTに「これらの関数について50個の異なる入力を生成してください」と依頼します。そして、それは非常に効果的であることがわかりました。そして、これらをシード入力として使用して、スマートコントラクトをファズします。
DeGatchi 20:38 興味深い。LLMは実際にはかなり良いと思います。埋め込みを理解する上で私たちが持っている最善のものは、それ以上はよくわかりませんが、現時点での最善の努力のようなものです。だから、それは理にかなっています。多くの人がChatGPTを使用していますが、それは非常に良いユースケースのようです。契約を説明するためにそれを使用しているような人々を何人か知っています。つまり、理解をすべて取り除き、コードベース全体を理解しようとするのではなく、すぐに追いつくのに役立ちます。なぜなら、それは数千行のコードベース、または複数のコントラクト、数千行になる可能性があるからです。すべてと依存関係の関係を理解するのは非常に困難です。
DeGatchi 21:18 しかし、質問したいのですが、この新しいトランザクションブロックを行ったので、トランザクションブロックがありますが、なぜさらに一歩進んで、すべてのゼロデイとすべてのコントラクトを見つけようとするのですか?なぜなら、洗練されたハッカーがいて、彼らが何をしているかを知っていて、誰かをターゲットにしていると想像してみてください。そして、Roninのような6億ドルのハッキング、またはプロトコルでの2億ドルまたは2000万ドルのより現実的なもののようなものだとしましょう。彼らはプライベートトランザクションを送信するだけで、あなたはそれをブロックできません。なぜゼロデイの防止に完全に投資しないのですか?なぜなら、それを見つけたら、プライベートトランザクションを実行するだけで、そもそもすべてを保存できるからです。
Andy Zhou 22:02 はい、非常に良い質問です。実際、BlockSec内ではプロジェクトにいくつかのオファーがあります。現在、BlockSec Phalconでは、チェーン上またはメモリプール内の悪意のあるトランザクションを検出できます。しかし、プライベートトランザクションについては、それを見ることができません。これが現在の段階です。また、ハッカーよりも前にスマートコントラクトの脆弱性を検出するために、さらに努力を推し進めたいと考えています。前述したように、それを行うためのファジングシステムがありますが、現在、ブロックチェーンにデプロイされたスマートコントラクトのセキュリティ脆弱性を検出するためにファジングシステムを改善しています。
Andy Zhou 22:55 スマートコントラクトのファジングを実行して脆弱性を特定する際には、いくつかの課題があると思います。スマートコントラクトのファジングにおける課題の1つは、ターゲットコントラクトの入力、特にトランザクションを生成することです。さらに、スマートコントラクトの場合、脆弱性をトリガーするために一連のトランザクションを生成する必要があります。単一のトランザクションではありません。そして、トランザクションのシーケンスは互いに依存している場合があります。最初のトランザクション、2番目、3番目のトランザクションが必要であり、これら3つのトランザクションの完全なシーケンスのみが脆弱性をトリガーできます。数個のトランザクションのシーケンスを生成する必要があり、これらのトランザクションの依存関係を理解する必要があります。これは現在非常に困難です。これが課題1です。そして、2番目の課題は、脆弱性があるかどうかを判断するためのオラクルが必要であることです。たとえば、スマートコントラクトにトランザクションを送信した場合、脆弱性をトリガーしたことをどのように判断しますか。もちろん、同様の技術を使用して利益を計算できます。このトランザクションが非常に高い利益をトリガーしたり、一部のレンディングプロトコルのヘルスファクターを異常にしたりする場合、脆弱性があることがわかります。しかし、ファザーのためにさまざまな種類のオラクルを要約する必要があります。これが2番目の課題です。
DeGatchi 24:35 それは2番目の部分です。これは非常に興味深いです。なぜなら、新しいプロトコルが登場し、トークンがあり、大きなトークンとの流動性プールがない場合。それは別のトークンと一緒になるかもしれません。価格さえ付けられません。だから、それは巨大なハードルです。その種のオラクルでどのようにアプローチするか考えたことはありますか?
Andy Zhou 24:57 ええ、まさに。だから、これは別の課題です。なぜなら、ファザーとDEXプールの環境を準備する必要があるからです。さまざまなトークンを準備する必要があり、各トークンの価格をシステムにフィードする必要があります。ファザーのためにさまざまな種類のものを準備する必要があります。それは非常に複雑です。リエントランシーのような単純な脆弱性については、ファザーにとってトリガーするのは非常に簡単です。しかし、価格操作のような複雑なものについては、それは困難です。私たちはまだシステムに取り組んでいますが、まだ時間が必要です。しかし、あなたは正しいです。私たちはこの方向に取り組んでいます。
DeGatchi 25:43 ええ、それはまったく簡単なタスクではありません。それは多くの複雑さを必要とします。そして、他のものに依存する多くのことを考慮する必要があります。それは、質問をすると、さらに2つの質問が返ってくるようなもので、それらは互いに関連し合い、連続して下に進んでいきます。しかし、そのオラクルは、おそらく最も難しいことの1つです。そして、それは最も重要なことの1つでもあります。なぜなら、オラクル操作は、おそらく最大の攻撃要因だからです。すべてがそれに依存しています。そして、それが内部交換レートであったとしても、外部のものと内部のものとの比較であったとしても。
DeGatchi 26:22 だから、彼らが考慮していない何らかのアービトラージ、すべてにバグがあります。なぜなら、人間のエラーは確実だからです。そして、相互作用の数は考慮されません。新しいプロトコルは毎日登場します。現在のプロトコルは、それと相互作用できるようになりました。それは、その点で5つの異なるプロトコルのシーケンスになる可能性があります。
DeGatchi 26:45 そして、それは簡単ではありません。AIが必要だと思います。なぜなら、これらの異なるコントラクトのさまざまな関数が脆弱である空間を、空間的に考える必要があるからです。可能性が多すぎるため、逐次的に把握することはできません。だから、今年の初めに誰かとこのことについて話したと思います。そして、Pickle Financeのエクスプロイトについて話しました。そして、それは非常に興味深いものです。なぜなら、8つの脆弱性が含まれているからです。そして、それらのうちの1つを逃した場合、エクスプロイトは得られなかったでしょう。そして、それは特定のシーケンスである必要がありました。そして、このエクスプロイトは実際に5つのカスタムコントラクトで構成されていました。だから、それらの脆弱な関数のシーケンスが特定の方法で使用されるコンテキストを構築するための5つのカスタムコントラクトでした。
DeGatchi 27:44 そして、アテナのインシュレーターを通して、アドレスとバイト20があることを理解していたという別の部分です。それらは両方とも同じ意味です。そして、人々はそれを見落とします。なぜなら、これらのタイプが何を意味するのかを知る必要があるからです。しかし、基本的に彼らがしていたことは、私が発見したことは非常に魅力的でしたが、偽の基盤トークンのようなコントラクトを作成しました。そして、偽の基盤トークンの残高はアドレスを返しました。実際の金額は返しませんでした。そして、それは真実ではありません。なぜなら、実際の金額はバイト32であり、アドレスはバイト20だからです。だから、あなたはアドレスを渡すことができます。あなたが2,5,6に行こうとしたときに、それは技術的にそれだからです。そして、それは実際、委任コードの状況を作り出し、それが使用されていたので、それが全体的なチェーンを作成しました。そして、それがどのように起こったかです。しかし、それは本当に興味深いものでした。あなたは、特定のことを行うコントラクトを生成する必要があり、これは少なくとも5つのエクスプロイトを可能にします。それは非常に魅力的です。そして、私はこの種のものが大好きです。
DeGatchi 29:06 しかし、このようなことは本当に難しいです。そして、あなたはこれらのすべてについて考えましたか?現在、どのような種類の技術を調べていますか?明らかに、私は単に空間的に、孤立した関数を調べ、それらが互いにどのように相互作用するかを見ています。関係は確かに最も難しい部分の1つです。テイント分析は、率直に言って十分ではありません。
Andy Zhou 29:26 はい、したがって、異なるスマートコントラクト間の関係については、現在非常に興味深いことを行っています。トップDeFiプロトコルのスマートコントラクトを手動で収集しています。次に、手動分析を実行して、異なるスマートコントラクト間の関係の図を描きます。たとえば、wstETHがプロトコルABCでコラテラルとして使用できる場合、これらのプロトコル間に線を描きます。1つのトークンが別のスマートコントラクトの基盤トークンとして使用できる場合、これらのプロトコルを接続します。
Andy Zhou 30:02 基本的に、スクリプトを使用して、トッププロトコル間の関係の全体像を手動で取得します。そして、これらの洞察を使用して、静的分析とファジング技術を防ぎます。
Andy Zhou 30:15 これは現在取り組んでいることの1つです。まだ初期段階ですが、生成された関係は、静的分析やファジングシステムに役立つ場合があります。現在行っているもう1つの作業は、型推論です。入力データの型、たとえばスマートコントラクト呼び出し内のコールデータを推論したいと考えています。たとえば、calldataのバイト0からバイト20まで、型はアドレスであると推論できます。そして、入力の別のセグメントから、型は別のものです。これはファジングに非常に役立ちます。型推論を実行するために静的分析を活用しようとしています。
DeGatchi 30:55 興味深い。ええ、上記のものの関係はグラフのようなものです。あなたがしていることは難しいです。たとえば、これらはいくつかの技術でもあります。コントラクトがあり、他のコントラクトへの参照が含まれている場合、たとえばハードコードされたアドレスですよね?それは非常に簡単です。それは、アクセスできるスペースの種類と、それらがすべてどのように接続されているかを知っていることを意味します。しかし、直接参照しないコントラクトもあります。calldataで参照することもできますし、新しいコントラクトを参照するプールを作成することもできます。Iron Vaultと呼ばれていたと思います。それは別のエコシステムにありました。
Andy Zhou 31:33 ええ、それは簡単ではありませんが、オンチェーントランザクションを活用してそれらを接続できます。なぜなら、オンチェーントランザクションは異なるスマートコントラクト間の相互作用を明らかにできるからです。
DeGatchi 31:44 しかし、そのフローは、通常の関数シーケンスを見ているということですよね?そして、ゼロデイを見つけるためには、標準を破って何か違うことをする必要があります。まあ、標準が何であるかを特定するのは良いことだと思います。そして、何をすべきでないか、そしてそれをどのように破るかを知ることができます。それは良いことです。興味深い。それで、ファザーの計画はどうですか?ニューラルネットワークファジングを行うためにペアにするつもりですか?それはTrail of Bitsの試みです。それだけの価値はありませんが、率直に言って、正しく実装されていません。そして、ファザーの計画はどうですか?ニューラルネットワークファジング支援または完全にAIを行いますか?今、どこに行くべきですか?
Andy Zhou 32:23 ファジングについては、まず、シード入力の生成と入力の突然変異をファザーのために促進する非常に優れた型推論システムを取得しようとしています。また、AIを活用してシード入力を生成しています。また、ファジングプロセスを高速化しようとしています。なぜなら、非常に効率的なものをして、脆弱性を迅速に特定したいからです。ファザーを改善しようとしている3つの異なる作業があります。
DeGatchi 33:01 わかりました、興味深い。空間について考えるとき、このツールの会話とは少し異なるものがあります。そして、あなたは教授なので、それについて知っています。
DeGatchi 33:10 多くの人々がトップクラスの監査人になる方法を説明しています。SpearbitやTrail of Bitsのセキュリティリサーチをリードするような人々、あるいはソロ監査人でさえ、新しい監査人の流入でうまくいっていますよね?これらの新しいプレイヤーや他の企業、そしてスキルを持ちたい他の人々から、どのように自分自身を差別化しようとしていますか?明らかに、それらはそれほど多くありませんが、まだ来ています。そして、それらが来るにつれて、これらのより賢い人々が来るにつれて、AIさえも。AIエクスプロイト生成を行っている人々を知っています。あなたはそれらを聞いたに違いありません。そして、新しい監査人が参入し、新しいプレイヤーがこの分野に参入するにつれて、これらの人々から自分自身を差別化するために何をしていますか?
Andy Zhou 33:55 はい、それは非常に難しい質問です。私の見解では、この特定の領域、たとえばDeFiプロトコルセキュリティ領域のトレンドをよく理解する必要があります。さまざまな攻撃ベクトルと新しい種類の脆弱性があります。そして、これらの新しいことを研究するための非常に良い動機またはスキルが必要です。これらの新しいことをどのように迅速に学び、新しい知識をどのように迅速に消化できるかが私の利点です。そしてもちろん、この分野に来る多くの賢い人々がいます。しかし、私は博士号として訓練されているため、新しい分野にどのように迅速に参入し、最先端をどのように迅速に理解し、どのように良い問題を見つけて取り組むか、そしてどのように別の分野からこの分野に技術を借りてこの問題を解決するかを知っていると言えます。それが私を他者と差別化するものだと思います。
DeGatchi 34:56 100%。グループの人々を考えている場合、彼らは皆賢くて有能であり、主な違いは創造性だけだと思います。あなたが皆、植物レベルのフィールドにいる場合、それは決して真実ではありません。あるいは、単に賢く同等である場合。そして、最大のものは創造性です。私たちは皆、異なる考え方をして、異なる視点を持っています。だから、それは主なことだと思います。自分自身を本当に信じ、他の人が信じないときに、あなたが何かをできると信じ、そして誰も本当にそれをやっていないこと、そしてそれをすることができると信じ、そしてそれがどのようにできるかはわからないかもしれませんが、それを探し続ける情熱がある限り、それは本当に主なことです。新しいトレンドを特定し、それらを活用できることが主なことです。そして、それはしばしば起こります。それらを活用し、機会に飛びつくための知識を備えている必要があります。
DeGatchi 35:45 残念ながら、私はAIを知らないので、そうではありませんでした。すべては、適切なスキルを備えて、適切な場所に適切なタイミングでいることです。AIは真に次のフロンティアだと思います。そして、それにアップグレードしない人は誰でも遅れをとると思います。開発者の世界では、ドメイン知識とAIの両方がある場合、そしてそれらを組み合わせると、世界的な違いを生み出さないことになります。なぜなら、両方の領域の知識があるからです。したがって、セクション化された知識ではなく、より良い問題解決策について考えることができます。数学を理解することは良い例だと思います。数学を理解しない人とは異なる見方で世界を見ます。そして、それを金融セクターのようなさまざまなものと組み合わせると、非常に効率的なアルゴリズム取引システムを構築する方法を考えることができます。そして、ここで競争から非常に大きなエッジを得ることができます。AVAXにいるこの男が、単に数学的なエッジを持っていただけで、おそらくすべてのアービトラージの90%を捕捉したと思います。私が意味することはこれです。2つのドメインがあるだけで、多くの機会を捉えることができます。なぜなら、それを学ぶのは難しいからです。そして、あなたが知っているドメインが多いほど、それらを組み合わせるほど、競争は少なくなり、それは単に呼ばれます。
DeGatchi 36:55 それで、あなたとBlockSecの将来はどうなりますか?キャリアと会社自体の両方で、どのように進歩していくと思いますか?そして、業界がどこに向かっていると思いますか、そしてどこに向かうべきだと思いますか?
Andy Zhou 37:05 業界について言えば、Web3は非常に新しい分野であり、私たちはまだこの新しい分野の初期段階にあります。私の見解では、業界は非常に速く動いています。同時に、業界がまだ対処していないセキュリティ問題が非常にたくさんあります。私たちは、自社のソリューションを使用して、エコシステムが迅速かつ安全に動くように支援しようとしています。彼らの資産を保護するための製品とプロトコルがあります。これは1つのことです。また、将来的には、この分野にいくつかの異なるWeb3ユーザーがいることもわかっています。ユーザーもセキュリティ保護を必要としています。なぜなら、現在、Web3製品を使用するのは彼らにとって少し複雑だからです。秘密鍵と資産を保護するための非常に良い方法が必要です。なぜなら、ほとんどのユーザーはERC20トークンの承認プロセスを理解していないからです。悪意のあるコントラクトですべてのトークンを承認しただけです。
Andy Zhou 38:10 だから、現在業界が対処していないDeFiユーザーのための非常に良い保護システムが必要です。もちろん、これを行っている企業もありますが、ユーザーを保護するためのより良い方法があります。
DeGatchi 38:27 ファザーの上に、ユーザーを保護することについて話しているときに、ウォレットのようなものに拡張できると思います。つまり、2つの異なる方法または3つの異なる方法があります。保留中のトランザクションのようですが、100%確実ではありません。だから、いくらか詳細に進む必要があります。そして、それはゼロデイ自体を見つけるようなものかもしれません。しかし、それがオプションでない場合、ウォレット自体に分析を埋め込む機能があるだけでも良いでしょう。たとえそれが簡単なものであっても。トークンを行うか、何らかのものを掘り下げるでしょう。しかし、トランザクションを実行する前に分析を実行できる場合、それは誰かが以前に行ったことがあると思います。
Andy Zhou 39:01 それを実行している企業がいくつかあり、トランザクションをシミュレートして、ユーザーが署名した場合のトランザクションの結果をユーザーに伝えています。
DeGatchi 39:10 それは非常に賢明だと思います。そして、それは会社やセキュリティを行うものへの簡単な進歩だと思います。それは非常に良い方法だと思います。だから、直接彼らに渡してください。Fireか何かだったと思います。思い出せませんが。はい、それらのシミュレーションは非常に良いですが、LPへのトランザクションのようなものなので、いくらか欠陥があると思います。人々はカスタムバイトコードを実行し、条件付き機能を実行するでしょう。たとえば、それらの100種類のLPが何か別のことをするように切り替わったとします。だから、彼らのお金やそれが何であれ、その初期のシミュレーションは、すべての関数パスウェイを実際にテストしない限り現れないでしょう。それは私が考えていたことです。しかし、また、非常に多くの困難な問題があります。毒を選ぶ必要があります。サイバー、サイバーセキュリティ、AIの組み合わせの未来に何に興奮していますか?おそらくもっとたくさん使うでしょう。あなたの計画は何ですか、そしてあなたはどのようにその道を進むと思いますか?
Andy Zhou 40:06 ええ、私の計画については、これらの新しい技術を組み合わせて、コミュニティとユーザーをより良く保護したいと考えています。AIにリソースを投資し続けます。なぜなら、AIとWeb3セキュリティシーンを組み合わせることで、より良い製品が生まれるからです。より良い攻撃検出システム、より良いファジングシステム、そしてユーザー資産を保護するためのより良いソリューションをさらに推進したいと考えています。これがBlockSec内の現在の計画です。
DeGatchi 40:36 興味深い。わかりました。それよりずっと良くなり、もっと多くのことができるようになると思います。すでにハッキングを防ぐために多くのことを行っています。しかし、イノベーションの余地はたくさんあり、まだ始まったばかりだと思います。人々がそれについて風を得て、あなたがさらに多くのハッキングを防ぐようになれば、それははるかに顕著になり、さらに多くの競争が生まれるでしょう。それは素晴らしいことです。ハッキングを防ぎ、実際にエコシステムを拡大するための健全な競争。なぜなら、最終的な目標はCeFiを置き換えることだからです。銀行口座からお金を引き出すのに4か月も待ちたくないですよね。それはかなりばかげています。情報セクターでの努力は、小売および既存のプロトコルでは過小評価されています。ハッキングされるまで、彼らは本当にそれについて知りません。これが実際に何人かがそれに入る方法だと思います。しかし、男、皆さんが構築しているものに非常に興奮しており、サイバーと暗号の未来について非常に楽観的です。しかし、男、本当に来てくれてありがとう。あなたが最初に参加したポッドキャストになれて本当に嬉しいです。ええ、アンディ、あなたの時間を本当に感謝しています。素晴らしいチャットでした。
Andy Zhou 41:38 ええ、ここにいられて光栄です。ありがとう、DeGatchi。



