レッスン4

スマートコントラクト

このモジュールは、zkSyncの詳細な技術概要を提供し、zkSync CLIやSDKを使用したスマートコントラクトの記述と展開、既存の開発環境との統合に焦点を当てています。

zkSyncのスマートコントラクトは、イーサリアムのスマートコントラクトと同様に動作しますが、基盤となるzkRollupテクノロジーにより、スケーラビリティと効率が向上しています。zkSyncは、ゼロ知識証明を使用して、トランザクションをオフチェーンで処理しながらセキュリティと信頼性を維持します。

ゼロ知識の簡潔な非対話型知識の証明(zk-SNARKs)は、オフチェーンで計算の正確性を検証するために使用されます。zkSyncでは、zk-SNARKsによって、すべての取引やスマートコントラクトの実行が、イーサリアムのメインネット上で計算を実行することなく有効であることが保証されます。これにより、計算負荷と関連するガス料金が削減され、より高いスループットが実現されます。

zkSyncエラ、最新のイテレーションは、Ethereum Virtual Machine(EVM)と完全互換です。これは、Ethereumのために書かれたほとんどのスマートコントラクトが、わずかまたはほとんど修正なしでzkSyncに展開できることを意味します。EVM互換性により、開発者は馴染みのあるツールや言語(例:Solidity)を使用してコントラクトを記述および展開できます。

zkSync Eraは、スケーラビリティを強化するデータ可用性ソリューションであるzkPorterも統合しています。zkPorterは、特定のデータをオフチェーンに保つことを可能にし、イーサリアムのメインネットを混雑させることなく処理できるトランザクションの数を大幅に増やします。

スマートコントラクトの作成と展開

zkSyncのスマートコントラクトは、Ethereumのスマートコントラクトに使用されているSolidityで書かれています。開発者は、慣れ親しんだ同じ構文や論理構造を使用することができるため、zkSyncへの移行は非常に簡単です。

スマートコントラクトの展開

1.開発環境をセットアップする:

  • Node.jsとnpm(Node Package Manager)をインストールしてください。
  • インストールするzkSyncそしてハードハットnpmを介してパッケージをインストールします。
  • 新しいHardhatプロジェクトを初期化し、zkSyncと連携するように構成します。

2.構成:

変更するhardhat.config.jszkSyncネットワークのURLやzkSync固有のコンパイラオプションなど、zkSync固有の設定を含めたファイルです。

構成例は次のようになる可能性があります:

3.スマートコントラクトをコンパイルします:

Hardhatフレームワークを使用すると、Solidityコントラクトをコンパイルできます。Hardhat zkSync プラグインは、コンパイルが zkSync ネットワークと互換性があることを保証します。

4.スマートコントラクトのデプロイ:

デプロイメントプロセスは、zkSyncプロバイダに接続し、ウォレットインスタンスを作成し、それを使用してコントラクトを展開することを含みます。展開スクリプトの例:

利用可能な開発ツール

ハードハット

Hardhatは、Ethereum用の開発環境およびタスクランナーであり、zkSyncをサポートするように拡張されています。これにより、開発者はSolidityスマートコントラクトをコンパイル、デプロイ、テスト、デバッグすることができます。

zkSync SDK

zkSync SDKはJavaScript環境からzkSyncとやり取りするためのツールやライブラリを提供します。ウォレットの設定、トランザクションの送信、zkSyncに展開されたスマートコントラクトとのやり取りのためのユーティリティが含まれています。

zkSync CLI

zkSyncコマンドラインインターフェース(CLI)は、コントラクトの展開やアカウントの管理など、zkSyncプロジェクトを管理する機能を提供しています。

Remix IDE

Remixは、ブラウザから直接Solidity契約を書くのを助けるオープンソースのWebおよびデスクトップアプリケーションです。それは、zkSyncをサポートし、それをzkSyncネットワークに接続するプラグインや構成を介しています。

統合

開発ツールは、zkSync上でスマートコントラクトを開発、テスト、展開するための統合環境を提供します。

HardhatとzkSync SDK

HardhatはzkSync SDKと統合して、開発者にスムーズなワークフローを提供します。zkSync用のHardhatプラグインは、コンパイルおよびデプロイプロセスを処理し、zkSync SDKはzkSyncネットワークとやり取りするための基本的な機能を提供します。この組み合わせにより、開発者はzkSync固有の機能を活用しながら、馴染みのあるHardhat構造を使用してデプロイスクリプトとテストを記述できます。

HardhatとRemix

開発者はRemixを使用してスマートコントラクトを作成およびテストし、より複雑なデプロイシナリオにはHardhatを使用できます。Remixからのコンパイルされた成果物は、柔軟な開発ワークフローを可能にするために、簡単にHardhatプロジェクトにインポートできます。

zkSync CLI

zkSync CLIは、HardhatおよびzkSync SDKと併用して使用でき、デプロイメントの管理やデプロイされたコントラクトとのやり取りを行うことができます。デプロイコントラクトやアカウントキーの管理などの一般的なタスクに対してコマンドラインインターフェースを提供し、自動化されたデプロイメントパイプラインに統合することができます。

テストとデバッグ

Hardhatのテストフレームワークは、スマートコントラクトのユニットテストおよび統合テストを記述するために使用することができます。これらのテストは、ローカルのzkSyncノードまたはテストネット上で実行することができ、契約が期待どおりに振る舞うことを確認します。zkSync SDKはテスト中に契約とのやり取りを容易にし、包括的なテストカバレッジを実現します。

これらのツールを統合することで、開発者は、zkSync上でスマートコントラクトを効率的に記述、テスト、展開、および管理でき、zkRollupsの拡張性とコスト効率を活用しながら、馴染みのある開発体験を維持できます。この統合は、初期契約の作成から展開および継続的なメンテナンスまでをサポートします。

ハイライト

  • zkSyncでスマートコントラクトを書き込み、展開するには、SolidityとVyperを使用し、カスタムzkSyncコンパイラを介してコンパイルする必要があります。
  • zkSync CLIとSDKは、プロジェクトのセットアップ、コントラクトのコンパイル、展開、および相互作用のための包括的なツールを提供します。
  • Hardhat、Foundry、Remix、およびAtlasなどの開発ツールとの統合は、開発者のエクスペリエンスを向上させます。
  • 最善の実践を守ることは、zkSync上で安全かつ効率的なスマートコントラクトの開発を保証します。
免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。
カタログ
レッスン4

スマートコントラクト

このモジュールは、zkSyncの詳細な技術概要を提供し、zkSync CLIやSDKを使用したスマートコントラクトの記述と展開、既存の開発環境との統合に焦点を当てています。

zkSyncのスマートコントラクトは、イーサリアムのスマートコントラクトと同様に動作しますが、基盤となるzkRollupテクノロジーにより、スケーラビリティと効率が向上しています。zkSyncは、ゼロ知識証明を使用して、トランザクションをオフチェーンで処理しながらセキュリティと信頼性を維持します。

ゼロ知識の簡潔な非対話型知識の証明(zk-SNARKs)は、オフチェーンで計算の正確性を検証するために使用されます。zkSyncでは、zk-SNARKsによって、すべての取引やスマートコントラクトの実行が、イーサリアムのメインネット上で計算を実行することなく有効であることが保証されます。これにより、計算負荷と関連するガス料金が削減され、より高いスループットが実現されます。

zkSyncエラ、最新のイテレーションは、Ethereum Virtual Machine(EVM)と完全互換です。これは、Ethereumのために書かれたほとんどのスマートコントラクトが、わずかまたはほとんど修正なしでzkSyncに展開できることを意味します。EVM互換性により、開発者は馴染みのあるツールや言語(例:Solidity)を使用してコントラクトを記述および展開できます。

zkSync Eraは、スケーラビリティを強化するデータ可用性ソリューションであるzkPorterも統合しています。zkPorterは、特定のデータをオフチェーンに保つことを可能にし、イーサリアムのメインネットを混雑させることなく処理できるトランザクションの数を大幅に増やします。

スマートコントラクトの作成と展開

zkSyncのスマートコントラクトは、Ethereumのスマートコントラクトに使用されているSolidityで書かれています。開発者は、慣れ親しんだ同じ構文や論理構造を使用することができるため、zkSyncへの移行は非常に簡単です。

スマートコントラクトの展開

1.開発環境をセットアップする:

  • Node.jsとnpm(Node Package Manager)をインストールしてください。
  • インストールするzkSyncそしてハードハットnpmを介してパッケージをインストールします。
  • 新しいHardhatプロジェクトを初期化し、zkSyncと連携するように構成します。

2.構成:

変更するhardhat.config.jszkSyncネットワークのURLやzkSync固有のコンパイラオプションなど、zkSync固有の設定を含めたファイルです。

構成例は次のようになる可能性があります:

3.スマートコントラクトをコンパイルします:

Hardhatフレームワークを使用すると、Solidityコントラクトをコンパイルできます。Hardhat zkSync プラグインは、コンパイルが zkSync ネットワークと互換性があることを保証します。

4.スマートコントラクトのデプロイ:

デプロイメントプロセスは、zkSyncプロバイダに接続し、ウォレットインスタンスを作成し、それを使用してコントラクトを展開することを含みます。展開スクリプトの例:

利用可能な開発ツール

ハードハット

Hardhatは、Ethereum用の開発環境およびタスクランナーであり、zkSyncをサポートするように拡張されています。これにより、開発者はSolidityスマートコントラクトをコンパイル、デプロイ、テスト、デバッグすることができます。

zkSync SDK

zkSync SDKはJavaScript環境からzkSyncとやり取りするためのツールやライブラリを提供します。ウォレットの設定、トランザクションの送信、zkSyncに展開されたスマートコントラクトとのやり取りのためのユーティリティが含まれています。

zkSync CLI

zkSyncコマンドラインインターフェース(CLI)は、コントラクトの展開やアカウントの管理など、zkSyncプロジェクトを管理する機能を提供しています。

Remix IDE

Remixは、ブラウザから直接Solidity契約を書くのを助けるオープンソースのWebおよびデスクトップアプリケーションです。それは、zkSyncをサポートし、それをzkSyncネットワークに接続するプラグインや構成を介しています。

統合

開発ツールは、zkSync上でスマートコントラクトを開発、テスト、展開するための統合環境を提供します。

HardhatとzkSync SDK

HardhatはzkSync SDKと統合して、開発者にスムーズなワークフローを提供します。zkSync用のHardhatプラグインは、コンパイルおよびデプロイプロセスを処理し、zkSync SDKはzkSyncネットワークとやり取りするための基本的な機能を提供します。この組み合わせにより、開発者はzkSync固有の機能を活用しながら、馴染みのあるHardhat構造を使用してデプロイスクリプトとテストを記述できます。

HardhatとRemix

開発者はRemixを使用してスマートコントラクトを作成およびテストし、より複雑なデプロイシナリオにはHardhatを使用できます。Remixからのコンパイルされた成果物は、柔軟な開発ワークフローを可能にするために、簡単にHardhatプロジェクトにインポートできます。

zkSync CLI

zkSync CLIは、HardhatおよびzkSync SDKと併用して使用でき、デプロイメントの管理やデプロイされたコントラクトとのやり取りを行うことができます。デプロイコントラクトやアカウントキーの管理などの一般的なタスクに対してコマンドラインインターフェースを提供し、自動化されたデプロイメントパイプラインに統合することができます。

テストとデバッグ

Hardhatのテストフレームワークは、スマートコントラクトのユニットテストおよび統合テストを記述するために使用することができます。これらのテストは、ローカルのzkSyncノードまたはテストネット上で実行することができ、契約が期待どおりに振る舞うことを確認します。zkSync SDKはテスト中に契約とのやり取りを容易にし、包括的なテストカバレッジを実現します。

これらのツールを統合することで、開発者は、zkSync上でスマートコントラクトを効率的に記述、テスト、展開、および管理でき、zkRollupsの拡張性とコスト効率を活用しながら、馴染みのある開発体験を維持できます。この統合は、初期契約の作成から展開および継続的なメンテナンスまでをサポートします。

ハイライト

  • zkSyncでスマートコントラクトを書き込み、展開するには、SolidityとVyperを使用し、カスタムzkSyncコンパイラを介してコンパイルする必要があります。
  • zkSync CLIとSDKは、プロジェクトのセットアップ、コントラクトのコンパイル、展開、および相互作用のための包括的なツールを提供します。
  • Hardhat、Foundry、Remix、およびAtlasなどの開発ツールとの統合は、開発者のエクスペリエンスを向上させます。
  • 最善の実践を守ることは、zkSync上で安全かつ効率的なスマートコントラクトの開発を保証します。
免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.