Slide 1

Slide 1 text

ブロックチェーンまとめ 近藤 晴輝

Slide 2

Slide 2 text

ブロックチェーンとは ①正しい記録した記録できず、記録を変更・改ざんできない ②管理者不在で、参加者全員で共有・運用する (p2p?) ③ネットワーク共有型データベース →取引の履歴を記録したデータベースの一種 ⇒価値の流通を記録したデータベース →ビットコイン、FinTechから生まれた次世代技術

Slide 3

Slide 3 text

ブロックチェーンの特徴 ①ルールに従った書式のデータだけが記録される ②参加者全員によって合意されたデータだけが有効となる ③一度書き込まれたデータは変更も削除もできない ④システム全体を止めることはできない

Slide 4

Slide 4 text

なぜブロックチェーンがなぜ注目される? インターネット以来最大の発明と言われる。 社会におおきなインパクトを与える。 →ビットコイン、仮想通貨(暗号資産)、デジタル通貨 →デジタル決済、送金 ⇒金融分野と非金融分野にも応用して適用できるのではないか? ⇒ブロックチェーン2.0、3.0 ⇒ブロックチェーン関連の潜在市場規模は、「67兆円」

Slide 5

Slide 5 text

何がすごいのか? サービスを非中央集権化する。(キーポイント) ⇒p2p 中央集権化:間に管理者がいる「政府や銀行がいる。」 非中央集権化:管理者がいなくても取引できる。 ブロックチェーンだと、「取引のデータが正しい」と言える 仕組みを持っているから。 ⇒従来だと管理者がいることで、 取引データを正しいを担保している。

Slide 6

Slide 6 text

データの正しさを担保する仕組み ①オープンな台帳(データベース??)に取引履歴(トランザクション) をブロックと呼ばれる単位で格納しつなげる。 ②ブロックをつなげるのにナンスという値を設定し、 取引データ(トランザクションデータ)を書き換えるのに、 莫大なマシンパワーが必要とした。 ⇒データの書き換えを困難にした。 ⇒耐改ざん性と透明性 ⇒量子コンピューティングにも耐えられる??

Slide 7

Slide 7 text

ナンスの仕組み ただ繋げるだけだと、書き換えられる。 ⇒それを防ぐために「ナンス」を設定した。 ⇒一番最初に「ナンス」を見つけた人が報酬を得る (マイニング、競合ルール) あるブロックのナンスを書き換える場合、それ以降の全ての ブロックのナンスも書き換える必要がある。 ⇒再計算すれば、書き換えられるが、現実的ではないため、 今のPCの計算能力では、改ざん不可能。 ※ナンス:高性能なPCでも10分ほど計算しないと求まらない値 (使い捨ての数字)

Slide 8

Slide 8 text

なぜ非中央集権が注目されているのか? 中央集権に対する反発の強まり。。 GAFAなどのメガプラットフォーマー「管理者」にデータを 独占されるから。。 ⇒AI、ディープラーニング、監視社会、量子コンピューティング ⇒権力や利益が特定企業に集中してしまうから。。 ⇒中央が力を持つ時代から個人が力を持つ時代へ

Slide 9

Slide 9 text

ビットコインとは何か?? インターネット上で使う事の出来る電子通貨。 ①発行や取引を管理者なしで実現する電子通貨 ②物理的なコインではなく、電子データとして存在する。 ③金融機関を使う事なく、インターネット経由で直接使える。

Slide 10

Slide 10 text

なんで生まれたのビットコイン? 2008年に「ナカモトサトシ」が管理者のいない電子上の通貨 ⇒非中央集権化の通貨を創ろうとした。 従来:手数料、プライバシーの把握、銀行の弊害 ビットコイン:個人同士で直接取引できる仕組み ビットコインを実現するために生まれた技術 ⇒ブロックチェーン ⇒データの改ざんや二重払いをできなくする。

Slide 11

Slide 11 text

ビットコインの使い方 取引所で口座を開設する。 ⇒仮想通貨ライセンスを持っているか? 日本円⇒ビットコイン ウォレット:ビットコイン上の財布、送金や残高確認ができる アドレス:お金の送付先(銀行の口座番号)

Slide 12

Slide 12 text

ビットコインを入手する方法 ①買う(法定通貨と交換する。) ②受け取る(ECサイトで商品購入するサイトがある。) ③マイニングする(ナンスを見つけ、ブロック作成)

Slide 13

Slide 13 text

ビットコイン実現への課題 ①データの偽造 ②二重支払い ⇒取引データ(トランザクション)の作成に、電子署名 一定時間ごとにブロック ナンスを必要とする「プルーフオブワーク」 ⇒電子署名には、送信する側の秘密鍵と公開鍵が必要

Slide 14

Slide 14 text

電子署名(デジタル署名) • 電子的な署名(ハッシュ値) • 「本人が行ったこと」、「データが改ざんされていないか」 を証明する技術のこと ・CA(認証局)

Slide 15

Slide 15 text

ブロックチェーン 一定時間ごとにトランザクションデータをブロックにまとめる ブロックの内容: ①取引データ(トランザクション)②ナンス③前ブロックのハッシュ値 取引データ 送金金額、送金日時、送りて受け取りてのアドレス ブロックに前のブロックのハッシュ値を入れる事で、 データに偽造があったら検知できるようにしている。

Slide 16

Slide 16 text

プルーフオブワーク(セキュリティの根幹) 莫大な計算を行った証拠を意味する。 データ偽造や二重払いを防ぐ仕組み。 新規ブロックのハッシュ値が「一定以上の0が続く」ものに なるようなナンスの値を求めること。 ⇒総当たり法でしか試さなければならない。 ナンスの値が見つかったら新しいブロックが作成される。 ⇒改ざんするためには、最新のブロックまでの再計算する必要あり

Slide 17

Slide 17 text

マイニング • 取引の承認に必要な計算を実行した人に、 ビットコインを付与する仕組み。 ⇒最初にナンスの値を求めた人に報酬としてビットコイン付与 ・プルーフオブワークを実行して承認を行う必要がある。 ⇒だれもプルーフオブワークをやらなかったらナンスができない ⇒管理者がいないので、計算に対して経済的インセンティブが必要。 ⇒自律的にマイニングする人が必要。(お金稼げる??)

Slide 18

Slide 18 text

ブロックチェーンの状況 ブロックチェーンの種類 オープン型とクローズド型 オープン型: ⇒ビットコインはこっち 誰でも参加可、参加者母数確定不可、管理者がいない クローズド型: ⇒リブラはこっち 特定の参加者のみ可、母数を確定できる、中央管理者いる

Slide 19

Slide 19 text

オープン型とクローズド型 取引の承認(合意形成)のアルゴリズムに大きな違いが出てくる。 ⇒オープン型だと厳密なアルゴリズムが採用される ⇒プルーフオブ和ワーク パーミッションドブロックチェーン コンソーシアムブロックチェーン

Slide 20

Slide 20 text

ブロックチェーンのメリットデメリット ・メリット: サービス事業者や管理者でもデータの変更や修正ができない ⇒管理者が誰であろうと安心してサービスを利用することが可 ⇒お互いに信用できない物同士でも取引が安心してできる ・デメリット: 個人情報をブロックチェーンに記録すると削除が不可能になる。 ⇒ずっと公開された状態、だれでも見れる。 アクセスコントロールを実現しようとすると、 サブシステムが必要??

Slide 21

Slide 21 text

ブロックチェーンの状況 • 社会に認知されるくらい広まる。 ⇒実用化には、技術的課題があり、技術開発が進められている 様々なプロジェクトが登場: ビットコイン、イーサリアム(2013年)、リップル 課題: スケーラビリティ、リアルタイム性(デジタル決済)

Slide 22

Slide 22 text

進められている技術開発 ①ビットコイン派生プロダクト: ビットコイン、ビットコインキャッシュ ②エンタープライズプラットフォーム: リップル、パーミッションドブロックチェーン ③スマートコントラクトのプラットフォーム イーサリアム(非中央集権アプリケーション実行プラットフォーム)

Slide 23

Slide 23 text

スマートコントラクト(イーサリアムから誕生) 契約のスムーズな検証、執行、実行、交渉を意図したコンピュータプロトコル。 スマートは、ここでは「自動的に実行される」ということ 何人かが合意した内容(契約)を、人が居なくても自動的に実行する仕組み 店頭での支払い。自動販売機 画像は、以下のURLから抜粋 https://www.sbbit.jp/article/fj/40394

Slide 24

Slide 24 text

進められている技術開発 ①ビットコイン派生プロダクト: ビットコインの思想と技術をベースに通貨として普及を目指す。 ②スマートコントラクトプラットフォーム: イーサリアム(非中央集権型のアプリケーションが簡単に作成 できるようになる。)⇒サービスができる?? ③エンタープライズプラットフォーム: 実用性を重視し、高速化して一般企業でもやれるように

Slide 25

Slide 25 text

ブロックチェーンを活用したサービス ブロックチェーンを活用した非中央集権型サービスを Dapps(Decentralised Apllications) 従来のフリマアプリ:メルカリ これからのフリマアプリ:中央に管理者がいない。

Slide 26

Slide 26 text

ゼイン(ベルリンのスタートアップ企業) ポルシェと共同開発 スマートカー構想に活用している。 走行データをブロックチェーンに記録する。 フロッピー:国境を越えた不動産取引をスマートコントラクトで 実現する。⇒仲介の手数料をなくし、スムーズに 不動産取引をスマートコントラクトを利用して実現させようとする。

Slide 27

Slide 27 text

組織にまで非中央集権型が広まる これまでの伝統的なトップダウン組織: 社長、役員、部長・課長・一般社員 DAO (Decentralized Autonomous Organization): 階層構造になっていない。ユーザーや開発者がフラット。

Slide 28

Slide 28 text

ウォレットとは何か?? 大きく2つの意味がある ①ウォレットアプリ: 「残高照会」や「送金」できる機能のこと(UI) ⇒1つのウォレットアプリは、複数のアドレスを持つ ②ウォレットアドレス: 公開鍵暗号の「秘密鍵」と「公開鍵」をもとにして、 数学的に導出されたアドレス(文字列)

Slide 29

Slide 29 text

ウォレットアプリの機能 ①キーペアの生成と保管 ②ウォレットアドレスの生成 ③ウォレットアドレスに記録された残高の集計 ④トランザクションの作成と電子署名 ⑤P2Pネットワークへの接続とトランザクションの投かん ⑥ブロックチェーンに関する支払い検証可能なサマリーデータ 構造の保管

Slide 30

Slide 30 text

ウォレットアドレスの導出 乱数列(シード) ※十分に良質な乱数 ⇒秘密鍵 ⇒秘密鍵のウォレットアドレスを生成(相互変換性あり) WIF(Wallet Import Format) ↓ 公開鍵 ⇒公開鍵のウォレットアドレスを生成(相互変換性なし) ⇒ウォレットアプリ導入のタイミングで自動処理で導出される。 ⇒適当に作っても衝突しない。

Slide 31

Slide 31 text

ウォレットアドレスの管理方法 ウォレットアドレスを使いますと、 ①犯罪者に狙われる ②犯罪性収益移転に利用されていると疑われる などのデメリットがあるため、取引ごとに変える。 ⇒効率的にアドレスを管理するために、 「決定性ウォレットアドレス」という考え方がある。 ⇒「ルートシード」から「マスター秘密鍵」を生成する。

Slide 32

Slide 32 text

ホットウォレットとコールドウォレット ホットウォレット: インターネットにつながっている 出金:オンラインで署名可能 入金:入金はいつでも可能 コールドウォレット: ⇒ネットから切り離された端末で管理 インターネットにつながっていない 出金:金庫を開けてから手動で署名 入金:いつでも可能

Slide 33

Slide 33 text

運用面の違い ホットウォレットは、認証が弱点 ⇒認証がばれたら、秘密鍵をどんなに厳重に管理していても 無駄 コールドウォレット運用: 取引指図データに電子署名を施す処理と認証を オフライン環境で行い、 署名済みトランザクションのみをオンラインにもっていき、 ブロックチェーンのネットワークの放出のみを行う。

Slide 34

Slide 34 text

ファイナリティ問題 ブロックチェーンの分岐「フォーク」 ハードフォークとソフトフォーク ファイナリティ:決済が後から取り消されないこと ⇒ブロックチェーンは、ファイナリティがない。 ⇒最長のチェーンが採用されるから。 ⇒課題点

Slide 35

Slide 35 text

順序性の担保の難しさ ⇒タイムスタンプの活用 ⇒時刻認証局の活用 正確なタイムスタンプトークンを埋め込む?? ⇒Hyperledger Fabric メッセージブローキングサービスとブロックチェーンの連携

Slide 36

Slide 36 text

検索条件の良いツリー構造 二分木構造+マークルツリー構造 すべてのトランザクションに依存性のあるハッシュ値として ブロックのヘッダーんい永久記録される。 ⇒ハッシュの連鎖構造を作ることで、耐改ざん性を持たせている

Slide 37

Slide 37 text

スマートコントラクト 契約成立のために必要な条件が記された取引内容が、ブロック チェーン上に改ざん困難な状態で記録されており、そこに 書かれた条件が満たされると、 自動的に成立するトランザクションのこと ⇒基本的には、「○○という条件が満たされたときに××が 起こる」という条件が書き連ねてある

Slide 38

Slide 38 text

スマートコントラクトの実現方法 スマートコントラクトをプログラミングできるブロックチェーン ①Etherenum:Solidity(専用言語)、Python ②Hyperledger Fabric:Go、Java ③R3 Corda:Kotlin ⇒全てのスマートコントラクトは、バイトコード化され、 仮想マシン上で実行される。⇒環境の依存性がなくなる。 ⇒スマートコントラクトの合意結果がワールドステート

Slide 39

Slide 39 text

Code is Law (コードは法) アナーキズム(無政府主義) ⇒支配者不要、非中央集権 ⇒プログラムに書いてあることこそが全て

Slide 40

Slide 40 text

外部のリソースをオラクル(神託) 神のお告げのように皆で信じる考え方。 ⇒マシンが自律的にサービスを提供しだす世界 トークン:「価値を含んだ媒体」

Slide 41

Slide 41 text

証券分野とブロックチェーン 相性ばっちり! ⇒証券業務を大幅改善できる可能性がある。 ⇒募集、割当、売買、配当までを分散ネットワーク上に構築可 ⇒従来の手数料を得てきたようなビジネスはほぼ成立しなくなる?? ⇒投資のための情報提供に重きを置く必要がある??

Slide 42

Slide 42 text

最大の課題「法定通貨」 実現するためには、ブロックチェーン上に発行されるデジタル 法定通貨が必要! ⇒政府や日銀がブロックチェーン上に法定通貨を発行してくれるか どうかが大きなカギを握る。 ⇒CBDC? ⇒中国だとデジタル人民元 ⇒デジタル的な価値の取引が確実に行えるようになる。 ⇒革命的な事が起こる。

Slide 43

Slide 43 text

ハードウェアウォレット コールドウォレットに該当 ⇒huaweiが発表した「Mate40」にも搭載 ⇒デジタル人民元に対応している。。 ⇒自分自身で秘密鍵を管理するアイテムです。 ①コールドウォレット(インターネットから隔離) ②秘密鍵を自分で管理(取引所で管理することはない。) ③様々な外部ウォレットとアプリケーションを連携できる。 ④相互感性のあるウォレットアプリを安全に使える。

Slide 44

Slide 44 text

ウォレットの種類 ①オンラインウォレット ②モバイルウォレット ③デスクトップウォレット ④ハードウェアウォレット ⑤ぺーパーウォレット ⑥ウェアラブルウォレット ⇒デジタル人民元では、多数の種類のウォレットで実証実験が 行われている模様。。

Slide 45

Slide 45 text

秘密鍵が外に漏れると。。 ウォレットが同期される。 勝手に送金の署名もされる。 ⇒ウォレットの口座からお金がなくなる。。 ⇒秘密鍵の管理は、自己責任の世界であるが、 どうやって安心・安全に使えるのか??? ⇒KYCは?鍵管理は?

Slide 46

Slide 46 text

イーサリアムの登場 イーサリアムの登場で、金融市場以外にもブロックチェーンが 使そうなことが分かった。 ⇒ブロックチェーンの可能性を切り開いた。 ブロックチェーン+アプリケーション 通貨以外でも管理者のいないサービスを作れるようにした。 ⇒ブロックチェーンの世界を切り開いた。 ⇒ビタリック・ブテリンが作った。

Slide 47

Slide 47 text

スマートコントラクト 契約内容(取引が成立するための条件 if文など)が、 ブロックチェーン上に改ざん困難な状態で記録されていて この記述された条件が満たされた時に、 自動的に契約が成立する仕組み。

Slide 48

Slide 48 text

ブロックチェーンが普及すると、、、 ①非中央集権型のサービス(Dapps) ②価値を簡単に送れるようになる ⇒facebookのザッカーバーグ 「写真を送るように、お金も送れるべきだ」 ③デジタルデータが資産性を持つようになる ⇒デジタル通貨??

Slide 49

Slide 49 text

②価値を簡単に送れるようになる ブロックチェーンの正しいデータと稀少性がある ⇒価値の代替が決まっている。 ⇒価値というものを簡単に送れるようになった。 海外送金もワンクリックで、管理者がいないので手数料安く。

Slide 50

Slide 50 text

③デジタルデータが資産性を持つ インターネット時代: 動画、音楽などのコンテンツの価値が下がる。コピーできる ⇒NETFLIX、U-NEXT ブロックチェーン時代: デジタルデータだがコピーできない 唯一性を持ち、交換可能であるので、資産性あり。

Slide 51

Slide 51 text

ブロックチェーンの課題 ①スケーラビリティの問題 ⇒取引数が増えると処理速度が遅くなる。。 ②非実時間性(ファイナリティ問題) ⇒取引が確定するまで時間がかかし、いつ確定するかも分からない。 ⇒即時性や正確性が重視されるシーンには向かない。 ③プライバシーの問題 取引情報(アドレス)と特定の個人情報が結び付けば、 個人の保有残高や送金記録を知る事ができる。(GOEで解決?)

Slide 52

Slide 52 text

デジタル通貨の運用のアイデア ハードウェアウォレット ⇒リバースプロキシ、NAPTのようなことにできないか?? デバイスに搭載するとクールウォレットみたいになる?? ⇒デバイスが盗まれたときは? ⇒中古で出したときは?? ⇒自動的に壊す機能が必要?? ⇒即時性が求められるはず。。。

Slide 53

Slide 53 text

ウォレット 秘密鍵⇒公開鍵⇒アドレス 電子署名技術を利用している。 利用者のプライバシー なりすまし、改ざん不可 ⇒電子署名とネットワーク 公開鍵暗号⇒ハリーだけがお金を使える。 ハリーが受け取ったbitcoinを使えるのはハリーだけ (ハリーの秘密鍵だけ)

Slide 54

Slide 54 text

電子署名 文書をハッシュ関数で、ハッシュ化 ハッシュ値をさらに暗号化して署名データを作成 +文書を送る。 複合化して合致しない ⇒改ざんされている 公開鍵で複合化できない⇒別人が作った⇒取引は確かに本人が 行った。

Slide 55

Slide 55 text

ウォレットでの秘密鍵の作成手順 秘密鍵 ⇒ランダムに選ばれる値 ⇒お金を使用する際に用いられる ⇒秘密鍵を他人に漏らすとお金を使用できてしまうので、 必ず秘匿にする ⇒スマートフォンの紛失等に備えて、バックアップを取る。

Slide 56

Slide 56 text

秘密鍵(256ビットの乱数)の作成方法 ①OSの乱数生成器等を用いて作成される ⇒だれだけ規則性のない乱数を生成するかにかかっている ⇒コンピュータにとっては、難しい ⇒キーボード操作やマウス操作など、規則性も予測可能性も んないものをもとにする。

Slide 57

Slide 57 text

公開鍵 秘密鍵から導出された点。座標(x,y)で表される ⇒秘密鍵から計算される。 秘密鍵を使った計算の結果を検証するのに使う 公開鍵からアドレスを生成する。 楕円曲線暗号 ⇒ 同じ鍵の長さでもより強度を強くすることが出来る。 K = k * G (K:公開鍵 G:秘密鍵)

Slide 58

Slide 58 text

公開鍵からアドレスを作成する 公開鍵 SHA-256とPIREMD160でハッシュ化 ↓ 公開鍵はハッシュ Base58でエンコード(読みやすいように変換) ↓ アドレス

Slide 59

Slide 59 text

Base64とBase58 Base64: 64種類の英数字を使ってデータを変換する方式 アルファベット、数字、記号を使う 文字を扱えない環境でもつかえる 変換したものを元に戻すこともできる Base58: 58種類の英数字を使ってデータを変換する方式 base64より読みやすく、エラー検出を簡単にした。

Slide 60

Slide 60 text

トランザクション インプット(送りて)とアウトプット(受け取りて) 主な用途は、送金 価値の移転を記しているもの ⇒サイン(電子署名)入りの小切手のような物

Slide 61

Slide 61 text

UTXO(未使用残高) ウォレットアプリが表示する残高は、UTXOの合計 ⇒UTXOプールで保存する。 UTXOは、ブロックチェーン上に記録されている。 ⇒UTXOを消費して台帳に記入。 Inputとoutputが等しくなるようにならなければならない。

Slide 62

Slide 62 text

トランザクションのアウトプット トランザクションいよって作成されたUTOが トランザクションアウトプット ①出金額 ②outputを使用するにあたって満たされなければならない解除条件 ⇒アドレス情報も含まれている。 ScriptPubkey

Slide 63

Slide 63 text

トランザクションのインプット インプットはUTXOへのポイント ①UTXOのトランザクションハッシュ ②UTXOのインデックス番号 ③UTOのロックを解除するスクリプト ⇒ScriptSig(電子署名と公開鍵が含まれる。) Sig シグネチャー(署名のこと)

Slide 64

Slide 64 text

トランザクションの手数料 手数料が高いとマイニングの優先順位が上がる。 ⇒早く取引をトランザクションにとりこまれたいなら、 手数料を上げること。

Slide 65

Slide 65 text

トランザクションスクリプト スクリプトはプログラミング言語の一種 スクリプトを実行することでトランザクションの有効性を チェックする。 Outputのロックを解除するスクリプト Inputのロックを解除に必要な条件 ⇒ScriptSigとScriptPubkeyをつなぎ合わせた状態で、 スクリプトを実行する。

Slide 66

Slide 66 text

検証 ScriptSig (電子署名+公開鍵) ScriptPubkey(複製 ハッシュ化 公開鍵ハッシュ == 署名検証) よく使われているスクリプト ①pay-to-public-key-hash ②マルチシグネチャ ③データアウトプット ④Pay-to-Script-Hash

Slide 67

Slide 67 text

ネットワークに参加するノードについて ノードの機能について ①ウォレット ②マイニング ③フルブロックチェーンデータベース ④ルーティング

Slide 68

Slide 68 text

ノードの種類 ①フルノード:前ページの全ての機能を使える。 ②SPVノード:ウォレットとルーティングの機能のみ Simplified Payment Verfication ③ソロマイナー:マイニングとルーティングフルブロックチェー ンデータベース

Slide 69

Slide 69 text

ブルームフィルタ トランザクションデータをプライバシーを守りながら、入手したい。 ⇒プライバシーを守りながら、フルノードから自分に関係のある トランザクションデータを受信する仕組み。 フィルタにマッチしたブロック(マークルブロック) マッチしたブロックのヘッダと取トランザクションデータへの マークルパス

Slide 70

Slide 70 text

トランザクションデータの検証 ①トランザクションのデータ構造は正しいか ②unlocking scriptでlocking scriptを解除できるか? Generation トランザクション ⇒マイナー自身で作成。報酬を記載。 ブロック(ブロックヘッダ、トランザクションデータ、 generationトランション、ナンス)

Slide 71

Slide 71 text

ブロックヘッダ 構造 ①前ブロックヘッダのハッシュ値 ②PoWの難易度 ③powのナンス ④ブロックの生成時刻 ⑤マークルルート⇒トランザクションデータをまとめたもの 二重ハッシュ化

Slide 72

Slide 72 text

マークルルート(改ざん検知用に保持) マークルルツリー ブロックに含まれるトランザクションデータを要約する ①トランザクションデータの改ざんを検知する ②トランザクションがそのブロックに含まれるか効率良く検証 ⇒ブルームフィルタで利用されている。 マークルルート:一番上のハッシュ値 マークルパス:特定のトランザクション マークルフィルタ マークルルートとマークルパスをSPVノードに送って検証する。 ⇒自分のトランザクションが確かにブロックに含まれている事が確認できる。

Slide 73

Slide 73 text

プルーフオブワーク難易度調整 最後の2016ブロック(2週間)ごとに難易度を調整する。 ⇒計算が10分になるように ブロックデータの検証 ①ブロックのデータ構造が正しいか ②ブロックのハッシュ値がPoWの難易度より小さいか ③ブロックに含まれているトランザクションが、 トランザクションデータ検証のチェック事項を満たすこと

Slide 74

Slide 74 text

フォークする場合 長い方のチェーン(累積難易度が最も高いチェーン) 6ブロック以上積みあがればブロックが変更されることはない 。 ⇒ハードフォークとソフトフォーク

Slide 75

Slide 75 text

スマートコントラクト 改ざん困難な状態で、契約に成立するための条件が記載されてお り、条件が満たされると自動的に実行されるプログラム スマートコントラクトの一例:トークン(電子的な証標)

Slide 76

Slide 76 text

スマートコントラクトのアドレス ①EOA(Externally Owned Account) 通常のウォレットアドレス プライベートキーを持っている(資産管理可) ②コントラクトアドレス スマートコントラクト用アドレス プライベートキーを持っていない スマートコントラクトのコードを持っている アドレスを持っている

Slide 77

Slide 77 text

スマートコントラクトが実行される時 トランザクションの送り先がコントラクトアカウントだと スマートコントラクトが実行される。

Slide 78

Slide 78 text

スマートコントラクトの構造 ①ナンス:署名されてトランザクション数 トランザクションが送られるとナンスがカウントされる ②ガス:トランザクションが使えるリソース量を コントロールするための単位 -EOAが「ガスの価格」と「ガスの上限値」を決める。 ③バイナリデータ:コントラクトの時に使用されうバイナリデータ コントラクトに送られたとき、処理用のデータ (関数の引数)として使用される。

Slide 79

Slide 79 text

スマートコントラクトの仕組みの全体像 コントラクト作成 ①コントラクトコード作成 ②コンパイルとデプロイ ③コントラクトアカウント作成 コントラクト実行 ①コントラクトアカウント宛にトランザクション送信 ②コントラクト実行

Slide 80

Slide 80 text

コントラクト作成 コントラクトコードをコンパイルして、 --高級言語で書く(Solidity、vyper) バイトコードにする(仮想マシン上で実行できるため) バイトコードをデプロイしてコントラクトを作成する。 仮想マシン上でコントラクトを実行する。

Slide 81

Slide 81 text

スマートコントラクトの課題 一度デプロイしたら修正は、不可能! ⇒自己破棄する関数を作っておく必要がある。 脆弱性があっても何もできない可能性がある。。 ⇒DAO事件 ⇒十分なテストケースの消化と監査が必要! ⇒ベストプラクティスに従って開発することも重要!

Slide 82

Slide 82 text

オラクルの利用方法 スマートコントラクトの弱点 --外部データを利用できない。 ⇒オラクルを利用する ①外部からデータを収集する ②署名付きトランザクションデータで ブロックチェーンん上にデータを取りこむ ③スマートコントラクトのストレージにデータを入れて 誰でも使用できるようにする。

Slide 83

Slide 83 text

外部サービスを利用する(oraclize) 外部から情報を取得・検証し、スマートコントラクト上で 使用できるようにする。 オラクルという共通の外部リソースを参照する必要がある。 ⇒誰が実行しても同じ実行結果を返す必要があるため。

Slide 84

Slide 84 text

Dappsとは 自律分散型アプリケーション アプリケーションがオープンソースである。 アプリケーションのデータや記録は、公開・暗号化された ブロックチェーンを利用している。 仮想通貨のトークンを持っていて、アプリケーション利用の際 は、トークンを使用すること。 アプリケーションへの貢献が暗号を用いたアルゴリズムによっ て証明され、それに従いトークンが生成される。

Slide 85

Slide 85 text

Dappsとは バックエントソフトウェアのロジック部分が スマートコントラクトになったもの。 構成自体は、通常のwebサイトと同じ ⇒コントラクト宛のトランザクションが発生し、 スマートコントラクトを実行する。

Slide 86

Slide 86 text

マイクロペイメント マイクロペイメント:1円以下で送金ができる少額決済のこと ⇒サービスに1秒ごとに課金したりできる。 暗号資産では、送金手数料を抑えることができるため、 国際送金でもマイクロペイメントが使える。 ⇒ライトニングネットワーク⇒(Lapps) ⇒ソーシャルプラットフォーム化していくゲームに マイクロペイメントを組み合わせて、これまでになかった 細かな動作に金融サービスに付与できるようになる。

Slide 87

Slide 87 text

ブロックチェーンの今後の展望 ビットコインが実現できていること 管理者不在かつ電子データで、機能としての通貨を実現 (貨幣の3台機能を満たす) ①一般的交換手段(モノと交換できる) ②価値の尺度(BTCでモノの価格が表示されている) ③価値の保蔵手段(資金の非難先として使用。)

Slide 88

Slide 88 text

ビットコインの懸念 ①利用者の偏り 利用者の89%が0.1BTC以下の少額のビットコインしかない。 ⇒お試しで作っている場合がある。 ⇒アドレスを新規で作りなおしている。 ⇒実際に使われているのが、50~60万個 上位2.6%のアドレスがビットコインの95%を保有 ⇒一握りの人のためのビットコインになっている。 ⇒ビットコインの利用の実態は投機目的

Slide 89

Slide 89 text

②仕組みそのものの弊害 発行上限がある(稀少性がある) ⇒将来の値上がりが見込まれ、通貨より投資用の資産 マイニングの収入の半減していくことで、 マイナーが撤退する可能性がある。 最大2,100万BTC (2019年1月時点で、83%が発行済み)

Slide 90

Slide 90 text

③分裂の危険 2017年8月にビットコインとビットコインキャッシュに分裂 ⇒今後も分裂する可能性あり 取引量の上限が原因 ⇒管理者が居ない事の難しさ ⇒運営の意見次第では、分裂する可能性あり

Slide 91

Slide 91 text

政府による規制 「改正資金決済法」で暗号資産の規制へ --暗号資産が定義された --暗号資産取引所に一定の基準を課し、登録制にした --暗号資産取引所に一定の業務規則を課す --暗号資産取引所は金融庁の監督を受けること 政府による規制が暗号資産の取引に大きな影響を及ぼす。

Slide 92

Slide 92 text

今後の展望についての考察 一部の人が使う商品として残り続ける可能性が高い 近年、中央銀行がデジタル通貨(電子的な通貨)の研究を 積極的に行っている。 --将来、中央銀行が発行するデジタル通貨が広く使われるように なるかもしれない。 --カナダ銀行は、「CADコイン」というデジタル法定通貨の 実証実験を行っている。

Slide 93

Slide 93 text

分散型台帳システムの利点 ①改ざんされにくい ②システムがダウンしにくい ⇒他のノードが生きていれば動く ③コストが低い ⇒セキュリティ、バックアップのシステムコスト減 共通帳簿を持てる、管理者なしで取引が行える。

Slide 94

Slide 94 text

ブロックチェーンの課題 技術:スケーラビリティ、実時間性、プライバシー 政府:規制と健全性 市場:ボラティリティの高さ 一般:ユーザビリティ ブロックチェーンの活用事例 ①共有データベース ②スマートコントラクト

Slide 95

Slide 95 text

Corda(コルダ)の概要 ⇒エンタープライズでの利用に特化したブロックチェーン 企業間取引を想定し、エンドユーザー目線からスクラッチで 開発された唯一のエンタープライズ向けブロックチェーン・ プラットフォーム(ミドルウェア)である。 ⇒金融機関が求める要件に基づき設計・開発された。 ⇒金融以外のすべての業界への適用もできる。 ⇒金融グレードの高いセキュリティとプライバシーを備えた。

Slide 96

Slide 96 text

Cordaを支える4つの特徴(Kotlin) ①プライバシー ②インターオペラビリティ(価値を他のネットワークに移される) ③スケーラビリティ ④プロダクティビティ(高い開発生産性)

Slide 97

Slide 97 text

CordaとKubernetes Kubernetes⇒協力なコンテナオーケストレーションおよび resource管理ツール。 ノードが動作しているマシンの最大容量に達した場合、 ノードはより高いスペックのマシンに移行する必要あり。

Slide 98

Slide 98 text

Hyperledgerプロジェクト 2015年12月に開始されたプロジェクト ブロックチェーンが実現する分散元帳をパフォーマンスと信頼性 の多くの面で改善することを目的としています。

Slide 99

Slide 99 text

Hyperledger Irohaについて ソラミツ株式会社がオリジナルコードを開発した。 >Hyperledgerプロジェクトの取り組みの1つである。 >Linux Foundationが中心となったオープンソースプロジェクト >ブロックチェーンを核とした複数のプロジェクトの1つ 特徴①簡単な導入とメインテナンス②開発者向けの様々なライブ ラリ③役割に基づいたアクセス制限④コマンドとクエリの分 離によって行われるモジュール型設計⑤資産とアイデンティ ティ管理⑥信頼性、パフォーマンス効率、ユーザビリティ

Slide 100

Slide 100 text

オラクル処理(オラクル・システム) オラクルとは、ブロックチェーンの外部から現実世界に関するデータ を、ブロックチェーン内に提供する主体(サービスやサーバー等など) のこと オラクルとは、外部の状態の情報を提供するエンティティ 主にスマートコントラクトに使う署名された情報を提供する。 ⇒外部リソースを提供する。 ⇒これがないと、スマートコントラクトを使って、 外部情報を動かすことができない。

Slide 101

Slide 101 text

オラクル処理の弱点 ①オラクルがハッキングされる可能性がある。 ②オラクルのプロセスが不透明 ⇒アウトプットに100%確証できない ③オラクルが、トランザクションを作成してから、 完了するまでに消えてなくなる可能性がある。 ④オラクルが賄賂を受け取って間違った結果を配信するかもしれ ない。 ⇒1つのホストは危険なので、複数人でマルチシグにサインする。

Slide 102

Slide 102 text

SDK(software development kit) SDKとは、あるシステムに対応したソフトウェアを開発するため に必要なプログラムや文書などをひとまとめにしたパッケージの こと。システムの開発元や販売元が希望する開発者に配布あるい は販売する。近年ではインターネットを通じてダウンロードでき るようWebサイトで公開されることが多い。 例:) JDK

Slide 103

Slide 103 text

STO(security token offering) ブロックチェーン上で発行されたトークンを用いた資金調達方法 のこと。 ※ここでいうセキュリティは、「証券」のこと ⇒有価証券の機能を付与されたトークンによる資金調達」 セキュリティトークン⇒独自の通貨 債権や不動産のような現物資産をデジタル証券として発行する 電子記録移転権利

Slide 104

Slide 104 text

Node.js サーバーサイド側でjava Scriptを実行するための環境 Webアプリケーションのサーバーサイド側を実装できる。

Slide 105

Slide 105 text

Hyperledger Fabricについて ①hyperledgerbFabric Client SDK ⇒node.js,go,java版が出ている。 ②organization ③peer(ノードを表す単位) ④標準で提供されるCA

Slide 106

Slide 106 text

Hyperledger Besuについて ブロックチェーン企業「ConsenSys」のプロトコルエンジニアリ ングチーム「PegaSys」が、Javaで実装したイーサリアムクライ アント。 エンタープライズ向けイーサリアムの標準化団体「Ethereum Enterprise Alliance」(EEA)のクライアント仕様を実装したもの であり、以前は「Pantheon」と呼ばれていた。 ⇒パブリックとクローズドどちらにも対応する。 ⇒トランザクションの公開範囲も制御できる。

Slide 107

Slide 107 text

Hyperledger Besuについて プライベートネットワークで安全で高性能なトランザクション処理を 必要とするアプリケーションを開発できる。 • Besuには、Ethereumネットワークでノードを実行、保守、デバッグ、 および監視するためのコマンドラインインターフェイスとJSON- RPCAPIが含まれています。APIは、RPC overHTTPまたは WebSocketを介して使用できます。BesuはPub / Subもサポートし ています。APIは、次のような典型的なイーサリアム機能をサポート します。 • エーテルマイニング • スマートコントラクトの開発 • 分散型アプリケーション(Dapp)の開発。