Future Sync Vol5 Slide

59
Blockchain ~ビットコインを支える技術~ の現在と未来 Nayuta 栗元憲一 Photo/ The Flat Evening - Adam Meek

Transcript of Future Sync Vol5 Slide

Blockchain~ビットコインを支える技術~

の現在と未来

Nayuta 栗元憲一

Photo/ The Flat Evening - Adam Meek

Agenda

1. Bitcoinとは2. Blockchain解説3. Blockchainの通貨以外への応用4. Bitcoin現状5. まとめ

0. 自己紹介

十数年SoC(System on Chip)の開発に従事

Androidとハードウェアを組み合わせたソリューションの開発

BLEを用いたセンサーネットワークソリューションの開発

Androidアプリ開発に従事

Androidとハードウェアを組み合わせたソリューションの開発

BLEを用いたセンサーネットワークソリューションの開発

栗元憲一

しかじろう

Hardware 組み込み   Mobile Cloud

Nayuta http://nayuta.co

IoT関連オリジナルプロダクトIoTへのblockchain応用研究

sensor networkを用いたcustomer solution(BLE組み込みソフト&ハード&クラウド)

Nayuta: サンスクリット語の那由他 (=10の62乗)より。沢山の物がネットワークで つながって行くイメージを表しています。

Nayuta http://nayuta.co

1. Bitcoinとは2. Blockchain解説3. Blockchainの通貨以外への応用4. Bitcoin現状5. まとめ

0. 自己紹介

Agenda

•P2P型決済網

•その決済網で使用できる仮想通貨

•国家を超えて使用できる

•発行主体が無い

•現在、手数料は格安

•途上国で銀行システムに入ってない人にメリット

Bitcoin

世界中のBitcon WalletがP2Pで繋がって、Bitcoinネットワークを構成している。

そのネットワークに自分の PCを接続する。

どこかのWalletとBitcoinをやりとりできる。

このBitcoinネットワークが決済承認も行う。(SPVノードと呼ばれるマイニングしないノードは今回考察から外しています)

決済承認はマイニングと呼ばれる競争で、競争に勝つとBitcoinが貰える。Bitcoinが生み出されるのはこの方法のみ。

重要:どこにも中心サーバーは無い!自由にP2P網に参加できる!誰も認証を誤摩化せない!誰も認証網を止めれない!特定の発行組織が無い!

•Decentralized

•Trustless

この二つの特徴が非常に重要な物となっています。

この意味を理解してもらうことが今回の一つの目標です。

Bitcoin

1. Bitcoinとは2. Blockchain解説3. Blockchainの通貨以外への応用4. Bitcoin現状5. まとめ

0. 自己紹介

Agenda

厳密さを無視してイメージを説明します。

アルゴリズムの部分は理解できなくてもOK

Blockchain

•なりすまし(勝手に人のお金を使う)を防げる?•二重使用(自分のお金を複数回使う)を防げる?•P2Pの各ノードに情報が届くタイミングには 差があるが一意にできる?

Bitcoinの解決策 - Blockchain technology

P2P網で決済って、簡単にできるの???

•これまでの世界中でのBitcoin使用歴(transaction)すべてを全ノードが持っている

•10分間で行われた transactionに対して認証し、後ろに加えて行く

•P2Pなので時々一意にならない時があるが、一意に収束するようになっている

全体構造

自分宛の未使用 transactionを集めて入力とし、金額と送る相手の公開鍵を合わせて transactionとする

デジタル署名を含めることで、他の人でなく、間違いなく本人が使用することを宣言したことをアルゴリズム的に保証する。

このtransactionをP2P Bitcoinネットワークに流してProof of workで認証してもらう。

Transaction 生成

10分間のtransactionを集めて、それぞれのノードが認証競争を始めます。

認証競争に勝った人はビットコインが与えられます。

そのため認証競争をminingと呼びます。金の採掘のイメージ

ビットコインが生み出されるのはこの認証競争からのみです。

認証競争は数学的なクイズを解く

解けた人は結果を皆に流します

Proof of work と mining

前回のQuizの答え

今回のtransactionの集まり

自分への報酬 transaction

  +     任意の数値

ハッシュ 0000000000000001245abdf678909dc87654fc345676be765268907336ef7800875ffc432b35678

先頭にN桁0が続く

この条件を満たす任意の数値を求めるのがクイズ

Proof of work と mining

Aさん->Cさん10BTCDさん->Fさん0.1BTCHさん->Aさん0.5BTC…....……Xさん->Mさん5BTC

Nさん->Cさん100BTCDさん->Oさん0.1BTCHさん->Kさん4.2BTC…....……Bさん->Aさん0.01BTC

Aさん->Cさん0.3BTCGさん->Fさん0.5BTCHさん->Aさん21BTC…....……Lさん->Mさん4BTC

Aさん->Oさん43BTCDさん->Cさん0.1BTCLさん->Aさん0.52BTC…....……Xさん->Qさん5.6BTC

ハッシュで繋がっているため改ざんが難しい

Blockchainのイメージ

どこにも権威が存在しない

中央サーバー無しにクリティカルなtransaction記録

Decentralized

誰一人Bitcoinネットワークを騙す事が出来ない

Bitcoinネットワークは人 •組織は悪い事をする前提で、それでも機能するように設計されます。

人間を信用しないシステムこそが、人間性を満たす社会を創るという考えです。

Trustless

発行主体が無い

参加者がそのまま認証サーバーの一部に

Decentralized

Trustless

Blockchainの特徴まとめ

1. Bitcoinとは2. Blockchain解説3. Blockchainの通貨以外への応用4. Bitcoin現状5. まとめ

0. 自己紹介

Agenda

Bitcoinの技術的イノベーションと投機話で世界中で話題に !

多数の参加者が必要な分野で、人が疑うような革新的技術は発明と同じぐらい実証が難しい。-> お金儲けのインセンティブによって、その壁を超えた

発行主体の無いP2P認証網によるデジタル通貨     スゴい!

権威者無しのP2Pネットワークで一意な取引ができるシステム自体がスゴいんじゃなの?

BitcoinのTechnologyを通貨以外の物に適用しよう!

Bitcoin2.0

blockchainは、、、

•権威者無しのP2P網によるデジタル通貨

•権威者無しで、ネット上のIDとID間取引を一意に決めれるシステム

•ある時刻であるデータが存在していたことを証明できる公共データベース

•秘密鍵の持ち主と公開鍵を紐づけることができる公共のデータベース

•Paxosのような分散データベース合意アルゴリズムの上位概念

等、人によって様々な捉え方がされています。

Domain Name Registrationは先に名前を取った人の物であり、同一名称は後から受け付けられない。Domain Nameを持っている人は買いたい人がいれば売る事ができる。

       Blockchain technologyそのもの!

Namecoin

基本的には first-to-fileの名前登録データベース

http://***.bit という.bitのDomain Nameの登録ができる。

***.bitを見るためにはadd-onをインストール

ICANNの力の及ばない所に存在している!

Namecoin

権威の外に存在していることの重要性

mining serverを自主的に提供する人が存在する限り止まらない!

Namecoin

実体のあるデバイスの所有権をBlockChain technologyを用いてコントロールするコンセプト

smart contract の一種

https://en.bitcoin.it/wiki/Smart_Propertyproposed by Nick Szabo in his 1997 paper

Smart Property

identification keyメーカが製造時に生成ダッシュボード等でアクセス可能に

ownership key0.00….1BTC仮にT Coinとする

https://en.bitcoin.it/wiki/Smart_Property

example: 車のオーナーシップ

owner売りたい

買いたい

①nonce生成して送る(車のデータをくれ! )

identification key署名noncecars public certCar’s data現owner PK最後にownerが変わったtransactionとmarkle branch

②車のデータや、本当に現 ownerかどうか署名付きのデータを貰う

④新しいownership keyを作るK2

⑤新しいtransaction作って ownerに送る。 input2があるまで無効

③支払いを受け取るKey K1を作る。価格はP

⑥input2が入って、transactionが認証されれば、ownershipがCoin払いと共に移動!

input1: P Coin output1: P CoinをK1に送るinput2: T Coin output2: T CoinをK2に送る

ownership keyT Coin

transaction

smart propertyをもっと複雑にした契約をコードで示す

blockchainに記述

自動執行

Smart contract

Technology的には、

Turing完全なプログラミング言語実行できる仮想マシンをBlockchainに組み込んだもの

Ethereumとは?

     Smart contract

         &

 Decentralized Application Platform

インターネットの構造を変える 社会の構造を変える

Ethereumとは?

誰でも参加したい人が参加してシステムの一部になる

   会社や国のようなAuthorityが存在しない(誰のものでもない)

このようなアプリケーションが大量に出てくるプラットフォームに

構造がこれまでの物と根本的に異なる。(bitcoinやBitTorentをイメージ)

Decentralized Application

外部アカウント   秘密鍵コントロール

• nonce• Ether balance(Ethereは暗号貨幣)• storage

contract アカウント  

• nonce• Ether balance• contract code• storage(key/valueストア)

message 

を送ることができる

Bitcoinのアカウントみたいなもの

ユーザが書いたコードが格納されているmessageを受け取って起動する

Ethereumの2種類のアカウント

Dr.Gavin Wood presentation

Web3.0

Swarm = BitTorent likeWhisper = P2P messagingEthereum = contract issue

静的データはSwarmで送り動的部分はWhisperで

Web3.0 : InternetをDecentralizedに戻す

Browser開発でインターネットの構造を変える

現状はインターネット使用するために権威への依存を避けられない様々なデータを権威に取得される

リアルな世界と同じように人と人がコミュニケーションする世界

proof of existence仮想通貨と政府通貨のヘッジ

誰もが自分の空いたディスクを貸し出すdecentralized dropbox参加型クラウドコンピューティング

自動執行の保険

その他できること

1. Bitcoinとは2. Blockchain解説3. Blockchainの通貨以外への応用4. Bitcoin現状5. まとめ

0. 自己紹介

Agenda

※このセクションは現在 (2015/05)の私の個人的感想です。

•bitcoinのシステムは破綻しないの?

blockchain自体は破綻しにくいシステムです。

•decentralizedが維持できるのか?

激しい議論があります。特にマイニング集中は問題

•scalability 激しい議論があります。多数の提案がなされている状態

•安い手数料は維持できるの?

激しい議論があります。個人的には今の仕組みでは

 難しいと予想してます。改良のための様々な提案あり。

•犯罪に使われやすくない?

 普通のお金と変わらない。初めて車が開発されたときに「犯罪者が逃げやすくなるから使うべきでない」と言っているのと同じ

•お金刷って儲けようって胡散臭い

 色んな議論あり。個人的にビットコインは初期のホルダーが有利すぎるのと

初期のホルダーにブラックマーケットの人間がどれぐらいの割合でいるのか

分からないのは問題になると感じます。

Bitcoinはblockchainの最初のアプリケーションに過ぎません!

(最初はP2P上で一意なtransactionができるシステムを証明する

   必要があった)

•詐欺が多そう

 怪しい話は色々耳に入ります。もしビットコインが普通に使用されるように

 なったら詐欺は沢山起きるんじゃないかと個人的には思ってます。

•投機話しか聞かない

 実際に使える所は非常に少なく、投機での購入者が多いです。

 しかし、blockchainの革新性に魅せられた投機に興味無い人達もいます。

•システム全体の消費エネルギーが多すぎる

 その通り。改良提案はあります。

 基本的に現状blockchainは非常に高価な公共データベース

• Mt.Goxみたいなことは起きない?

 ビットコインの交換所はTrustlessなビットコインシステムの外にあります。

 交換所については法的規制が入る方向に向かってます

•権威が無いと言いつつ、法律で守られるの?

 アナーキストやリバタリアンの物だった時代は終わりつつあります。

 

blockchain上の価値(例えばビットコインの価格レート)についてはアルゴリズムは何も保証していません。

注意!

それでもbitcoinは胡散臭く感じる。

そもそも通貨とは何?

『皆が通貨と思うもの』

すごい金額が名門VCから投資されている。

ウォール街の有名人がビットコイン企業に転職

アメリカでも法律の整備が整いつつあるのでエスタブリッシュ層が参入

(アメリカ政府が気にしているのはマネーロンダリング対策)

銀行も参入中

実はNTTドコモもCoinbaseという有名企業に投資しています。

 

最近のBitcoin界隈

現状Bitcoinの総価値は数千億円だが多くは投機が創り出した

しかしBitcoinが生み出したBlockchainには大きなイノベーションのチャンス有り

Bitcoinが生み出した数千億円の価値を利用して本物のイノベーションを

起こそうという考え方

Bitcoinそのものが初期のベンチャー投資に似ている

 

最近のBitcoin界隈の個人的感想

1. Bitcoinとは2. Blockchain解説3. Blockchainの通貨以外への応用4. Bitcoin現状5. まとめ

0. 自己紹介

Agenda

Decentralized, Trustlessという重要概念

Blockchainには大きな社会イノベーションのチャンス有り

bitcoinは胡散臭い?  世界はその価値を利用して本物のイノベーションに邁進している。

そちらに向かわねば取り残される。

Decentralized Technologyでフラットな社会を創ろう!

fin

資料

Aさん->Cさん10BTCDさん->Fさん0.1BTCHさん->Aさん0.5BTC…....……Xさん->Mさん5BTC

Nさん->Cさん100BTCDさん->Oさん0.1BTCHさん->Kさん4.2BTC…....……Bさん->Aさん0.01BTC

Aさん->Cさん0.3BTCGさん->Fさん0.5BTCHさん->Aさん21BTC…....……Lさん->Mさん4BTC

Aさん->Oさん43BTCDさん->Cさん0.1BTCLさん->Aさん0.52BTC…....……Xさん->Qさん5.6BTC

•10分間の取引がまとまって後ろにつながっている。•Bitcoinが誕生してから現在までの全ての取引を各端末が保持している•最後の方は全ての端末で同じとはならない場合があるが、時間が経つにつれて全ての端末には同じ物が保持される仕組み•実際のブロックチェインはその他の様々なデータが含まれている。 (あくまでもイメージ)

blockchainのイメージ

Blockchainで使用されている要素技術

•ハッシュ関数

•公開鍵暗号(デジタル署名)

この二つの技術をうまく利用しています。詳細は分からなくても良いのでイメージだけ掴んで下さい以降の説明も数学的厳密さを無視してイメージを説明してます

ハッシュ関数:(例)SHA256

私は栗元です。FutureSyncでBlockchainについて話します。

8D888C6B7077434984958A659BDA3D67060A786E0EAB29AD52B747F09F6ED524

私は栗元です。FutureSyncでBlockchainについて話しますよ。

AE79CCEAF94525CBC4E1AD4875EF0612DAC12A6A305587CC06E6798F8330D396

データの指紋のような固定長データを生成する関数。

元データのサイズによらず一定の長さ

元データがほんの少し変わっただけで、ハッシュ値は全然異なる

元データは例えば jpegファイルとかでも良い

ハッシュ関数:(例)SHA256

私は栗元です。FutureSyncでBlockchainについて話します。

8D888C6B7077434984958A659BDA3D67060A786E0EAB29AD52B747F09F6ED524

ハッシュ値を計算するのは簡単

8D888C6B7077434984958A659BDA3D67060A786E0EAB29AD52B747F09F6ED524

指定されたハッシュ値になる元データを作るのは非常に難しい。(総当たりでやるしかない)

この特徴があるためデータの指紋のように考えることができる

公開鍵暗号とは?

共通鍵暗号:暗号化する人と、複号化する人が同じキーを使う

5月16日に新製品発表します。

ndja%&nofnea823rnvan`:

5月16日に新製品発表します。

ndja%&nofnea823rnvan`:

暗号化 複号化

通信

二人はそれぞれ内部で同じキーを使っている。

公開鍵暗号:暗号化キーと複号化キーが異なる

Aさん Bさん

5月16日に新製品発表します。

novaneor($)U%mafdjmnf

5月16日に新製品発表します。

暗号化 複号化

通信

Aさん Bさん

novaneor($)U%mafdjmnf

Bさんの公開鍵を使って暗号化 Bさんは秘密鍵を

使って複号化

公開鍵暗号とは?

公開鍵暗号を使いたい人 (Bさん)は、ペアとなる公開鍵と秘密鍵を生成して、公開鍵の方だけを公開すれば良い。

Bさんと通信したい人は、Bさんの公開鍵をつかってデータを暗号化してインターネットを使用してBさんに送れば、秘密鍵を持っている Bさんのみが複号できる。

途中で暗号化されたデータを誰かが取得したとしても秘密鍵を持っているBさん以外は復号できない。

秘密鍵は絶対に他人に漏らしたらダメ!

Bさん

デジタル署名とは?

自分の秘密鍵でデータのハッシュ値を暗号化したものをデータと一緒に送る事で、「確かに自分が送ったものである」「通信の途中で改ざんされていない」ということが保証できる

A社と契約しました。

14bc98a40a94dfef

ハッシュ値

Aさん

Aさんの秘密鍵で暗号化

a4bc909032af3

A社と契約しました。

a4bc909032af3

データと暗号化したハッシュ値を一緒に送る

通信

Bさん

A社と契約しました。 14bc98a4

0a94dfef

受信したデータのハッシュ値を計算

a4bc909032af3

14bc98a40a94dfef

受信したハッシュ値をAさんの公開鍵で復号

等しい???

異なるQuizの回答が来たときは分岐する。最終的に長い方が生き残る。