🎉

【完全保存版】メインネットとテストネットの違いとは?

2023/05/16に公開

はじめに

この記事は下の記事を翻訳し、編集したものになります。(翻訳・編集者:EggDragon

https://blog.thirdweb.com/mainnet-vs-testnet-whats-the-difference/

概要

Web3 での開発を始めたばかりの人でも「メインネット」と「テストネット」という用語をよく目にしたことがあるかと思います。メインネットでの開発とテストネットでの開発の違いは何でしょうか?ユースケースに応じてどれを選択するのが最適でしょうか?そして、なぜ双方が必要なのでしょうか?

この記事では、ブロックチェーンのメインネットとテストネットの使用について、知っておくべきことをわかりやすく説明します。メインネットとテストネットとは何か、それぞれの違い、それぞれの用途、ブロックチェーン開発に関して双方が非常に重要である理由について説明します。

メインネットとは そしてその重要性について

メインネットは、実際のトランザクションと操作が実行され、ブロックチェーン上に記録されるブロックチェーンネットワークの運用バージョンです。

これはブロックチェーンネットワークのライブバージョンを表しており、すべてのルール、コンセンサスメカニズム、セキュリティプロトコルが適用され、ネットワークの機能に不可欠なものとなっています。これにより、ユーザーは暗号通貨で取引したり、ネットワーク上でスマートコントラクト、トークン発行、分散型アプリケーションなどのさまざまな操作を行うことができます。

メインネットは、改ざん防止と透明性を備えた分散型台帳にトランザクションが記録されるため、トランザクションが安全で不変であるという確信をユーザーに提供します。したがって、メインネットの運用を成功させることがブロックチェーンの導入には不可欠です。

しかし、それではなぜすべてがブロックチェーンのメインネット上で行われないのでしょうか?なぜテストネットが必要なのでしょうか?

テストネットとは

一方、テストネットは、名前の通り、テスト目的で使用されるブロックチェーンネットワークのバージョンです。 これはメインネットをシミュレートしたバージョンであり、開発者とユーザーが資金を失ったりメインネットに影響を与えたりすることなく、新しいアイデアを探索し、アプリケーションをテストできるネットワークになります。

テストネットは、潜在的な問題を特定し、パフォーマンスを最適化し、シームレスなユーザーエクスペリエンスを確保するための安全な環境を提供するため、Web3 開発にとって非常に重要です。

これにより、開発者は、実際の資金を使用したり、テストされていないコードをデプロイしたりすることなく、新機能を実験し、テスト用のスマートコントラクトをデプロイし、アプリケーションを構築することができます(メインネット上で稼働させると、コードを変更するのはより困難になります)。また、開発者がコミュニティからフィードバックを収集し、製品を一般にリリースする前に改善することもできます。

メインネットとテストネットの機能について

メインネットはトランザクションの検証と処理を行うために、ノードと連携して構成されています。これらのノードは共有台帳を維持し、ネットワークデータの整合性と一貫性を保証します。メインネットにデプロイされたスマートコントラクトはブロックチェーンと対話し、ユーザー入力またはトリガーされたイベントに基づいて事前定義されたコードを実行します。

ユーザーがメインネット上でトランザクションを送信すると、そのトランザクションはネットワーク全体にブロードキャストされます。ノードはトランザクションを検証し、ネットワークのコンセンサスルールを満たしていることを確認します。検証されると、トランザクションは次のブロックに追加されて確認され、台帳が更新され、値の転送またはスマートコントラクト機能の実行が完了します。

テストネットはメインネットと同様に機能し、ノードのネットワークを利用してトランザクションを検証および処理します。ただし、テストネット上のトークンには現実世界の価値はなく、開発者は経済的なリスクを負わずに自由に実験できます。テストネットには、多くの場合、テスト目的でユーザーにテストトークンを配布するフォーセット(faucet)などの独自の機能があります。

なぜテストネットが必要なのでしょうか?

テストネットにはリスクがないため、ブロックチェーンのメインネット環境を複製する際にさまざまな使用例があります。

  1. スマートコントラクトの開発とテスト
    テストネットを使用すると、開発者はメインネットにデプロイする前にスマートコントラクトのコードを作成、テスト、改良することができます。これは、コストのかかるバグを防ぎ、スマートコントラクトが意図したとおりに機能することを保証するのに役立ちます。
  2. dApp 開発
    開発者は、テストネット上で分散アプリケーションを作成およびテストし、ユーザー操作をシミュレートし、制御された環境で機能を検証できます。
  3. ネットワークのアップグレードと改善
    テストネットを使用すると、開発者はプロトコルのアップグレード、ハードフォーク、またはブロックチェーンネットワーク自体に対するその他の変更をテストでき、メインネットに実装する前に安定性と互換性を確保できます。
  4. ウォレットとインフラストラクチャのテスト
    ウォレットプロバイダー、取引所、その他のブロックチェーンインフラストラクチャサービスは、テストネットを使用してソリューションの互換性とパフォーマンスを検証し、エンドユーザーに影響を与える前に潜在的な問題を特定できます。これには、組織、分散型自律組織(DAO)、および企業向けのチームウォレットのテストが含まれ、資産の安全かつ効率的な管理が保証されます。
  5. ユーザー教育とオンボーディング
    テストネットは、ユーザーがブロックチェーンと暗号通貨について学ぶためのリスクのない環境を提供し、現実世界の資産を危険にさらすことなく、ウォレットの使用、dApps との対話、取引手数料の理解の練習を可能にします。

テストネットが廃止される理由とは

イーサリアム財団は複数のテストネットを展開および廃止しており、最近では Rinkeby や Ropsten テストネットを閉鎖し、広く利用できるように Goerli テストネットに置き換え、さらに最近では Sepolia テストネットを立ち上げました。テストネットは、次のようなさまざまな理由で廃止されます。

  1. アップグレードとプロトコルの変更
    Ethereum ネットワークに大幅なプロトコルの変更やアップグレードが行われ、既存のテストネットとの互換性がなくなったり、廃止されたりした場合、テストネットは非推奨になる可能性があります。このような場合、更新されたプロトコルまたは変更を反映するために新しいテストネットが起動され、以前のテストネットが廃止される可能性があります。
  2. 使用率とアクティビティが低い
    テストネットが積極的に使用されていない場合、または開発者やユーザーから十分な参加を集めていない場合、そのテストネットは非推奨になる可能性があります。十分に活用されていないテストネットの維持には費用がかかり、リソースを大量に消費する可能性があるため、テストネットの実行を継続するのは現実的ではない可能性があります。
  3. セキュリティの問題
    テストネットが侵害されたり、安全性が低いことが判明した場合、さらなる損害やセキュリティ違反を防ぐために、テストネットは非推奨になる可能性があります。セキュリティの問題は、テストネットとその基盤となるイーサリアムネットワークの信頼性を損なう可能性があるため、迅速な対応が不可欠です。
  4. 新しいネットワークへの移行
    テストネットが新しいネットワークへの移行段階として機能する場合、新しいネットワークが開始されると、テストネットは非推奨になる可能性があります。これはイーサリアム 2.0 テストネットの場合に当てはまり、新しいプルーフオブステークのコンセンサスメカニズムやアップグレードされたネットワークのその他の機能をテストするために使用されました。Ethereum2.0 メインネットが開始されると、テストネットは廃止されました。

イーサリアムのアップグレードでは、メインネットにデプロイする前に、まずどのような変化が生じるのかを様々なテストネットで検証します。イーサリアム開発者は、イーサリアム改善提案(EIP)として知られるプロトコルの改善を提案および実装します。これらの改良点は、メインネットに統合される前に、Goerli、Ropsten、Rinkeby などのさまざまな Ethereum テストネットで厳格なテストを受けます。

たとえば、マージとしても知られるイーサリアム 2.0 アップグレードは、イーサリアムをプルーフオブワーク(PoW)コンセンサスメカニズムからプルーフオブステーク(PoS)システムに移行することを目的とした重要かつ複雑なアップデートでした。この移行は複数のフェーズで実行され、各フェーズではメインネットに展開される前にテストネットで広範なテストが行われました。

このアプローチにより、イーサリアムメインネットとそのユーザーに影響を与える前に、潜在的な問題を特定し、対処することが保証されます。

7つのメインネットとテストネットのリスト

以下は、人気のあるブロックチェーンのメインネットのリストです。それぞれに最もアクティブなテストネットがあり、それぞれのリソース(ブロックエクスプローラー、フォーセット、デプロイ可能なスマートコントラクトなど)が含まれています。

チェーン メインネット テストネット
Ethereum Ethereum Mainnet Goerli Testnet, Sepolia Testnet
Polygon (MATIC) Polygon Mainnet Mumbai Testnet
Optimism Optimism Mainnet Optimism Goerli Testnet
Base (Coinbase L2) Base Mainnet Base Goerli Testnet
Avalanche Avalanche C-Chain Avalanche Fuji Testnet
Arbitrum Arbitrum One Mainnet Arbitrum Goerli Testnet
Polygon zkEVM Polygon zkEVM Mainnet Polygon zkEVM Testnet

上記のすべてと、それぞれを開始するためのリソースは、thirdweb の Chainlist で見つけることができます。thirdweb では、スマートコントラクトを 700 以上の EVM 互換のブロックチェーンに数分でデプロイすることができます。

https://thirdweb.com/chainlist?ref=blog.thirdweb.com

テストネットを始める方法

テストネット上でスマートコントラクトと Web3 アプリケーションの開発を開始するには、次の手順に従います。

  1. ブロックチェーンネットワークとそれに対応するテストネットを選択します。
  2. テストネットウォレットを作成し、フォーセットまたはその他のソースからテストトークンを取得します。
  3. Ethereum 用の Remix、さまざまな EVM 互換ネットワーク用の Truffle、Solana 開発用の SolanaSuite などの開発環境をセットアップします。
  4. テストネット上でスマートコントラクトを作成、テスト、デプロイします。
  5. スマートコントラクトと dApp を操作して、必要に応じて調整および最適化します。

dApp をテストネットからメインネットに移行する方法

テストネットでスマートコントラクトまたは dApp を徹底的にテストしたら、次の手順に従ってメインネットにデプロイします。

  1. コードをレビューし、すべてのバグが修正され、最適化が実装されていることを確認します。
  2. 開発環境をメインネット構成に切り替えます。
  3. メインネットウォレットと現実世界の資産を使用して、スマートコントラクトまたは dApp をデプロイします。
  4. デプロイされたプロジェクトを監視および保守し、発生する問題に対処し、ユーザーのスムーズな操作を保証します。

よくある質問(FAQ)

メインネットとテストネットの主な違いは何ですか?

メインネットは現実世界の価値が交換されるライブネットワークであるのに対し、テストネットは現実世界の価値が危険にさらされることのないテストと開発のための並列ネットワークです。

テストネットトークンをメインネットに転送できますか?

いいえ、テストネットトークンには現実世界の価値はなく、メインネットに転送することはできません。これらは、テストネット環境内での開発およびテストの目的でのみ使用されます。

テストネットトークンには価値がありますか?

いいえ、テストネットトークンには現実世界の価値はなく、メインネットに転送することはできません。これらは、テストネット環境内での開発およびテストの目的でのみ使用されます。

テストネットとメインネットに別のウォレットが必要ですか?

テストネットとメインネットの両方に同じウォレットを使用できますが、スマートコントラクトの開発とテスト用に別のテストウォレットを作成することをお勧めします。

テストネットトークンを取得するにはどうすればよいですか?

テストネットトークンは通常、テスト目的でユーザーにトークンを無料で配布するフォーセットを通じて取得できます。一部のテストネットでは、テストトークンを取得するための代替方法も提供されている場合があります。

メインネットとテストネットの両方に同じ開発ツールを使用できますか?

はい、ほとんどの開発ツールはメインネット構成とテストネット構成の両方をサポートしています。ただし、メインネットとテストネット間を移行するときは、開発環境のネットワーク設定を切り替える必要があります。

開発中はどのくらいの頻度でテストネットを使用する必要がありますか?

初期のプロトタイピングから最終テストまで、開発プロセス全体を通じてテストネットを使用することをお勧めします。頻繁にテストを行うことで、dApp またはスマートコントラクトの安定性と機能性を確保し、メインネットにデプロイする際に問題が発生するリスクを最小限に抑えることができます。

テストネットで間違いを犯した場合、メインネットの資産を失う可能性がありますか?

いいえ、テストネットのトランザクションとアクティビティはメインネットから完全に分離されており、現実世界の資産には影響を与えません。スマートコントラクトの開発とテスト用に別のテストウォレットを作成することをお勧めします。

おわりに

結論として、メインネットとテストネットはブロックチェーン上でまったく異なる役割を果たしますが、重要性においては相互に補完し合っています。メインネットは現実世界のトランザクションと dApp のやり取りを促進しますが、テストネットは開発とテストのための安全で制御された環境を提供します。

この記事が、メインネットとテストネットとは何か、さまざまなユースケースとは何か、そしてイーサリアムやその他の EVM 互換ブロックチェーンでスマートコントラクト開発を開始する方法をより深く理解するのに役立つことを願っています。質問がある場合は、Discordコミュニティで 35,000 人以上の他のビルダーに参加してください。

構築する準備ができたら、どの EVM チェーンにも展開できる thirdweb の web3 ツール、SDK、スマートコントラクトを使ってみてください。

Discussion