DeFi Hooksの進化:Uniswap V4契約セキュリティからArtelaネイティブプロトコルへ

中級5/21/2024, 3:41:36 PM
この記事では、Hooksプログラミングモデルのコンセプトについて説明しており、開発者がシステム、アプリケーション、またはライブラリの実行パスにカスタムコードを挿入できるようにするものです。これは、事前定義された関数やコードブロックを介して行われ、プログラムの拡張性とカスタマイズ性を向上させます。Uniswap V4では、Hooksが導入されており、動的手数料、オンチェーン価格制限注文、時間加重平均市場メーカーなどの機能が実装されています。これにより、DAppの機能とUniswapのネットワーク効果が向上します。

フックとは何ですか

Hooks、またはフックプログラミングは、開発者がフックを介してシステム、アプリケーション、またはライブラリの実行パスにカスタムコードを挿入することを可能にするプログラミングモデルです。フックは、事前に定義された関数やコードブロックです。元のコードを変更する必要はありません。フックは、多くのプログラミング環境やフレームワーク、オペレーティングシステム、ウェブ開発、およびプラグインシステムなどでよく使用されています。

Hooksを使用することで、開発者はプログラムの拡張要件や変更ごとに元のコードを変更する必要なく、プログラムの拡張性とカスタマイズ性を高めることができます。これにより、コードを清潔で安定した状態に保つことができます。Hooksはソフトウェアの拡張に優れた実装方法を提供し、ソフトウェア設計において非常に有用なプログラミングモデルです。

特に、AOP(アスペクト指向プログラミング)は、しばしばフックプログラミングと比較されます。AOPは、横断的関心事を実装するモジュラープログラミングパラダイムであり、目標は主要なビジネスロジックを変更することではありません。必要に応じて機能を拡張または変更します。ここではAOPについて詳しく説明しませんが、AOPをフックプログラミングのより高次の抽象化と考えることができます。

Uniswap V4: フックス レボリューション

2023年6月、UniswapはUniswap V4ホワイトペーパーの草案を発表し、公開しました。Uniswap V4の重要な特徴の1つは、Hooksの導入です。

Web2の金融システムでは、フックが広く使用されています。なぜなら、これらのシステムでは通常、高度なカスタマイズとスケーラビリティが必要とされるからです。取引処理の際などのカスタマイズされたシナリオでは、取引の前後に追加の検証ロジックを挿入するためにフックを使用します。例えば、二次検証、リスクコントロール検知、およびマネーロンダリング(AML)戦略などがあります。スケーラビリティのシナリオでは、フックを介して外部APIやマイクロサービスと統合することで、金融システムに新しい機能を拡張することができます。例えば、身元認証サービス、為替レート変換、支払いゲートウェイなどがあります。しかし、DeFiにフックを導入することで、Uniswapは前例を打ち立てました。

Uniswap V4 Hooksは基本的に開発者によって作成および定義された外部契約です。流動性プールが作成されると、Hook契約をバインドすることができます。その後、流動性プールは以前にバインドされたHook契約を呼び出し、ライフサイクルの異なる段階で指定された操作を実行し、高度なカスタマイズを提供します。開発者はUniswapのHooksを使用して、より個人に合った取引シナリオを実現し、リッチな機能を持つDAppsを構築することができます。

  • ダイナミック手数料:Hooksを通じて、流動性プールは市場の変動性やその他の入力パラメータに基づいて手数料を動的に調整し、市況により適応するようにすることができます;
  • オンチェーンのリミット注文:フックはチェーン上でリミット注文を作成し実行でき、ユーザーは指定された価格で取引することができます;
  • Time Weighted Average Market Maker (TWAMM): Hooksメカニズムを利用して、大口の取引を均等に分散させるTWAMM戦略をサポートする流動性プールを作成します。

現在、Uniswap V4は4つのグループのフックコールバックをサポートしており、各グループには1組のコールバックが含まれています。

  • beforeInitialize/afterInitialize: リクイディティプールを初期化する;
  • beforeModifyPosition/afterModifyPosition: リクイディティを追加/削減/削除する;
  • beforeSwap/afterSwap: 交換;
  • beforeDonate/afterDonate: 寄付(Uniswap V4 で導入された新機能で、取引範囲内の流動性提供者にチップを支払う)

次の図は、ホワイトペーパーで示されているbeforeSwap/afterSwapフックプロセスを示しています。スワップを実行する前後に、流動性プールのフックの対応するフラグが有効化されているかどうかをまず確認し、有効であれば、その後にフック契約の対応する関数を呼び出します。

これらのフックは、取引が開始する前と終了した後に実行される可能性があり、オンチェーンのリミットオーダーに類似した機能を有効にします。ユーザーは、フック契約にリミットオーダーを出し、その後のスワップコールバックでカスタムまたは管理されたオラクルを使用して価格がリミットに達するかどうかを判断します。達していれば、取引が実行されます。そうでなければ、取引はキャンセルされます。

Uniswap V4は、Hooksを介して流動性をDAppの開発に深く結びつけています。これにより、DAppの機能が強化され、Uniswapのネットワーク効果も向上し、DeFiエコシステム全体の基盤となります。

Uniswap V4フックのセキュリティ問題

BlockSecチームは、Uniswap V4のHooksメカニズムのセキュリティリスクを調査しました。Hook契約そのものが悪意を持つことに加えて、善意のHook契約も非常に脆弱です。BlockSecチームは、Awesome Uniswap v4 Hooksリポジトリ(コミットハッシュ3a0a444922f26605ec27a41929f3ced924af6075)を分析し、リポジトリ内のプロジェクトの30%以上が脆弱であることがわかりました。これらの脆弱性は、主にHook、PoolManager、外部第三者とのリスク相互作用から生じ、主に2つのカテゴリに分けることができます。

  • アクセス制御の問題: 主な懸念事項はUniswap V4のコールバック関数です。これらの関数はPoolManagerによってのみ呼び出されるべきであり、他のアドレス(EOAおよび契約を含む)から呼び出されてはなりません。たとえば、報酬がプールキーによって配布される場合、対応する関数が任意のアカウントから呼び出される可能性があると、報酬が誤って請求される可能性があります。したがって、Hooksは強力なアクセス制御メカニズムを確立する必要があり、特にプール自体以外の他の当事者によって呼び出される可能性があるためです。
  • 検証の質問を入力する: よく知られた再入攻撃を含むさまざまなタイプの攻撃は、一部の脆弱なフック実装における不適切な入力検証に起因します。最も一般的な状況は、信頼できない外部コントラクトがいくつかの主要なフック関数で呼び出されることです。これらの脆弱なフックを攻撃するために、攻撃者は自分の偽のトークンに悪意のある資金プールを登録し、フックを呼び出して資金を使用することができます。プールは操作を実行します。プールと対話すると、悪意のあるトークン ロジックが制御フローを乗っ取り、望ましくない動作を行います。

必要に応じて、外部/公開関数へのアクセス制御が適切に実装され、入力パラメータが検証されてセキュリティリスクが低減されているとしても、フックの2種類の関連するセキュリティリスクを完全に回避することはできません。特に、アップグレード可能なフックが実装されている場合、OpenZeppelinのUUPSUpgradeable脆弱性に類似した関連する問題に遭遇する可能性があります。

Hookプログラミングはスマートコントラクトの複雑さを増大させ、攻撃面を拡大させることからその理由がある。通常のスマートコントラクトに対して、OpenZeppelinは、それに基づいて開発された契約が安全であることを保証するための一連のベストプラクティスライブラリを提供している。しかし、基本的には、開発者に対して「セキュリティ使用の制約」を追加する。一方、Hookコントラクトは通常の契約よりもさらに厳しい「セキュリティ使用制約」を要求する。したがって、Hookプログラミングが広く適用されるためには、安全な実行環境、Hook用の適用可能なプログラミングパラダイム、およびより厳しい使用制約が必要となる包括的なフレームワークが必要である。

Artela Aspect: フックプログラミングのプロトコルレベルサポート

Uniswap V4 Hooksはスマートコントラクトを介して実装されており、そのセキュリティの問題もスマートコントラクトの制限によって引き起こされています。プロトコルレベルでフックプログラミングをサポートする解決策はありますか?Artela Aspectがその答えを提供してくれます!

Artelaは、開発者がモジュラーで機能豊富、スケーラブルでカスタマイズ可能なアプリケーションを構築するために設計された、高度にスケーラブルかつ高性能なEVM互換のLayer 1ブロックチェーンネットワークです。Artelaは、新しいプログラマブルモジュールをアスペクトとしてネイティブエクステンションとして定義し、革新的にAOPをブロックチェーンネットワークに導入しています。アスペクトは、トランザクション処理全体のライフサイクルで実行される場所である接続ポイントを指定する必要があります。Hookのコールバックに似て、接続ポイントには次のようなものが含まれます:

  • ブロック初期化
  • 取引の検証
  • プリエグゼキュート
  • 実行後
  • ブロックファイナライズ

Aspectは現在TypeScriptのみをサポートしており、そのコードはWebAssembly(WASM)バイトコードにコンパイルされ、Artelaネットワークに展開されます。Aspectの展開後、スマートコントラクトの所有者は自分のコントラクトをAspectにバインドできます。スマートコントラクトの所有者は、スマートコントラクト内のisOwner(address)returns(bool)チェックをパスできる外部アカウント(EOA)アドレスと定義されます。

その後、スマート契約を呼び出す後続トランザクションは、以下の図に示すように、Aspectによって処理されます。

プロトコルレベルのHooks実装として、Artela AspectsはUniswap V4 Hooksよりも大きな利点があります:

まず、Artela AspectsはWASMを使用してコードを実行し、実行効率はEVMよりも数桁高いです;

第二に、Artela AspectsはDeFiの中核ロジックだけでなく、全トランザクションライフサイクルにフックすることができ、より豊富な機能を持つDAppsを構築することができます。

最後に、そして最も重要なことに、アルテラ・アスペクツは安全なサンドボックス環境で独立して実行されます。この分離により、アスペクツの実行が契約のセキュリティに影響を与えないことが保証されます。

Artela Aspectsの孤立は、フック契約と他の外部契約との相互呼び出しを制限し、Uniswap V4フックのアクセス制御と入力検証の厄介な問題を解決します。UniswapのようなDeFi契約では、Artelaにデプロイすることで、より速く、強力で安全なフック体験を楽しむことができます。

概要

DeFi業界における重要な参加者およびリーダーとして、Uniswapは業界の進歩を促進し、機能性を高める上で重要な役割を果たしてきました。Uniswap V4でのHooksの導入は、DEXの開発の方向性を確かに示し、後継者によって熱心に模倣されています。

ただし、Uniswap V4 Hooks はスマートコントラクトの固有の制約によって制限されています。プロトコル設計がどれだけ堅固であろうと、ツールキットがどれだけ包括的であろうと、フック契約と外部契約の相互呼び出しを根本的に防ぐことはできません。これは潜在的なセキュリティの脆弱性を引き起こします。

Artelaは、高性能なEVM互換のLayer 1ブロックチェーンネットワークとして、プロトコルの設計段階から独立してWASMで動作するAspectを設計しており、Hookプログラミングをネイティブにサポートしています。これにより、セキュリティが最優先事項と考えるDeFiプロトコルにとって、高度なソリューションが提供されることになります。

ステートメント:

  1. この記事は元々「Uniswap V4契約セキュリティからArtelaネイティブプロトコルへのDeFiフックの進化」というタイトルであり、[から再現されました小猪Web3]. All copyrights belong to the original author [web3朱大胆]. If you have any objection to the reprint, please contact the Gate Learnチーム、チームはできるだけ早く対応します。

  2. 免責事項:この記事で表現されている意見は、著者個人の意見を表しており、投資アドバイスを構成するものではありません。

  3. 他の言語への記事の翻訳は、Gate Learnチームによって行われます。特に言及されていない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。

DeFi Hooksの進化:Uniswap V4契約セキュリティからArtelaネイティブプロトコルへ

中級5/21/2024, 3:41:36 PM
この記事では、Hooksプログラミングモデルのコンセプトについて説明しており、開発者がシステム、アプリケーション、またはライブラリの実行パスにカスタムコードを挿入できるようにするものです。これは、事前定義された関数やコードブロックを介して行われ、プログラムの拡張性とカスタマイズ性を向上させます。Uniswap V4では、Hooksが導入されており、動的手数料、オンチェーン価格制限注文、時間加重平均市場メーカーなどの機能が実装されています。これにより、DAppの機能とUniswapのネットワーク効果が向上します。

フックとは何ですか

Hooks、またはフックプログラミングは、開発者がフックを介してシステム、アプリケーション、またはライブラリの実行パスにカスタムコードを挿入することを可能にするプログラミングモデルです。フックは、事前に定義された関数やコードブロックです。元のコードを変更する必要はありません。フックは、多くのプログラミング環境やフレームワーク、オペレーティングシステム、ウェブ開発、およびプラグインシステムなどでよく使用されています。

Hooksを使用することで、開発者はプログラムの拡張要件や変更ごとに元のコードを変更する必要なく、プログラムの拡張性とカスタマイズ性を高めることができます。これにより、コードを清潔で安定した状態に保つことができます。Hooksはソフトウェアの拡張に優れた実装方法を提供し、ソフトウェア設計において非常に有用なプログラミングモデルです。

特に、AOP(アスペクト指向プログラミング)は、しばしばフックプログラミングと比較されます。AOPは、横断的関心事を実装するモジュラープログラミングパラダイムであり、目標は主要なビジネスロジックを変更することではありません。必要に応じて機能を拡張または変更します。ここではAOPについて詳しく説明しませんが、AOPをフックプログラミングのより高次の抽象化と考えることができます。

Uniswap V4: フックス レボリューション

2023年6月、UniswapはUniswap V4ホワイトペーパーの草案を発表し、公開しました。Uniswap V4の重要な特徴の1つは、Hooksの導入です。

Web2の金融システムでは、フックが広く使用されています。なぜなら、これらのシステムでは通常、高度なカスタマイズとスケーラビリティが必要とされるからです。取引処理の際などのカスタマイズされたシナリオでは、取引の前後に追加の検証ロジックを挿入するためにフックを使用します。例えば、二次検証、リスクコントロール検知、およびマネーロンダリング(AML)戦略などがあります。スケーラビリティのシナリオでは、フックを介して外部APIやマイクロサービスと統合することで、金融システムに新しい機能を拡張することができます。例えば、身元認証サービス、為替レート変換、支払いゲートウェイなどがあります。しかし、DeFiにフックを導入することで、Uniswapは前例を打ち立てました。

Uniswap V4 Hooksは基本的に開発者によって作成および定義された外部契約です。流動性プールが作成されると、Hook契約をバインドすることができます。その後、流動性プールは以前にバインドされたHook契約を呼び出し、ライフサイクルの異なる段階で指定された操作を実行し、高度なカスタマイズを提供します。開発者はUniswapのHooksを使用して、より個人に合った取引シナリオを実現し、リッチな機能を持つDAppsを構築することができます。

  • ダイナミック手数料:Hooksを通じて、流動性プールは市場の変動性やその他の入力パラメータに基づいて手数料を動的に調整し、市況により適応するようにすることができます;
  • オンチェーンのリミット注文:フックはチェーン上でリミット注文を作成し実行でき、ユーザーは指定された価格で取引することができます;
  • Time Weighted Average Market Maker (TWAMM): Hooksメカニズムを利用して、大口の取引を均等に分散させるTWAMM戦略をサポートする流動性プールを作成します。

現在、Uniswap V4は4つのグループのフックコールバックをサポートしており、各グループには1組のコールバックが含まれています。

  • beforeInitialize/afterInitialize: リクイディティプールを初期化する;
  • beforeModifyPosition/afterModifyPosition: リクイディティを追加/削減/削除する;
  • beforeSwap/afterSwap: 交換;
  • beforeDonate/afterDonate: 寄付(Uniswap V4 で導入された新機能で、取引範囲内の流動性提供者にチップを支払う)

次の図は、ホワイトペーパーで示されているbeforeSwap/afterSwapフックプロセスを示しています。スワップを実行する前後に、流動性プールのフックの対応するフラグが有効化されているかどうかをまず確認し、有効であれば、その後にフック契約の対応する関数を呼び出します。

これらのフックは、取引が開始する前と終了した後に実行される可能性があり、オンチェーンのリミットオーダーに類似した機能を有効にします。ユーザーは、フック契約にリミットオーダーを出し、その後のスワップコールバックでカスタムまたは管理されたオラクルを使用して価格がリミットに達するかどうかを判断します。達していれば、取引が実行されます。そうでなければ、取引はキャンセルされます。

Uniswap V4は、Hooksを介して流動性をDAppの開発に深く結びつけています。これにより、DAppの機能が強化され、Uniswapのネットワーク効果も向上し、DeFiエコシステム全体の基盤となります。

Uniswap V4フックのセキュリティ問題

BlockSecチームは、Uniswap V4のHooksメカニズムのセキュリティリスクを調査しました。Hook契約そのものが悪意を持つことに加えて、善意のHook契約も非常に脆弱です。BlockSecチームは、Awesome Uniswap v4 Hooksリポジトリ(コミットハッシュ3a0a444922f26605ec27a41929f3ced924af6075)を分析し、リポジトリ内のプロジェクトの30%以上が脆弱であることがわかりました。これらの脆弱性は、主にHook、PoolManager、外部第三者とのリスク相互作用から生じ、主に2つのカテゴリに分けることができます。

  • アクセス制御の問題: 主な懸念事項はUniswap V4のコールバック関数です。これらの関数はPoolManagerによってのみ呼び出されるべきであり、他のアドレス(EOAおよび契約を含む)から呼び出されてはなりません。たとえば、報酬がプールキーによって配布される場合、対応する関数が任意のアカウントから呼び出される可能性があると、報酬が誤って請求される可能性があります。したがって、Hooksは強力なアクセス制御メカニズムを確立する必要があり、特にプール自体以外の他の当事者によって呼び出される可能性があるためです。
  • 検証の質問を入力する: よく知られた再入攻撃を含むさまざまなタイプの攻撃は、一部の脆弱なフック実装における不適切な入力検証に起因します。最も一般的な状況は、信頼できない外部コントラクトがいくつかの主要なフック関数で呼び出されることです。これらの脆弱なフックを攻撃するために、攻撃者は自分の偽のトークンに悪意のある資金プールを登録し、フックを呼び出して資金を使用することができます。プールは操作を実行します。プールと対話すると、悪意のあるトークン ロジックが制御フローを乗っ取り、望ましくない動作を行います。

必要に応じて、外部/公開関数へのアクセス制御が適切に実装され、入力パラメータが検証されてセキュリティリスクが低減されているとしても、フックの2種類の関連するセキュリティリスクを完全に回避することはできません。特に、アップグレード可能なフックが実装されている場合、OpenZeppelinのUUPSUpgradeable脆弱性に類似した関連する問題に遭遇する可能性があります。

Hookプログラミングはスマートコントラクトの複雑さを増大させ、攻撃面を拡大させることからその理由がある。通常のスマートコントラクトに対して、OpenZeppelinは、それに基づいて開発された契約が安全であることを保証するための一連のベストプラクティスライブラリを提供している。しかし、基本的には、開発者に対して「セキュリティ使用の制約」を追加する。一方、Hookコントラクトは通常の契約よりもさらに厳しい「セキュリティ使用制約」を要求する。したがって、Hookプログラミングが広く適用されるためには、安全な実行環境、Hook用の適用可能なプログラミングパラダイム、およびより厳しい使用制約が必要となる包括的なフレームワークが必要である。

Artela Aspect: フックプログラミングのプロトコルレベルサポート

Uniswap V4 Hooksはスマートコントラクトを介して実装されており、そのセキュリティの問題もスマートコントラクトの制限によって引き起こされています。プロトコルレベルでフックプログラミングをサポートする解決策はありますか?Artela Aspectがその答えを提供してくれます!

Artelaは、開発者がモジュラーで機能豊富、スケーラブルでカスタマイズ可能なアプリケーションを構築するために設計された、高度にスケーラブルかつ高性能なEVM互換のLayer 1ブロックチェーンネットワークです。Artelaは、新しいプログラマブルモジュールをアスペクトとしてネイティブエクステンションとして定義し、革新的にAOPをブロックチェーンネットワークに導入しています。アスペクトは、トランザクション処理全体のライフサイクルで実行される場所である接続ポイントを指定する必要があります。Hookのコールバックに似て、接続ポイントには次のようなものが含まれます:

  • ブロック初期化
  • 取引の検証
  • プリエグゼキュート
  • 実行後
  • ブロックファイナライズ

Aspectは現在TypeScriptのみをサポートしており、そのコードはWebAssembly(WASM)バイトコードにコンパイルされ、Artelaネットワークに展開されます。Aspectの展開後、スマートコントラクトの所有者は自分のコントラクトをAspectにバインドできます。スマートコントラクトの所有者は、スマートコントラクト内のisOwner(address)returns(bool)チェックをパスできる外部アカウント(EOA)アドレスと定義されます。

その後、スマート契約を呼び出す後続トランザクションは、以下の図に示すように、Aspectによって処理されます。

プロトコルレベルのHooks実装として、Artela AspectsはUniswap V4 Hooksよりも大きな利点があります:

まず、Artela AspectsはWASMを使用してコードを実行し、実行効率はEVMよりも数桁高いです;

第二に、Artela AspectsはDeFiの中核ロジックだけでなく、全トランザクションライフサイクルにフックすることができ、より豊富な機能を持つDAppsを構築することができます。

最後に、そして最も重要なことに、アルテラ・アスペクツは安全なサンドボックス環境で独立して実行されます。この分離により、アスペクツの実行が契約のセキュリティに影響を与えないことが保証されます。

Artela Aspectsの孤立は、フック契約と他の外部契約との相互呼び出しを制限し、Uniswap V4フックのアクセス制御と入力検証の厄介な問題を解決します。UniswapのようなDeFi契約では、Artelaにデプロイすることで、より速く、強力で安全なフック体験を楽しむことができます。

概要

DeFi業界における重要な参加者およびリーダーとして、Uniswapは業界の進歩を促進し、機能性を高める上で重要な役割を果たしてきました。Uniswap V4でのHooksの導入は、DEXの開発の方向性を確かに示し、後継者によって熱心に模倣されています。

ただし、Uniswap V4 Hooks はスマートコントラクトの固有の制約によって制限されています。プロトコル設計がどれだけ堅固であろうと、ツールキットがどれだけ包括的であろうと、フック契約と外部契約の相互呼び出しを根本的に防ぐことはできません。これは潜在的なセキュリティの脆弱性を引き起こします。

Artelaは、高性能なEVM互換のLayer 1ブロックチェーンネットワークとして、プロトコルの設計段階から独立してWASMで動作するAspectを設計しており、Hookプログラミングをネイティブにサポートしています。これにより、セキュリティが最優先事項と考えるDeFiプロトコルにとって、高度なソリューションが提供されることになります。

ステートメント:

  1. この記事は元々「Uniswap V4契約セキュリティからArtelaネイティブプロトコルへのDeFiフックの進化」というタイトルであり、[から再現されました小猪Web3]. All copyrights belong to the original author [web3朱大胆]. If you have any objection to the reprint, please contact the Gate Learnチーム、チームはできるだけ早く対応します。

  2. 免責事項:この記事で表現されている意見は、著者個人の意見を表しており、投資アドバイスを構成するものではありません。

  3. 他の言語への記事の翻訳は、Gate Learnチームによって行われます。特に言及されていない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。

Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!