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.

IOTAの量子コンピュータ耐性

479 views

Published on

IOTAの量子コンピュータ耐性について整理しました

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

IOTAの量子コンピュータ耐性

  1. 1. IOTAの量子コンピュータ耐性 藤本 健太
  2. 2. 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 IOTAの特徴 あと6スライド 1
  3. 3. Bitcoinの量子コンピュータに耐えられない問題 あと5スライド 問題②Proof of Work破綻 Proof of Workは、先頭に0が連続するハッシュ値になるようなナンス値を求める早 押しバトル。マイニングにかかる費用(電気代、GPUなど)をいくらかけるかが要な のに、量子コンピュータ導入すれば勝てるクソゲーになる。 取引履歴 ナンス値 (任意の値) ハッシュ値 現在は、先頭の0が連続 18個続く必要がある SHA-256 問題①BTC盗み放題 Bitcoinの送金は、公開鍵暗号方式(secp256k1)が利用されているが、 量子コンピュータが実現すると秘密鍵が解析されてしまう。 100btc 500btc 2
  4. 4. ランポート署名(Winternitz署名のベース)の仕組み あと4スライド 送信者Aliceさんは、任意の文字列256対(計512個)を作成する。→秘密鍵 秘密鍵に対して、それぞれハッシュ関数をかけてハッシュ値を求める→公開鍵 ①署名作成 ②署名公開 ③署名検証 秘密鍵 公開鍵 乱数a 乱数b 乱数aの ハッシュ値 乱数bの ハッシュ値 1対目 aaa 111 hash(aaa) hash(111) 2対目 bbb 222 hash(bbb) hash(222) 3対目 ccc 333 hash(ccc) hash(333) 4対目 ddd 444 hash(ddd) hash(444) … … … … … 256対目 zzz 999 hash(zzz) hash(999) Alice 3
  5. 5. ランポート署名(Winternitz署名のベース)の仕組み あと3スライド 送信者Aliceさんは、任意の文字列をBobに送る。(例:HelloWorld) 送信文字列は、SHA-256を2進数表記に変換し、公開する秘密鍵を決定する。 ②署名公開 ③署名検証 Alice ①署名作成 Bob 文字列:HelloWorld →SHA-256:872e4e50ce99…e9bb12c4 →2進数:010011000010…01111000 4
  6. 6. ランポート署名(Winternitz署名のベース)の仕組み あと2スライド Bobさんは、公開された秘密鍵(片方)にハッシュ関数をかけて、送信メッセージ のハッシュ値と等しい事を検証する。 ③署名検証②署名公開 Bob ①署名作成 同じ値=正しい送信者 5
  7. 7. ランポート署名のまとめ あと1スライド 正しく署名をするためには、512の秘密鍵を持っている必要がある。公開される 秘密鍵は256なので、残り256の秘密鍵を解析しないとなりすましできない。 →量子コンピュータでも時間がかかる。 ↑逆に言えば、使えば使うほど秘密鍵が漏れていく欠陥がある。IOTAの送信アドレ スは一度使ったら、二度目は使ったら危ない。止めましょう。 この署名技術だけでは、「問題②Proof of Work破綻」は防げない。 が、マイニング競争としてPOWは使われないし、大量のスパム攻撃を受けたとして も、DAG構造により、むしろ恩恵が得られるらしい。 参考)https://www.reddit.com/r/Iota/comments/6i5re7/what_is_preventing_spamming_the_network/ 6
  8. 8. IOTAを始める  IOTAの仕組みについては、下記記事が参考になりました  量子コンピュータ耐性があるランポート署名について解説して、シェルスクリプトで実装して みた: https://qiita.com/onokatio/items/689965fa484d40d851ce  暗号通貨 IOTAの肝:http://qiita.com/utamaro/items/f1886b9eb0259535006b  IOTAの署名とその承認の仕組み: http://qiita.com/ABmushi/items/422d1bf94be0c919583a  IOTAの始め方例 ① 上記記事等を読んで理解を深める ② SlackにIOTAの日本語チャンネルがあるので質問や議論をする →エンジニアの方は、IOTAコインもらえる場合あり ③ IOTA Walletを使ってみる ④ Bitfinex等でIOTAを取引してみる(本当に取引手数料かからない!) ⑤ APIを叩いたり、ウォレットの中身を理解したり、よりディープな情報を見てみる  IOTAはまだまだ発展途上。開発もユースケース作りも必要 IoTの革新的なネットワークだと思うので、みんなで盛り上げましょう!! 7

×