💻

[Blockchain]Ethereum開発における基礎知識

2022/11/10に公開約2,600字

Ethereumの概要

  • Ethereum
    • BitcoinなどのBlockchainの一種
    • EthereumのBlockchainで流通できるEtherが存在する
    • Public/Privateなどの種類がある
      • Public:全世界のnodeからアクセスできる
        • Main Net:Etherに金銭的な価値がある(取引所などで扱える)
        • Test Net:Etherに金銭的な価値がない(取引所などで扱えない)
          • ※技術的にはMain Netと全く同じ
      • Private:特定のnodeのみで構成したり、ローカルで起動したりする

Contractの概要

  • Contract(狭義)
    • Ethereum Blockchainで起動できる単純なプログラム
    • Ethereum Blockchainにアドレスを持って存在することができる、データ(状態)とコード(関数)の集合体
    • Solidityという高級言語で開発できる
    • Object指向言語でいうSingleton Object的なあれ
      • 「Contract = Ethereum Blockchain上で唯一のSingleton Object」のイメージ

Layerとは何か?

  • Layer0
    • 異なるBlockchain ネットワークを接続するプロトコル
    • 互換性のないBlockchain(EthereumとBitcoinなど)同士の通信(データの送受信)などが可能
  • Layer1
    • Bitcoin、Ethereum、Solanaなどの基盤となるBlockchainネットワーク
    • 他のネットワークを必要とせず、取引を検証し確定することが可能
  • Layer2
    • トランザクションをLayer1外部(オフチェーン)で処理することで、スケーラビリティ(拡張性)問題を解消するソリューション
    • 例えばLayer1であるEthereumが約10rpsなのに対し、Layer2のPolygonは約5000rpsと言われる
  • Layer3
    • Blockchian基盤上で動作するSmart Contractを使用したアプリケーション(DApps)
    • ERC20(暗号資産)やERC721(NFT)も含まれる


引用元:https://medium.com/@nick.5montana/blockchain-layers-l0-l1-l2-l3-in-a-diagram-569162398db

ホスティングサービスとは何か?

  • PublicなBlockchain(MainnetとTestnet)に対し、Contractのデプロイ/トランザクションの確認などを行うためのBlockchain Nodeをホストするサービス
  • 自前でクラウドサービス(AWSやGCP)にBlockchain Node用の仮想サーバーを立てる労力を省くことができる
  • Testnetにデプロイして動作確認をするくらいであれば、無料で使用できる
  • 以下が主要なサービス

Testnetとは何か

  • 流通通貨に価値はないが、Publicに公開されているBlockchain基盤
  • アルゴリズムやBlockchain自体のソースコードに違いは(ほぼ)ないが、Testnet上の流通通貨に価値はない(市場で取引がされていない)
  • Ethereumには、Ropsten/Kovan/Rinkeby/Goerliなど複数のTestnetが存在する
  • Testnet上の流通通貨は、Faucetと呼ばれる発行体から流通通貨を得る必要がある

開発で使用するツールなど

(情報古め)

  • Ganache
    • ローカルで小規模にPrivate Ethereumブロックチェーンを構築できるツール
    • Solidityで開発したContractを、ローカルで実行する際に必要
  • Truffle
    • SolidityによるEthereum開発フレームワーク
    • Solidityのコンパイル、テスト、デプロイを数コマンドで実行できる
    • RubyのRails的なやつ
  • OpenZeppelin
    • Ethereum開発で必要なInterfaceなどを提供してくれるライブラリ
    • ERC20(仮想通貨)やERC721(NFT)のInterfaceが定義されている
    • OpenZeppelinを使用すると、ERC20の実装が簡単にできる(※後述)
  • Metamask
    • Ethereumブッロクチェーンのアカウント管理ウォレット
    • Ethereumブッロクチェーンに関連する仮想通貨(ERC20)を管理できるChrome拡張アプリ
    • Ethereumブロックチェーンに関連するDAppsを使用する際に必要となる

Discussion

ログインするとコメントできます