現在、ビットコインにはSHA256を使用したproof of work(PoW)システムがあります。他のハッシュ関数は、グラフ、部分ハッシュ関数の反転を使用する作業システムの証明を使用します。
結び目認識などの結び目理論で決定問題を使用し、それを仕事関数の証明にすることは可能ですか?また、誰もこれを以前にやったことがありますか?また、このProof of Work関数があると、現在計算されているものよりも便利になりますか?
現在、ビットコインにはSHA256を使用したproof of work(PoW)システムがあります。他のハッシュ関数は、グラフ、部分ハッシュ関数の反転を使用する作業システムの証明を使用します。
結び目認識などの結び目理論で決定問題を使用し、それを仕事関数の証明にすることは可能ですか?また、誰もこれを以前にやったことがありますか?また、このProof of Work関数があると、現在計算されているものよりも便利になりますか?
回答:
[GMW85]および[GS86] Arthur-Merlinプロトコルと同様の結び目に関するArthur-Merlinプロトコルが存在する場合、そのような暗号通貨の仕事の証明を設計できると信じています。仕事は、2つの結び目が同等/同位体である可能性が低いことを示しています。
より詳細には、[GMW85]のグラフ非同型プロトコルでよく知られているように、証明者のペギーは、V頂点上の2つの(剛な)グラフおよびG 1が同型でないことを検証者Vickyに証明したいと考えています。ヴィッキーは、密かにランダムコイン投げできるI ∈ { 0 、1 }の順列生成するために、他の硬貨と一緒に、π ∈ S Vを、そしてペギー新しいグラフを提示してもよいπ (G I)。ペギーはiを推測しなければなりません。明らかに、Peggyは、2つのグラフが同型でない場合にのみこれを行うことができます。
同様の目的のためのより適切な証明の作業によって教示されるように、[GS86] アーサー・マーリン同じプロトコルのバージョンがオンマーリンと一致アーサーを含む、G 1例隣接行列用として与えられます。アーサーは、ランダムにハッシュ関数ピックH :{ 0 、1 } * → { 0 、1 } kは画像とともに、Y。アーサーはマーリンにHとyを提供します。マーリンはa (i 、π )を見つけなければなりませんその結果、。
つまり、Merlinはハッシュ画像を探します。前画像は、指定された2つの隣接行列のいずれかの順列です。限りkは二つのグラフ場合、正しく選択されているG 0とG 1は同型ではないで隣接行列の数ので、その後、プレイメージが発見されることが、より高い可能性があるであろうG 0 ∪ G 1は二倍であってもよいですもしより大きなG 0 ≅ G 1。
上記の[GS86]プロトコルをProof-of-Workに変換するには、鉱夫をMerlinとして識別し、他のノードをArthurとして識別します。ハッシュ同意します。これは、すべての目的で、ビットコインで使用されるS H A 256ハッシュである可能性があります。同様に、ハッシュが先頭の0の特定の数で始まるというビットコイン要件と同様に、yが常に0になることに同意します。
ネットワークは、2つの剛体グラフおよびG 1が同型でないことを証明することに同意します。グラフは隣接行列によって与えられます
鉱山労働者は、それを呼び出す、彼女は金融取引のマークルルートを所有するとともに、前のブロックへのリンクバックを使用して自分ナンスと一緒に、C乱数を生成するために、Z = H (C ‖ Bを)
マイナーはW = Zを計算し選択する(i 、π )
マイナーは、 であることを確認します。つまり、ランダムに選択されたπがグラフが同型であることの証明ではないことを確認します
そうでない場合、マイナーはハッシュW = H (π (G i))を計算します
が適切な数の0で始まる場合、マイナーは公開(c 、B )によって「勝ち」ます
他のノードは、確認することができ推定する(I 、π )、およびことを確認できW = H (π (G iは))の適当な困難から始まる0の
上記のプロトコルは完全ではなく、解決する必要があると思われるいくつかの不具合があります。たとえば、剛性の良好な特性を満たす2つのランダムグラフおよびG 1を生成する方法は明確ではありません。また、頂点の多かれ少なかれグラフをテストする以外に難易度を調整する方法も明確ではありません。しかし、これらはおそらく乗り越えられると思います。
しかし、結び目に関する同様のプロトコルの場合、2つのグラフおよびG 2のいずれかの隣接行列のランダムな順列を、ノット図またはグリッド図などのその他のランダム操作に置き換えます。ランダムなReidemeisterが動くとは思えません。スペースがあまりにも速くなりすぎるからです。
[HTY05]は結び目のアーサー・マーリンのプロトコルを提案しましたが、残念ながらエラーがあり、彼らは主張を取り下げました。
[Kup11]は、一般化されたリーマン仮説を仮定して、結び目がにあることを示し、これがA Mにも結び目を置くことを述べていますが、正直に言って、これを上記のフレームワークに変換する方法はわかりません。[Kup11] のA Mプロトコルは、多項式系が0である稀な素数pモジュロを見つけることを含むと思います。H (p )= 0であるという点で素数pはまれであり、多項方程式系は結び目補集合の表現に対応します。
注目すべきは、姉妹サイトの同様の質問に対するこの回答を参照してください。これは、このような「有用な」作業証明の有用性にも対応しています。
参照:
[GMW85] Oded Goldreich、Silvio Micali、およびAvi Wigderson。1985年、有効性のみをもたらす証明
[GS86] Shafi Goldwasser、Michael Sipser。インタラクティブプルーフシステムのプライベートコインとパブリックコイン、1986年。
[HTY05]原正夫、谷誠一、山本誠。UNKNOTTINGはである 2005。
[Kup11]グレッグクーパーバーグ。結び目は(モジュロGRH、2011年)です。
これを行う方法は、ショートカットを禁止するための一連の制限を持つモザイクノットのテーブルを作成することだと思います。したがって、ノットテーブルは、特定のプロパティを持つノットのセットです。以下のプロパティはプライムノットです。
モザイクノットで構成されるノットテーブルを見てみましょう。ノットモザイクは、3次元空間の文字列ではなくタイルを使用するノットの一種です。
次に、ノットモザイクとは何かを正式に定義します。
https://arxiv.org/pdf/1602.03733.pdf A結び目モザイクn個の結び目の表現×n個のグリッドは、ここでは11枚のタイルで構成され、それらは以下の通りです。
これが、一連の制限付きのモザイクノットテーブルを要求する私の出発点です。私はあなたに尋ねたいのは、私に次のプロパティを持つテーブルを与えることです
トレフォイルを機械可読形式でエンコードしましょう。各タイルを取得し、番号(01-11)を割り当てます。プログラミング言語ラケットを使用すると、次のようになります
(define trefoil (array #[#[00 02 01 00]
#[02 10 09 01]
#[03 09 04 06]
#[00 03 05 04]] : Integer))
(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])
それで、出力がどうあるべきかを確立しました。では、問題の発生にどのように取り組むのでしょうか?
したがって、周囲のアイソトーピーの下では、リードマイスターの動きの有限セット内の別のノット図が与えられると、別のノット図に到達できることがわかります。したがって、2つのランダムリンクを生成します。次に定義するタスクには、表現可能なすべてのノットを列挙することで同等であるか、既知のノットへの状態またはパスのセットを与えることで同等ではないことを示す2つのランダムリンクが与えられますテーブル。
ノットがテーブル内にあるかどうかを知る速度を向上させる方法は、Alexander多項式としてインデックスを持つハッシュテーブルを構築することです。各インスタンスでは、Alexander Polynominalが計算され、同じAlexander多項式を共有している場合は、そのテーブルに要素として追加されます。
私は次の要点で作業プログラムの一部を持っています:https : //gist.github.com/zitterbewegung/4152b322eef5ecccdcf3502e8220844b