smart (contract) vision
What's see the concept?

decentralization
decentralization?
『ON DISTRIBUTED COMMUNICATIONS NETWORKS』Paul Baran. September. 1962
http://pages.cs.wisc.edu/~akella/CS740/F08/740-Papers/Bar64.pdf


『The Meaning of Decentralization』February. 2017
http://pages.cs.wisc.edu/~akella/CS740/F08/740-Papers/Bar64.pdf
コンセンサスの安全性の背後にある数学的および経済的な推論は、しばしば非協調選択モデル、またはゲームが独立して決定を下す多くの小さなActorで構成されているという仮定に大きく依存・・・有益な調整と有害な調整を区別し、前者をより簡単にし、後者をより難しくする。・・・分権化、望ましくない調整回避としての分権化は、おそらく達成するのが最も困難であり、トレードオフは避けられません。
digression





Optimum Currency Areas
decentralization background
- data
- network
- machine power
- process(program, model)
・
・
・
IPFS
P2P
Concensus,
Protocol, etc...
- programable
- stored process
- persisitent script
- contract(smart contract)

contract
OverView
smart contract is overview.
private - public platform.
※under the figure not all platform.
public
private
consortium
Fabric/Sawtooth/Iroha






Ethereum
different(to bitcoin)?
Feature
- Usecase General (not only currency: EIP)
- Programable(Turing-complete)
- EVM
- Data Structure
- ...etc(and case Ethereum 2.0)
Usecase General
利用ケースは汎用的(通貨としての機能は一つのユースケース)
(例)
dex,dapps
oracle(provable...)
未来予測市場(augur...)
分散デジタルID(uPort...)





Programable
・ブロックチェーン上にプログラムを配置(デプロイ)してブロックチェーン上で動作させることが可能
・複雑なプログラムも記述して可能(チューリング完全)


EVM
プログラムの実行環境を提供する仮想マシン。Windows/macOS/Linuxなどの様々な環境上で同じようにプログラムを動作させることが可能。



(EVMは)ステートマシンとしてトランザクションの履歴を保存するなど状態を保存。

Data Structure
各ノードのlocal databaseにトランザクションとシステムの状態を保存。
light client
ライトクライアント(ビットコインのSPVクライアントと類似)は、
・トランザクションの検証にブロックヘッダーをフルノードから取得して検証
・マークルプルーフを用いてブロックチェーンにトランザクションが含まれているかを検証
※いずれも検証しないものはリモートクライアントとして区別
full node
フルノードは、
・イーサリアムブロックチェーンの完全なコピーを保存
・保持する全てのトランザクションについて検証可能
...etc

2019年頃の動き

Mastering Ethereum
1章
- 歴史/開発段階
- 構成要素(省略)
- チューリング完全性

チューリング完全性により、
・結果として条件分岐やloopなども含めてアルゴリズムとして表現して処理が可能
同時にプログラムを実行せずにそのプログラムが終了するのか、またどのくらいの時間実行されるかは予測できない(停止性問題)
よって意図的かどうかによらずプログラムが終了しない場合、結果として無制限にリソースを消費し続ける(ある種のDoS攻撃)
スマートコントラクトで使用されるリソースを抑制するのはどうすればよいか?
difficulty, gas
Ethereumを学ぶ理由をいくつか
2章
- イーサの通貨単位
- MetaMask
- 外部所有コントラクト(EOA)とコントラクト
- コントラクト作成, デプロイ
- Ethereumテストネットワークにてdemo(WS形式)
イーサの単位名

MetaMask





remix





まずここまで一緒に
sample
// Version of Solidity compiler this program was written for
pragma solidity ^0.4.19;
// Our first contract is a faucet!
contract Faucet {
// Give out ether to anyone who asks
function withdraw(uint withdraw_amount) public {
// Limit withdrawal amount
require(withdraw_amount <= 100000000000000000);
// Send the amount to the address that requested it
msg.sender.transfer(withdraw_amount);
}
// Accept any incoming amount
function () public payable {}
}実機demo&ワークショップ
smart contract
By Akira Tamai
smart contract
- 79