Twitterで出したクイズの解答

こんにちは、fig(@50923)です。初mirrorです。今回、Twitterにて、Ethereumに関するクイズを出題しました。一部悪問も混ぜましたが、多くの問題は、Ethereum上のappやmetamaskを実際に利用していると正答できる、実用的なものにしたつもりです。

ちなみに、このクイズは、EthereumメインネットおよびEVM互換のネットワークが対象となってます。ウォレットは、これらのネットワークに対応しているものを指します。では解答を発表します。

①「メタマスクのウォレットでトークンを受け取るには、あらかじめコントラクトアドレスでメタマスクにトークンを追加しなければならない」

誤りである(誤)

これ、文章が非常にわかりづらいですね。「トークンを受け取る前に」という表現が良かったかもです。

metamaskではトークンが自動で追加されず、表示されない場合があります。よって、「ネットワーク上では」トークンを受け取れていても、「metamask上では」見えないことがあるのです。これにより、初心者の方は「GOXした」と勘違いしがちですが、ちゃんとネットワーク上にはあります。

この場合、「カスタムトークンの追加」にて、トークンのコントラクトアドレスを入力するとmetamask上でそのトークンが表示されるようになります。一度自分のアカウントを「ブロックチェーンエクスプローラー」で確認することをオススメします。これは、ウォレット内にあるトークンやトランザクションの流れがすべて正確に表示されるサイトです。(例:Etherscan)

メタマスク→右上の縦並びの三点マーク(…)→ view account on ~にて、エクスプローラーが開きます。エクスプローラーを見ると、すべてのウォレットの中身やお金の流れやどのような動きをしているかすべてわかってしまいます。これがパブリックブロックチェーンの透明性ですね。

②「メタマスクで作成したアカウントを他のウォレットアプリに追加することができる」

正しい(正)

それぞれのアカウントにはETHアドレス(Ethereum Address)と秘密鍵があります。前者はトークンを受け取るときに必要な、0xから始まる文字列です。公開鍵の後半の文字列を取って0xをつけたのが由来。「ETHアドレス」「受け取りアドレス」「ウォレットアドレス」など様々な呼ばれ方をしています。
後者は、アカウントを復元するときに必要な鍵です。これがあれば、そのアカウントにアクセスすることができ、資産を盗み放題です。そのため、秘密鍵は、絶対に他の人に知られてはいけません。

この秘密鍵を取得すれば、メタマスク以外のウォレットにもアカウントをインポートできます。trust wallet, safepal, tokenpocketなどEthereumや各種マルチチェーンに対応しているウォレットならどこでも大丈夫です。

③「メタマスクで、Ethereumメインネット, BSC, Polygon…とネットワークを切り替えると、それぞれ受け取りアドレスの文字列が変わる」

誤りである(誤)

ネットワークを切り替えても、0xから始まる受け取りアドレスの文字列は一切変わりません。試してみたらわかると思います。

BSCやpolygonなど、メタマスクで切り替えられるネットワークは、サイドチェーンと呼ばれるもので、要はETHメインネットのパラレルワールドみたいなものです。「ETHはガス代が高い」というのは共通認識かと思いますが、ガス代が高いのはスケーリング問題によるものです。サイドチェーンは、高速で手数料も安く、スケーリング問題の解決策となり得ます。(その代わり分散性やセキュリティを犠牲にしているとの声もありますが)

※正確にはサイドチェーン以外に「レイヤー2」もありますが、レイヤー1(ETHメインネット)のブロックに情報を書き込むという点で、サイドチェーンとは異なります。レイヤー1よりも安い手数料で、レイヤー1と同等のセキュリティ、分散性をもたらすという点で、スケーリング問題解決への最有力候補です。(代表例: zkSync, StarkNet, Optimism, Arbitrum)

④「この中でEthereumメインネットと互換性のないチェーンをひとつ選べ」

AVAX C-chain, BSC, Solana, Fantom Opera

正解: Solana

知識問題です。Solana以外はEVM互換のサイドチェーンです。

蛇足ですが、Ethereumメインネットと互換性があるチェーンがなぜ多いのか。それは、同じプログラミング言語である「Solidity」がappの開発に使えるからです。
サイドチェーンができたのはここ数年の話(メインネットのガス代高騰もここ数年)ですが、ETHメインネットは長い歴史があり、アプリも充実していました。幸い、ETH上には、オープンソースのプロジェクトがほとんどだったため、サイドチェーンの初期段階では、「ETHのアプリを丸パクリして移植する」という動きが活発でした。「ETHは遅いけどBSCは早い」。これにより急速にサイドチェーンが拡大していきました。有名な例だと、BSCのPancakeswap, PolygonのquickswapはUniswapのフォークです。solanaは独自チェーンなので地道に長い時間をかけて開発していくしかなかったです。詳しくは下の記事を読んでみてください。

⑤「Ethereumメインネットやその他EVM互換性のあるチェーンにおいて、1つのニーモニックフレーズ(12もしくは24単語)は、1つの秘密鍵に対応している」

誤りである(誤)

これは正解する必要がない悪問です。1つのニーモニックフレーズによって複数の秘密鍵を生成することができます。そもそもニーモニックフレーズというのは後付けです。その規格の一種で「BIP39」が挙げられます。大して技術系に詳しいわけでもないので深く解説はせずに記事を貼って逃げたいと思います。

なぜこれを知っているのかというと、僕自身、ニーモニックフレーズを秘密鍵に変換したいときがあったからです、それで調べた副産物です。調べてないので知りませんが、「メタマスクにてアカウントを複数作成する」という行為は、一つのニーモニックフレーズから生み出される複数の秘密鍵を表示させることに等しいのかなと考えています。(各ブラウザのメタマスクはシークレットリカバリーフレーズが1つだけ存在しており、秘密鍵はアカウントごとにそれぞれエクスポートできることによる推測)

⑥「あるアカウントにおいて、USDT(ERC20)とwBTC(ERC20)の受け取りアドレスは異なる」

誤りである(誤)

②や③で示した通り、受け取りアドレスは同じです。ERC-○○規格に準拠しているものなら、どんなトークンでもNFTでも0xから始まるアドレスで受け取れます。

トークンは規格に沿って作られます。現在、Ethereumメインネットのトークン規格はERC-20, 721が主流です。ERC20はトークンで、ERC721はNFTです。有名なNFTコミュニティ「club 721」はこれが由来だと思われます。
ERC-1155という規格も標準になっており、面白そうです。下の記事参照。

⑦「Polygonネットワークにおいて手数料の支払い(ガス代)に使われる基軸通貨は?」

正解: $MATIC

知識問題です。Polygonの旧名称は「Matic Network」で、binanceローンチパッド銘柄です。旧名称からリブランディングしたため、最近参入してきた初心者の方は混乱しています。

ネットワークでトランザクションを生成するには、基軸通貨を使って、送金手数料(ガス代)をマイナーに支払う必要があります。ETHメインネットは $ETH, Polygonは $MATIC, BSCは $BNB, Fantomは $FTM…というように、基軸通貨はネットワークごとに異なります。ガス代が不足するとトランザクションの生成が困難になるため、残しておきましょう。

⑧「AMMを採用しているMEV耐性のないDEXにてサンドイッチ攻撃を回避するには?」

正解: スリッページを小さくする

サンドイッチ攻撃とは、トランザクションの順番を入れ替えられるbotがスワップのトランザクションの前と後ろにトランザクションを挟むことで、価格を不正に吊り上げ、意図的に高値掴みさせる手法のことです。
AMMは、自動マーケットメーカーの略称です。uniswapが代表例です。
詳しくは「AMM dex」「MEV問題」「サンドイッチ攻撃」などで調べてみてください。

サンドイッチ攻撃で重要なのが、「価格を不正に吊り上げ、意図的に高値掴みさせる」という点です。被害の例は以下の通りです。
「1ETH → 3000USDTへスワップ」と表示されていた状態でトランザクションを送ると、「1ETH → 2000USDTへスワップ」で約定していた。

スリッページの設定をしておけば、このようなことは起きないです。スリッページの設定とは、「注文レートと約定レートの差を何パーセントまで許容するかを設定すること」です。上記の例の場合、0.5%で設定しておけば、「1ETH → 2985 ~ 3015USDT」のレートで約定します。この価格範囲を超えたらトランザクションが失敗します。

⑨「ユーザーが早くトランザクションを承認させたいときは、gas limitを上げるのが良い」

誤りである(誤)

正答→「ユーザーが早くトランザクションを承認させたいときは、ガス単価(gwei)を上げるのが良い」

送金手数料、つまりガス代は、ガス単価(gwei)とGas Limitの掛け算で決まります。 gas limitは送金手数料の上限の設定であり、トランザクションのデータ量によって変動します。以下の例の通りです。

例: 同じガス単価なのに、トークンの送金には0.02ETHの手数料が、uniswapでのスワップには0.04ETHの手数料がかかる

この手数料の違いは、メタマスクがtxのデータ量に応じて、自動で適切なgas limitに設定した結果です。データ量に起因するものなので、ある意味固定値であると個人的には認識してます。

また、トランザクションを承認するのはマイナー(マイニングをする人)です。我々ユーザーは、手数料を払ってマイナーに承認してもらっているのです。よって、gweiはネットワークの混雑度合いでリアルタイムで変動します。早押しNFT mint大会など、早くtxを承認させたいユーザーたちによるガス戦争で急激に高騰する場合もあります。

マイナーはなるべくガス単価の高い状態でブロックを承認したほうが報酬がたくさん貰えます。よってガス単価を上げたほうが早く承認されます。

「ユーザー目線でトランザクションを早く通したいと考えた時、(マイナーの立場を考えて)このどちらを上げるべきか?」という問題です。たぶん僕の書き方が悪かったと思います。

お疲れさまでした。ほとんどの問題で正解した方は、DeFiやdappを触るための前提知識を持っているはずです。自信もってください!僕自身、まだまだ知識は浅いので精進していきます。ご覧いただきありがとうございました。

Subscribe to fig
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.