Future Sync Vol5 Slide
-
Upload
kenichi-kurimoto -
Category
Technology
-
view
545 -
download
1
Transcript of Future Sync Vol5 Slide
十数年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
世界中のBitcon WalletがP2Pで繋がって、Bitcoinネットワークを構成している。
そのネットワークに自分の PCを接続する。
どこかのWalletとBitcoinをやりとりできる。
このBitcoinネットワークが決済承認も行う。(SPVノードと呼ばれるマイニングしないノードは今回考察から外しています)
決済承認はマイニングと呼ばれる競争で、競争に勝つとBitcoinが貰える。Bitcoinが生み出されるのはこの方法のみ。
重要:どこにも中心サーバーは無い!自由にP2P網に参加できる!誰も認証を誤摩化せない!誰も認証網を止めれない!特定の発行組織が無い!
•なりすまし(勝手に人のお金を使う)を防げる?•二重使用(自分のお金を複数回使う)を防げる?•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のイメージ
誰一人Bitcoinネットワークを騙す事が出来ない
Bitcoinネットワークは人 •組織は悪い事をする前提で、それでも機能するように設計されます。
人間を信用しないシステムこそが、人間性を満たす社会を創るという考えです。
Trustless
Bitcoinの技術的イノベーションと投機話で世界中で話題に !
多数の参加者が必要な分野で、人が疑うような革新的技術は発明と同じぐらい実証が難しい。-> お金儲けのインセンティブによって、その壁を超えた
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
実体のあるデバイスの所有権を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
誰でも参加したい人が参加してシステムの一部になる
会社や国のような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なビットコインシステムの外にあります。
交換所については法的規制が入る方向に向かってます
•権威が無いと言いつつ、法律で守られるの?
アナーキストやリバタリアンの物だった時代は終わりつつあります。
すごい金額が名門VCから投資されている。
ウォール街の有名人がビットコイン企業に転職
アメリカでも法律の整備が整いつつあるのでエスタブリッシュ層が参入
(アメリカ政府が気にしているのはマネーロンダリング対策)
銀行も参入中
実はNTTドコモもCoinbaseという有名企業に投資しています。
最近のBitcoin界隈
現状Bitcoinの総価値は数千億円だが多くは投機が創り出した
しかしBitcoinが生み出したBlockchainには大きなイノベーションのチャンス有り
Bitcoinが生み出した数千億円の価値を利用して本物のイノベーションを
起こそうという考え方
Bitcoinそのものが初期のベンチャー投資に似ている
最近のBitcoin界隈の個人的感想
Decentralized, Trustlessという重要概念
Blockchainには大きな社会イノベーションのチャンス有り
bitcoinは胡散臭い? 世界はその価値を利用して本物のイノベーションに邁進している。
そちらに向かわねば取り残される。
Decentralized Technologyでフラットな社会を創ろう!
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さんの公開鍵で復号
等しい???