Blockchainはどう役に立つのだろうか

316237e763c235c1685da56459313534?s=47 drytt
August 16, 2018

 Blockchainはどう役に立つのだろうか

Blockchainの概要、特徴、利用事例、お試し開発をまとめてみました。
1. Blockchainって何?
2. Blockchainって何がすごいの?
3. Blockchainってどう活用されてるの?
4. Blockchainを実際に作ってみた

316237e763c235c1685da56459313534?s=128

drytt

August 16, 2018
Tweet

Transcript

  1. Blockchainは どう役に立つのだろうか 2018.8.31 created by drytt

  2. 目次 2 1. Blockchainって何? 2. Blockchainって何がすごいの? 3. Blockchainってどう活用されてるの? 4. Blockchainを実際に作ってみた

  3. 1. Blockchainって何? 3

  4. Blockchainが話題 「分散型取引台帳」と呼ばれ、世界各国で取り沙汰されている。 • BlockchainならDataの改ざんは不可能である • Blockchainはインターネット以来の革新技術だ • StartUp企業がBlockchainの実証実験を開始した etc. 4

  5. Blockchainが話題 5 ネパール大地震(2015年4月)の 被災者が仮設テント内で BitcoinのQRcodeを掲げる様子  -> 直接寄付可能 出典:https://imgur.com

  6. Blockchainが話題 ->ではBlockchainの定義とは?調べてみると定義は曖昧。 6 ネパール大地震(2015年4月)の 被災者が仮設テント内で BitcoinのQRcodeを掲げる様子  -> 直接寄付可能 出典:https://imgur.com

  7. Blockchainの発祥 仮想通貨Bitcoinの基盤技術として誕生した。 - 2008年11月 Satoshi Nakamotoが論文発表 「Bitcoin: A Peer-to-Peer Electronic

    Cash System」 7 出典:https://bitcoin.org
  8. Blockchainの発祥 仮想通貨Bitcoinの基盤技術として誕生した。 - 2008年11月 Satoshi Nakamotoが論文発表 「Bitcoin: A Peer-to-Peer Electronic

    Cash System」 ->では、どんな技術だと言えるのだろうか。 8 出典:https://bitcoin.org
  9. Blockchainの構成技術 主に次の4つの技術から構成される。 (1) 特有のData構造 (2) P2P (Peer to Peer) (3)

    Consensus algorithm (4) Hash化/電子署名 9
  10. Blockchainの構成技術 主に次の4つの技術から構成される。 (1) 特有のData構造 (2) P2P (Peer to Peer) (3)

    Consensus algorithm (4) Hash化/電子署名 ->それぞれ順に確認していきます。 10
  11. (1) 特有のData構造 BlockというDataの塊を作り、 Blockを連鎖的(chain)に追加していく構造のこと。 - Blockchainという名前の由来でもある。 11 Blockchainの構成技術

  12. (1) 特有のData構造 Block:BlockのDataには大きく次の3つが挙げられる。 - Transaction Data - 前BlockのHash値 - Nonce(Hash用)

    12 Blockchainの構成技術
  13. (1) 特有のData構造 Chain:Blockを連鎖的(Chain)に追加していく。 - 前BlockのHash値を保持し、Block間で繋がりを持つ。 13 Blockchainの構成技術

  14. (1) 特有のData構造 Transaction Data:取引内容を記録し、保持する。 - AさんからBさんへx円を渡した、という  取引情報を保持する - Aさんがx円、Bさんをy円を持つ、という  保有情報は保持しない

    - Aさんの保有情報は、取引情報を集めて算出する 14 Blockchainの構成技術
  15. (2) P2P(Peer to Peer) 端末(Peer)同士で通信を行うArchtecture。 15 Blockchainの構成技術

  16. (3) Consensus algorithm P2PにおけるBlockの合意形成の方法のこと。 - Blockの正当性(不正がないか)を  どのように判断するのか、の決めごと。 16 Blockchainの構成技術

  17. (3) Consensus algorithm Bitcoinでは、Proof of Work(PoW)を採用している。 - 最も仕事(計算処理)をした人がBlockの正当性を 判断する。 -

    「前BlockのHash値」と「任意のNonce」から 特定のHash値を探し、一番早く見つけた人が Blockを追加する権利を持つ。 17 Blockchainの構成技術
  18. (3) Consensus algorithm 特定のHash値を探す作業をMiningと呼ぶ。 - Hash値を探す作業は手間。  (膨大なComputer powerが必要となるよう設計) - Blockの追加(生成)には時間がかかる。

    18 Blockchainの構成技術
  19. (3) Consensus algorithm PoW以外にも考案されている。 19 Blockchainの構成技術 名称 略称 合意基準 Proof

    of Work PoW 仕事量 Proof of Stake PoS 保有量 Proof of Importance PoI 保有量+取引数 Proof of Consensus PoC 予め設定した承認者
  20. (4) Hash化/電子署名 Security強化と利便性向上にHash化と電子署名を活用。 - Hash化 Hash値へ置換。Data管理などに利用。(SHA256等) - 電子署名 公開鍵暗号方式。取引のなりすまし防止などに利用。 20

    Blockchainの構成技術
  21. (4) Hash化/電子署名 Security強化と利便性向上にHash化と電子署名を活用。 - Hash化 Hash値へ置換。Data管理などに利用。(SHA256等) - 電子署名 公開鍵暗号方式。取引のなりすまし防止などに利用。 ->

    以上4つの技術をまとめると? 21 Blockchainの構成技術
  22. Blockchainの技術的イメージ 複数人のP2PNetworkがあって、 22

  23. Blockchainの技術的イメージ ある取引が発生すると、 23 Bさんへ100コイン支払う

  24. Blockchainの技術的イメージ 電子署名を利用しながらTransaction Data(TR)を作成し、 24 TR

  25. Blockchainの技術的イメージ Transaciton Dataを他のNode(Miner)へ配布して、 25 TR TR TR TR

  26. 複数のTransaction Dataを集めてBlockにして、 Block Blockchainの技術的イメージ 26 TR TR TR Block Block

  27. Mining(Hash)し、 Block Blockchainの技術的イメージ 27 TR TR TR Block Block

  28. 最も早くMiningを終えた人(PoW)が、 Block (Mining済) Blockchainの技術的イメージ 28 Block Block

  29. 新しいBlockを既存Blockへ追加(Chain)する。 Block (Mining済) Blockchainの技術的イメージ 29 Block Block Block Block Block

  30. Blockchainって何?の回答 次のように定義できると考えます。 - 暗号化されたTransaction Dataと  付随するData(Block)を、Network内の  参加者Node間で、連鎖的(Chain)に追記していく  分散コンピューティングの考え方を用いた技術 30

  31. (参考) JBAによるBlockchainの定義 JBA(日本ブロックチェーン協会)の定義は次の通り。 (2016年10月3日 Posted) 1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその 時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロック チェーンと呼ぶ。」 2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、 且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、

    高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼 ぶ。」 31
  32. (参考) Blockchainの分類 32 出典:金融ソリューション ~ブロックチェーン技術への取り組み~ (Fujitsu Japan)

  33. 2. Blockchainって 何がすごいの? 33

  34. Blockchainのすごさ Blockchainの構成技術から次のメリットが考えられる。 34

  35. Blockchainのすごさ Blockchainの構成技術から次のメリットが考えられる。 -> それぞれ順に確認していきます。 35

  36. (1) Dataの改ざんが困難   前述の構成要素により、改ざん困難である。 - 特有のData構造 -> Blockの連動性 - P2P (Peer

    to Peer) -> Dataの分散管理 - Consensus algorithm -> Block確定/変更に膨大な手間 - Hash化/電子署名 -> Dataの暗号化 36 Blockchainのすごさ
  37. (1) Dataの改ざんが困難   前述の構成要素により、改ざん困難である。 - 特有のData構造 -> Blockの連動性 - P2P (Peer

    to Peer) -> Dataの分散管理 - Consensus algorithm -> Block確定/変更に膨大な手間 - Hash化/電子署名 -> Dataの暗号化 -> 具体例を見てみます。 37 Blockchainのすごさ
  38. (1) Dataの改ざんが困難 例えば、過去のあるBlockを改ざんする場合 - Block(前BlockのHash値)の整合性が取れるように  するため、後続のBlock全てのHash値を探し直さ  なければならない - Hash値の探し直しには膨大なComputer Powerが

     必要となり、非現実的である 38 Blockchainのすごさ
  39. (1) Dataの改ざんが困難 例えば、新しく追加するBlockを改ざんする場合 - Block確定まで後続Blockを他の参加者より  早くMiningし続けなければならず、膨大な  Computer powerが必要となり、非現実的である。 - (Bitcoinの場合)仮に膨大なComputer

    powerを  持っていても、不正を働かずに正しくMining  した方が金銭的インセンティブがある。(Mining報酬) -> 改ざんは本当に不可能? 39 Blockchainのすごさ
  40. (1) Dataの改ざんが困難 攻撃方法は既に存在する。不可能とは言えない模様。 - 51% Attack - Sybil Attack -

    Block withholoding attack - DDos (To Mining pool)  etc. -> ハッキング被害の実例を確認します。 40 Blockchainのすごさ
  41. (参考) Monacoin事件 2018年5月、Monacoinが盗難被害。被害額は推定9万$。 - Monacoinは、Consensus algorithmとしてPoWを採用。 - ただし、Bitcoinとは異なり、必要となる「膨大なComputer Power」  を低く設計していた。(取引速度を早めるため)

    - 同時にBlockが生成された場合、後続Blockが長く連結された方が  採用される特性を活かして、攻撃。 - 一度確定したBlockchainよりも長いBlockchainを隠し持っておき、  Blockを再編成させる。一度送金・出金したBlockchainを、隠し持って  いたBlockchainで再編成し、初めの出金は「なかったこと」にし、  再送金する。(2重支払いの成功) -> 問題の原因は、Blockchain技術自体ではなく、  その設計にある。 41 Blockchainのすごさ
  42. (2)管理者なしで価値移転が可能 Dataの改ざんと2重支払いの問題が解消するため実現。 お金を取り扱えるようになったことが画期的。 - 電子Dataは改ざんされる恐れがある。  前述の通り、改ざん困難である。 - 2重支払いの問題が有る。  前述の、特有のData構造とConsensus algorithmに

     より解消する。 42 Blockchainのすごさ
  43. (2)管理者なしで価値移転が可能 管理者不在による付随メリットもあり。 - 管理者による利用設定/制限がない。 - システム利用料や取引手数料が安い。(または不要) 43 Blockchainのすごさ

  44. (3) 高いSystem可用性 P2PでのDataの分散管理による恩恵。 0 Downtimeを実現できる。 - 一部のPeerが故障しても、継続して運用できる。 44 Blockchainのすごさ

  45. (4) Traceability (追跡可能性) 特有のData構造による恩恵。 - 過去の全てのTransaction Dataの確認ができる。 - 取引内容の透明性が高いことも長所と言える。 45

    Blockchainのすごさ
  46. (4) Traceability (追跡可能性) 特有のData構造による恩恵。 - 過去の全てのTransaction Dataの確認ができる。 - 取引内容の透明性が高いことも長所と言える。 ->

    では、Blockchainは万能なのだろうか? 46 Blockchainのすごさ
  47. Blockchainのまずさ 戻せないし、変更できない。技術的課題も有る。 - 取引・記録を戻せない/消せない  バグや取引誤りの場合でも戻すことができない - Systemの変更は困難  Network内全参加者の合意が必要となり、  機能向上やバグの改修などでもSystemの変更が困難 -

    その他、拡張性や処理速度、確定までの処理時間等有り 47
  48. 3. Blockchainって どう活用されてるの? 48

  49. Blockchainの活用Step 一般的に3段階に分けられる。今は2.0から3.0への過渡期。 49 活用Step 適用分野 Blockchain 1.0 仮想通貨(Bitcoin、Altcoin) Blockchain 2.0

    金融分野(仮想通貨以外) Blockchain 3.0 金融分野以外
  50. Blockchainの活用Step 一般的に3段階に分けられる。今は2.0から3.0への過渡期。 -> 具体的なserviceを確認していきます。 50 活用Step 適用分野 Blockchain 1.0 仮想通貨(Bitcoin、Altcoin)

    Blockchain 2.0 金融分野(仮想通貨以外) Blockchain 3.0 金融分野以外
  51. (1) Everledger Diamondの取引履歴や所有権を管理するService。 - 2015年4月に設立されたLondonに拠点を置く同名の  StartUp企業Everledgerが開発。 - 世界の主要なDiamond認証機関と連携し、100万個以上  のDiamondの特徴をブロックチェーンへ記録し管理。  (刻印されたserial

    number、形状、size、carat等) 51 BlockchainのService
  52. (1) Everledger 52 BlockchainのService 出典:EDGE 2016 – The Power of

    the Individual (CUTDOWN version)
  53. (1) Everledger - Blood Diamond問題に加えて、Diamondの来歴は  未だ紙での管理であり、紛失や改竄、詐欺の可能性  を含んでいる問題への解決策。 - Blockchain上の情報(取引履歴や鑑定証等)を  警察や保険会社も参照できるようにしたことで

     鑑定証偽造や詐欺問題解決に貢献している。 53 BlockchainのService
  54. (2) OpenBazaar 仮想通貨で支払い可能な分散型Free Market Place。 - 2014年4月、Amir Taakiらがprototype(Dark market)を  発表。その後Brian

    HoffmanがFolkし、OpenBazaarへ  改名して開発。 - Platform自体ではなく、仮想通貨の支払や、  通貨と商品の交換を安全に行うための仕組みに  Blockchainが利用されている。 54 BlockchainのService
  55. (2) OpenBazaar - 従来のECサイトでは、管理者が取引品目に制約を  課したり、取引手数料を取ったり、情報漏えいの  リスクがある問題への解決策。 - 世界30カ国以上で、音楽、Game、Fashion類、  家の賃貸、食品などが取引されている。 55

    BlockchainのService
  56. (3) ascribe デジタルアートの権利発行、真贋確認など - 2013年開発開始、2014年には同名のStartUP企業が Berlinで設立され、2015年には200万$の投資を受けるなど して話題になった。 - BitcoinのBlockchainを上書きする形で、作品の来歴など を記録して管理。

    - 2018/8/14 近日中のservice終了が宣言される。 56 BlockchainのService
  57. (4) CryptoKitties 仮想通貨(Ethereum)を使った仮想猫の育成ゲーム。 57 BlockchainのService

  58. (5) つくば市電子投票(実証実験) マイナンバーカードを活用した電子投票を実施 58 BlockchainのService 出典:つくば市

  59. (6) その他 - binded (著作権管理) - Follow My Voat (選挙)

    - LO3 Energy (電力取引) - Provenance (物流管理) - zenport (貿易取引の信用状の電子化)  etc. 59 BlockchainのService
  60. 4. Blockchainを 実際に作ってみた 60

  61. 前提知識(関連用語) 関連用語を確認します。 - Smart Contract 決められたある条件を満たすと自動的に契約(コントラク ト)を実行するCodeのこと。 (例)自動販売機 - Dapp

    (分散型Application) 従来の中央管理型ではなく、 BlockchainとSmart Contractを活用したもの 61
  62. 前提知識(関連用語) 関連用語を確認します。 - Blockchainの基盤は複数ある Bitcoin/Ethereum/Hyplerlegder fabric etc. - Blockchain(Contract)の開発言語は複数ある (Ethereum) Solidity/Serpent/Viper etc. 62

  63. Blockchainの作り方 Dappの作り方を調べて実装する。 - P2Pネットワークの構築から? - Ethereumに手軽に開発ができるようになる Framework(Truffle Suite)有り。 - TruffleのTutrorialをご紹介します。

    63
  64. ETHEREUM PET SHOP -- YOUR FIRST DAPP Demo 64

  65. Demoのシステム概要図 65

  66. (1) Ganache起動 66 Demo内容

  67. (2) Contract Compile & Deploy 67 Demo内容

  68. (3) MetaMask起動 68 Demo内容

  69. (4) Lite Server起動 69 Demo内容

  70. (5) Adoptボタン押下 70 Demo内容

  71. どうやって作った? 主に以下です。 (1)Contract記述 (2)Dapp作成 (3)Tool活用 71

  72. (1) Contractの記述 pragma solidity ^0.4.4; contract Adoption { address[16] public

    adopters; function adopt(uint petId) public returns(uint) { require(petId >= 0 && petId <= 15); adopters[petId] = msg.sender; return petId; } function getAdopters() public returns(address[16]) { return adopters; } } 72 どうやって作った?
  73. (2) Dapp作成 Javascriptで各種記述。 - Web3 objectのInstance 化 - ContractのInstance化(Truffe-Contract) Web3へContractの情報(位置、動作等)を渡す

    - 画面表示・更新とボタン操作の処理 73 どうやって作った?
  74. (3) Tool活用 その他の部分についてはToolを活用して解決できる。 - Ethereum 手軽にBlockchainを構築できる。 74 どうやって作った?

  75. (3) Tool活用 その他の部分についてはToolを活用して解決できる。 - Truffle(Truffle Suite) 手軽にContractのCompile、Deploy、Local web serverを準備 -

    Ganache(Truffle Suite) Blockchain可視化、Ethereum Clientの作成 etc. 75 どうやって作った?
  76. (3) Tool活用 その他の部分についてはToolを活用して解決できる。 - Web3 API。DappとEthereum間のInterface。 - MetaMask Ethereum Wallet。手軽にEtherの支払を連動。

    76 どうやって作った?
  77. Demoのシステム概要図(再) 77

  78. Demoシステムのメリット 前述のBlockchainのメリットを実現できている。 - データの改ざんは困難 - 管理者なしでペットの所有権を移転 - 高いSystem可用性 - Traceability

    78
  79. Demoシステムの課題 実際にServiceとして公開するには課題がありそう。 - 実物(pet)の受け渡しの確実な履行 - UI提供者が必要?(結局、管理者は必要?) - 利用者が増えた場合のMinerの確保 etc. 79

  80. 作ってみた所感 - Dappは想像以上に手軽に作ることができる。  有用なPlatformやToolが豊富に用意されているため。 - 習得すべき知識はたくさんある。  用語、Platform、Framework etc. - まだまだ知らないこと、分からないことばかり。

    80
  81. 以上 81