暗号通貨 IOTAの肝

  • 5
    いいね
  • 0
    コメント

image.png

Iotaという暗号通貨を調べてみたので、調べた範囲で仕組みを記す。
ビットコインの知識前提であることに注意。
また、間違いがある可能性は高い。

公式HP
(重いです。。。)

自分の言葉で書いているので、正確な表現ではない。
また、IOTAの専門用語は意図的に使っていない。
文章は理解を助けるためだけ使うにとどめ、正式な理解は
ホワイトペーパまたはホワイトペーパー日本語を見てほしい。

トランザクションの扱い

iotaのtokenの送受信はビットコイン同様、トランザクションで行う。

ビットコインでのトランザクションの扱い

ご存知の通り、ビットコインでは、トランザクションはそのハッシュ値がブロックに収められて、
各ブロックはブロックのハッシュ値を参照することによりどんどん直線で繋がっていく。
「ブロックチェーン」と言われる所以。

image.png

故に、「理論上は」、各マシンは全く同じブロックチェーン(とトランザクション)を参照している。(多数派と異なるブロックチェーンは次第に脱落する。)

IOTAでのトランザクションの扱い

新しいトランザクションを送りたい各マシンが、既存のトランザクションを2つ承認する
(承認とは、ブロックチェーン同様、「2重支払い等トランザクションに矛盾がないこと」と「PoW」と思われる。)

image.png

上の図で、各四角はトランザクション、矢印はどのトランザクションを承認したか、を示す。例えば、11のトランザクションを発行する際、8と12のトランザクションを承認した、ということ。また、75や79は、図中に承認したトランザクションが存在しない。
右にあるものほど、古いトランザクションである。

故に、ビットコインと異なり、

  • ブロックチェーンは存在しない。
  • トランザクションのチェーンは存在する(と思われる)。ただし、唯一ではない。
  • マイニングはないし、feeもない。あえて言うなら、トランザクション発行者が自分でマイニング(のようなもの)を行う。

そんないい加減なことで、ちゃんと全トランザクションが承認されていくのか。

例えば、上の茶色のトランザクション(1〜7)すべてが参照されているトランザクションを抽出してみる。

image.png

見ての通り、トランザクションが進むほど、承認されている。

卑近な例で言えば、
男女がランダムなお相手を選んで子供を産んでいく。そうすると、そのうち、「人類皆兄弟」となって、同じ先祖を持つようになる。
ということ。

ただし、ランダムに承認するトランザクションを選択する、というのが肝になる。
じゃなければ、近親相姦になって、取り残されるトランザクションが出る。

承認するトランザクションの選び方

加重

トランザクションを承認するごとに、トランザクションの加重を累積させていく。
計算方法は、直接間接にトランザクションを承認する全てのトランザクションの自身の加重の合計とする。

image.png

例えば、上図で、トランザクションFの累積加重は9=3+1+3+1+1(Fの加重とA、B、C、Eの加重の合計)となる。
あえて言えば、ビットコインでの承認数みたいなもの。

承認するトランザクションの選び方

  1. 適当なトランザクションを選択する。
  2. 適当に矢印にしたがって歩く。ただし、確率を計算する数式を用いて、今いるトランザクションの加重に近いトランザクションほど行きやすくする。
  3. 矢印のない(未承認の)トランザクションについたら、それを選ぶ。

何が嬉しいか。

image.png

  1. いろいろなトランザクションを承認している新しいトランザクションを承認するほうが好ましい中、古いトランザクションばかり承認しているトランザクション(上図のlazy tip)を選択しにくくなる。 古いトランザクションばかりを承認しているトランザクションは累積加重がとても大きくなるため、選択される可能性が少ない。
  2. 攻撃者が作った偽トランザクションの集合(上図 parastic chain)を選択しにくくする。偽トランザクションは正式なトランザクション郡を承認していないので、非常に小さい累積加重を持ち、選択される可能性が低いから。

用語

ここからは用語の説明なので、理解だけしたい人は読む必要はない。

DAG

DAG (Directed acyclic graph) 、 有向非巡回グラフ。要するに下の図みたく、箱(vertex)を矢印(edge)で引っ張ったもので、決して循環しないもののこと。
これはIOTAの専門用語ではない。

image.png

それだけかよ、と侮るなかれ。グラフ理論という、ぶっとい本も軽く書ける、立派な数学の理論の1つ。単純なものほど奥は深いものである。秋山仁先生の専門分野でもある。情報工学出身で知らなければ、Knuth先生を知らない、とかDijkstra先生が読めない、Aho先生をアホ先生と呼ぶのと同じぐらい、恥ずかしい。

tangle

上記図のトランザクションの集合のこと。

tips

未承認のトランザクションのこと。

MCMC(Markov Chain Monte Carlo、マルコフ連鎖モンテカルロ)アルゴリズム

本当の意味は難しいようだが、Iotaでの意味では、承認するトランザクションの選び方 で説明したアルゴリズムのこと。

参考文献

レオンハルトジャパン公式BLOG IOTA 日本語情報サイト