タングル図解 パート2:トランザクションの到着率と遅延時間とランダムウォーク

補足説明
この記事は原題『The Tangle: an illustrated introduction Part 2』の翻訳です。
ご参考までに公開します。必要だと思われる部分には言葉や構成を補っています。
トップ画像は『The Tangle: an illustrated introduction Part 2』より引用しております。

投稿者:Alon Gal
投稿日:2018年02月08日

この連載の前回の記事では、データ構造としてのタングルについて述べました。またチップについてと、良いチップ選択アルゴリズムを選ぶことの重要性についても学びました。今回はトランザクションの到着率とネットワークの遅延時間、及びそれがタングルの形を決める上で果たす役割について学びます。また非荷重ランダムウォークについても学びますが、非荷重ランダムウォークに関しては来週にさらに詳しく説明します。

お気付きの読者もいるかもしれませんが、前回のシュミレーションの中では、トランザクションは時間の経過と共に均一に広がっているのではなく、無作為(ランダム)にある期間は他の期間より”忙し”くなります。この無作為性(ランダムな性質)によってシュミレーションはより本物に近づいていますが、この無作為性は、実際のトランザクションがどのように到着するかをモデル化するためにポアソン点過程を用いることによって生じさせることができます。ポアソン点過程モデルは、一定の期間内に「何人の客が店に入ってくるか」や「何本の電話がコールセンターにかかってくるか」などの分析方法として、とてもよく使われています。トランザクションの到着間隔の例として下のタングルを見てください。4番と5番と6番のトランザクションはほぼ同時に到着していますが、7番のトランザクションの到着まで長い間隔があります。

ビギナー向けなので、ポアソン点過程に関しては次のことだけを知っていれば十分です:平均的に新しく到着するトランザクションの割合は一定で\(\lambda\)(訳注:ラムダと発音するギリシャ語)という数字によって設定される。例を挙げると、もし\(\lambda = 2\)、並びにトランザクションの数を100と設定すると、シュミレーションの時間全体が約50の時間単位になります。自分で試して見てください!

次へ進む前に、もう一つ興味深いことがあります。もし\(\lambda\)に(例えば0.1などの)非常に小さな数を設定すると、チェーン(鎖状)となります。チェーンは、各トランザクションが、先行する二つではなく、先行する一つのトランザクションだけを承認していった場合のタングルです。チェーンが生じるのは、新しいトランザクションの到着が非常に遅いために、一定の時間内に承認すべきチップが一つしかないからです。他の極端なケースでは、\(\lambda\)の数を非常に大きくすると、すべてのトランザクションの到達が速くなりすぎて、The Genesis(訳注:一番古い最初のトランザクション)しかチップが見つからなくなります。単にシュミレーション上の制約ですが、\(\lambda\)に大きい数とトランザクションにある定数を入れると、非常に短い時間間隔のシュミレーションとなります。

非常に小さい\(\lambda\)はチェーンを生成する
The Tangle: an illustrated introduction Part 2』より引用

 

\(\lambda\)の数値が非常に大きいとThe Genesis(0番:一番最初のトランザクション)しか見えない
The Tangle: an illustrated introduction Part 2』より引用

 

それでは、新しいトランザクションがそれより一つ前のトランザクションを”見ない”とは、どういう意味でしょうか。このモデルでは、各トランザクションは到着してから一定の期間は見えないようにされていて、遅延期間は\(h\)という字で表示しています。この遅延は、新しいトランザクションの準備が整ってネットワークに伝播されるのに要する時間を表します。このシュミレーションの中では、常に\(h = 1\)と設定されているので、時間単位が少なくとも一つ前のトランザクションしか承認されません。この遅延はより本物っぽさを出すために加えられた枝葉末節ではなく、タングルの根本的な特性です。この遅延がなければ、タングルはいつも非常につまらないチェーン(鎖状)になってしまいます。またこの遅延があるためにタングルは、実際に人々が新しいトランザクションについてお互いに伝え合う場合に時間がかかる現実の世界により近づいています。

最後に、非荷重ランダムウォークというより高度なチップ選択アルゴリズムについて述べます。このアルゴリズムを用いることによって、ウォーカー(歩行者)は一番最初のトランザクションに配置されてから、チップス(訳注:未承認のトランザクションを意味するチップの複数形)に向かってウォーキング(歩行)を始めます。一ステップ進むごとに、その時点で位置しているトランザクションを直接承認する複数のトランザクションの中の一つにジャンプしていきます。どのトランザクションにジャンプするかを選択する確率は等しく、このように選択の確率が等しいゆえに”非荷重”という用語が使われています。当然ながらこれがどのように生じるかを見せるシュミレーションも制作済みです。

ウォーカー(歩行者)が通った進路は赤色で表示され、各分岐地点で進む可能性のある進路は青色で表示されます。ごく最近のトランザクションは現在のランダムウォークには不可視なので、透明として表されます。

今回はたくさんのことを取り上げたので、じっくりと記事を読み直したり、このシュミレーションで遊んでみたり、質問をしてください。どうか気軽に私に直接Discordの@alongal#3938まで連絡を入れたり、このページの下のコメント欄にコメントを書いてください。来週は累積荷重とマルコフ連鎖モンテカルロと荷重ランダムウォークについて学びましょう。

パート1:タングルの紹介
パート3:累積荷重と累積ランダムウォーク
パート4:承認者と残高(バランス)と二重支払い
パート5:コンセンサスと確定の信頼度とコーディネーター

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です