【exe whitepaper】iotaまとめ資料

16
Blockchain EXE Whitepaper みんなでブロックチェーン資料を読もう! 〜IOTA編〜

Upload: blockchainexe

Post on 15-Mar-2018

605 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 【EXE Whitepaper】IOTAまとめ資料

Blockchain EXE Whitepaper

みんなでブロックチェーン資料を読もう!

〜IOTA編〜

Page 2: 【EXE Whitepaper】IOTAまとめ資料

IOTAとは

2016年7月にローンチされた暗号通貨

送金手数料が無料なのでマイクロペイメントが可能。IoT機器間の送金ネットワークとして期待。

IOTAの読み方は「アイオータ」

1

Page 3: 【EXE Whitepaper】IOTAまとめ資料

IOTAの特徴

IOTA Bitcoin

構造

DAG(Tangle) Blockchain

データの更新方法 Proof of Work

データの更新者 送金者自身 マイナー

送金手数料 無料 有料

スケーラビリティ 有り 無し

量子コンピュータ耐性有り(Winternitz署名を採用)

無し

日本円レート(2018/1/9現在)

1IOTA = 0.0004円(取引所はM(メガ)単位で取引)

1BTC = 1,735,441円

発行上限と現在の枚数(2018/1/9現在)

上限:約2,780 兆 IOTA現在:上限と同じ

上限:約2,100 万 BTC現在:約1,679 万 BTC

2

Page 4: 【EXE Whitepaper】IOTAまとめ資料

私なりのTangleの理解

・ブロックサイズの上限は1MB

・ブロックの生成タイミングは約10分間隔

・莫大な計算問題を各マイナーに強いる

→二重支払いを抑止。一方でスケール出来ない

もう入れない・・・

Blockchainの特徴

ブロックなんて取っ払ったら、スケール問題解決するよ!!!

それやって、二重支払い防げるの?

ホワイトペーパー読めばOK(激ムズ)

3

Page 5: 【EXE Whitepaper】IOTAまとめ資料

IOTAのホワイトペーパーについて

タイトルが「The Tangle」と書いてあるとおり、IOTAのベースとなるTangleがいかに二重支払いを解決するかの数学的理論がメイン。 1章:システムの紹介と説明

2章:荷重 等

3章:システムの安定性とカット集合

3.1章:通常どれくらい早く累積荷重が成長するか?

4章:起こりうる攻撃シナリオ

4.1章:パラサイトチェーン攻撃と新しいチップ選択アルゴリズム

4.2章:分裂攻撃

5章:量子計算への耐性

エンジニアリング的な内容が知りたければ、下記のAbmushiさんの記事とか参考になります! IOTA:【入門】トランザクション大解剖!ウォレットは裏で何をやっているか。

https://qiita.com/ABmushi/items/e271ff05884a7d47658d

IOTA【技術解説】署名と承認。 - 改訂版https://qiita.com/ABmushi/items/422d1bf94be0c919583a

もっと詳しく知りたい方は、IOTAコミュニティに参加しよう(Discord)↓登録方法https://iotafan.jp/community/how_to_join-20170905

3章、4章が難解・・・

4

Page 6: 【EXE Whitepaper】IOTAまとめ資料

メモ:1.システムの紹介と説明

Full Node

Light Wallet Light Wallet Light Wallet

Full Node

Light Wallet Light Wallet Light Wallet

Tangleを同期 Tangleを同期 Tangleを同期

IOTAは、Full NodeとLight Walletで構成されている(Bitcoinに近い構成)。参考)https://iotasupport.com/walletknowledgebase.shtml

これがいわゆるウォレット。

IoT間のマイクロペイメント

もこれを組み込むイメージ。

Full Node

・Tangleのデータを持ち、他ノードと同期する必要がある。・発行されたTXの検証を行ない、2重支払いしているTXは排除している。・承認すべき2つのTXを特定のアルゴリズムで抽出 (現在はMCMCがベース)。・TXを発行する際、Bitcoin同様PoWを行なう。

Light Wallet・Full Nodeに接続し、承認すべき2つのTXを取得。・TXを発行する際、Bitcoin同様PoWを行なう。

※WPで「ノード」はFull Nodeの事を指している。(Light Walletは言及してない)

5

Page 7: 【EXE Whitepaper】IOTAまとめ資料

補足:ノードを立てるモチベーション

ノードの信頼性を確認する必要が無い 企業がIOTAを活用する際、第三者のノードではなく自前で用意する事で信頼出来るノードかどうかを時間をかけて検証する必要が無い。

ローカルネットワーク上でやり取りが可能 常時オンラインの必要性がない。(他ノードと同期を取る時だけオンラインになれば良い)

ネットワーク遅延が発生しにくく、高速で処理が可能。

※参考)http://www.tangleblog.com/2017/06/27/incentive-run-fullnode-iota/

(私的意見)企業が活用する際は、企業や企業連合がそれぞれノードを立てて、各デバイスが各ノードに紐付く事があるべき姿と考える。 企業がノードを立てて、専用のIoTデバイスを販売して利益を得るアプローチもある。

IoT間のマイクロペイメントを実現するだけなら、Full Nodeではなく、Light Wallet

を組み込むだけで良い。では、Full Nodeを立てるモチベーションは何か?

(BitcoinであればBTCのインセンティブがあるが、IOTAにはそれが無い)

6

Page 8: 【EXE Whitepaper】IOTAまとめ資料

メモ:1.システムの紹介と説明

トランザクションの発行には、既に発行済のトランザクションを2つ承認する必要がある。

全てのトランザクションによって、間接的または直接的に承認されるジェネシストランザクションが存在する。 全トークンはジェネシストランザクションで作られた

サイト:Tangleにおけるトランザクションを指す グラフ理論におけるノード。IOTAのノードと混同を避けるための別名では無いか?

特定のノードが怠けすぎの場合は、隣人のノードによって外される。 ここで言う怠けすぎのノードとは、メンテナンスや同期をしっかりやっていないノードを指す。

7

Page 9: 【EXE Whitepaper】IOTAまとめ資料

メモ:2.荷重 等

荷重:ノードがトランザクションに投資した仕事量に比例(3の累乗値)→しかし、現在の実装上は一律「1」になっている。※以降の章では、各荷重は「1」と仮定する。

チップ:未承認のトランザクションの事。

累積荷重:自身の荷重と直接的・間接的なトランザクションの荷重の合計。

高さ:ジェネシスまでの最長パスの長さ。

深さ:チップまでの最長パスの長さ。

スコア:自身の荷重+直接/間接承認したトランザクションの荷重の合計。

【トランザクションFに関して】荷重:3累積荷重:10(A+B+C+D+E+F)高さ:2(F→G→Genesis)深さ:2(F→E→C 等)スコア:4(F+G)

【疑問】何故、荷重に3の

累乗値が用いられるのか?

8

Page 10: 【EXE Whitepaper】IOTAまとめ資料

メモ:3.システムの安定性とカット集合(※3.1章は次のターンで)

時点 t におけるシステムのチップの合計数を L(t) とした場合、L(t)が∞に発散しないか(=安定性があるか)を数式から検証している。→チップの残数に応じた2つの状態でそれぞれ検証

WPでは≈1.45hとなっているがおそらく誤記

9

Page 11: 【EXE Whitepaper】IOTAまとめ資料

メモ:3.システムの安定性とカット集合(※3.1章は次のターンで)

IOTAのノードは3種類に分類出来る。 誠実なノード:IRI(IOTA Reference Implementation)と呼ばれるソフトウェアを使って実行されるノード。コミュニティで合意の取れた統一プロトコルのみ(MCMC戦略等)を使用している。

攻撃者:出し抜いて二重支払いを達成しようとしている。(パラサイトチェーン攻撃、分裂攻撃等)

怠惰なノード:プロトコルやTangleのアップデートの対応をサボる。

攻撃者がいかなる手段を用いても二重支払い出来ないことを4章で数学的に証明している。

10

Page 12: 【EXE Whitepaper】IOTAまとめ資料

メモ:3.1. 通常どれくらい早く累積荷重が成長するか?

低負荷状態(λ(txの生成速度)=2)の場合 下記のように累積荷重は2ずつ(λの値と同じ)増加する

高負荷状態(λ=10,000)の場合 適応期間終了後、生成チップが全てのtxを間接承認する状態となるため、以降はλ分増加する。

※下記は、「ムラなく直前のチップを承認」を前提とした最善手(実際はこれよりも累積荷重の上昇は遅い)

時点t+1txが2つ生成(黄)各赤の累積荷重は3(+2)

時点t+2txが2つ生成(緑)各赤の累積荷重は5(+2)

時点t+3txが2つ生成(青)各赤の累積荷重は7(+2)

時点t+1txが1万個生成(黄)赤(左上)の累積荷重は3(+2)

時点t+2txが1万個生成(緑)赤(左上)の累積荷重は7(+4)

時点t+3txが1万個生成(青)赤(左上)の累積荷重は15(+8)

時点t+14txが1万個生成(紫)生成チップは全て赤(左上)を間接承認

10,000個

11

Page 13: 【EXE Whitepaper】IOTAまとめ資料

メモ:4.起こりうる攻撃シナリオ

大規模な計算パワーを持つマシンを使って、 攻撃パターン1:全計算能力で二重支払いのtxそのものの荷重を大きくする。→荷重を一律「1」にすれば、防げる。

攻撃パターン2:二重支払いのtxを承認するtxを大量に発行する。→防ぐ手立て無し→攻撃者の計算パワーに負けないようにみんな(誠実なノード)頑張ろう!

MCMCでも無理

12

Page 14: 【EXE Whitepaper】IOTAまとめ資料

メモ:4.1. パラサイトチェーン攻撃と新しいチップ選択アルゴリズム

チップをランダムで選択するアルゴリズムの場合、攻撃者が計算パワーを持っていなくても、二重支払いが成功する危険がある。(パラサイトチェーン攻撃)

MCMCは、チップ選択において累積荷重が重い方を選択しやすくするアルゴリズム。これによりパラサイトチェーン攻撃を防げる。

メインのタングル①AさんからBさんに支払い後、

対価(商品)をもらう。

②①と同じトークンのtxを発行し、それを自身でこつこつ承認。

③チップ選択がランダムの場合、メインのタングルからもたまに承認される。

④パラサイトチェーンがメインのタングルに合流し、同じ内容のtxが2つ存在することになる。

13

Page 15: 【EXE Whitepaper】IOTAまとめ資料

メモ:4.2. 分裂攻撃

メインのタングルを2つに分裂させ、2つのtxの累積荷重を同じ値に調整されれば、MCMCでも防げない。(分裂攻撃) 分裂させるのは至難ではある。(そこまで頻発する攻撃では無い)

MCMCをより深い位置から行えば、累積荷重が同じ値でも選択される確率に差が大きくなる。

メインのタングル

分裂タングル1

分裂タングル2

①AさんからBさんに支払い後、

対価(商品)をもらう。

② ①と同じトークンのtxを発行

し、タングルを2つに分裂させる

③2つのtxの累積荷重が近い値となるようにバランス調整。

14

Page 16: 【EXE Whitepaper】IOTAまとめ資料

メモ:5.量子計算への耐性

Bitcoinのブロック生成は、現在2^68回のハッシュをチェックする必要がある。 量子コンピュータは古典コンピュータの√N回で済むようなので、約170億(2^34)倍も効率が良い。

IOTAは荷重に上限を設けている→3^8 ナンス値を見つけるタスクが膨大にならないようになっている

敵対者が量子コンピュータを利用したとしてもBitcoinより恩恵が無い

15