Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【EXE Whitepaper】IOTAまとめ資料

1,498 views

Published on

Blockchain EXE Whitepaperにて、IOTAについて参加者とディスカッションした内容のまとめです。
https://peatix.com/event/335569
https://peatix.com/event/344059

Published in: Technology
  • Be the first to comment

【EXE Whitepaper】IOTAまとめ資料

  1. 1. Blockchain EXE Whitepaper みんなでブロックチェーン資料を読もう! 〜IOTA編〜
  2. 2. IOTAとは  2016年7月にローンチされた暗号通貨  送金手数料が無料なのでマイクロペイメントが可能。 IoT機器間の送金ネットワークとして期待。  IOTAの読み方は「アイオータ」 1
  3. 3. 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
  4. 4. 私なりのTangleの理解 ・ブロックサイズの上限は1MB ・ブロックの生成タイミングは約10分間隔 ・莫大な計算問題を各マイナーに強いる →二重支払いを抑止。一方でスケール出来ない もう入れない・・・ Blockchainの特徴 ブロックなんて取っ払ったら、スケール問題解決するよ!!! それやって、二重支払い防げるの? ホワイトペーパー読めばOK(激ムズ) 3
  5. 5. 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
  6. 6. メモ: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
  7. 7. 補足:ノードを立てるモチベーション  ノードの信頼性を確認する必要が無い  企業がIOTAを活用する際、第三者のノードではなく自前で用意する事で信頼出来るノードかど うかを時間をかけて検証する必要が無い。  ローカルネットワーク上でやり取りが可能  常時オンラインの必要性がない。(他ノードと同期を取る時だけオンラインになれば良い)  ネットワーク遅延が発生しにくく、高速で処理が可能。 ※参考)http://www.tangleblog.com/2017/06/27/incentive-run-fullnode-iota/  (私的意見)企業が活用する際は、企業や企業連合がそれぞれノードを立てて、 各デバイスが各ノードに紐付く事があるべき姿と考える。  企業がノードを立てて、専用のIoTデバイスを販売して利益を得るアプローチもある。 IoT間のマイクロペイメントを実現するだけなら、Full Nodeではなく、Light Wallet を組み込むだけで良い。では、Full Nodeを立てるモチベーションは何か? (BitcoinであればBTCのインセンティブがあるが、IOTAにはそれが無い) 6
  8. 8. メモ:1.システムの紹介と説明  トランザクションの発行には、既に発行済のトランザクションを2つ承認する 必要がある。  全てのトランザクションによって、間接的または直接的に承認されるジェネシ ストランザクションが存在する。  全トークンはジェネシストランザクションで作られた  サイト:Tangleにおけるトランザクションを指す  グラフ理論におけるノード。IOTAのノードと混同を避けるための別名では無いか?  特定のノードが怠けすぎの場合は、隣人のノードによって外される。  ここで言う怠けすぎのノードとは、メンテナンスや同期をしっかりやっていないノードを指 す。 7
  9. 9. メモ: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
  10. 10. メモ:3.システムの安定性とカット集合(※3.1章は次のターンで)  時点 t におけるシステムのチップの合計数を L(t) とした場合、L(t)が∞に発散 しないか(=安定性があるか)を数式から検証している。 →チップの残数に応じた2つの状態でそれぞれ検証 WPでは≈1.45hとなっているがおそらく誤記 9
  11. 11. メモ:3.システムの安定性とカット集合(※3.1章は次のターンで)  IOTAのノードは3種類に分類出来る。  誠実なノード:IRI(IOTA Reference Implementation)と呼ばれるソフトウェアを使って実行 されるノード。コミュニティで合意の取れた統一プロトコルのみ(MCMC戦略等)を使用している。  攻撃者:出し抜いて二重支払いを達成しようとしている。(パラサイトチェーン攻撃、分裂攻撃等)  怠惰なノード:プロトコルやTangleのアップデートの対応をサボる。  攻撃者がいかなる手段を用いても二重支払い出来ないことを4章で数学的に証 明している。 10
  12. 12. メモ:3.1. 通常どれくらい早く累積荷重が成長するか?  低負荷状態(λ(txの生成速度)=2)の場合  下記のように累積荷重は2ずつ(λの値と同じ)増加する  高負荷状態(λ=10,000)の場合  適応期間終了後、生成チップが全てのtxを間接承認する状態となるため、以降はλ分増加する。 ※下記は、「ムラなく直前のチップを承認」を前提とした最善手(実際はこれよりも累積荷重の上昇は遅い) 時点t+1 txが2つ生成(黄) 各赤の累積荷重は3(+2) 時点t+2 txが2つ生成(緑) 各赤の累積荷重は5(+2) 時点t+3 txが2つ生成(青) 各赤の累積荷重は7(+2) 時点t+1 txが1万個生成(黄) 赤(左上)の累積荷重は3(+2) 時点t+2 txが1万個生成(緑) 赤(左上)の累積荷重は7(+4) 時点t+3 txが1万個生成(青) 赤(左上)の累積荷重は15(+8) 時点t+14 txが1万個生成(紫) 生成チップは全て赤(左上)を間接承認 10,000個 11
  13. 13. メモ:4.起こりうる攻撃シナリオ  大規模な計算パワーを持つマシンを使って、  攻撃パターン1:全計算能力で二重支払いのtxそのものの荷重を大きくする。 →荷重を一律「1」にすれば、防げる。  攻撃パターン2:二重支払いのtxを承認するtxを大量に発行する。 →防ぐ手立て無し→攻撃者の計算パワーに負けないようにみんな(誠実なノード)頑張ろう! MCMCでも無理 12
  14. 14. メモ:4.1. パラサイトチェーン攻撃と新しいチップ選択アルゴリズム  チップをランダムで選択するアルゴリズムの場合、攻撃者が計算パワーを持っ ていなくても、二重支払いが成功する危険がある。(パラサイトチェーン攻撃)  MCMCは、チップ選択において累積荷重が重い方を選択しやすくするアルゴリ ズム。これによりパラサイトチェーン攻撃を防げる。 メインのタングル①AさんからBさんに支払い後、 対価(商品)をもらう。 ②①と同じトークンのtxを発行し、 それを自身でこつこつ承認。 ③チップ選択がランダムの場合、 メインのタングルからもたまに承 認される。 ④パラサイトチェーンがメインの タングルに合流し、同じ内容のtx が2つ存在することになる。 13
  15. 15. メモ:4.2. 分裂攻撃  メインのタングルを2つに分裂させ、2つのtxの累積荷重を同じ値に調整され れば、MCMCでも防げない。(分裂攻撃)  分裂させるのは至難ではある。(そこまで頻発する攻撃では無い)  MCMCをより深い位置から行えば、累積荷重が同じ値でも選択される確率に差 が大きくなる。 メインのタングル 分裂タングル1 分裂タングル2 ①AさんからBさんに支払い後、 対価(商品)をもらう。 ② ①と同じトークンのtxを発行 し、タングルを2つに分裂させる ③2つのtxの累積荷重が近い値と なるようにバランス調整。 14
  16. 16. メモ:5.量子計算への耐性  Bitcoinのブロック生成は、現在2^68回のハッシュをチェックする必要があ る。  量子コンピュータは古典コンピュータの√N回で済むようなので、約170億(2^34)倍も効率が 良い。  IOTAは荷重に上限を設けている→3^8  ナンス値を見つけるタスクが膨大にならないようになっている  敵対者が量子コンピュータを利用したとしてもBitcoinより恩恵が無い 15

×