• 検索結果がありません。

本論文では ブロックチェーンレス アプローチについて検討される これは現在 iota[1] において実装されているものである iota は最近 IoT 業界のための暗号通貨として設計された 当然 全ての理論解析はそのようなシステムが動作するバージョンからのフィードバックなしには成立しない 近日中にそ

N/A
N/A
Protected

Academic year: 2021

シェア "本論文では ブロックチェーンレス アプローチについて検討される これは現在 iota[1] において実装されているものである iota は最近 IoT 業界のための暗号通貨として設計された 当然 全ての理論解析はそのようなシステムが動作するバージョンからのフィードバックなしには成立しない 近日中にそ"

Copied!
26
0
0

読み込み中.... (全文を見る)

全文

(1)

1

The tangle

Serguei Popov, for Jinn Labs April 3, 2016. Version 0.6

摘要 ( Abstract )

本論文で、iota(IoT 業界の為の暗号通貨)のバックボーンとして利用されているテクノロジーを分 析する。このテクノロジーはブロックチェーン技術の自然な後継であり、進化の次のステップであ る。グローバルな規模で行われるマイクロ決済に必要な機能とともに公開される。

1. システムの紹介と説明 ( Introduction and description of the system )

この 6 年間のビットコインの勃興と成功はブロックチェーン技術の価値を証明するものであった。 だが、このテクノロジーにはいくつも欠点があり、ただ一つの各暗号通貨のグローバルプラットフォ ームとして利用される事を妨げている。それらの一つ、特記すべきはマイクロ決済が不可能であるこ とである。マイクロ決済は急速に発展しつつあるモノのインターネット(IoT)業界において重要度が 増している。具体的に、現行のシステムではトランザクション(取引)を実行する際、フィー(手数料) を支払わなければならない。ゆえに、ビットコインやブロックチェーンは、ほんの少額の送金を行う にあたって合理性に欠ける。なぜなら、送金額の何倍ものフィーを払うことになるからである。その 一方、フィーを撤廃するのは簡単でなく、フィーこそがブロックの生成者にとってのインセンティブ であるからである。また、現行の暗号通貨は役割(トランザクションの発行者やトランザクションの 承認者)が明確に分離されたヘテロジニアス(異種混在)システムであることも観察される。そのよ うなシステムは一部の要素に対し、不可避的な差別を作り出し、それがコンフリクト(衝突)を生 み、すべての要素がコンフリクトの解決にリソースを費やさなければならなくなる。これら全ては、 ビットコインや他の多くの暗号通貨が基盤とするブロックチェーン技術とは違うソリューションの探 求を正当化するものである。

(2)

2

本論文では、「ブロックチェーンレス」アプローチについて検討される。これは現在 iota[1]におい て実装されているものである。iota は最近 IoT 業界のための暗号通貨として設計された。当然、全て の理論解析はそのようなシステムが動作するバージョンからのフィードバックなしには成立しない。 近日中にそのようなフィードバックが提供されることが望まれる。 一般的に、iota は次のような仕組みである。グローバルなブロックチェーンの代わりに、私達が tangle と呼ぶ DAG( =directed acyclic graph、有向非巡回グラフあるいは閉路を含まない有向グラ フ)がある。ノードによって発行されたトランザクションは tangle のサイト集合(site set)を構成する (= tangle グラフはトランザクションを保管する台帳である)。そのエッジ集合(edge set)は次のよ うに取得される:新たなトランザクションが到着すると、2 つ1の前のトランザクションを承認しなけ ればならない。これらの承認は図 1 等にある通り、有向エッジ(directed edge)によって表わされる。 (図において時間は常に左から右へである)トランザクション A とトランザクション B の間に有向エ ッジがないが、少なくとも「2」の長さの有向パスがある場合、私達はこれを「A は B を間接的に承認 する」と呼ぶ。「ジェネシス」トランザクションでもあり、他の全てのトランザクションによって (直線的または間接的に)承認される。図 2 を参照のこと。創始フェーズ(genesis)は次のように記 述される。まず初めに全てのトークンを残高として持つアドレスがあるとする。次にジェネシストラ ンザクションがこれらのトークンを全て、他のいくつかの「ファウンダー」アドレスに送信した。全 てのトークンが創始フェーズにおいて生成され、その後、トークンの生成はなく、また、マイニング は「マイナーが金銭的報酬を受け取る」という意味では存在しないことを強調したい。 用語について一言:サイト(sites)とは、tangle のパスに表されるトランザクションである。ネット ワークはノードから構成されている。ノードがトランザクションを発行する主体であるということで ある。 さて、主なアイデアを次に示す:トランザクションを発行するには、ユーザーは他のトランザクシ ョンを承認するための仕事をする必要があり、それがネットワークのセキュリティに貢献する。各ノ ードは承認されたトランザクションがコンフリクトしていないことを確認し、衝突するトランザクシ ョンを(直接間接を問わず)承認しないことを前提とする2。トランザクションがもっと多くの(直接 間接の)承認を得るにつれ、システムによってより受け入れられるようになる。別の言い方をする と、二重支払いのトランザクションがシステムによって受け入れられるのはより難しく(または実際 的に不可能と)なる。承認されるトランザクションについて私達の方でルールを課していないことを

1 これは最もシンプルなアプローチである。トランザクションが一般の k ≥ 2 について k 個の別のトラン ザクションを承認しなければならない類似のシステム、またはもっと複雑なルールも研究されたい 2 コンフリクトするトランザクションを承認する新たなトランザクションをノードが発行する場合、他によ って承認されずよって忘れ去られるリスクを冒すことになる

(3)

3

見て取るのは重要である。むしろ、他の多数のノードがある種の「参照」ルールに従った場合(ファ ームウェアが事前にインストールされている特殊なチップを搭載したノードである IoT のコンテキス トにおいて妥当な仮定に思われる)、そのとき、すべての固定ノードにとって同種のルールに常に従 う3ほうが良いと私達は主張する。 もっと具体的には、トランザクションを発行するにはノードは以下を行う:  最初に、どれかのアルゴリズムに従って別の承認する 2 つのトランザクション(一般に、これ らの2つのトランザクションが一致することがある)を選ぶ。  この 2 つのトランザクションがコンフリクトしていないかチェックし、コンフリクトしている トランザクションは承認しない。  トランザクションが有効であるためには、ノードはビットコインマイニングと似た、暗号学的 パズルを解く必要がある(ヘビーな計算を要するもの)(例:あるノンスのハッシュと承認さ れたトランザクションからのデータを合わせたものが特定の形を取るような、例えば一定数の ゼロが前に来るノンスを見付けなければならない)。 一般に、非同期ネットワークなので、各ノードは必ずしも同じトランザクションの集合を見ていな い事を観察するのは重要である。また tangle がコンフリクトしているトランザクションを含む場合が あることも言及に値する。各ノードはどの有効な4トランザクションが台帳に載せられる権利があるか についてコンセンサスを達成する必要はない(全て台帳に載せることが可能だ)が、コンフリクトし ているトランザクションがある場合、どちらのトランザクションが「孤児」となるべきか決める必要 がある(後のトランザクションによって承認されなくなるという意味である)。2 つのコンフリクトし ているトランザクションの間で決定する際の主要ルールは次の通り:ノードがチップ選択(tip selection)アルゴリズム5(セクション 4.1 参照)を何度も実行し、2つのうちどちらのトランザクシ ョンが選択されたチップによって(間接的に)承認される可能性が高いかを見る。例えば、チップ選 択アルゴリズムを 100 回実行した後、あるトランザクションが 97 回選択された場合、私達は「97% の信頼度で確認された」と言う。 また、次の質問についてコメントしたい ( [4]を参照 ):「各ノードがトランザクションを伝播する 動機付けはどこにあるのか?」実際、私達の設定では各ノードには伝播する動機付けはない。全ての ノードがいくつかの統計情報を計算し、そのうちの一つは隣人のノードからいくつのトランザクショ

3 これについてはセクション 4.1 の終わりで更にコメントする 4 プロトコルに従って発行されたトランザクションのこと 5上記で言及されたように、他のノードが従う良い理由がある

(4)

4

ンが受信されたかである。ある特定のノードが「怠けすぎ」の場合、隣人のノードによって drop、外 されるので、ノードがトランザクションを発行しなかった(従って、自身を承認する新しいトランザ クションを共有する直接のインセンティブがない)としても、「勤勉に働く」インセンティブは依然 として存在する。 この先の各セクションでは、セクション 2 でいくつかの表記法を導入した後、どの 2 つのトランザ クションを承認するかを選択するアルゴリズム、トランザクション承認全般を測定する規則(セクショ ン 3、特に 3.1)、そして起こりうる攻撃シナリオ(セクション 4)について議論する。また、数式に恐 れを抱く(考えにくいが)場合、読み手は各セクション末尾の「結論」に直行することも出来る。 暗号通貨のコンテキストにおける DAG の利用というアイデアがしばらく前からあったことは付言さ れるべきである( [3, 5, 6, 7, 10]を参照のこと)。具体的には、[6]の取り組みにおいて、GHOST プロ トコルが導入された。これはビットコインプロトコルの修正版であり、主台帳をブロックチェーンの 代わりにツリーにしたものである。そのような修正は確認の回数を減らし、ネットワーク全体のセキ ュリティを改善することが示された。論文 [7]では著者達は、DAG ベースの暗号通貨モデルを検討し ている。ただし私達のとは異なり、DAG のサイト(sites)は(個別のトランザクションでなく)ブロッ クで、マイナー達がトランザクションのフィーを求めて競い、(ビットコインと同じく)新たなトー クンが生成されうるものである。また観察すべきは、[5]の取り組みで、私達のと類似性を持つソリュ ーションが提案されている。ただし特定のチップ承認戦略について議論されてはいない。また P2P 決 済チャネルの確立によってビットコインでのマイクロ決済を可能にする [2,8] のアプローチにも言及 しておく。

2. 加重 等 ( Weights and more )

ここで、トランザクションの加重そして関連の概念を定義する。トランザクションの加重は、発行 したノードがそのトランザクションに「投資」した仕事量に比例する。実際には加重は 3nの各値を取 ることが出来る。n は正の整数で、受け入れられることが可能な値の非空のインターバルに属する。6 私達にとって必要な概念の一つは、トランザクションの累積加重である。それは、このトランザク ション自身の加重に加え、直接間接に私達のトランザクションを承認する全てのトランザクションの 自身の加重の合計として定義される。この累積加重の計算アルゴリズムは図 1 に示されている。各ボ ックスはトランザクションを表す。ボックス内右下隅の数字はトランザクション自身の加重を示す。

6 このインターバルは有限でもあるべきである―セクション 4 の「大きな加重攻撃」を参照のこと

(5)

5

一方、大きめで太字の数字は累積加重である。例えば、トランザクション F は、トランザクション A、B、C、E によって直接間接的に承認される。トランザクション F の累積加重は 9 = 3+1+3+1+1 (F の加重と A、B、C、E の加重の合計)となる。 図の上半分において、承認されていないトランザクション(tips,「チップ」)は A と C だけである。 新たなトランザクション X が現れ A と C を承認すると、X が唯一のチップとなる。また他の全てのト ランザクションの累積加重は 3(X の加重)だけ増加する。

(6)

6

図 2:スコアの計算について( circled ) 承認アルゴリズムの議論については、他の変数を導入する必要がある。まず、the tangle 側(=ト ランザクション)に導入する:  高さ(height)、ジェネシスへの最長の方向付けられたパスの長さとして  深さ(depth)、どれかのチップへの最長の逆に方向付けれられたパスの長さとして 例えば、図 2 で、G は 1 の高さで 3 の深さを持つ一方、(逆パス F、B、A のため)D は 2 の高さで 2 の深さである。また、「スコア」と言う概念を導入したい。トランザクションのスコアは、このトラ ンザクションによって承認された全てのトランザクションの加重と自身のトランザクション加重の合 計として定義される。図 2 を参照のこと。なお、唯一のチップは A と C のみである。トランザクショ ン A は(直接間接に)トランザクション B、D、F、G を承認する。よって A のスコアは 1 + 3 + 1 + 3 + 1 = 9 となる。同様に C のスコアは 1+1+1+3+1=7 となる。 また、上のメトリクスの内、累積加重が私達にとってもっとも重要であることを見て取っていただ きたい(ただし高さ、深さ、スコアも一部の議論で扱われるが)。

3. システムの安定性、そしてカット集合 ( Stability of the system, and cutsets )

仮にシステムの t の時点において、L(t)をチップの合計数(承認されていないトランザクションの 数)とする。当然、確率過程 L(t)は安定にとどまる7と期待される(より正確には、正再帰(positive

recurrent)。正式な定義については[9]のセクション 4.4 と 6.5 を参照。特に、正再帰は P[L(t) = k]

(7)

7

as t → ∞ の極限が存在すべきで、全ての k ≥ 1 について正であるべきことを暗に意味する)。直観 的に、 L(t)が定数のあたりで変動し、無限にエスケープしない(その結果沢山の承認されていないト ランザクションを残さない)ことを私達は期待する。 L(t)の安定性特性(stability properties)を分析するために、いくつか仮定する必要がある。仮に λ を トランザクションの入力(Poisson)のフローの速度(rate)とする。単純化のため、これは定数であ ると仮定しておこう。全てのデバイスがほぼ同等の演算処理能力を持つこと、 L のチップがあり、ト ランザクションの合計数が N である状況においてデバイスがトランザクションを発行するため必要な 計算を行うのに必要な平均時間 h(L,N)を仮定する。まず、ノードがトランザクション発行の際、単に 2 つのチップをランダムに選択、承認するという戦略を考える。この場合、異なるチップに対する承認 の Poisson フローは独立であり、λ/L の速度を持つ(これは[9]の定理 5.2 に従うものである)。よっ て、

(訳注:nobody approves a give time h(L,N) =誰も一定時間 h(L,N)に承認しない) これは私達のデバイスが次に等しい、トランザクションを発行する瞬間に期待されるチップの合計 数の増加を意味する: (上の数式において、”1”はトランザクションによって新たに生成されたチップに対応し、第二項は 「消された」チップの予想される数である)さて、L(t)は実際、最も近い隣人トランザクションとの N = {1, 2, 3, . . .}上の連続時間ランダムウォークである。なるほど確かに、2 つの選択されたトランザ クションが既に他によって承認された場合、プロセスは一単元左にジャンプし、選択されたトランザ クションが両方とも承認されなかった場合、プロセスは一単元右にジャンプし、最後の可能性として は、同じ所に留まる。 今ここで、このプロセスの典型的な振る舞いを理解するために、(2)における移動が小さな L につい て正であり、大きな L について負である(少なくとも h(L, N ) = o(L) as L → ∞の場合、あるいは計 算処理/伝播時間への主な貢献がチップを扱うことに由来しないと仮定して)事を観察しよう。L の 「典型的な」値は(2)が消滅するところとなり、それは以下のような L0 である。

(8)

8

明らかに、上に定義された L0 はチップの集合の典型的なサイズでもある。また、トランザクション の初めての承認に予想される時間はおおよそ L0/λ である。 また、(少なくとも各ノードがチップを承認しようと試みる場合)任意の固定時間 t において、 s ∈ [t,t+h(L0,N)] の瞬間においてチップであったトランザクションの集合が、t′ > t からジェネシスの時 間に発行されたトランザクションからのあらゆるパスがこのパスを通過しなければならないという意 味で典型的にカット集合を構成することを観察されたい。カット集合のサイズが時々小さくなること は重要である;この小さなカット集合を DAG 剪定(せんてい)やその他のタスクのためのチェック・ ポイントして利用することが出来る。 今ここで、上の「純粋にランダム」な戦略は、実際の場面においてあまり良いものとはいえない。 なぜなら、チップの承認を奨励しないからである。「怠けたい」ユーザーはかなり古いトランザクシ ョンを常に承認することができ、(よって最近のトランザクションの承認に貢献しない)そのような 行動によって罰せられることもない8。そのような行動を妨げるためには、より高いスコアを持つチッ プにバイアスがかかった戦略を採用しなければならない。 そのような戦略の例は次のようなものであることが出来る。パラメーター α ∈ (0, 1)を固定し、ト ップの αL(彼らのスコアに対し)の間で 2 つの承認するトランザクションを選択する。上と同様の判 断は典型的なチップの集合のサイズが次のようになることを示唆している: トランザクションが初めて承認されるのにかかると予想される時間については、状況はやや複雑で ある。トランザクションが初めて承認されるのにかかると予想される時間について議論を始める前 に、原則的に 2 つの型を区別できる事を観察されたい(図 3 を参照)。  低負荷:典型的なチップの数は小さく、頻繁に 1 になりさえする。これはトランザクションの フローが十分に小さいので、いくつかの異なるトランザクションが同じチップを承認する可能 性があまりない時に起こりうる。また、ネットワークのレイテンシーがとても低く、各デバイ

8 私達が、攻撃者が彼/彼女にとって都合の良いチップを選択できるよう、特定のチップ選択戦略を押し付 けようとしていないことにご注意いただきたい

(9)

9

スの演算が高速な場合、多数のチップが現れることも可能性がないことである。また、人工的 にチップの数を膨らませようと試みる攻撃者がいないことを前提としなければならない。  高負荷:典型的なチップの数は大きい。トランザクションのフローが十分に大きく、計算処理 の遅延とネットワークのレイテンシーがいくつかの異なるトランザクションが同じチップを承 認する可能性を高くする時に起こりうる。 図 3: The tangle とその典型的なチップ集合(灰色)、低負荷と高負荷の型において。後者におい て、一部のトランザクションは初めて承認されるまでにかなり待つ場合があることを観察されたい。 もちろん、この分類は非公式なものであり、2 つの型の間に明確な境界線はない。それでも、これら の原則的に異なる 2 つの型を考えることは示唆に富むと思われる。 低負荷の型において、状況は比較的に単純である。最初(または最初のいくつかの一つ)の入って きたトランザクションが既に私達のトランザクションを承認するので、最初の承認は λ-1のオーダーの 平均時間で起こる。さて、高負荷の型を考えてみよう。まず、トランザクションがトップの αL に入ら なかった場合、待ち時間は非常に大きくなり、exp(cL0(α))のオーダーとなり得る。(L の小さめの値の L0(α) へ向かう移動があり、チップ集合のサイズは承認のために考慮されるのに L0(α) よりもっともっ と小さくなる必要があるので)従って、そのようなトランザクションの所有者にとって良い戦略は最 初のトランザクションを参照する追加の「空の」トランザクションの発行を望み、このトランザクシ ョンがトップの αL に入ることであろう。また、上と似て、トランザクションがトップの αL の一つだ った場合、初めて承認されるのに一定の確率で L0/λ タイムユニットを待っている必要がある(αL0(α)

(10)

10

= L0を観察のこと)。しかし、それが起こらなかった場合、トランザクションはトップの αL より下に 落ちるかも知れず、その場合、良い戦略は追加の空のトランザクションでそれをプロモートすること である。 もう一つの容易な戦略は(全ての中から)5 つのランダムなチップをピックアップし、その内のトッ プ 2 を承認する。再度、あなたのトランザクションが Θ(L0/λ) = Θ(h(L0,N))の時間の間に承認され なかった場合、追加の空のトランザクションでプロモートするのは良い考えである。 また私達は、例えばスパムを防止するため、承認戦略が更に修正される場合があることも理解して いる。例えば、各ノードはより大きい自身の加重を持つチップを選好するかも知れず、スパムを行う 者が自身のトランザクションを承認させることはより困難となる。 今ここで、高さとスコアに基づく承認戦略は、特定のタイプの攻撃に対して脆弱であるかも知れな いことが明らかになっている。セクション 4.1 を参照のこと。私達はそのような攻撃に対し防御する より精巧な戦略9についてそこで議論していく。にも関わらず、最も単純なチップ選択戦略(「ランダ ムに 2 つのチップを選択」)は依然として検討の価値がある。最も分析が容易で、従ってシステムの 定性的および定量的な振る舞いについて一定の知見を与えうるからである。 結論 ( Conclusions ): 1. 私達は図 3 に描かれたように、2 つの型、低負荷と高負荷を区別する。 2. 低負荷の型において、通常多くのチップはなく(1 つか、2 つ)、チップは Θ(λ−1)で、初めて承 認される。λ は入ってくるトランザクションのフローの速度である。 3. 高負荷の型において、典型的なチップの数は承認戦略(どのように新たなトランザクションが承 認のために別の 2 つのトランザクションを選択するか)による。 4. 「ランダムに 2 つのチップを選択」戦略において、典型的なチップの数は(3)によって与えられ る。この戦略が典型的なチップの数に対して最適であることが示されることが出来る。ただし、 この戦略の採用は実用性に欠ける。なぜならチップの承認を奨励しないからである。 5. 戦略「トップの αL(t)の中から 2 つのチップをランダムに承認する」(この戦略には上のデメリッ トはない)について、典型的なチップの数は(4)によって与えられる。

9 実際、著者の思いはチップ承認戦略こそが tangle ベースの暗号通貨構築のための最も重要なパーツであ るということである。そこにいくつも攻撃ベクトルが隠れている。また、特定のチップ承認戦略を強制する 方法がないので、各ノードが、他ノードの多数が従うことを知った上で自発的にそうするようなものでなけ ればならない。

(11)

11

6. ただし、より精巧な戦略が必要とされる。そのような一連の戦略がセクション 4.1 で記述され る。 7. 高負荷の型において、チップが承認されるまでの典型的な時間は Θ(h)である(h はノードの平均 計算/伝播時間)。ただし、上の時間インターバルで初めての承認が起こらなかった場合、トラン ザクションを追加の空のトランザクションでプロモートするのは(発行者/受領者にとって)良い アイデアである。 3.1 通常どれくらい速く累積加重が成長するか?:

( How fast does the cumulative weight typically grow? )

低負荷の型において、私達のトランザクションが何度か承認された後、その累積加重は λω のスピー ドで成長する。ω は原則的に全ての新たなトランザクションが間接的に私達のトランザクションを参 照することから、ジェネリックなトランザクションの加重平均である。 高負荷の型については、このセクションの前の方で見て取れる通り、トランザクションが十分に古 く大きな累積加重を持つ場合、同じ理由で、累積加重は λω のスピードで成長する。また、始めにおい てトランザクションが承認まで待たなければならないことがあることを私達は見た。その時点でその トランザクションの累積加重がランダムな振る舞いをすることは明らかである。トランザクションが 幾つかの承認を得た後どれくらい速く累積加重が成長するかを見るには、(単純化のため、私達のト ランザクションが作成された瞬間から時間をカウントする)H(t) を時間 t における予想される累積加 重、そして K(t)を時間 t において私達のトランザクションを承認するチップの予想される数(または 単に「私達のチップ」)としよう。h := h(L0,N)という短縮表記も用いる。また、時間内に、全体の チップの数がほぼ定数(L0 に等しい)であるという単純化された仮定も行う。ここで「2 つのチップ をランダムに承認する」戦略を扱うー「トップの αL(t)から 2 つのチップをランダムに承認する」戦略 と大体同じ結果となることが期待される。 時間 t の時点でシステムに到来するトランザクションが、システムの状態に基づき時間 t-h の時点 で、通常 2 つの承認するトランザクションを選択することを観察されたい。少なくとも「私達の」チ ップの一つ を承認する確率が次のようであることを得るのは難しくない。 例えば[9]の例 6.4 と相似して、次のように書くことが出来る。

(12)

12

従って次の微分方程式を演繹できる。 (5)を利用できるためには、まず K(t)を計算する必要がある。t-h の時点でのチップが t の時点での チップでないかも知れなので、どのように行うかすぐには明確でなく、新たに到来したトランザクシ ョンがそのようなチップを承認した場合、元のトランザクションを承認するチップの全体の数は 1、増 加する。今ここで、欠かすことの出来ない洞察は、t-h の時点のチップが t の時点でチップであり続け る確率は約 1/2 である。(1)と(3)を思い出して欲しい。つまり、t の時点で事実上 K(t−h)の前のチッ プの半分がチップであり続け、残りの半分が最低 1 度は既に承認されている。A によって t-h の時点 におけるそれらの(約) K(t − h)/2 のチップが t の時点でチップである続けた集合を示し、B によって (既に承認された)他の K(t − h)/2 の集合を示すとしよう。仮に p1 を新たに到来したトランザクシ ョンが B から少なくとも 1 つのトランザクションを承認し、A からは全くトランザクションを承認し ない確率とする。また、仮に p2 を両方の承認されたトランザクションが A に属する確率とする。明 らかに、p1 と p2 はそれぞれ「私達の」チップの現在の数が新たなトランザクションが到来した際に 1 増加する、または 1 減少する確率である。私達が持っているのは、 (最初の式を得るには、p1 が両方の承認されたチップが B に属する確率と最初のチップが B に属 し 2 つ目のチップが A ∪ B に属さない確率の 2 倍に等しい事を観察する)(5)と類似して、 K(t)の微 分方程式は次のように表すことが出来る。 (6)を厳密に解くのは難しいので、さらに単純化された仮定を行う。まず、私達は K(t)が固定された ε > 0 について εL0 のレベルに到達した時、ほぼ L0 までかなり速く成長すると気付く。さて、K(t)が L0 に対して小さい時、私達は(6)の右側の最後の係数を「落とす」事ができる。また、 K(t − h)を

(13)

13

で置き換えることにより、(6)のより単純化されたバージョンを得られます。(こ れは λh/ L0 = ln 2 を思い出していただきたい) この時の境界条件は K(0) = 1 である。この微分方程式は次のように解くことが出来る。 ゆえに、(8)で対数を取って、K(t)が εL0 に到達する時間が、おおよそ次である事が分かる。 (5)に戻り(先ほどと同様右側の最後の係数を「落とす」)、私達は「適応期間」の間( t0 が(9)の 場合の t ≤ t0)、次が成立することを得る。 読み手には、上で議論された通り、適応期間の後、累積加重 H(t) は λω のスピードで原則的に線形 に成長することを思い出していただきたい。私達は「指数関数的成長」( (10)にあるような )は 適応期間の間、累積加重が「とても速く」成長することを意味しないことを強調したい。むしろ、振 る舞いは図 4 に示される通りである。 また、このセクションでの計算はノードが平均で s > 1 トランザクションを参照するような状況へ 容易に適応されうるとコメントしたい。これについては(2)で 2 を s で置換するだけで良く、(しか し、(5)! ではない)、(3)–(4)と (7)–(10)において、ln 2 を ln s で置換するだけで良い。

(14)

14

結論 ( Conclusions ): 1. 低負荷の型において、私達のトランザクションが数回承認された後、その累積加重は λωのスピー ドで成長していく。ここで ω はジェネリックなトランザクションの加重平均である。 2. 高負荷の型において、再び、私達のトランザクションが数回承認された後、まずその累積加重 H(t)が式(10)による、いわゆる適応期間の間、増加するスピードで成長し、適応期間が終わった 後、λω のスピードで成長する。図 4 を参照のこと。事実、全ての妥当な戦略では、適応期間の終 了後、累積加重はこのスピードで成長していく。なぜなら、原則的に全ての新たに到来したトラ ンザクションは間接的に私達のトランザクションを承認するからである。

図 4:累積の加重の成長(On the cumulative weight growth)

(訳注:図中の用語:adaptation period: 適応期間、umulative weight: 累積加重) 3. 適応期間は、現在のチップのほとんどが(間接的に)私達のトランザクションを承認するまでの

(15)

15

4. 可能な攻撃シナリオ ( Possible attack scenarios )

攻撃シナリオの一つを記してみよう: 1. 攻撃者はマーチャントに支払い、マーチャントがトランザクションが既に十分に大きい累積加重 を得たと見なした後、商品を受け取る。 2. 攻撃者は二重支払いのトランザクションを発行する。 3. 攻撃者は多数の小さなトランザクション(持てる演算処理能力を結集して非常にアグレッシブ) を発行する。これは直接的にも間接的にも承認しないが、二重支払いのトランザクション (double-spending transaction)を承認する。 4. 攻撃者が多数のシビル アイデンティティ(Sybil Attack)をするかもしれないこと、また必ずし もチップを承認する必要がないことも観察する。

図 5:「大きい加重」攻撃( The “large weight" attack )

5. 3 とは異なり、攻撃者は持てる演算処理能力を結集して、正規のトランザクションの前に 2 つの トランザクションを承認する「大きな」二重支払いトランザクション(非常に大きい自身の加 重)を発行するかもしれない。(マーチャントに支払わせる必要があるため) 6. 攻撃者の望みは彼の「sub-DAG」が、main-DAG のペースを上回ること、つまり、DAG が二重 支払いのトランザクションから成長し続け、そして、正当なブランチが破棄される(図 5 を参 照)ことである。 実際、一つの大きな二重支払いトランザクションが攻撃者の機会を増加させることが示される。そ れだけでなく、この数理モデルの「理想的」なシチュエーションにおいて、この攻撃は常に成功す る。

(16)

16

実際、W(n)を二重支払いトランザクションへ少なくとも 3n の加重を与えるノンスを得るのに必要 な時間を仮定してみよう。W(n)を μ3−n のパラメーターを持つ指数関数的に分布する確率変数 (μ−13n の期待値を持つ)μ は攻撃者の演算処理能力を測定するものとみなすかもしれない。 マーチャントが、累積加重が少なくとも w0 になる時に正当なトランザクションを受け入れる(そ して、これはオリジナル トランザクションから t0 時間単位で起こる)と仮定する。そうすると累積加 重が 線形速度 λω で成長すると期待するのは妥当である。λ は正直なユーザー達により発行されたト ランザクションのシステムへの全体の到着率であり、ω はジェネリック トランザクションの加重平均 である。ω1 = λωt0 と表し、その時点における正当なブランチの典型的な合計加重を表す。 ⌈x⌉は x より大きいまたは等しい最小の整数であるので、3n0 ≥ ω1 であるよう と 定義される(事実 ω1 が大きい場合、3n0 ≈ ω1)。もし、長さ t0 の時間インターバルの間、攻撃者 が少なくとも 3n0 の加重を与えるノンスを得ることが出来た場合、攻撃は成功する。そのようなイベ ントの確率は、 (少なくとも t0μ/ω1 が小さい場合。妥当な仮定である) ならば、この「即座の」攻撃が成功しな かった場合、攻撃者は継続して n > n0 について 3n の加重を与えるノンスを探し続け、見つかった時 に正当なブランチの合計加重が 3n より小さい事を期待するかも知れない。この確率は、 それは、μ/λω は通常小さいはずではあるにも関わらず、それぞれの「レベル」n で、攻撃者は一定 の確率で成功する。従って、最終的には成功を収める。事実、通常成功までの時間はおおよそ である。この数量は非常に大きいかも知れないが、「最初の」( t0 の時間の間)攻撃が成功する確率 は依然として小さくない。よって私達は次の結論にたどり着く対策をしなければならない。例えば、 加重の上限を設ける。あるいは定数に設定する(セクション 3 で言及したように後者はベストな解決 策でないかも知れない。なぜなら、スパムからの十分な保護を提供しないため)。

(17)

17

今ここで、最大加重が例えば m によってキャップされるシチュエーションについて討論し、攻撃者 が成功する確率を見積もっていこう。 上の議論を念頭に(また「大偏差理論」 [11]から得られる一般的な洞察を用いて)、もし攻撃者が メインのチェーンに追いつきたい場合、彼は認められた最大の荷重を持つトランザクションのみを生 成すべきである。任意のトランザクションが、それが発行された後、累積加重 ω0 を t0 時間単位で得 たとする。そのトランザクションの適応期間が終わっており、よってその累積加重が λω のスピードで 線形に増加することも仮定する。さて、攻撃者はこのトランザクションで二重支払いを行いたい。そ れには最初のトランザクションが発行された時10、彼は二重支払いのトランザクションを秘密裏に準備 し、そして二重支払いのトランザクションを承認する他のトランザクションを加重 m で生成し始め る。もし、ある時点で(マーチャントがその正当なトランザクションを受け入れると決めた後)、攻 撃者のサブ tangle が正当なサブ tangle を加重で上回った場合、この二重支払い攻撃は成功する。そ れが起こらない場合、二重支払いのトランザクションは他によって承認されず(正当なトランザクシ ョンがより大きい累積加重を獲得し、事実上全ての新たなチップが間接的にそれを承認するため)、 孤児トランザクションとなる。 先程と同様、μ を攻撃者の演算処理能力とする。また G1, G2, G3, . . . をもって独立同一分布 (i.i.d.)の μ/m のパラメーターを持つ(つまり、期待値 m/μ を持つ)指数確率変数を表し、また と示す。明らかに、V1, V2, V3, . . . は独立同一分布の 1 のパラメータ ーを持つ指数確率変数である。 t0 の時点でマーチャントがトランザクションを受け入れると決めたと仮定してみよう(その時点で そのトランザクションの累積加重が ω0 であった事を思い出していただきたい)。攻撃者が二重支払 いに成功する確率を見積もってみる。M(θ) = (1−θ)−1 を 1 のパラメーターを持つ指数確率変数の積 率母関数とする([12]のセクション 7.7 を参照)。(一般書[11]以外に、また[12]のセクション 8.5 にある公理 5.2 も参照。ただし、不等式が事実上、近似的な等式であるべきか説明していないが)既 知なのは、α ∈ (0, 1)について以下が成り立つ。

10 あるいはそれより前。後ほどこのケースについて議論する

(18)

18

ここで φ(α) = - ln α + α- 1 は ln M (−θ)のルジャンドル変換である。一般的な事実として、α ∈ (0, 1)について φ(α) > 0 が成り立つ事を観察されたい(Exp(1)の確率変数が 1 に等しいことを思 い出していただきたい)。 また も仮定する(でないと、攻撃者のサブが最終的に正当な tangle を速度で上回る確率 は 1 近くになる)。今ここで、t0 の時点で ω0 を加重で上回るには、攻撃者は少なくとも t0 の時点で 最大 m の加重の ω0/m のトランザクションを発行できる必要がある(単純化のため整数の部分を省 く)。従って、(11) を用いて、私達は二重支払いのトランザクションが t0 の時点でより大きい累積 加重を持つ確率がおおよそ以下であることを得る。 つまり、上の確率が小さいためには、通常 ω0/m が大きく、 があまり小さくない必要が ある。 時間 t ≥ t0 の間、正当なトランザクションの累積加重がおおよそ ω0 +λω(t−t0) であることに注 目されたい(適応期間が終わり、よって累積加重が λω のスピードで成長すると仮定したことを思い出 していただきたい)。(12) と類似して、二重支払いのトランザクションが時間 t ≥ t0 の間もっと大 きい累積加重を持つ確率についておおよそ次が得られる。 通常私達は を持つことを観察されたい(適応期間の間、累積加重は λω より遅いスピ ードで成長するので)。ともあれ、二重支払い成功を達成する確率は次のとおりである。

(19)

19

ここで a∨b := max(a,b) である。例えば、m = ω = 1, μ = 2, λ = 3 とする(攻撃者の持つ力が残 りのネットワークより少し少なくなる)場合、トランザクションが時間 12 までの累積加重 32 を得る と仮定しておこう。そのとき、 そして (14) が約 0.29 の上限を与える。しかし、もし、μ = 1 を仮定する(そして同時に他のパラメーターを保持する)な らば、 そして (14) が約 0.00001135 の上限を与える。確 かにかなりの変化がある。 上の議論から、システムがセキュアであるために、λω > μ が真であるべき事を見て取ることは重要 である(さもなくば(14)の概算は無用のものとなる)。別の言い方をすると、「正直な」トランザク ションのインプットフローは攻撃者の演算処理能力と比べて十分に大きくあるべきである。これは iota の初期における、追加のセキュリティ措置(チェックポイント)の必要性を指摘するものであ る。 また、コンフリクトするトランザクションのどちらが有効かを決定する戦略に関して、累積加重だ けに頼る際、注意を払わなければならない。なぜなら、セクション 4.1 で記述されたもの(攻撃者は かなり前から二重支払いのトランザクションを準備し、秘密裏にそれを参照するサブチエーン/サブ tangle を構築し、マーチャントが正当なトランザクションを受け入れた後、そのサブ tangle をブロー ドキャストする)と似た攻撃の対象となりうるからである。むしろ、2 つのコンフリクトするトランザ クションから決めるもっと良い方法は、次のセクションで記述されるようなものかも知れないと思わ れる:チップ選択アルゴリズムを実行し、2 つの内どちらのトランザクションが選択されたチップによ り(間接的に)承認されるかを見る。 4.1 パラサイト・チェーン攻撃と新しいチップ選択アルゴリズム

( A parasite chain attack and a new tip selection algorithm )

次の攻撃を考えてみよう(図 6):攻撃者が秘密裏にチェーン/サブ tangle を構築し、時折メインの tangle を参照しスコアを得る(良いチップのスコアがおおよそメインの tangle にある全ての自身の加 重の合計である一方、攻撃者のチップのスコアもおおよそパラサイト・チェーンにある全ての自身の 加重の合計であることに注意)。また、十分に強力なコンピューターを持つ、独力でチェーンを構築 する者にとってネットワークのレイテンシーは問題とならない11ので、攻撃者はパラサイトのチップに もっと高さ(height)を与えることが出来るかも知れない。最後に、正直なノードが単純な提供されて いるチップから選ぶ選択戦略を用いる場合、攻撃者は、攻撃の際、チップの数を人工的に増やすこと

11 これは攻撃者が常に自身のトランザクションネットワークの情報を頼ることなく承認できるからである

(20)

20

も可能である(同じ攻撃者のトランザクションを承認する多数のトランザクションを発行することに よって。図 6 参照)

この攻撃を防御するには、私達はメインの tangle がより多くの(アクティブな)ハッシュパワーを 持つはずだと言う事実を用いて、攻撃者よりも多くのトランザクションに累積加重を与えるようにす るつもりである。MCMC (Markov Chain Monte Carlo、マルコフ連鎖モンテカルロ)アルゴリズムを 用いて参照する 2 つのチップを選ぶというアイデアである。 Ηx をあるサイト(= tangle グラフ上に表されるトランザクション)の現在の累積加重であるとす る。全ての自身の加重が 1 に等しい事を思い出していただきたい。ゆえに、チップの累積加重は常に 1 で、他のサイトの累積加重は少なくとも 2 である。 いくらかの粒子(ランダム・ウォーカーとして知られる)を tangle のサイトに配置し、チップに向 かってランダム12に歩かせるというのがアイデアである。ウォークによって選ばれたチップは、承認の 候補となる。アルゴリズムは次のように記述される。 1. W と(例えば)2W の間の累積加重を持つ全てのトランザクションを考える(選ばれる W13は妥 当な大きさである)。 2. N 粒子を独立的にそこに配置する(N はそれほど大きくない、10 程度14 3. これらの粒子は「チップに向かって」独立した離散時間ランダムウォークを行う(x から y への移 行は y が x を承認した時のみ可能) 4. チップ集合に到達する 2 つのランダムウォークが承認する二つのチップを示す。

12 「正規の」乱数のソースはない;各ノードは、ランダムウォークのシミュレーションにおいて擬似乱数ジ ェネレーターを利用する 13 粒子を tangle の「深部」に配置する(直ぐにチップに来ないよう)が、「深過ぎない」所へ(妥当な時 間内にチップを見つけるように)という考え方である。また、[W, 2W] は恣意的なもので、代わりに例え ば [W, 3W] や、他に何でも選ぶことが出来る 14 逆らって、この選択は大体において恣意的なものである;追加のセキュリティ措置として 2 つだけの代 わりにいくつかの粒子を私達は用いる。粒子が偶然に(長いと思われる)攻撃者のチェーンにジャンプし、 そこに永くとどまり、他のチップが先に選択されるという考えである

(21)

21

図 6:チップ選択アルゴリズム。二つの赤い円が二重支払いの試みを示す。 5. ウォークの移行確率は次のように定義される:もし、y が x を承認する(私達が y → x へ寄付を する)場合、移行確率 Pxy は exp ( -α(Hx − Hy )) に比例する。 ここで、α > 0 が選択されるパラメーターである(例えば、 α = 1 から始めることが出来る) とりわけ、このアルゴリズムが「ローカル」であり、計算を行うためにジェネシスまで戻る必要は ないことに注意いただきたい。 このアルゴリズムが意図された通りに機能するのを見るには、まず「怠惰なチップ」(認証を行う ことを回避するため意図的に古いトランザクションを承認するチップ)を考える。図 6 参照のこと。 粒子がそのようなチップによって承認されるサイトにあったとしても、累積加重の差がとても大きく なるため、怠惰なチップが選択されることは可能性がないことをご覧頂きたい。(15)を確認のこと。 次に、以下のような攻撃を検討してみよう:攻撃者が秘密裏に、彼/彼女のアカウントを空にし、自 身のコントロール下にある別のアカウント(図 6 の最も左の赤い円で示される)に移すトランザクシ ョンを含むチェーン(「パラサイトチェーン」)を構築する。ある時点で攻撃者はメインの tangle で トランザクションを発行し(もう一つの赤い円で示されている)、マーチャントがそれを受け入れる まで待つ。パラサイトチェーンは時折メインの tangle を参照するので(「パラサイト」と呼ばれるゆ えん)、チエーンにおける累積加重がそれほど大きくないにも関わらず、そのサイトは良い高さ/スコア

(22)

22

(メインの tangle 以上)を持つ。マーチャントのトランザクション後は、メインの tangle を参照で きないことに注目。また、攻撃者は図式にあるとおり、人工的に彼/彼女のチップの数を膨らまそうと 試みるかも知れない。ノードにパラサイトチェーンを参照させ、よって「良い」tangle が孤児化され るというのが攻撃者のアイデアである。 今ここで、MCMC(マルコフ連鎖モンテカルロ)選択アルゴリズムが、高い確率で攻撃者のチップ の一つを選択しない理由は理解に難くないであろう。基本的に、なぜアルゴリズムが怠惰なチップを 選択しないのかの理由と同じである:パラサイトチェーンのサイトの方がそれらが参照するメインの tangle のサイトよりはるかに小さい累積加重を持つであろうからである。従って、ランダムウォーク がパラサイトチェーンにまで飛び移ることは可能性はない(そこで始まったのでない限りだが、その 可能性はあまりなく、なぜならメインの tangle の方がより多くのサイトを持つからである)。 次に、なぜノードがこのアルゴリズムに(少なくとも近似的に)従うのかについてコメントした い。セクション 1 で見た通り、少なくともネットワークのノードの「かなりの」部分が参照アルゴリ ズムに従うと仮定することが妥当である事を思い出していただきたい。また、演算処理とネットワー クの遅延のため、チップ選択アルゴリズムは、tangle の過去のスナップショットにおいてより機能す る(トランザクションが発行された瞬間に関して)。さて、参照アルゴリズムにおいて意図的にこの スナップショットをもっと過去に移す15 のは良い考えかも知れない。その理由については続編で説明 したい。攻撃者のトランザクションがすぐに承認される確率の最大化を望む「利己的な」ノードを想 像していただきたい。本セクションの(他のノードの多数によって採用された)MCMC アルゴリズム は、チップ集合における確率分布を定義する。明らかに、そのノードにとって自然な最初の選択は、 その分布のうち可能な限り多くを収めるチップを選ぶことである。しかし、多くの他のノードも利己 的に振る舞い、同じ戦略を用いた場合(それも妥当な仮定に思われる)、全員が負けることになる。 多くの新たなトランザクションが同じ 2 つのチップを(だいたい)同じタイミングで選び、以後の承 認において競争は過多となる(各ノードは過去のスナップショットを利用するため、彼らは多数ノー ドによる 2 つのチップから来る累積加重の増加をまだ「感じない」)。ゆえに、利己的なノードであ っても、いずれかのランダムなチップ承認アルゴリズムを用いる必要があり、選択されたチップの確 率分布は、ある意味でデフォルトの確率分布(参照チップ選択アルゴリズムによって生成されたも の)から「当たらずといえども遠からず」である。私達はこの「塊状となった」(利己的なノードの 存在による)確率分布がデフォルトの確率分布と同等であるとは主張しないが、上の議論から、近い はずであることが分かると思う。それは「悪い」チップを選ぶ確率が低いものにとどまる事を意味す

15 まずランダムウォークがそのスナップショットに関して(過去の)チップを見つけ、続けて現在の tangle の「実際の」チップに向けウォークするということである

(23)

23

る。どうであれ(ビットコインと異なり)、ノードが利己的に振る舞うインセンティブはない。なぜ なら、確認時間の僅かな減少しか得られないからである。 また、必ずしも移行確率が(15)で定義された通りでなければならないわけではない。指数の代わり に、例えば f(s) = s−3 など、何か他の急速に減少する関数も利用できる。W と N についても選択 の幅はかなりある。実際、著者としてはこのセクションの主要な貢献はチップ選択における MCMC の利用というアイデアそのものであると感じている。正確にどのようにこれらのパラメーターが選択 されるべきかに関する「理論的な」議論があるかは不明である。 4.2 分裂攻撃 ( Splitting attack ) 上述の MCMC アルゴリズムに対抗したこの攻撃スキームは Aviv Zohar が提示したものである。高 負荷の型において、攻撃者は tangle を 2 つに分裂させ、両方の間でバランスを取り、両方とも成長を 続けるとする。正直なノードが 2 つのブランチを同時に参照する(よって結合させる)のを避けるた め、分裂攻撃の初めにおいて、攻撃者は少なくとも 2 つのコンフリクトするトランザクションを配置 しなければならない。次に彼/彼女はネットワークの約半数がそれぞれのブランチに貢献することによ って、彼/彼女が比較的少ない演算処理能力でランダムな変動を「補償」できることを期待する。そう すると、攻撃者は同じ資金を二つのブランチで消費する事ができる。 そのような攻撃に対し防御するには、2 つのブランチの間でバランスを保つことを非常に困難にする 「シャープな閾値」のルールをを用いる必要がある(ビットコインにおける「最長のチェーンを選 択」と同じく)。例を挙げると、一つのブランチが 537 の合計加重(あるいは他のメトリクスを用い ても良い)を持ち、別のブランチの合計加重もかなり近い、例えば 528 であると仮定してみよう。も し、そのよう状況においてほぼ 1/2 の確率で正直なノードが最初のノードを選択したとしたら、おそ らく攻撃者は 2 つのブランチの間でバランスを取ることが出来るであろう。しかし、正直なノードが 最初のブランチを 1/2 よりかなり大きい確率で選好する場合、攻撃者はおそらくバランスを維持でき ず、なぜなら不可避なランダムな変動の後、ネットワークはブランチの一つを選び、もう一つの方を 放棄するであろう。明らかに、MCMC アルゴリズムをそのように振る舞わせるためには、非常に早く 減衰する関数 f を選ばなければならず、ランダムウォークを(比較的)大きな深さを持つノード(それ により分裂が作られる前に始まる可能性が高い)から始めなければならない。この場合、ブランチ間 の合計加重の差が小さかったとしても、ランダムウォークは「より重い」ブランチを選ぶ。 ネットワーク同期化の各問題のためもあり、攻撃者の仕事は非常に困難なものであることは指摘し ておく価値があると思われる。彼/彼女は、最近発行されたトランザクションの多くについて知らない

(24)

24

かも知れない16。そのような攻撃を受け流すもう一つの効果的な方法には、十分に強力な主体による多 数のトランザクションの同時発行である(1 つのブランチで)。それにより急激にパワーバランスを変 え、攻撃者による対応を困難にする。また、攻撃者が分裂を維持できた場合、最近のトランザクショ ンは 50%の確認の確実性しか持たず(セクション 1 参照)、成長もしないことも見て取っていただきた い。ゆえに「正直な」各ノードは、分裂前のトランザクションだけを承認し始めると決めるかも知れ ない(そして特に、2 つのコンフリクトするトランザクションのどちらも承認しない)。 チップ選択アルゴリズムの他の修正を検討することも出来る。例えば、あるノードが 2 つの大きな サブ tangle に直面した場合、まず自身の加重の合計が大きい方を選び、次に上述した MCMC アルゴ リズムを用いてそこでチップ選択を行う。 また、次のアイデアも検討の余地がある:(15)における移行確率は Hx − Hy だけでなく、ウォーカ ー(walker)が、(弱い方のブランチに入るのを避けるため) tangle の深部にいるが、チップに近い時 より広がる(それにより選択する 2 つのトランザクションの選択において十分なランダム性がある) 場合、マルコフ連鎖の次のステップがほぼ決定的(deterministic)な形で Hx にも依存する。 結論 ( Conclusions ): 1. 私達は、攻撃者がシステムを追い越こす(outpacing)ことによって、二重支払いを試みた場合のい くつかの攻撃戦略を検討した。 2. 「大きな加重」攻撃は、二重支払いを行うために、攻撃者は二重支払いのトランザクションに非 常に大きな加重を与えようと試み、結果、正当なサブ tangle をそれだけで加重において上回る事 を意味する。許される自身の加重に制限がない場合、確かにこの戦略はネットワークにとって脅 威である。ソリューションとして、トランザクションの自身の加重を制限するか、定数に設定す ることさえもありうる。 3. トランザクションの最大の自身の加重が m である状況において、攻撃者にとって最良の戦略は、 常に最大の自身の加重を持つ二重支払いのトランザクションを参照するトランザクションを生成 することである。攻撃者の演算処理能力に比べて「正直な」トランザクションのインプットフロ ーが十分に大きい時、二重支払いのトランザクションがより多くの累積加重を持つ確率は式(14) を用いて見積もることが出来る((14)の下の各例も参照のこと)。 4. 「パラサイトチェーン」の構築に基づく攻撃は、高さやスコアに基づく承認戦略を無用である。 なぜなら、攻撃者は正当な tangle より高い値をそれらについて得るであろうからである。一方、 セクション 4.1 で記述された MCMC チップ選択アルゴリズムはこの種の攻撃に対しよく保護を提 供するように見受けられる。

16 なので「本当の」累積加重は、彼/彼女が思うそれより大きく異なるかも知れない

(25)

25

5. ボーナスとして、「怠惰なノード」(tangle 認証のために必要な計算を避けるため、古いトラン ザクションの承認しかしないノード)からの保護も提供する。

4.3 量子計算への耐性 ( Resistance to quantum computations )

(現時点において仮説的なものだが)十分に大型の量子コンピュータは、繰り返し答えを推測して 確認することが唯一の解決方法であるような問題において、非常に効率的たりうることが知られてい る。ビットコインブロックを生成するためノンスを見つけるプロセスは、そのような問題の良い例で ある。現在、ブロック生成できるための適切なハッシュを見つけるために平均で約268ノンスを確認 しなければならない。量子コンピュータは Θ(√N) 回の演算を、上のような問題を解くのに要するこ とが知られている([13]参照)。従来のコンピューターでは Θ(N) 回の演算を要するものである。従っ て、ビットコインの採掘(マイニング)において、量子コンピュータは従来のコンピュータに比べ 170 億倍も効率が良いことになる。また、ブロックチェーンがハッシュパワーの増 加に対応して難易度を増加させなかった場合、孤児ブロック率の増加につながることも言及に値す る。 同様の理由で、上に記述された「大きな加重」攻撃は量子コンピュータによって遥かに効率的であ ろう事を観察されたい。しかしながら、加重の上限をキャップ(上限設定)する(セクション 4 で提案 されたように)ことで、量子コンピュータによる攻撃も受け流すことが出来る。理由は次の通り。iota では、トランザクションの発行のため適切なハッシュを見つけるのにチェックしなければならないノ ンスの数は巨大なものではなく、約 38にすぎない。「理想的な」量子コンピュータにとって、得られ る効率はよって 34= 81 のオーダーとなり、受け入れることが出来るものである。(また、Θ(√N) が 10√N かその周辺に、容易に収束できることを思い出していただきたい。)また、このアルゴリズムに おいて、ノンスが見つかる時間はトランザクション発行に要する他の各タスクに必要な時間に比べさ ほど大きくないようになっており、後者は量子コンピュータに対して一層の耐性を持っている。 従って、上の議論は the tangle が、(ビットコイン)ブロックチェーンと比べて、量子コンピュー タを用いる敵対者に対しより強力な保護を提供することを示すものである。

(26)

26

参考文献 ( References ):

[1] Iota: a cryptocurrency for Internet-of-Things. See http://www.iotatoken.com/, and https://bitcointalk.org/index.php?topic=1216479.0

[2] bitcoinj. Working with micropayment channels. https://bitcoinj.github.io/working-with-micropayments

[3] people on nxtforum.org (2014) DAG, a generalized blockchain.

https://nxtforum.org/proof-of-stake-algorithm/dag-a-generalized-blockchain/ (registration at nxtforum.org required)

[4] Moshe Babaioff, Shahar Dobzinski, Sigal Oren, Aviv Zohar (2012) On Bitcoin and red balloons. Proc. 13th ACM Conf. Electronic Commerce, 56–73.

[5] Sergio Demian Lerner (2015) DagCoin: a cryptocurrency without blocks. https://bitslog.wordpress.com/2015/09/11/dagcoin/

[6] Yonatan Sompolinsky, Aviv Zohar (2013) Accelerating Bitcoin’s Transaction Processing. Fast Money Grows on Trees, Not Chains. https://eprint.iacr.org/2013/881.pdf

[7] Yoad Lewenberg, Yonatan Sompolinsky, Aviv Zohar (2015) Inclusive Block Chain Protocols. http://www.cs.huji.ac.il/~avivz/pubs/15/inclusive btc.pdf

[8] Joseph Poon, Thaddeus Dryja (2016) The Bitcoin Lightning Network: Scal- able Off-Chain Instant Payments. https://lightning.network/lightning-network-paper.pdf

[9] Sheldon M. Ross (2012) Introduction to Probability Models. 10th ed. [10] David Vorick (2015) Getting rid of blocks. slides.com/davidvorick/braids

[11] Amir Dembo, Ofer Zeitouni (2010) Large Deviations Techniques and Ap- plications. Springer.

[12] Sheldon M. Ross (2009) A First Course in Probability. 8th ed.

[13] Gilles Brassard, Peter Hyer, Alain Tapp (1998) Quantum cryptanalysis of hash and claw-free functions. Lecture Notes in Computer Science 1380, 163– 169.

図 1:加重の再計算について On the weights (re)calculation
図 4:累積の加重の成長(On the cumulative weight growth)
図 5:「大きい加重」攻撃( The “large weight" attack )

参照

関連したドキュメント

うのも、それは現物を直接に示すことによってしか説明できないタイプの概念である上に、その現物というのが、

存在が軽視されてきたことについては、さまざまな理由が考えられる。何よりも『君主論』に彼の名は全く登場しない。もう一つ

本論文での分析は、叙述関係の Subject であれば、 Predicate に対して分配される ことが可能というものである。そして o

  支払の完了していない株式についての配当はその買手にとって非課税とされるべ きである。

ぎり︑第三文の効力について疑問を唱えるものは見当たらないのは︑実質的には右のような理由によるものと思われ

都調査において、稲わら等のバイオ燃焼については、検出された元素数が少なか

下山にはいり、ABさんの名案でロープでつ ながれた子供たちには笑ってしまいました。つ

大村 その場合に、なぜ成り立たなくなったのか ということ、つまりあの図式でいうと基本的には S1 という 場