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&ワークショップ

Made with Slides.com