仕事の証明としての結び目認識


23

現在、ビットコインにはSHA256を使用したproof of work(PoW)システムがあります。他のハッシュ関数は、グラフ、部分ハッシュ関数の反転を使用する作業システムの証明を使用します。

結び目認識などの結び目理論で決定問題を使用し、それを仕事関数の証明にすることは可能ですか?また、誰もこれを以前にやったことがありますか?また、このProof of Work関数があると、現在計算されているものよりも便利になりますか?


8
ビットコインSEに関するこの関連する質問に興味があるかもしれません:役に立たない作業をすることなく、作業証明システムをセットアップする方法はありますか?
アルテムKaznatcheev

@ArtemKaznatcheevありがとうございます。
ジョシュアハーマン

回答:


7

[GMW85]および[GS86] Arthur-Merlinプロトコルと同様の結び目に関するArthur-Merlinプロトコルが存在する場合、そのような暗号通貨の仕事の証明を設計できると信じています。仕事は、2つの結び目が同等/同位体である可能性が低いことを示しています。

より詳細には、[GMW85]のグラフ非同型プロトコルでよく知られているように、証明者のペギーは、V頂点上の2つの(剛な)グラフおよびG 1が同型でないことを検証者Vickyに証明したいと考えています。ヴィッキーは、密かにランダムコイン投げできるI { 0 1 }の順列生成するために、他の硬貨と一緒に、π S Vを、そしてペギー新しいグラフを提示してもよいπ G I。ペギーはiを推測しなければなりません。明らかに、Peggyは、2つのグラフが同型でない場合にのみこれを行うことができます。G0G1Vi{0,1}π SVπ(Gi)i

同様の目的のためのより適切な証明の作業によって教示されるように、[GS86] アーサー・マーリン同じプロトコルのバージョンがオンマーリンと一致アーサーを含むG 1例隣接行列用として与えられます。アーサーは、ランダムにハッシュ関数ピックH { 0 1 } *{ 0 1 } kは画像とともに、Y。アーサーはマーリンにHyを提供します。マーリンはa i π )を見つけなければなりませんG0G1H:{0,1}{0,1}kyHy(i,π)その結果、H(π(Gi))=y

つまり、Merlinはハッシュ画像を探します。前画像は、指定された2つの隣接行列のいずれかの順列です。限りkは二つのグラフ場合、正しく選択されているG 0G 1は同型ではないで隣接行列の数ので、その後、プレイメージが発見されることが、より高い可能性があるであろうG 0G 1は二倍であってもよいですもしより大きなG 0G 1HkG0G1G0G1G0G1

上記の[GS86]プロトコルをProof-of-Workに変換するには、鉱夫をMerlinとして識別し、他のノードをArthurとして識別します。ハッシュ同意します。これは、すべての目的で、ビットコインで使用されるS H A 256ハッシュである可能性があります。同様に、ハッシュが先頭の0の特定の数で始まるというビットコイン要件と同様に、yが常に0になることに同意します。HSHA256y00

  • ネットワークは、2つの剛体グラフおよびG 1が同型でないことを証明することに同意します。グラフは隣接行列によって与えられますG0G1

  • 鉱山労働者は、それを呼び出す、彼女は金融取引のマークルルートを所有するとともに、前のブロックへのリンクバックを使用して自分ナンスと一緒に、C乱数を生成するために、Z = H C BをBcZ=H(cB)

  • マイナーはW = Zを計算し選択するi π W=Zmod2V!(i,π)

  • マイナーは、 であることを確認します。つまり、ランダムに選択されたπがグラフが同型であることの証明ではないことを確認しますπ(Gi)G1iπ

  • そうでない場合、マイナーはハッシュW = H π G i)を計算しますW=H(π(Gi))

  • が適切な数の0で始まる場合、マイナーは公開c B によって「勝ち」ますW0(c,B)

  • 他のノードは、確認することができ推定するI π 、およびことを確認できW = H π G iはの適当な困難から始まる0Z=H(cB)(i,π)W=H(π(Gi))0

上記のプロトコルは完全ではなく、解決する必要があると思われるいくつかの不具合があります。たとえば、剛性の良好な特性を満たす2つのランダムグラフおよびG 1を生成する方法は明確ではありません。また、頂点の多かれ少なかれグラフをテストする以外に難易度を調整する方法も明確ではありません。しかし、これらはおそらく乗り越えられると思います。G0G1

しかし、結び目に関する同様のプロトコルの場合、2つのグラフおよびG 2のいずれかの隣接行列のランダムな順列を、ノット図またはグリッド図などのその他のランダム操作に置き換えます。ランダムなReidemeisterが動くとは思えません。スペースがあまりにも速くなりすぎるからです。G1G2

[HTY05]結び目のアーサー・マーリンのプロトコルを提案しましたが、残念ながらエラーがあり、彼らは主張を取り下げました。

[Kup11]は、一般化されたリーマン仮説を仮定して、結び目がにあることを示し、これがA Mにも結び目を置くことを述べていますが、正直に言って、これを上記のフレームワークに変換する方法はわかりません。[Kup11] のA Mプロトコルは、多項式系が0である稀な素数pモジュロを見つけることを含むと思います。H p = 0であるという点で素数pはまれであり、多項方程式系は結び目補集合の表現に対応します。NPAMAMp0pH(p)=0

注目すべきは、姉妹サイトの同様の質問に対するこの回答を参照してください。これはこのような「有用な」作業証明の有用性にも対応しています。


参照:

[GMW85] Oded Goldreich、Silvio Micali、およびAvi Wigderson。1985年、有効性のみをもたらす証明

[GS86] Shafi Goldwasser、Michael Sipser。インタラクティブプルーフシステムのプライベートコインとパブリックコイン、1986年。

[HTY05]原正夫、谷誠一、山本誠。UNKNOTTINGはである 2005。AMcoAM

[Kup11]グレッグクーパーバーグ。結び目は(モジュロGRH、2011年)です。NP


1
ランダムなマルコフの動きはどうですか?mathworld.wolfram.com/MarkovMoves.html
ジョシュアハーマン

また、ノットは、4つの価数である署名付きグラフであると見なすことができます。したがって、G1とG2にその制限を適用する必要があります
ジョシュアハーマン

ここでは、カンドルのカラーリングをSATインスタンスに削減しています。 arxiv.org/pdf/1505.06595.pdf
ジョシュアハーマン

はい、それはあなたがオーバーまたはアンダークロッシングを持っているかどうかを決定します。参照en.wikipedia.org/wiki/Medial_graph
ジョシュア・ハーマン

これはridigityのテストに役立ちますか?2Dで簡単なラマングラフを作成するだけでよいようです(ノットは平面グラフです)。www3.cs.stonybrook.edu/~jgao/CSE590-fall05/notes/lecture3.pdf
ジョシュアハーマン

1

これを行う方法は、ショートカットを禁止するための一連の制限を持つモザイクノットのテーブルを作成することだと思います。したがって、ノットテーブルは、特定のプロパティを持つノットのセットです。以下のプロパティはプライムノットです。

ロルフセンノットテーブル

モザイクノットで構成されるノットテーブルを見てみましょう。ノットモザイクは、3次元空間の文字列ではなくタイルを使用するノットの一種です。 ノットモザイクテーブル

次に、ノットモザイクとは何かを正式に定義します。

モザイクタイル

https://arxiv.org/pdf/1602.03733.pdf A結び目モザイクn個の結び目の表現×n個のグリッドは、ここでは11枚のタイルで構成され、それらは以下の通りです。

これが、一連の制限付きのモザイクノットテーブルを要求する私の出発点です。私はあなたに尋ねたいのは、私に次のプロパティを持つテーブルを与えることです

  1. 交差数Cの要素が少なくとも1つ必要ですC
  2. 少なくとも × Mの次元の要素が必要ですNM
  3. 送信するノット周囲の同位体でなければなりませんK
  4. 一連の操作必要です。OOnK
  5. すべての操作は一意である必要があります
  6. CR
  7. ノットモザイクとしてエンコードする必要があります。

トレフォイルを機械可読形式でエンコードしましょう。各タイルを取得し、番号(01-11)を割り当てます。プログラミング言語ラケットを使用すると、次のようになります

(define trefoil (array #[#[00 02 01 00]
                         #[02 10 09 01]
                         #[03 09 04 06]
                         #[00 03 05 04]] : Integer))

31

(struct braidcoin ([source_knot : (Matrix Integer)]
                   [target_knot : (Matrix Integer)]
                   [crossing_number : (Refine [n : Integer] (> n 0))]
                   [dimention : (Refine [n : Integer] (> n 0))]
                   [timestamp : date])

31

それで、出力がどうあるべきかを確立しました。では、問題の発生にどのように取り組むのでしょうか?

したがって、周囲のアイソトーピーの下では、リードマイスターの動きの有限セット内の別のノット図が与えられると、別のノット図に到達できることがわかります。したがって、2つのランダムリンクを生成します。次に定義するタスクには、表現可能なすべてのノットを列挙することで同等であるか、既知のノットへの状態またはパスのセットを与えることで同等ではないことを示す2つのランダムリンクが与えられますテーブル。

ノットがテーブル内にあるかどうかを知る速度を向上させる方法は、Alexander多項式としてインデックスを持つハッシュテーブルを構築することです。各インスタンスでは、Alexander Polynominalが計算され、同じAlexander多項式を共有している場合は、そのテーブルに要素として追加されます。

私は次の要点で作業プログラムの一部を持っています:https : //gist.github.com/zitterbewegung/4152b322eef5ecccdcf3502e8220844b


3
2つの大きなランダムリンクを考えると、それらは同等ではありません。また、おそらく同じアレクサンダー多項式を持たないため、多項式時間で同等ではないことを証明できます。そのため、ほとんどの場合、タスクは簡単です。ランダムリンクを取得して真に難しい例を生成することはほとんどありません。
ピーターショー

@PeterShorはい、私はそれを認識しています。私はこれをうまく表現していないと思いますが、硬さを増すためにそれを生成するときにこれらのタスクを任意の量で作成しています。それが起こっても、それはそれを難し​​くしませんか?
ジョシュアハーマン

@PeterShorまた、証明書は両方のノットが同等ではないというだけではありませんが、周囲の同位体ではないことを計算できるノットまたはノットへの一連のノット(トレフォイルなど)が必要です。
ジョシュアハーマン

1
「テーブル内の既知の結び目」について、指数サイズのテーブルを作成する予定はありますか?与えられたサイズのノット指数関数的にたくさんあるからです。
ピーターショー

はいといいえ。ノタッシュを使用する各インスタンスのサイズは、操作番号のカーディナリティと、ノットモザイクとしてエンコードされたノットまたはリンクの有効なインスタンスによって制限されます。これらのパラメーターを使用して有効なソリューションの量を制限し、問題の難易度もパラメーターになるようにする予定です。
ジョシュアハーマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.