Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ブロックチェーン連続講義 第7回 スマートコントラクト

2,321 views

Published on

ブロックチェーンハブ主催で開催しているブロックチェーン連続講義の第7回「スマートコントラクト」のスライドです。2016年4月8日(金) に使用しました。

SlideShare 上ではスライドの中の日本語が表示されないように見えますが、ダウンロードしたものについては正しく表示されます。

Published in: Technology
  • Be the first to comment

ブロックチェーン連続講義 第7回 スマートコントラクト

  1. 1. スマートコントラクト ブロックチェーン連続講義 第 7 回 慶應義塾大学 SFC 研究所 上席所員 斉藤 賢爾 ks91@sfc.wide.ad.jp ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.1/38
  2. 2. 今回のテーマ スマートコントラクト 金融・法曹などさまざまな応用を見据え、ブロックチェーンを ソフトウェアプラットフォームとして活用する技術について、 スマートコントラクト基盤として開発されたイーサリアムを 中心に、イーサリアム仮想マシン (EVM)、外部アクター、 自律オブジェクトなどの概念とスマートコントラクトの応用 可能性について解説します ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.2/38
  3. 3. スマートコントラクト 1. スマートコントラクトって何だろう 2. イーサリアム (Ethereum) 3. ブロックチェーンとスマートコントラクト 4. 地球規模 OS がある暮らし ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.3/38
  4. 4. 1. スマートコントラクトって 何だろう 狭い意味で語る 広い意味で語る スマートコントラクトと自動販売機 契約って何だっけ? ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.4/38
  5. 5. 狭い意味で語る スマートコントラクトとは デジタルに表現される資産を予め定められた ルールに従って自動的に移転させる仕組み 語感とは合わない しかし、この狭義の意味には意味がある ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.5/38
  6. 6. 広い意味で語る スマートコントラクトとは 契約を機械で実装する仕組み また、そのようにして実装された契約 原初的には自動販売機などもスマートコントラクトに 当たる 自動販売機 . . . ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.6/38
  7. 7. スマートコントラクトと自動販売機 自動販売機にまつわるつれづれなる連想をマインド マップにしてみました 関連する領域でいつも例として出てきます ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.7/38
  8. 8. Q. 自動販売機は 1. おカネを入れると品物が出てくる機械である 2. おカネの物理量を判定して動作する機械である 3. 何がおカネであるかを定義する機械である ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.8/38
  9. 9. 自動販売機とコインの正当性 自動販売機は、何がおカネであるかを決める私たちの「心」の機能 を実装している ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.9/38
  10. 10. 補題1 ⇒ スマートコントラクトは私たちの「心」の機能を 実装している ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.10/38
  11. 11. CSP とチョコレート自動販売機 CSP : Communicating Sequential Processes 並行システム内の相互作用を記述する形式言語 例 : チョコレート自動販売機と人間の相互作用 VendingMachine = coin → choc → STOP Person = (coin → STOP) [] (card → STOP) 合成すると . . . VendingMachine |[{coin,card}]| Person ≡ coin → choc → STOP ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.11/38
  12. 12. 補題2 ⇒ 人間はスマートコントラクトの一部である ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.12/38
  13. 13. 現実 vs. ブロックチェーン 思考実験 ビットコインで支払うと、上空を飛ぶドローンが 運んできた缶ジュースを落としてくれるという サービスを作るとする ドローンはいつ缶ジュースを落とせばよいのか? 実時間で進行する現実と、ブロックチェーンの動作は かけ離れている このドローンによる自販機の例は派手なだけ 普通の自販機でもまったく同じことが言える ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.13/38
  14. 14. 補題3 ⇒ ブロックチェーンでスマートコントラクトを実装する ことは不可能である ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.14/38
  15. 15. これまでにわかったこと 1. スマートコントラクトは私たちの「心」の機能を 実装している ⇒ (約束事に関わるので) 社会制度として議論する必要がある 2. 人間はスマートコントラクトの一部である ⇒ 人間を系の一部として議論する必要がある 3. ブロックチェーンでスマートコントラクトを実装 することは不可能である ⇒ 狭い意味に込められた意味は? ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.15/38
  16. 16. 契約って何だっけ? 契約とは (by 広辞苑) 1. 約束 2. 対立する複数の意思表示の合致によって成立 する法律行為 贈与・売買・交換・貸借・請負・雇用・委任・寄託などが その例 成立の本質的要件 当事者間の意思表示の合致 そのためのメディアは 口頭、握手、石に彫る、紙 (手書き)、紙 (印刷)、. . . 機械でできることは? cf.「メディアがメッセージだ」by McLuhan ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.16/38
  17. 17. 2. イーサリアム (Ethereum) ブロックチェーンと状態遷移 EVM (Ethereum Virtual Machine) プログラミング言語 特徴と課題 ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.17/38
  18. 18. イーサリアムとは? Vitalik Buterin, “Ethereum White Paper: A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM” ブロックチェーン技術を応用 平均ブロック間隔約 12 秒 そこにプログラミング言語を載せる チューリング完全 分散アプリケーションのための基盤 現在の金融・貨幣経済システムを時代遅れにしようと する意図が見える スマートコントラクトとはそもそもそういうもの ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.18/38
  19. 19. ブロックチェーンと状態遷移 ブロックチェーン = 状態マシンの run ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.19/38
  20. 20. 用語体系 Ether Ethereum における通貨 外部アクター デジタル署名できる実在で、アカウントをもつ EOA : Externally-Owned Account 自律オブジェクト システム内で自律動作し、アカウントをもつ アカウント Ether 残高をもち、ストレージや EVM コードを もてる EVM コード スマートコントラクトのプログラム ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.20/38
  21. 21. EVM : Ethereum Virtual Machine 自律オブジェクトがメッセージを受けると起動し、コントラクトを実行 実行ステップ毎に Gas の供給が必要 ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.21/38
  22. 22. プログラミング言語 EVM が解釈するのはバイトコード その他に高級言語のコンパイラを用意 高級言語 : 人間が読み書きできる言語 例 : Solidity — JavaScript に似た言語 現在のプライマリ言語 LLL — Lisp に似た言語 ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.22/38
  23. 23. Solidity サンプルコード contract metaCoin { mapping (address => uint) balances; function metaCoin() { balances[msg.sender] = 10000; } function sendCoin(address receiver, uint amount) returns(bool sufficient) { if (balances[msg.sender] < amount) return false; balances[msg.sender] -= amount; balances[receiver] += amount; return true; } } by hshimo さん ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.23/38
  24. 24. 特徴と課題 特徴 ブロックの検証の過程でプログラムを実行し、 その結果を状態に反映させる 複数の検証者が冗長に実行 ブロックチェーンの中に閉じる イーサリアムの体系の中では整合的 課題 プログラムの中から入出力コマンドを出せない 外部アクター以外の外界の影響を受けたり、 外界に直接影響を及ぼすことができない ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.24/38
  25. 25. 3. ブロックチェーンと スマートコントラクト ADEPT と洗濯機 狭い意味で語る意味 コントラクトの真正性 ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.25/38
  26. 26. ADEPT と洗濯機 ADEPT : IBM の IoT 研究プロジェクト ブロックチェーンを用いた洗濯機の例が出てくる 一体何をやる? モーターは制御できない ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.26/38
  27. 27. 狭い意味で語る意味 スマートコントラクトとは デジタルに表現される資産を予め定められた ルールに従って自動的に移転させる仕組み 語感とは合わない しかし、ブロックチェーンで可能なのはこのこと 契約には対価が伴い決済と不可分なので、 これだけでも重要といえば重要 ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.27/38
  28. 28. コントラクトの真正性 誰もが検証者としてブロックの検証とコントラクトの 実行に参加できる ⇒ 誰もがコントラクトのコードにアクセスできる 正しいコントラクトが実行されているかは原理的には 検証可能 入出力はブロックチェーンの外側にあるので、契約の内容全部 を知られることなくそれが可能 ただし、イーサリアムの方法は唯一のやり方ではない cf. observability と verifiability ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.28/38
  29. 29. 4. 地球規模OSがある暮らし ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.29/38
  30. 30. 地球規模OS (2007) 複数主体による地球上の資源の利用を調整する ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.30/38
  31. 31. 基盤としての地球規模OS 金融・貨幣経済システムを時代遅れにする 決済システムを内包 プログラミング言語を内包 ↑ cf. イーサリアム 人的資源を含む地球上の資源の会計システム 新たな「法」を定義できる 人々が業を起こすための基盤 営利組織も、政府も、NPO/NGO も利用できる ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.31/38
  32. 32. 地球規模OSのための応用問題 ヒッチハイク問題 走行中の自動車の空席は近傍の人間が共有できる 資源である 歩行者と運転手がランデヴーし、 目的地へのヒッチハイクを可能にするように ネットワークをプログラムせよ ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.32/38
  33. 33. Uber ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.33/38
  34. 34. 現在の視点から見たゴール Uber のような企業をプログラムとして記述・実行 できるような環境を整え、提供する 実際の Uber もかなり自動化されている それにより 誰もが公益性に主体的に関与するためのコスト・ 敷居を下げる 地球上の限られた資源を有効に活用し、持続的に 生きられる文明への変化に寄与する ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.34/38
  35. 35. アプリケーションから発想する ことは大事 遺言 自動車保険 無尽/頼母子講 ... ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.35/38
  36. 36. 頼母子講 講元が信用のおける仲間を集めてスタートする 仮に毎月 10 万円ずつ持ち寄る仲間が 12 名 → 毎月 120 万円が持ち寄られる 毎月、仲間のひとりが 120 万円を受け取る 12ヶ月後に 12 人目が 120 万円を受け取って終了 地域からお金が逃げない仕組み ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.36/38
  37. 37. そして自動販売機に立ち返って そのスマートコントラクトには「呼び出しボタン」は ついていますか? ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.37/38
  38. 38. ご質問や議論を ブロックチェーン連続講義 第 7 回「スマートコントラクト」 — 2016-04-08 – p.38/38

×