本日は、数ある仮想通貨のうちの一つ、アイオータ(IOTA)について解説していきます。ちなみに、アイオータ(IOTA)はMIOTAという略称が用いられているようです。
アイオータ(IOTA)の歴史
毎度毎度のことですが、今回もアイオータの歴史からひも解いていきたいと思います。
アイオータ(IOTA)は誰が作ったのか?
アイオータは2016年7月に開発され、2017年6月に上場した(取引所での取引が可能になった)比較的新しいコインです。開発者は、jinn ラボラトリーズのSerguei Popov氏のようです。
アイオータ(IOTA)がつくられた理由とは?
アイオータ(IOTA)は、IoTを実現するためにつくられた仮想通貨です。
はい、そうですよね。ではここで、しっかりIoTについて知識を整理して、人に説明できるようになっちゃいましょう!
IoTとは?
IoTとは、Internet of thingsの略で一言でいうと、ものとインターネットをつなぐというものです。卑近な例でいえば、電気がスマートフォンに話しかけるだけ点くというのもIoTによるものです。昨今、IoTにより、日常生活が楽になっていますね。しかし、実際にIoTを取り入れているお宅はまだまだ少ないように感じます。
では、どうしてこんなに便利なIoTが普及していないのでしょうか。
一番の理由は、なんといっても「高い」ということ。新しい技術って便利だけど高いですよね。
もう一つの理由は、「インターネットに接続する=ハッキングにあうリスクが高い」ということです。インターネットに接続しているからにはハッキングされる確率があるのは当たり前ですね。ハッキングのリスクが仮想通貨を禁忌する向きにもつながっているくらいですから。
以上のような理由により、IoTが普及しきっていないといえます。
IoTとアイオータ(IOTA)の関係とは?
「IoTについてはよくわかったんだけど、アイオータと関係あるの?」という感じがしますよね。いまいちつながりが見えてこない。では、ここからはIoTとアイオータのつながりを詳しく見ていきましょう。
アイオータは仮想通貨、つまりお金としての役割を果たすので、IoTとアイオータをつなげることで、お金の支払いができるようになります。
ここはあくまで想像ですが、”冷蔵庫の中に足りないものを自動で判断して、足りない食材を注文して家に届けてくれる。支払いはアイオータでするのでこれもインターネット上から勝手に引き落とされる”というようなことも可能になるかもしれないということです。もしこんなことができたら、すごく便利じゃないですか?
IoTをもっと普及させるため、今ある課題を解決しようということで開発されたのがアイオータ(IOTA)なのです。
アイオータ(IOTA)の特徴
ここからはアイオータの特徴を見ていきましょう。
①ブロックチェーンではなく、Tangleを使用
②送金手数料が無料
③少額決済が可能
大きく分けると3つあります。以下で詳しく見ていきますが、まずはTangleとは何か、から始めましょうか。
Tangleとは?
はい、では未知の単語、Tangleについて説明していきましょう。
ブロックチェーンの欠点⁉
まずは、おさらいです。今までの仮想通貨にはビットコインと同様、ブロックチェーンという仕組みが使われていました。ブロックチェーンもかなり画期的なシステムであったのですが、そこには欠点もありました。
一番の欠点は、ブロックを作成・承認する人(マイナー)が必要なので、その人たちに払うお金=送金手数料がかかってしまうということ。しかし、送金手数料がかかってしまうことは、アイオータ(IOTA)の目的に反してしまうことを意味します。
ここで考えられたのが、Tangleという仕組みです。
*ブロックチェーンの詳しい解説は、下のリンクをチェック!
どこよりもわかりやすくビットコインを説明!ブロックチェーンやP2Pなどの仕組みをご紹介!
Tangleの仕組み
ここで例によってホワイトペーパーを参照します。ホワイトペーパーは、仕組みや安全性を訴えるものでしたね。私の言葉だけで説明すると語弊が生じるかもしれないので一応参照しておきましょう!(ホワイトペーパーも私が解説しているから、語弊が生じるかもしれませんが、ご了承ください)
アイオータ(IOTA)のホワイトペーパーの解説
以下、ホワイトペーパーのまとめです。
概要
この論文は、IoT業界の暗号通貨=アイオータ(IOTA)を形作っているテクノロジ-を分析する。このテクノロジーは、ブロックチェーンの後継システムとなるものである。またこのテクノロジーは、マイクロペイメント(マイクロ決済)に必要な機能も紹介している。
この論文の優れている点は、MCMCアルゴリズム(マルコフ連鎖モンテカロル法入門)の類である点だ。
*MCMCアルゴリズムとは、簡単に言うと、従来から存在したモンテカルロ法の欠点をマルコフ連鎖によって改善したもの。モンテカルロ法や、マルコフ連鎖モンテカルロ法については、『統計を取るときに使用するテクノロジー』という認識で今はいいかなと思います。アルゴリズムは、『公式』と定義しておきます。
1,システムの紹介と説明
ブロックシステムは、この数年間物凄い勃興を見せてきたが、いくつかの欠点があるため、すべての仮想通貨で用いられることを妨げている。その中の一つが、マイクロペイメント(少額決済)が不可能(*)という点だ。IoT業界においては、マイクロペイメントが重要視されている。
*厳密に言えば、不可能ではないのですが、論文本文でこの文脈では、不可能と明記してあったため、ここでは論文の意図をくんで不可能としました。ブロックチェーンシステムにおいてもマイクロ決済は可能ですが、少しのお金を送金するために、手数料を払わなければならず、コスパが良くない。したがって、不可能に近いといえます。
ブロックチェーンという仕組みには、様々な人々が参加しており、争いが起こりうる。このような不毛な争いを起こさせないために、新たなシステムを開発することは必須である。
したがって、この論文では、IOTAが実装しているシステム(=Tangle)の詳細な仕組みよりも、ブロックチェーンを使用しないことによって、生じる問題等を解説していく。
まず、tangleと呼ばれる、DAG(directed acyclic graph)というグラフがある。以下、順を追って仕組みを紹介する。
取引が行われる(送金等)
→ノード(ブロックを作成したりする人)が取引を承認する
→新たなブロックがグラフに加わる(グラフに加わるというのは、ブロックチェーンに即して言えば、チェーンの先端にくっつくことに似ている)
→この新たなブロックは、前の取引の中から2つの取引を承認する
もし、新たなブロックが前の取引の中で承認できるものがない時は、間接的に前の取引を承認することができる。
始めの取引(新たなtangleの初めの取引)は、他の全取引によって(直接的、間接的)承認される。
なお、始めの取引を行う方法は、次の通りである。
すべてのトークン(コインのこと)を残高として持つアドレス(人、と置き換えるとわかりやすい)があると仮定する。(=新たなtangleを作った人と考えると良いかも)
→そのアドレス(人)が、すべてのトークンを他のいくつかのファウンダー(開発者とでも言いましょうか)に送信する
これにより、すべてのトークン(コイン)は、開始時には存在しているので、新たなコインを発掘する(新たなブロックを作成するときに、実は、新たなコインの発掘を行っている)必要はない。
すなわち、マイナー(ノードとほぼ同じ意味と考えておくとわかりやすい)に支払う手数料が必要ないということ。
ここからは、考えうる場合を紹介する。
新たな取引を行うユーザー(取引をする人)は過去の取引の承認を行う必要がある。そのため、取引の信頼は確保される。ノード(新たなブロックを作成する人)は不正の可能性のある取引は承認しないことが前提であるのは言うまでもない。
過去の取引がより多くのユーザーによって承認されるにしたがって、その取引の信用度が増し、システムにより信頼されやすくなる。それ故に、不正取引がシステムによって受け入れられる場合はないに等しい。
上記の通り、取引にはなんのルールも存在しない。しかし、取引に参加する多数のノードがあるルールにのっとって動く場合、同種のルールに従うほうが良いと考える。
以下より、tangleが、コンフリクト(簡単に言えば、2つのノードが同じ取引の承認をしてしまい、2つに履歴ができてしまうこと)している取引を含む場合について考えていく。
コンフリクトしてしまっている場合でも、どちらもtangleに載せることが可能である。しかし、どちらを今後承認してもらう取引として採用するか、を選択する必要がある。
その時に使用する方法は、ノードが『チップ選択アルゴリズム』(チップ=承認されていない取引)を何度か行い、二つのうちどちらが、チップによって承認される確率が高いかを検証する、というものである。
また、次の質問にも回答する:『各ノードが、働く動機は何か』
直接的な動機付けは行っていない。しかし、すべてのノードがいくつかの統計情報を計算しているのであるが、その中の1つが隣接するノードの最新の取引量である。これによって、怠けているノードが特定されるので、勤勉に働かなくてはならない動機付けになる。
この仕組み(Tangle)は以前からあったということを明記しておく。
2,加重等
ここで、取引の加重、関連する概念を定義する。取引の加重は、ノードがその取引に対しての仕事量に比例する。すべての取引に加重のマークがあることが大切である。加重が大きいほど、その取引がノードにとって重要な取引であったことがわかる。
さて、私たちにとって、『取引の累積加重』というものは大事な概念である。累積荷重というのは、その一つの取引に関わった(承認したりして)取引の加重の和だからだ。
3,システムの安定性とカット集合
仮に、ある時点をtと置き、tの時点でのチップ(承認されていない取引)の数をL(t)とする。L(t)は安定にとどまることを期待する。(以下で検証)
L(t)は定数のあたりで変動し、無限にエスケープしないことを期待する。
L(t)の安定性を分析するために、いくつかのことを仮定する。
1,取引が多数のだいたい独立な実在物によって発行されること(取引は、人によって行われるととらえておいて差し替えないと思われる)
2,ノードがブロックを作成する時、2つのチップをランダムに承認する。この方法は、本当はあまり良くない(悪いノード等に勝てないため)だが、分析が簡単なので今回はこの条件で考察する。
*以下、原文では数式を用いて解説を行っているが、今回は割愛します。気になる人は、下に原文のリンクを張っておくのでチェックしてみてください!
――結論
低負荷(取引が少なめ)と高負荷(取引が多めで、複雑)を区別する。
低負荷の場合、通常、チップは1つか2つで、高負荷の場合、チップの数は承認戦略(ランダムで承認するのか、他の方法を選択するのか)による。
ランダムにチップを承認する方法が一番良いのであるが、チップの承認を推奨しないため、実用性に欠ける。より、精巧な方法については、4,1で取り上げる。
高負荷下において、チップが承認されるであろう時間内に承認されなかった場合、追加の取引で取引の承認を促すのはいい考えである。
3,通常どれくらい早く累積荷重が成長するか?
高負荷下では、取引が古く、多くの累積荷重を持ってると、新たな取引が承認されるまでに時間がかかってしまうことは否めない。その時点で、取引の累積荷重が予測不能な動きをすることが見込まれる。以下で、どのような動きを見せるのかを観察する。
*式割愛
高負荷下で、累積加重は、チップの大半が取引を承認するまでの間、増加し続けるスピードで成長する。チップの大半が取引を承認する期間が終了したら、スピードは異なるものの成長を続ける。なぜなら、新たな取引は間接的にこの取引の承認を行うからである。
4,起こりうる攻撃シナリオ
攻撃者はダンクルネットワークを追い越そうとする。以下、順を追って攻撃シナリオを見ていく。
攻撃者は商人にお金を支払う
→商人は、取引が信頼できる(取引の累積加重が大きい)ことを確認したら、商品を送り、攻撃者は商品を受け取る
→攻撃者は二重支払いのブロックを発行する(不正に作成したもの)
→攻撃者は小さなブロックを多数発行し(小さな取引を行い)、自分が先ほど発行した二重支払いのブロックを承認させる
という手順を踏む。さらに他の可能性についても考えうる。
可能性1:攻撃者が多数のアイデンティティを持っている可能性。(保険証の偽造で何人かを使い分けているというイメージがわかりやすいかもしれない)
可能性2:最初にお金を支払う段階で、大きな累積加重を持つ、偽のブロックを作成する可能性。
また、攻撃者の狙いは、自身が作成した、偽物のブロックのほうがみんなから承認され続け、本物のブロックを破壊するということである。
このことから、1つの偽のブロックによって全体を破壊することができるということがよくわかる。
*同様に式割愛
また、コンフリクトの起こった取引のどちらが正当かを決める際に、累積加重のみを根拠とするのであれば、注意が必要である。理由は上記の可能性2で説明した通り。
コンフリクトの起こった取引のどちらが正当かを決める際の最も良い方法は4-1で説明するものかもしれない。
4-1,パラサイト・チェーン攻撃と新しいチップ選択アルゴリズム
次の攻撃について考えてみよう。攻撃者が秘密裏に不正なチェーン(複数のブロックのつながり)を構築し、たまに本物の累積加重を参照し、同じだけの累積加重を得る場合。攻撃者は、始めのブロックとの距離を長くすることも考えうる。(古くからある信頼のおける取引である、という証明)最後に、善良なノードが、ユーザーに承認させるチップを『ランダムに選ぶ方法』をとっているとき、攻撃者はチップの数を増やすことが可能である。(攻撃者が自身の取引を承認させるために、たくさんのチップを生み出すことによって)
この攻撃を防ぐために、『ランダムに選ぶ方法』ではなく、『MCMCアルゴリズム』を用いてチップを選択するというアイデアを使う。
*式割愛
次に以下のような攻撃について考えてみる。攻撃者が正規のアカウントと別にパラサイトチェーンを構築するパターン。あるとき、正規のアカウントで取引を行い、取引相手との取引が成立すると、ノードがチップをランダムに選ぶ。攻撃者は、累積加重が比較的多く、始まりのブロックとの距離が長い、信頼の高いチップを作成しているのでノードによって選ばれる可能性が高い。ノードがパラサイトチェーン上にあるチップを『良い』と認識すると、徐々に正規のチェーンが承認されず取り残されていく。
MCMCアルゴリズムが、高い確率で攻撃者のチップを承認しないのかというと、正規のチェーンのほうが、はるかに多い累積加重を持っているからである。
次にノードがMCMCアルゴリズムに従う原理について説明する。1章で見た通り、ノードは同種のルールに従うほうが好ましいということをまずは念頭においてほしい。
ここで利己的なノードがたくさんいると仮定すると。ノードは信頼の高いチップを選択したいと考える。そうすると、必然的に信頼の高いチップの争奪戦が起こる。こうなってしまうと、競争に負ける可能性も高く、ノードにとってなんの利点もないので、MCMCアルゴリズムにのっとってやったほうがはるかに利口である。
4-2,分裂攻撃
今度は、MCMCアルゴリズムに攻撃を加える方法について考える。この攻撃はAviv Zohar氏が提案したものである。
攻撃者は高負荷下(取引が多く複雑なチェーンになっている場合)において、チェーンを2つに分裂させる。両方が成長を続けたと仮定する。善良なノードが2つのチェーンの結合を試みるのを避けるため、分裂攻撃の初めに、攻撃者は2つ以上のコンフリクトするトランザクションを作成する必要がある。
次に攻撃者はネットワークの半分くらいがそれぞれのチェーンに貢献することによって、最小限の仕事量でランダムな変動を補償できることを期待する。これで、攻撃者は同じ資金を2つのチェーンで使用することができる。
このような攻撃を防ぐためには、『シャープな閾値』を用いる必要がある。これは、2つのチェーンが成り立つことを非常に困難にするものである。
ネットワーク同期化の問題もあり、攻撃をすることは実に困難であることは指摘しておく価値があるであろう。
またこのような攻撃をかわす方法には、こんなものもある。片方のチェーンで強力な主体による多数の取引(ブロック)の発行である。
これにより、急激に2つのチェーンのブロックの数の違いを生み出し、2つのチェーンが成り立ちうるバランスを崩すことで、攻撃を困難にするというもの。たとえ、分裂を維持できたとしても、善良なノードが分裂前の取引(ブロック)しか承認しないという決めるかもしれない。
他にも検討の余地のある、MCMCアルゴリズムによる修正が存在する。*気になった方は下のリンクをチェック
5,量子計算への耐性
(現時点においては)大型の量子コンピューターは、従来のコンピューターより速度が速く、地道な作業を要求するようなものを計算する場合においては、最も効率的である。
これは、ブロックをより高速で作成でき、攻撃しやすいということを意味する。しかし、累積加重の上限を設定することによって、量子コンピューターによる攻撃も受け流すことができる。なぜなら、アイオータ(IOTA)はブロックを作成する際の計算量が少ないので、量子コンピューターは意味がないのである。(ブロックチェーンは、計算量が多いので量子コンピューターからの攻撃を受けうる)
したがって、Tangleはブロックチェーンよりも、量子コンピューターによる攻撃を受ける確率が低いといえる。
*最後には、謝辞と参考文献が掲げられています。
以上がホワイトペーパーの内容でした。これを踏まえて先ほどの利点をもう一度見てみましょう。
ブロックチェーンではなく、Tangleを使用
上記で説明したように、アイオータ(IOTA)はTangleという、ブロックチェーンよりも安全性の高い仕組みを用いています。高い信頼感を持っているということは、仮想通貨を運用するということにおいて、非常に重要なことですよね。
送料が無料
アイオータ(IOTA)は、くどいようですが、Tangleを使用しています。Tangleはマイニングが不要なのでマイナーに支払うお金が発生しないため、送料無料が実現できるのです。
少額決済が可能
送料が無料ということは、少額決済をしても不利益は被らないということです。少額決済が使えるようになったらさらに取引の幅が広がりそうですね。
*ホワイトペーパーの原文は下のリンクをチェック
日本語版:The tangle
英語版:The tangle
人気の理由とは?
上記の通り、安全性が高いことや、送料が無料なこと、少額決済が可能であるということも魅力なのですが、、、
大手企業が続々提携を発表した!ということが一番の理由ではないかと思われます。
すごいことに、マイクロソフト、富士通、ドイツの会社・フォルクスワーゲンなど、名の知れた有名企業との提供を発表しています。
これから普及していくことが確約されているかのようですね。
先述のとおり、アイオータ(IOTA)はIoTを普及するために開発されたコインであること、大量の取引を行うことが可能であるということが、有名企業との提携の理由として挙げられるでしょう。
アイオータ(IOTA)取り扱い取引所
と、思ったそこのあなた!ここで悲報です、、、(泣)
実は、アイオータは日本国内の取引所では、まだ取り扱いのないコインなのです。
しかし、まだ落ち込むのは早いですよ!日本国内にいながらにして、アイオータを買うことは出来るのです。
まず、日本の取引所で買えるコインを買います。(ビットコインとか)それを使って、海外の取引所でアイオータを購入する、という手順です。
ちょっとめんどくさいですが、今後に期待して買うというのはありですね。
アイオータ(IOTA)の価格
最後に気になるアイオータの2018年6月21日現在の価格は
約120円!!安い!まだまだこれからのコインなので安いのですね。
最後に
いかがでしたでしょうか?今回は、アイオータについての記事を書きました。「最近、やっとブロックチェーンを理解したばかりなのに、今度はTangle?」なんて思ったかたも多いのではないでしょうか?(私がその一人なのですが)
まだまだ知らない仮想通貨、IT用語が登場しますが、私もできる限り簡単に解説していこうと思っていますので、どうか皆さんお付き合いをよろしくお願いいたします。