タングルの中のトランザクションが確定される比率

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

投稿者:Alon Gal
投稿日:2018年04月17日

IOTAの合意のメカニズムは、荷重ランダムウォークに基づいています。このチップ選択メカニズムを使うことで、タングルの中の大きな分岐*はより大きくなり、小さな分岐はより小さくなります。直感的にはブロックチェーンに極めて似ていますが、ブロックチェーンは最も長いチェーンに基づいて作られるのに対して、タングルは最も重い分岐に基づいて作らます。

(訳注:分岐*=Branchとは、未承認のトランザクションであるチップが承認されていく毎に、樹形図のように枝分かれする承認済みトランザクションの経路)

 しかしタングルではいつも必ず最も重い分岐に向かっていくのではなく、時には軽い分岐上にある諸々のチップの承認も確実に行われるように、ウォーク(歩行)にはある程度のランダム性も許されています。このようにする動機は、トランザクションの到着率を高く維持することです。もし最も重い分岐だけが承認されるようにしたら、結果として細いチェーン(鎖)状に承認済みのトランザクションが連なり、他のほとんどのトランクションは取り残されます。これを図解するために、ビジュアル・シュミレーションの\(\alpha\)に大きな値を入れて動すと、ほとんどのトランザクションが確定されないことが分かるでしょう。\(\alpha\)の値が小さいということはランダム性が高いということになるのに対して、\(\alpha\)の値が大きいと最も重たい分岐に向かって(予め決まっているかのように)決定論的にウォーク(歩行)していくことになる、ということを覚えておいてください。

あるトランザクションが取り残されたとしても、決してお金が失われるわけではないということは特筆すべきです。そのようなトランザクションはただ単にまだ確定されてなく、再アタッチやプロモートが必要であるということに過ぎません。その結果としてほとんどの場合にトランザクションの確定時間が遅延するという影響があります。

それでは\(\alpha\)の値はどのくらいの高さであるべきでしょうか?まさにその質問にIOTA財団の研究者であるBartosz Kusmierzが答えようと取り組んでいますが、目的は所与の\(\alpha\)値に対してどのくらいの数のトランザクションが取り残されるかの定量的評価です。そうすることで、ある\(\alpha\)値を越えると許容範囲以上の比率のトランザクションがタングルネットワークから失われるという\(\alpha\)値の上限を設定することが可能となります。

あるトランザクションが取り残される確率を見つけるために、Bartoszはタングルのシュミレーションを実行して、様々な時点でどの部分のトランザクションが確定されたかを測定しました。確定される比率と取り残される確率は密接に関連していることに注意してください。両者の数を合計すると常に100%となります。というのも、すべてのトランザクションは最終的には確定されるか、取り残されるかのどちらかだからです。

トランザクションが確定されたかどうかを定義づけるために、以下のような発見学習的手法が用いられます。非常に大きな\(\alpha\)値でチップ選択アルゴリズムを一回実行します。そうすると常に最も重たい分岐に向かってウォーク(歩行)していきますが、あるチップに到達した途端に、それが承認するトランザクションは確定されたと見なされ、その他のトランザクションはすべて取り残されたことになります。この定義は確定の信頼度の概念と厳密には同一ではありませんが、長時間シュミレーションすると実際に収束して行き、Yes/Noという二者択一の答えを与えてくれるのでより分析しやすいです。

確定された諸々のトランザクションがどのように測定されるかを示す絵図。大きい赤丸は大きな\(\alpha\)値のウォーク(歩行)によって選択されたチップで、小さな赤丸は確定されたと見なされる。
Confirmation rates in the Tangle』より引用

いくつかの結果を以下のグラフで見ることができます。

様々な\(\alpha\)と\(\lambda\)の値に対するトランザクションが取り残される確率。\(\lambda\)はトランザクションの到着率で、遅延時間\(h\)当たりのトランザクションの回数で測定される。詳細はこの記事に載っていますが、基本的には\(h\)はproof of workの実行にかかる平均時間です。PoWの実行時間が1分間(現状では実際に1分間ぐらい)と仮定すると、\(\lambda\)は一分間当たりのトランザクションの回数となります。
Confirmation rates in the Tangle』より引用

驚くことでもないですが、\(\alpha\)の値が大きいということは、取り残されるチャンスが高いということであり、それは確定される比率が低いということでもあります。しかしながら興味深いことに、トランザクションの到着率がこの力学に影響を与えるのです。トランザクションの到着率が高くなると、\(\alpha\)値は一定の確定の比率を保つために着実に減少していかなくてはなりません。

これらの結果は非常に役に立ちます。なぜなら所与のトランザクションの到着率に対して、どんな\(\alpha\)値が適切か、どの\(\alpha\)値だと高すぎるかという有益な基準を提供してくれるからです。例えば、少なくとも80%の確定率を達成するためには、\(\alpha\)の値は紫のカーブに沿って、あるいは紫のカーブより下に設定されるべきです。

上限があると仮定すると、次には自然に「下限はどうなんだ?」という質問が出ます。一般的に、\(\alpha\)が低ければ低いほど、そのネットワークは二重支払いや怠惰な行動に対して脆弱性が高まります。下限の実態について理解するためには、諸々の攻撃や不正行為に関してもっと研究を重ねなくてはなりません。具体的な研究結果が手に入ったら、すぐにIOTAコミュニティーと共有するつもりです。

いつもながら、皆さんのコメントと質問は大歓迎です。ここか私たちのDiscord(私は@alongal#3938、Bartoszは@bartkusmierz#7311)まで。
Bartoszの詳細な報告書はここにあります。

コメントを残す

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