イーサリアム ブロックチェーン 第4回  イーサリアムの動作と仕組み編

イーサリアム ブロックチェーン 第4回  イーサリアムの動作と仕組み編

はじめに


今回は、Ethereumの動作と仕組みについて説明します。
本記事は、過去にコンセンサス・ベイスが主宰していたオンラインサロンの記事です。記事は2017年~2018年にかけて執筆されたため、一部は、既に古くなっている可能性があります。あらかじめご了承ください。

今回の内容


動作と仕組みについて説明します。

ゴール


Ethreumの具体的な動作を知り、コントラクト開発、配置のイメージをつかむことを目的とします。

ターゲット


Ethereumに興味がある方を対象としています。

前提知識


一般のプログラミングやネットワークの基本及びBitocoinやブロックチェーン技術の基礎を前提知識とします。

当シリーズを第1回から読んでおくことを推奨します。

第1章 Ethereumとビットコイン


Ethereumはビットコインに影響を受けており、基本的な考え方や仕組みは似ています。具体的な動作の説明の前にまずはビットコインと比較しながらEthereumの特徴をおさらいしましょう。

ビットコインを同じ部分

  • ネットワークが分散型であること
  • 管理者が不在なこと
  • 誰でもいつでも参加できること
  • データがブロックチェーンと呼ばれる形で保存されること
  • データが参加者全てに公開されること
  • データの改ざんが困難であること
  • Proof of Workを利用 (Ethereumは将来的にProof of Stakeに変更予定)

ビットコインと異なる部分

  • 内部通貨は、ビットコインではbitcoin(BTC)ですが、Ethereumではether(ETH)
  • Ethereumのコントラクト作成用スクリプト言語がビットコインのScriptに比べ高機能
  • スクリプト言語がデータを保持、利用することができる
  • 承認時間がビットコインでは平均10分ですが、Ethereumでは平均10秒台
  • Ethereumではマイニングプールへの中央集権化を防ぐため、ASICと呼ばれるマイニング専用の機器への耐性がある

第2章 手数料


Ethereumで行う処理では第3回で説明したGasと呼ばれる手数料がかかる場合があります。

手数料がかかる主な機能


Ethereumのネットワークに対してできる命令はブロックチェーン上で処理をしたり、データを書き込んだりしてチェーンの状態を変更するため、手数料がかかります。命令は大きく分けて以下の3つです。
  1. etherの移動命令
  2. コントラクトコードの配置(デプロイと呼ばれる)
  3. コントラクト機能への動作命令

手数料のかからない主な機能


以下のような機能はクライアントで処理が完結するため、チェーンの状態を変更しないので手数料はかかりません。
  • ブロックや取引データの確認
  • ネットワーク状態の確認
  • アカウントの作成、管理
  • ウォレット(etherの送受信、残高管理)

第3章 コントラクト

コントラクト動作の流れ


Ethereumにおけるコントラクトコードの作成からブロックチェーン上への配置、利用の流れを説明します。
  1. コントラクト・コードの作成配置
    1. まずコントラクトと呼ばれるプログラムを作成します。
    2. プログラムをコンパイルします(バイトコードと呼ばれる形式に変換されます)。
  2. コントラクト・コードの配置
    1. コンパイルしたプログラム(バイトコード)を、ブロックチェーンに送付して配置(デプロイ)します。
    2. 配置されると、そのコントラクトのアドレスが返ってきます。
  3. コントラクト・コードの実行
    1. コントラクトのアドレスに向かってプログラム実行のメッセージを送ります。
    2. ブロックチェーン上のプログラムが動作します。

smart_contract.png

コントラクト記述用言語


Ethereumでは、いくつか独自のコントラクト記述用のプログラミング言語が存在します。現時点で最も利用されているのはJavaScriptに似たSolidityという言語です。次にPythonに似たSerpent(廃止予定。コンパイラの不具合と不人気によるものと思われます)です。過去にはLispのようなLLL、C言語のようなMutanと言われるものもありました。将来的には、Vitalik Buterin氏が開発しているViperや、関数型言語なども検討されています。

The DAOの事件後、よりバグの出にくい開発環境やツール、プログラミング言語に注目が集まっているため、今後よりセキュアなコードを書くための環境は整っていくと予想されます。現在でも、OpenZeppelinと呼ばれるセキュアコーディング用のフレームワークなどが開発されています。

免責事項


本記事に掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。

技術・サービス・実装方法等のレビュー、その他解説・分析・意見につきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。

会社紹介

弊社(コンセンサス・ベイス株式会社)は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などありました、お気軽にお問い合わせください。

会社ホームページ
https://www.consensus-base.com/

ブロックチェーンの専門企業で働いてみませんか?

当サイトを運営するコンセンサス・ベイス株式会社では、エンジニア、プロジェクトマネージャー、ライターなど、様々なポジションで一緒に働いてくださる仲間を募集しています。

ブロックチェーン業界にチャレンジしてみたいあなたのご応募をお待ちしております!

イーサリアム(Ethereum)カテゴリの最新記事