day4. Ethereum(イーサリアム)の概要

Ethereum(イーサリアム)は、デジタル通貨の送金機能以外にアプリケーションの実行基盤を有しています。さまざまな業界や領域での活用が期待されており、デジタル経済の未来を形づく一翼を担うことが期待されています。このガイドでは、Ethereumの概要について解説します。

Ethereum(イーサリアム)は、デジタル通貨の送金機能以外にアプリケーションの実行基盤を有しています。さまざまな業界や領域での活用が期待されており、デジタル経済の未来を形づく一翼を担うことが期待されています。このガイドでは、Ethereumの概要について解説します。

目次

スマートコントラクト

Ethereum(イーサリアム)は、ビットコインのようなデジタル通貨の送金機能以外にアプリケーションの実行基盤としても機能するブロックチェーンです。この実行基盤は、EVM(Ethereum Virtual Machine)と呼ばれるもので、ビットコインのネットワークが単純な分散台帳としての機能を提供しているのに対して、より高度な機能を持っています。具体的には、スマートコントラクトと呼ばれるコードの実行が、この基盤上で可能で、それによって、分散アプリケーション(dApps)が開発・サービス化されています。

スマートコントラクトは、契約や取引の条件と条件を満たす場合に執行される処理の内容についてコード化したプログラムです。コード化し、Ethereumのネットワークに配置(デプロイ)することによって、自動実行させることが可能となります。プログラム化されていることにより人の処理や判断を伴うこれまでの契約・取引と異なり、正確性を期待することができます。

Solidity言語

上述のスマートコントラクトは、Solidityと呼ばれる言語によって記述されています(本チュートリアルを通じたメインのテーマでもあります)。Solidityはスマートコントラクトを開発するのに特化した言語であり、EVM上で実行されるコードを記述するためのツールセットを提供します。以下のような特徴を持っています。

  • 静的型付け言語:Solidityは静的型付け言語です。静的型付けというのは、明示的に変数や関数のデータ型を宣言する必要がある言語のことです。これによりコードの安全性や正確性を高めることができます。
  • オブジェクト指向:Solidityはコントラクトという単位で開発しますが、これは一般的なオブジェクト指向言語のクラスのような概念のものです。コントラクトの中には、変数や関数をを含むことができ、継承やポリモーフィズムといった機能も使用可能です(詳細は後のガイドに譲ります)。
  • イベントとメッセージング:コントラクトではイベントを定義することができます。イベントは何かしらの通知をフロントエンド・アプリケーションに行いたい場合などに有効です。また、コントラクト間では、メッセージング機能を使うことができます。メッセージング機能によって他のコントラクトにデータを送ることができます。

一部、専門的な用語もありますが、今後Solidity言語の章を読み進める中で徐々に理解していただければと思います。

イーサリアム通貨(Ether)

イーサリアムは仮想通貨としての機能もあり、大きい方から順番に、Ether(ETH=イーサ)、Gwei(ギガウェイ)、Wei(ウェイ)という3つの単位で表現されます。この3つの単位の関連性は次のように表すことができます。

1 ETH = 1000000000 Gwei(10の9乗) = 1000000000000000000 Wei(10の18乗)

非常に大きい数字で表現される場合があるため、直感的には非常にわかりにくいかもしれません。そのような場合には、それぞれの単位で表すかを計算してくれる、コンバーターが役に立ちます。

参考)Ethereum Unit Converter

非常に大きい数字で表現される場合があるため、直感的には非常にわかりにくいかもしれません。そのような場合には、それぞれの単位で表すかを計算してくれる、コンバーターが役に立ちます。

Ethereumのネットワーク

Ethereumのネットワークには、メインネットと呼ばれる本番のネットワークとテストネットと呼ばれる開発・テスト目的のネットワークの2つがあります。また、後述するHardhatなどのweb3開発のためのフレームワークを用いて開発する場合、ローカルホスト(ご自身のコンピュータ)上に仮想的なネットワークが作られます。

テストネットには複数のネットワークがあり、それぞれ独自の呼び名を持っています。2023年6月現在メインで利用されているテストネットとしては、GoerliネットワークとSepoliaネットワークがあります(これまで利用できていた、Ropsten、Rinkeby、Kovanは非推奨となっており、今後廃止となる予定です)。

通常の開発の流れは、ローカルで開発・テストを行ったあと、テストネットへデプロイ・テストを行い、全て問題がなければ、メインネットへデプロイする、という順番で行われます。

代表的なトークン規格

ERC(Ethereum Request for Comments)は、Ethereum上でトークンやスマートコントラクトの標準化を目的として提案された規格です。ERC規格は、Ethereumネットワーク上で相互運用性や互換性を確保し、開発者がより効果的にアプリケーションを作成できるようにするために使用されます。以下に代表的なERC規格とその概要を説明します

ERC-20(ERC-677)

ERC-20は、Ethereum上で最も一般的に使用されるトークン規格で、代替性トークンを標準化している規格です。ERC-20トークンは、Ethereumネットワーク上での発行・転送・交換を行うことが可能です。ERC-20では、バランスの確認やトークンの送受信、トランザクションのイベント通知など、基本的なトークン機能を定義しています。ERC-677、777はERC-20を拡張した規格で、ERC-20との下位互換を保ちつつ、拡張機能を備えています。

ERC-20, 677, 777は代替性トークンのための標準規格です。
どちらの1万円紙幣でも同じように1万円分の買い物ができます(代替性)

ERC-721

ERC-721では、非代替可能なトークン(Non-Fungible Token, NFT)の標準化を行っています。ERC-721規格では、一意の識別子(トークンID)を持つトークンを作成することができます。これにより、個々のトークンがユニークであり、異なる価値や特性を持つことが可能となります。ERC-721は、デジタルアート、ゲームアイテム、仮想不動産など、個別の所有権を表現するために広く使用されています。
NFTについては、過去にこちらの記事で詳細をまとめています。よろしければ、ご参照ください。

ERC-721では、非代替性トークンの標準化を行っています。
同じ1万円の価値を持つ絵画でもそれぞれ世界に一つしかないアート作品は唯一無二です

代替性と非代替性
簡単にイメージするには、代替性は通貨のようなもの(Aさんの1万円紙幣とBさんの1万円紙幣は同じ価値)で、非代替性は絵画などのもの(Cさんの手書きで描いた絵とDさんの手書きで描いた絵は同じ金額で販売されいたとしても、それぞれが持つ特徴は異なるのでそれぞれは唯一無二)をイメージするとわかりやすいです。

ERC-1155

ERC-1155は、複数のトークンを1つのスマートコントラクトで管理するための規格です。ERC-1155では、異なるトークンタイプ(代替可能トークンまたは非代替可能トークン)を同じコントラクト内で作成し、効率的に管理することができます。この規格は、ゲーム内アイテムやマルチチェーン環境でのトークン管理など、複数のアセットを効率的に扱う場合に利用されます。

ご意見をお聞かせください!

web3チュートリアルシリーズについてのご意見を是非お聞かせください。

この記事、または、web3チュートリアル全体について、是非、あなたのご意見をお聞かせください。
アンケートはこちらからご回答いただけます。

無料相談承ります

ITの専門家が無料相談を受け付けます。web3以外のテーマでもOKです。

オンラインでの無料相談を承っています。ご希望の方は、お問い合わせフォームよりご連絡ください。
ITの専門家があなたのご質問にお答えいたします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

After joining IBM in 2004, the author gained extensive experience in developing and maintaining distributed systems, primarily web-based, as an engineer and PM. Later, he founded his own company, designing and developing mobile applications and backend services. He is currently leading a Tech team at a venture company specializing in robo-advisory.

コメント

コメントする

CAPTCHA


目次