lesson-1_コントラクトのガス代を計算してみよう
💰 プロジェクトのコストを見積もる
前回のレッスンでは、NFTCollectible
コントラクトをデプロイしたsepolia Test Networkはイーサリアムのメインネットを模倣していますが、実際の金銭的取引は行われません。
自分のプロジェクトをマネタイズしたい場合は、最終的にコントラクトをイーサリアムメインネットにデプロイす る必要があります。
しかし、イーサリアムメインネットは、ガス代(ブロックチェーンにデータを書き込むコスト)が高いことで有名です。
このレッスンでは、プロジェクトのデプロイと実行にかかるコストと、ユーザーがNFTをMintするのにかかるコストの見積もり方について学んでいきます。
⛽️ ガス代とその価格
ブロックチェーン上でデータの書き込み、または変更を行う際には、ガス代を支払う必要があります。
例)ブロックチェーン上でのデータの書き込み・変更
-
ETH(またはそのほかのERC20トークン)の転送
-
NFTの作成と転送
-
スマートコントラクトのデプロイ
まず、スマートコントラクトをデプロイするコストを計算しましょう。
従来、スマートコントラクトの作成は、常にコストのかかるプロセスでした。
導入コストのガス量を確認するのは非常に簡単です。
SepoliaにデプロイされたコントラクトのEtherscanページに移動し、最初のトランザクションを確認しましょう。
Create: NFTCollectible
と表記されているのコントラクトを確認してください。
次に、コントラクトの作成に関連付けられているTxn Hash
ハッシュをクリックしてください。
トランザクションページに進んだら、Click to see More
をクリックしましょう。
Gas limit & Usage by Txn
を確認してください。
Gas limit & Usage by Txn
の値は、コントラクトのデプロイに使用されたガスの量です。
私のコントラクトをSepolia Test Networkにデプロイするのに、約386万ガスが消費されました。
同じコントラクトをイーサリアムメインネットに展開すると、同じ量のガスを消費することになります。
テストネットとイーサリアムメインネットでは、ガスの価格が違います。
上図のGas Fee
を参照すると、私のコントラクトがSepolia Test Networkにデプロイされたときのガス価格は、1.3 Gweiだったことがわかります。
- ✍️: ガス価格は、1単位のガスを消費するコストのことです。
上記を踏まえ、コントラクトをメインネットにデプロイする際にかかるコストを計算していきましょう。
下記の式に、数字を当てはめていきます。
コスト = ガス価格( Gas Price ) x 消費したガスの量( Gas limit & Usage by Txn )
ガス価格は、ネットワーク上のトラフィック量に応じて変動します。
ここで現在のETHのガス価格を確認できます: https://etherscan.io/gastracker
これは、私がコントラクトをデプロイした際のETHのガス価格です。
上図からわかるように、イーサリアムメインネットのガス価格は 約 40 Gwei であり、Sepolia で消費されたガス価格よりも大幅に高くなっています。
これで、ガスコストを見積もるのに必要なものがすべてそろいました。
私のコントラクトをイーサリアムメインネットにデプロイする際のコストの計算式は以下になります。
コスト= 40 Gwei (イーサリアムメインネットのガス価格) × 3,860,000( 消費したガスの量 ) = 154,400,000 Gwei = 0.154 ETH
現在、私のコントラクトをイーサリアムメインネットにデプロイするとしたら、0.154 ETH のコストがかかることがわかりました。
今の時点(2022年2月)で、0.154 ETHを日本円に換算すると、約4万円になります。
数行のコードをブロックチェーンにアップロードするだけにしては、高い金額です。
もちろん、価格が下がったときにコントラクトをデプロイすることもできますが、イーサリアムメインネット上でコントラクトを操作するのは、基本的に高額になる傾向があります。
👛 ユーザーが負担するコスト
ユーザーも、私たちのコントラク トからNFTをMintする際にガス代を支払う必要があります。
それでは、NFTを1つMintするのにかかる費用を計算してみましょう。
もう一度、あなたのコントラクトアドレスをEtherscanで呼び出し、Mint NFTs
と書かれているトランザクションの中身を見ていきましょう。
イーサリアムメインネット上で私のコントラクトからNFTを1つMintする際のコストの計算式は以下になります。
コスト = 40 Gwei (イーサリアムメインネットのガス価格) × 386,338(消費したガスの量)/ 3(一度に Mint した NFT の数) = 5,151,173 Gwei = 0.005 ETH
1つのNFTをMintするために発生するガス料金は0.005 ETH(約1500円)です。
NFTを0.01 ETHで販売した場合 、ユーザーは追加で実際のNFTの約半分の金額をガス代に費やすことになります。
🔗 サイドチェーンを使ってガス代を削減する
ガス代を考慮すると、イーサリアム上でNFTをMintし、取引することは、持続可能とは言いにくい状況です。
このガス代問題を解決するために、さまざまなソリューションが存在します。
人気のあるソリューションの1つがPolygonサイドチェーンです。
✍️: サイドチェーンとは何か
サイドチェーンは、メインチェーン(この場合はイーサリアム)と並行して動作します。
サイドチェーンは、メインチェーンとの間で資産の転送を可能にし、その過程でスピードとスケーラビリティを劇的に向上させます。
前述の取引にどれだけのコストがかかるか、Polygonで試算してみましょう。まず、こちら からPolygonのガス価格を見てみましょう。
2022年2月現在、ガス料金は3 Gwei程度です。
これをベースに、Polygonのサイドチェーンでコントラクトをデプロイするコストを計算してみま しょう。
コスト = 3 Gwei (イーサリアムメインネットのガス価格) × 3,860,000(消費したガスの量) = 11,580,000 Gwei = 0.0115 MATIC
ガス料金は、現在のPolygonでの価格を反映させたものに変更しました。さらに重要なことは、Polygonで使用している通貨がMATICであることです。
現在(2022年2月)の1 MATICの値段は172円です。
したがって、同じスマートコントラクトを Polygon ネットワーク にデプロイするコストは、約 2 円になります。
同じコントラクトを Polygon ネットワーク にデプロイするコスト
= 172 円( 1 MATIC あたりの金額 ) × 0.0115 MATIC(コントラクトのデプロイコスト)
≒ 2 円
イーサリアムメインネットの価格(4 万円)と比べると、だいぶコストが削減できます。
こちら で、MATIC
の値を¥
で表現できるので、試してみてください!
🔮 Polygon の有用性
Polygonを使う大きなメリットは、EVM に対応していることです。
- EVMについて詳しくは、こちら をご覧ください。
「EVMに対応している」とは、イーサリアムと同じツールを使ってスマートコントラクトをデプロイできる、ということです。
Polygonのもう1つの特徴として、非常に有利なのは、世界最大のNFTマーケットプレイスであるOpenSeaにサポートされていることです。
ユーザーは、イーサリアムのNFTとほぼ同じ方法で、OpenSea上でPolygonネットワークにデプロイされたNFTを取引できます。
🙋♂️ 質問する
ここまでの作業で何かわからないことがある場合は、Discordの#polygon
で質問をしてください。
ヘルプをするときのフローが円滑になるので、エラーレポートには下記の3点を記 載してください ✨
1. 質問が関連しているセクション番号とレッスン番号
2. 何をしようとしていたか
3. エラー文をコピー&ペースト
4. エラー画面のスクリーンショット
次のレッスンに進みましょう 🎉