Overview
Computer Science Perspective
Ethereum is a deterministic but practically unbounded state machine.
* a globally accessible singleton state
* a virtual machine that applies changes to that state
コンピュータサイエンス観点では、Ethereumは決定論的だが実用的に境界のないステートマシンである。
- グローバルにアクセス可能なただ一つの状態を持つ
- VMはその状態に変更を適用することができる
Practical Perspective
Ethereum is an open source, decentralized computing infrastructure (that executes smart contracts).
# Providing
* High Availability
* Auditability
* Transparency
Ethereumはオープンソースの分散型コンピューティングインフラ(スマートコントラクトを実行可能)である。
- 高可用性
- 監査性
- 透明性
Compared to Bitcoin
# Sharing
* a P2P network connecting participants
* a byzantine fault-tolerant consensus algorithm# Purpose
* Not Primarily to be a digital currency payment network
* a general-purpose programmable blockchain
Bitcoinと比べると、共通するのは
- P2Pネットワーク
- ビザンチンフォールト耐性のあるコンセンサスアルゴリズム
Ethereumの目的は、
デジタル通貨のペイメントネットワークとなることではなく、汎用的な目的のプログラム可能なブロックチェーン。
Components of a Blockchain
* P2P network connecting
* Messages representing state transitions
* Set of Consensus rules
* State Machine that processes transactions
* Chain of cryptographically secured blocks
* Consensus Algorithm
* Game-theoretically sound incentivization Scheme
* OSSIn Ethereum, rather than a “reference implementation” there is a “reference specification“.
Ethereumには、リファレンス実装でなく、リファレンス仕様がある。
The Birth of Ethereum
* Toward The end of 2013, Vitalik Buterin thought about extending the capabilities of Bitcoin.
* In October of 2013, Vitalik proposed a more generalized approach(flexible and scriptable contracts).
* In December of 2013, Vitalik shared a Turing-complete, general-purpose blockchain.
* In December of 2013, Vitalik and Gavin built the protocol layer that became Ethereum.
* On July 30, 2015, the 1st Ethereum block was mined.
* In September 2017, Vitalik published the article (https://vitalik.ca/general/2017/09/14/prehistory.html).# General-purpose blockchain
* abstract P2P networks and consensus algorithms, etc
* provide deterministic and secure programming environment
Vitalikが2013年にBitcoinの可能性を広げようと考え、Gavinと一緒にEthereumとなるプロトコルレイヤーを構築し、2015/7/30に最初のEthereumブロックがマイニングされた。
汎用目的のブロックチェーンとは、P2Pネットワークやコンセンサスアルゴリズムなどを抽象化し、決定論的でセキュアなプログラミング環境を提供する。
Ethereum’s Four Stages of Development
There are Stages and Intermediate Hard Forks.
* Block #0 Stage: Frontier
Block #200,000 IHF: Ice Age* Block #1,150,000 Stage: Homestead
Block #1,192,000 IHF: DAO
Block #2,463,000 IHF: Tangerine Whistle
Block #2,675,000 IHF: Spurious Dragon* Block #4,370,000 Stage: Metropolis
Block #4,370,000 IHF: Byzantium
IHF: Constantinople* Final Stage: Srenity
Ethereum: A General-purpose Blockchain
Ethereum tracks the state transitions of a general-purpose data store(key-value tuple), instead of tracking the state of currency ownership.
Ethereumは汎用目的のデータストアの状態遷移を追跡する。通貨の所有の状態を追跡するのではない。
Ethereum’s Components
* P2P network -> DEVp2p
*Consensus Rules -> see “Further reading”
*Transactions -> network messages
*State machine -> EVM executes bytecode(Smart contracts)
*Data Structures -> Level DB. Hashed data structure called Merkle Patricia Tree
*Consensus Algorithm -> Now PoW, Near future PoS(codenamed Casper)
*Economic Security -> PoW(called Ethash)
*Clients -> Geth and Parity
Further Reading
- Yellow paper(https://ethereum.github.io/yellowpaper/paper.pdf)
- Beige Paper(https://github.com/chronaeon/beigepaper)
- DEVp2p network(https://github.com/ethereum/devp2p)
- EVM list(https://eth.wiki/en/concepts/evm/ethereum-virtual-machine-(evm)-awesome-list)
- Level DB(https://github.com/google/leveldb)
- Merkle Patricia trees(https://eth.wiki/en/fundamentals/patricia-tree)
- Ethash PoW Algorithm(https://eth.wiki/en/concepts/ethash/ethash)
- Geth Client(https://github.com/ethereum/go-ethereum)
- Parity Client(https://www.parity.io/ethereum/)
Ethereum and Turing Completeness
Ethereum is “Turing Complete”.
* In Turing Complete System, we cannnot predict whether a program will terminate by simulating it.
* Ethereum introduces gas that is a metering mechanism
Ethereumはチューリング完全性を持つ。
チューリング完全性を持つシステムでは、プログラムをシミュレートするまではそれが終了するかどうかは予測できない。
Ethereumは「gas」を使うことでこの問題を解決する。
From General-Purpose Blockchains to DApps
Ethereum’s vision expanded to become a platform for programming DApps.
DApp is composed of at least,
* Smart contracts on a blockchain
* A web frontend user interfaceIn addition,
* Decentralized(p2p) storage protocol and platform
* Decentralized(p2p) messaging protocol and platform
Ethereumのビジョンは、「DAppsをプログラミングするプラットフォームになること」まで広がった。
DAppは、最低でも、
* スマートコントラクトをブロックチェーン上で実行できる
* Webフロントエンドを持つ
追加としてあげるなら
* P2Pのストレージプロトコルとプラットフォームを持つ
* P2Pのメッセージングプロトコルとプラットフォームを持つ
The 3rd Age of the Internet
The Concept of DApps is meant to take the WWW to its next natural evolutionary stage, Introducing Decentralization with P2P protocols into every aspect of a web application.
# Web3.js
* Swarm: an interface to a P2P storage network
* Whisper: a P2P messaging service
DAppのコンセプトは、WWWを次の自然な進化するステージへ連れていくことを目指している。P2Pプロトコルを使って分散化をWebアプリケーションのあらゆる側面に導入しようとしている。
Web3.js
* Swarm:P2Pストレージネットワークのインタフェース
* Whisper:P2Pメッセージングサービス
Ethereum’s Development Culture
In Ethereum, the community’s develompment culture is focused on the future rather than the past.
“Move fast and break things.”
Ethereumでは、コミュニティの開発文化が将来にフォーカスしている。過去ではない。
「素早く動け!物事を壊していけ!」
Why Learn Ethereum?
Blockchain have a lot to learn.
* Programming
* Information Security
* Cryptography
* Economics
* Distributed Systems
* P2P networkEthereum is a great platform for learning about blockchain.
“It’s easy to write code, but it’s very hard to write good and secure code.”
ブロックチェーンには学ぶべきことが多くある。
Ethereumは偉大なプラットフォームでブロックチェーンを学ぶことができる。
「コードを書くのは簡単だが、質が良くてセキュアなコードを書くのは難しい。」