計算上の課題をプルーフオブワークに変換できますか?


20

暗号通貨マイニングの一見無意味さは、有用な代替の問題を提起しました。これらの質問は、ビットコインCSTMOで参照してください。計算上の課題CC(その解を効率的に検証できる)を、そのような課題Ψ CΨ(C)(作業の証明に使用される)に実際に変換できるアルゴリズムが存在するのではないかと思う

  1. 関数ΨΨは、何らかの(パブリック)ランダムシーケンスrを使用してランダム化されrます。
  2. Ψ C)を解くのΨ(C)、通常Cを解くのと同じくらい難しいCです。
  3. Ψ C)のxxが見つかった場合、元のチャレンジCのΨ - 1x を効率的に計算できます。Ψ(C)Ψ1(x)C
  4. Cの解を知ることは、Ψ C)のC解を見つける助けにはなりません。Ψ(C)

4 '(更新)。コメントでノアが指摘したように、前処理CCは、前処理CΨ C)の解決に利点を与えないことを要求するように強化する必要がありΨ(C)ます。

この最後の条件は、Cの解を知っているという理由だけで誰も有利な立場に置かれないようにするために必要ですC。この方法を使用すると、人々は解決したい計算上の問題を提出することができ、中央当局は解決に値するものを選ぶことができます(エイリアンの発見とパスワードの破れなど)。問題が解決するのに1週間もかかる場合、それは問題ではないように見えることに注意してください(これらのエイリアンは隠れることはそれほどうまくできないと思います;)、これは解決策に対するより大きな報酬をもたらす可能性があるためです。とにかく、これらのトピックは私の理論的な問題の解決策とは関係ありませんが、もちろんコメント/フォーラムでそれらについて議論させていただきます。

考えられる解決策は次のとおりです。ΨΨCCCH A S H r(C,HASHr)にマップします。つまり、CCおよびその他の計算上困難な課題を解決します。これに伴う問題の1つは、Cの解を知るCことでΨ Cを解くのがΨ(C)多少簡単になることです(どれだけ簡単になるかはH A S H rの難しさに依存しHASHrます)。もう一つの問題は、ということであるΨ CがΨ(C)より困難になったCC


3
多分これは関連があるかもしれません:eprint.iacr.org/2017/203.pdf
アンドレアス

3
「計算上の課題」と「作業証明の課題」の違いは何ですか?
またはMeir

2
もちろん、仕事の証明の定義そのものは、いくつかの課題を考慮する必要があります。それらを定義するコアプロパティは非償却性であるためです。これが、eprint.iacr.org / 2017 / 203.pdfなどの作業が行われた理由です。PoWのほとんどすべてのアプリケーション、特に暗号通貨に対して非償却性の保証が必要です。とにかく、公に検証可能なソリューションを探していますか、それとも私的に検証可能なソリューションで十分ですか?実際に効率的なスキームが必要ですか、それとも理論的な解決策で大丈夫ですか?
ジェフロワクトー

5
@domotorpなぜeprint.iacr.org/2017/203.pdfはあなたの質問に関係ないと思いますか?
アロンローゼン

5
Pの最悪の場合の問題を軽減することはできませんが、この論文は幅広い問題に基づいた有用なPoWを提供します。具体的には、直交ベクトル(OV)に還元可能な問題(1次論理で定まるすべてのグラフ問題を含む)。また、k-OV問題(おおよそn ^ k時間を要すると推測される)、およびきめ細かい複雑さの世界からの他の問題にも適用されます。おそらくあなたが期待するほど一般的ではないかもしれませんが、結果はまだ非常に一般的です。そして、私が上で述べた問題については、プロパティ1〜4は実際に満たされています。
アロンローゼン

回答:


8

:AndreasBjörklundはコメントで解決策を提案しました。以下で説明するものよりも優れていると思います。Ball 、Rosen、Sabin、Vasudevanによるhttp://eprint.iacr.org/2017/203を参照してください。それらは、硬さがよく理解され、多くの問題(k-SATなど)を比較的効率的に削減できる直交ベクトルなどの問題に基づいて作業の証明を提供します。それらのPoWインスタンスΨ Cは、最悪の場合の直交と同じくらい困難です入力インスタンスCが簡単な場合でも、ベクトルは以下に説明するソリューションの大きな欠点を回避します。Ψ(C)C

以下に説明する解決策は、その単純さから恩恵を受ける可能性があります---それは非専門家に説明することができます---しかし、私には理論的にはあまり面白くないようです

Cの最も高速なアルゴリズムは基本的にランダム化される」という強い仮定を立てる場合(および、暗号ハッシュ関数をランダムオラクルとしてモデル化する場合)、解決策が可能です。これを形式化する1つの方法は、C

  1. CT F N PF P(そうでない場合、私はそれが本当に有効な挑戦ではないだと思います)。CTFNPFP
  2. Cの最速のランダム化アルゴリズムは、典型的なインスタンスの予想時間Tで実行されます。そしてCT
  3. 効率的に計算可能関数が存在fがから{ 0 1 } k個の解の領域にCのためのK ログ2 T常に存在するように、S { 0 1 } KF S に溶液Cをf{0,1}kCklog2Ts{0,1}kf(s)C

通知と仮定ことkはログ2 Tは、の力まかせ探索ことを意味{ 0 1 } kは、本質的にするための最適なアルゴリズムであるC。したがって、これは非常に強い仮定です。一方、Cがこれらの特性を満たさない場合、あなたの条件(2)と(4)の両方を満たすことを想像するのは困難です。klog2T{0,1}kCC

次に、ハッシュ関数所与H { 0 1 } *{ 0 1 } K我々はランダムオラクルなどのモデル、我々は定義Ψ HC ; Rに次のように、ここで、R { 0 1 } いくつかのため» kはランダム入力するΨ H。目標出力であるX { 0 1 } *ようH:{0,1}{0,1}kΨH(C;r)r{0,1}kΨHx{0,1}f H r x Cの解です。言い換えれば、r x は、上記のアルゴリズムの「良いランダムコイン」にハッシュする必要があります。f(H(r,x))C(r,x)

これがすべての条件を満たしていることを見てみましょう。

  1. 「関数Ψは、いくつかの(パブリック)ランダムシーケンスrを使用してランダム化されます。」チェック!Ψr
  2. Ψ C)を解くのは、通常Cを解くのと同じくらい難しいです。」通知のための単純な無作為化アルゴリズムことΨ HCrは最大で予想時間で実行さ2 kのプラス多項式オーバーヘッド、及び仮定により2 KTは、本質的にするための最適なアルゴリズムの実行時間であるCΨ(C)CΨH(C,r)2k2kTC
  3. 「溶液の場合xが見出されるΨ C、次いで溶液Ψ - 1X を効率よく、元のチャレンジのために計算することができるC。」これは、f H r x )を計算することで実行できます。これは、仮定によるCの解です。xΨ(C)Ψ1(x)Cf(H(r,x))C
  4. Cの解を知ることは、Ψ C)の解を見つける助けにはなりません。」定義により、解決Ψ HC ; R 見つける必要Xように、F H R xはを解決するCHをランダムオラクルとしてモデル化したため、この問題を解決する任意のアルゴリズムの予想実行時間を、HCΨ(C)ΨH(C;r)xf(H(r,x))CHHブラックボックスで示され、同じ問題の解決策を見つけるように求められます。ためと、再びHはランダムオラクルであり、予想されるクエリの複雑さは、要素の一部分のちょうど逆であるxは{ 0 1 } K溶液(定数倍まで)です。仮定により、最適に実行予想するための任意のアルゴリズムの時間CがあるT 2 Kこのフラクションがよりはるかに大きくすることができないことを意味し、2 - K。以降» KR { 0 1Hx{0,1}kCT2k2kk}r{0,1} is chosen uniformly at random, this is even true with preprocessing that is allowed to depend on HH and CC (but not rr), and in particular it is true even if we know a solution to CC in advance.

This is a very nice solution. The only place where I see a possibility of improvement is condition (2). For many problems in NPNP, there are algorithms in cncn time for some c<2c<2. It would be nice if something like this could be preserved, but I'm not sure if it can be done. Surely your method is superior already to the ones used currently for cryptocurrencies!
domotorp

In fact, maybe not even much needs to be changed in the blockchain. Just the community can agree that at some given time an xx needs to be appended to the blockchain whose hash solves whichever practical problem. In fact, maybe the standard blockchain can continue, and this could just be an independent, solo challenge. Possibly on the market such a solo instance will be worth more than traditional coins, just like Rogue One is better than sw7 or sw8.
domotorp

Glad you like it :). I just want to clarify that while my conditions on CC do imply that "brute-force search over some search space is essentially optimal," they do not imply that brute-force search over the original search space is essentially optimal. E.g., for SAT, this is not the same as requiring the fastest algorithm to run in 2n2n time.
Noah Stephens-Davidowitz

In case of composition -for example the computational problem admits a problem definition in which the computational problem can be composed of smaller problems, whose solution is easier, and there is a solution which is not based on composition, would non-amortizability account for this?
user3483902

I think another issue with this solution is what you've pointed out in a comment to my question, namely, that if someone can preprocess CC in an efficient way, they can get a serious advantage. I think this is quite a sensitive issue. Imagine that I submit a problem whose solution (in a standard format) can be checked in nn time, but I have a secret method to check it in nn time. This gives me quite an advantage for solving Ψ(C)Ψ(C).
domotorp

1

The following simple technique which I call the solution lottery technique (SLT) can be used in conjunction with other techniques (such as having multiple POW problems, the technique mentioned in Noah Stephens-Davidowitz's answer, etc) to help transform computational challenges into viable proof of work problems. The SLT helps ameliorate issues with cryptocurrency mining problems other than conditions 1-4.

Suppose that CC is a computational challenge of the form “find a suitable hash kk along with a string xx such that (k,x)D(k,x)D.”

Problem Ψ(C)Ψ(C) setup: Suppose that DD is a set, HH is a cryptographic hash function, and CC is some constant. Suppose furthermore that Data(k,x)Data(k,x) is a piece of information that is easy to obtain after one determines that (k,x)D(k,x)D but which cannot be obtained otherwise.

Problem Ψ(C)Ψ(C) objective: Find a pair (k,x)(k,x) such that kk is a suitable hash and where (k,x)D(k,x)D, and where H(k||x||Data(k,x))<CH(k||x||Data(k,x))<C.

Let us now investigate how problem Ψ(C)Ψ(C) satisfies requirements 1-4.

  1. We have to assume CC is already randomized for the SLT to satisfy this property.

2-3. Ψ(C)Ψ(C) will typically become more difficult than CC and this is a good thing. The difficulty of a proof-of-work problem needs to be finely tunable, but the original problem CC may or may not have a finely tunable level of difficulty (remember that the difficulty in mining Bitcoin is adjusted every two weeks). The difficulty of problem Ψ(C)Ψ(C) is equal to the difficulty of finding some suitable (k,x)D(k,x)D multiplied by 2nC2nC. Therefore, since the constant CC is finely tunable, the difficulty of Ψ(C)Ψ(C) is also finely tunable.

Even though the problem Ψ(C)Ψ(C) is more difficult than the original problem CC, almost all of the work for solving the problem Ψ(C)Ψ(C) will be spent on simply finding a pair (k,x)(k,x) with (k,x)D(k,x)D rather than computing hashes (one cannot compute whether H(k||x||Data(k,x))<C or not until one has computed Data(k,x) and one cannot compute Data(k,x) unless one verifies that Data(k,x)D).

Of course, the fact that Ψ(C) is more difficult than C presents some new concerns. For a useful problem, it is most likely the case that one would want to store the pairs (k,x) where (k,x)D in some database. However, in order to receive the block reward, the miner must only reveal a pair (k,x) where (k,x)D and H(k||x||Data(k,x))<C instead of all the pairs (k,x)D regardless of whether H(k||x||Data(k,x))<C or not. One possible solution to this problem is for the miners to simply reveal all pairs (k,x) where (k,x)D out of courtesy. Miners will also have the ability to reject chains if the miners have not posted their fair share of pairs (k,x)D. Perhaps, one should count the number of pairs (k,x)D for the calculation as to who has the longest valid chain as well. If most of the miners post their solutions, then the process of solving Ψ(C) will produce just as many solutions as the process of solving C.

In the scenario where the miners post all of the pairs (k,x)D, Ψ(C) would satisfy the spirit of conditions 2-3.

  1. Ψ(C) may or may not satisfy condition 4 depending on the specific problem.

Other Advantages of this technique:

The SLT offers other advantages than conditions 1-4 which are desirable or necessary for a proof-of-work problem.

  1. Improving the security/efficiency balance: The SLT will help in the case that C may be too easy to solve or too difficult to verify. In general, Ψ(C) is much more difficult to solve than C, but Ψ(C) is about as easy to verify as C.

  2. Removal of a broken/insecure problem: The SLT could be used to algorithmically remove bad POW problems in a cryptocurrency with a backup POW-problem and multiple POW problems. Suppose that an entity finds a very quick algorithm for solving problem C. Then such a problem is no longer a suitable proof-of-work problem and it should be removed from the cryptocurrency. The cryptocurrency must therefore have an algorithm that removes C from the cryptocurrency whenever someone has posted an algorithm that solves problem C too quickly but which never removes problem C otherwise. Here is an outline of such a problem removal algorithm being used to remove a problem which we shall call Problem A.

a. Alice pays a large fee (the fee will cover the costs that the miners incur for verifying the algorithm) and then posts the algorithm which we shall call Algorithm K that breaks Problem A to the blockchain. If Algorithm K relies upon a large quantity of pre-computed data PC, then Alice posts the Merkle root of this pre-computed data PC.

b. Random instances of Problem A are produced by the Blockchain. Alice then posts the portions of the pre-computed data which are needed for Algorithm K to work correctly along with their Merkle branch in order to prove that the data actually came from PC. If Alice's algorithm fed with the pre-computed data PC quickly, then the problem is removed and Alice receives a reward for posting the algorithm that removes the problem from the blockchain.

This problem removal procedure is computationally expensive on the miners and validators. However, the SLT removes most of the computational difficulty of this technique so that it can be used if needed in a cryptocurrency (instances which this technique is used will probably be quite rare).

  1. Mining pools are more feasible: In cryptocurrencies, it is often very difficult to win the block reward. Since the block rewards are very difficult to win, miners often mine in things called mining pools in which the miners combine their resources in solving a problem and in which they share the block reward in proportion to the amount of “near misses” they have found. A possible issue for C is that it may be difficult to produce a qualitative notion of what constitutes as a “near miss” for the problem C and the algorithm for finding a near miss may be different from the algorithm for solving C. Since the pool miners will be looking for near misses, they may not be very efficient at solving C (and hence, few people will join mining pools). However, for Ψ(C), there is a clear cut notion of a near miss, namely, a near miss is a pair (k,x) where (k,x)D but where H(k||x||Data(k,x))C, and the algorithm for finding near misses for Ψ(C) will be the same as the algorithm for finding solutions to Ψ(C).

  2. Progress freeness: A proof-of-work problem P is said to be progress free if the amount of time it takes for an entity or group of entities to find next block on the blockchain follows the exponential distribution eλx where the constant λ is directly proportional to the amount of computational power that entity is using to solve Problem P. Progress freeness is required for cryptocurrency mining problems in order for the miners to receive a block reward in proportion to their mining power to achieve decentralization. The SLT certainly helps mining problems achieve progress freeness.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.