Tangle:図解入りの紹介 第二回:取引率、遅延、ランダムウォーク

Translate this article into English

2018年5月最新! ▼当サイトで申込みが多い取引所

【1位】「GMOコイン」【10ヶ月連続1位!レバレッジ取引で人気!】

【2位】「bitflyer」【日本最大級取引所・人気No.1】

【3位】「ビットバンク」【セキュリティ対応No.1】

シェアする

本シリーズの前回の記事では、tangleをデータ構造として紹介しました。またチップと優れたチップ選択アルゴリズムを選ぶ重要性についても学びました。今回は取引率とネットワーク遅延時間について学び、そしてこの2つがtangleの形状を決めることを見ていきます。さらに重みなしランダムウォークについても紹介しますが、こちらについては次回詳しく説明します。

前回のシミュレーションでは取引が時間とともに均等に拡がるのではなくある時点が他の時刻と比べて「より忙しい」ことに気づいたかもしれません。このランダム性はモデルをより現実的なものにするもので、どれだけ多くの取引が到着するかをモデル化するポアソン点過程で実現できます。

このモデルは、与えられた時間にどれだけの数の客が入店したか、あるいはコールセンターにどれだけの数の入電があったかを解析するのに非常に一般的なものです。この動きは下のtangleの例で見ることができます。取引4、5、6はほぼ同時に到着していますが、取引6の後には長い空白時間があります。

ここではポアソン点過程について一つだけ知っていれば十分です。それは、平均するとやってくる取引の率は一定で、この率をλで表す、ということです。例としてλ=2と置くと取引数は100となり、シミュレーションにかかる時間は50単位時間となります。やってみてください!

先に進む前にもう一つ興味深いことを指摘しておきます。λに非常に小さい値(例えば0.1)を設定すると「連鎖」が得られます。連鎖とは取引が前の取引を2つではなく1つしか承認しないtangleのことです。このような状況は、入ってくる取引が非常にゆっくりなのである時点で見ると承認するチップがただ一つしかない場合に起こります。別の極端な例を挙げると、λが大きい場合はすべての取引が非常に早く到達するので、確認できるチップはgenesisだけになります。これはシミュレーションの制限に過ぎません。λに大きい値を入れ取引数を固定すると非常に短い時間をシミュレートすることになります。

非常に小さいλは連鎖を生成する

非常に大きいλ:genesisだけが見える

では、以前の取引を「見ない」取引とはどういう意味でしょうか? このモデルでは各取引は到着してから一定時間見えないようにしています。この遅延時間をhとします。この遅延時間は取引の準備が完了してネットワークを伝播するのに掛かる時間を表しています。私たちのシミュレーションでは常にh=1と置いています。つまり少なくとも1単位時間の過去の取引しか承認できない、ということです。この遅延時間は余計な現実のために設定した些細なことではなくtangleの基本的な性質であり、この性質がなければ常に非常にうんざりする連鎖になります。この性質はさらに、人々が新しい取引について互いに話すにはいくらか時間がかかる、という現実にtangleを近づけてくれるものです。

最後にさらに進んだチップ選択アルゴリズム、重みなしランダムウォークについて話しておきます。このアルゴリズムを使うとウォーカーをgenesis取引に置き、チップに向かって「歩き」始めさせることができます。各ステップでは取引のどれか一つに変化し、この取引は現在私たちがいる取引を直接承認します。重みなしという言葉は、変化する先の取引の選び方は等確率だということに由来します。もちろんこの様子を示すシミュレーションも作成済みです。

ウォーカーが辿る経路は赤色を付けており、可能な異なる経路の接続点は青色で示しています。もっとも最近の取引は現在のランダムウォークからは「見えません」が、透けて見えるようにしています。

今回はたくさんのことを紹介したので、記事をじっくり読み直し、シミュレーションを試し、疑問点は質問してください。Discordの私宛 @alongal#3938 まで直接連絡していただいてかまいませんし、下のコメント欄から返信いただいてもかまいません。次回は累積重み、マルコフ連鎖モンテカルロ法、重み付けランダムウォークについて説明します。

新しいIoTの技術を使っているIOTAは、今後IoT化が進むにつれて注目に値する通貨です。どのような特徴を備え、決算が行われていくのかを解説しています。また最近のニュースから、MIOTAの今後の可能性についても考察しています。

The Tangle: an illustrated introduction – Part 2: transaction rates, latency, and random walks