任何计算挑战都可以转化为工作量证明吗?


20

加密货币挖矿的看似毫无意义的问题提出了有用的选择的问题,请参阅关于比特币CSTMO的这些问题。我想知道是否存在一种算法,可以将几乎任何计算挑战数学(可以有效验证其解决方案)转换为另一个这样的挑战(用于工作量证明),从而 Ψ C ^CΨ(C)

  1. 函数使用某些(公共)随机序列随机化。[RΨr
  2. 解决是典型地硬如解决。Ψ(C)C
  3. 如果溶液被发现为,然后溶液可有效地计算为原始的询问。Ψ ÇΨ - 1X C ^xΨ(C)Ψ1(x)C
  4. 知道的解决方案无助于找到的解决方案。 Ψ C ^CΨ(C)

4'(更新)。正如Noah在评论中指出的那样,应加强先前的条件,以要求预处理在解决也不应提供任何优势。 Ψ C ^CΨ(C)

这最后一个条件是必需的,以使没有人能因为他们知道的解而处于有利位置。使用此方法,人们可以提交他们想要解决的计算问题,而中央机构可以选择一些值得解决的问题(例如查找外星人与破解密码)。请注意,解决问题甚至需要一个星期的时间似乎也不是问题(我想那些外星人藏起来可能不太好;),因为这可能会为解决方案带来更大的回报。无论如何,这些主题与我的理论问题的解决无关,但是我当然很乐意在论坛上的评论中讨论它们。C

可能的解决方案如下:将映射到,即解决和其他一些计算困难的挑战。这样做的一个问题是,知道的解决方案确实会使解决变得容易一些(难易程度取决于的难度)。另一个问题是比变得更加困难。ÇÇΨCÇ Ç Ψ C ^ħ 小号ħ - [R Ψ C ^Ç(C,HASHr)CCΨ(C)HASHrΨ(C)C


3
也许这可能是相关的:eprint.iacr.org/2017/203.pdf
AndreasBjörklund'18年

3
“计算挑战”和“工作量证明挑战”之间有什么区别?
或Meir

2
当然可以,但是对工作证明的定义通常需要考虑几个挑战,因为定义它们的核心属性是不可摊销性。这就是完成诸如eprint.iacr.org/2017/203.pdf之类的工作的原因-您需要为几乎所有PoW应用(尤其是加密货币)提供非摊销保证。无论如何,您是在寻找一种可公开验证的解决方案,还是一个可以私人验证的解决方案?您需要实用的方案还是理论上的解决方案?
Geoffroy Couteau '18年

5
@domotorp为什么您认为eprint.iacr.org/2017/203.pdf与您的问题无关?
阿隆·罗森

5
尽管它不能减少P中最坏的问题,但本文还是基于大量问题给出了有用的PoW。具体来说,是可归结为正交向量(OV)的任何问题,包括所有在一阶逻辑中可表示的图问题。它也适用于k-OV问题(推测需要大约n ^ k的时间),以及细粒度复杂性世界中的其他问题。因此,虽然结果可能不像您期望的那么普遍,但结果仍然相当普遍。对于我上面提到的问题,确实满足了属性1-4。
阿隆·罗森

Answers:


8

注意:AndreasBjörklund在评论中提出了一种解决方案,我认为它比以下描述的要好。请参见Ball,Rosen,Sabin和Vasudevan的http://eprint.iacr.org/2017/203。简而言之,他们根据诸如正交向量之类的问题给出工作证明,这些问题的硬度已广为人知,并且可以相对有效地减少许多问题(例如k-SAT),其PoW实例与最坏情况的正交问题一样难向量,即使输入实例C很容易,也可以避免下述解决方案的主要缺点。Ψ(C)C

下面描述的解决方案可能会从其简单性中受益-可以将其描述为非专家-但在我看来,从理论上讲它并不那么有趣。

如果人们强烈假设“ 的最快算法从根本上是随机的”(并且如果我们将加密哈希函数建模为随机预言,则该解决方案是可行的)。对此进行形式化的一种方法是说C

  1. (否则,我想这不是一个真正的有效的挑战);CTFNPFP
  2. 在典型情况下,最快的随机算法在预期时间T运行;和CT
  3. 存在一个高效计算函数{ 0 1 } ķ到解决方案的域Çķ 登录2 Ť使得总是存在一个小号{ 0 1 } ķ˚F 小号的溶液Çf{0,1}kCklog2Ts{0,1}kf(s)C

注意的是,假设意味着强力搜索的{ 0 1 } ķ本质上是最优算法Ç。因此,这是一个很强的假设。另一方面,如果C不满足这些属性,那么我很难想象同时满足您的条件(2)和(4)。klog2T{0,1}kCC

然后,给定的散列函数,我们建模为随机预言,我们定义Ψ ħÇ ; [R 如下所示,其中[R { 0 1 } 对于一些» ķ是随机输入到Ψ ħ。我们的目标是输出X { 0 1 } *,使得H:{0,1}{0,1}kΨH(C;r)r{0,1}kΨHx{0,1} C的解。换句话说,对于上述算法,r x 应该哈希为“良好的随机硬币”。f(H(r,x))C(r,x)

让我们看看这满足您的所有条件。

  1. “函数是使用某些(公共)随机序列r进行随机化的。” 校验!Ψr
  2. “解决通常和解决C一样困难。” 注意,简单随机化算法Ψ ħÇ- [R 在预期时间运行至多2 ķ加多项式开销,并且通过假设2 ķŤ本质上是最佳的算法的运行时间ÇΨ(C)CΨH(C,r)2k2kTC
  3. “如果一个溶液被发现为Ψ Ç,然后溶液Ψ - 1X 可有效地计算为原始的询问Ç ”。这可以通过计算f H r x 来完成,这可以通过假设来解决C。xΨ(C)Ψ1(x)Cf(H(r,x))C
  4. “了解的解决方案无助于找到Ψ C的解决方案。” 根据定义,求解Ψ ħÇ ; [R 需要找到X,使得˚F ħ [R X 是将溶液Ç。由于我们模拟^ h作为随机预言,我们可以下界是解决这个问题的最佳预计查询查询问题的复杂性任何算法的预期运行时间,其中^ hCΨ(C)ΨH(C;r)xf(H(r,x))CHH由黑框给出,要求我们找到相同问题的解决方案。并且,再次因为是一个随机预言,预期的查询复杂性是元素的部分的刚逆X { 0 1 } ķ是溶液(最多一个常数因子)。由假设,最优预期运行的任何算法的时间ÇŤ 2 ķ,这意味着这部分不能远大于2 - ķ。由于» ķ- [R { 0 1Hx{0,1}kCT2k2kk是随机统一选择的,对于允许依赖于 H C(但不取决于 r)的预处理,这也是正确的,尤其是即使我们事先知道 C的解决方案,也是如此。r{0,1}HCrC

这是一个非常好的解决方案。我认为唯一可以改善的地方是条件(2)。对于许多问题,对于某些c < 2,c n时间内有算法。如果可以保留类似的信息,那将是很好的,但是我不确定是否可以做到。当然,您的方法已经优于当前用于加密货币的方法!NPcnc<2
domotorp

实际上,在区块链中甚至可能不需要太多更改。只是社区可以同意,在某个给定时间需要将附加到其哈希可以解决任何实际问题的区块链上。实际上,也许标准的区块链可以继续下去,这可能是一个独立的,单独的挑战。在市场上,这样的独奏实例可能比传统硬币更​​有价值,就像Rogue One比sw7或sw8更好。x
domotorp '18年

很高兴你喜欢它 :)。我只是想澄清一下,尽管我在条件确实暗示“在某些搜索空间上进行蛮力搜索本质上是最佳的”,但它们并不意味着在原始搜索空间上进行蛮力搜索本质上是最优的。例如,对于SAT,这与要求最快的算法在2 n时间内运行不一样。C2n
诺亚·斯蒂芬斯·戴维多维兹

在组合的情况下-例如,计算问题接受问题定义,其中计算问题可以由较小的问题组成,其解决方案更容易,并且存在不基于组合的解决方案,因此不可摊销解决此问题?
user3483902

我认为此解决方案的另一个问题是您在对我的问题的评论中指出的内容,即,如果有人可以高效地对进行预处理,他们将获得很大的优势。我认为这是一个敏感的问题。想象一下,我提交了一个可以在n次内检查其解决方案(标准格式)的问题,但是我有一个秘密的方法可以对它进行检查Cn次。这给了我相当有优势的解决ΨC ^nΨ(C)
domotorp

1

以下简单的技术(我称为解决彩票技术)可以与其他技术(例如,具有多个POW问题,Noah Stephens-Davidowitz的答案中提到的技术等)结合使用,以帮助将计算难题转化为可行的证明工作问题。SLT可帮助改善条件1-4以外的加密货币挖掘问题。

假设是以下形式的计算挑战“找到一个合适的散列ķ用字符串沿X,使得ķ X d ”。Ckx(k,x)D

问题设置:假设D是一个集合,H是一个加密哈希函数,而C是一个常数。假设此外建议数据ķ X 是一块是容易获得的信息的一个确定后ķ X d但是不能以其他方式获得。Ψ(C)DHCData(k,x)(k,x)D

问题目标:查找一对ķ X ,使得ķ是一个合适的散列,并且其中ķ X d,并且其中ħ ķ | | X | | 数据ķ X < çΨ(C)(k,x)k(k,x)DH(k||x||Data(k,x))<C

现在让我们研究问题如何满足要求1-4。Ψ(C)

  1. 我们必须假定SLT的已经被随机化以满足此属性。C

2-3。通常会比C困难,这是一件好事。工作量证明问题的难度需要进行微调,但是原始问题C 的难度可能也可能没有微调(请记住,挖矿比特币的难度每两周进行一次调整)。问题的难度Ψ C ^等于寻找一些合适的难度ķ X d乘以2 ÑΨ(C)CCΨ(C)(k,x)D。因此,由于常数C是可微调的,因此ΨC的难度也可微调。2nCCΨ(C)

尽管问题比原来的问题更加困难ç几乎所有的解决问题的工作,Ψ Ç将在简单地找到一对花ķ X ķ X D而不是计算哈希(无法计算H k | | x | | Datak x < CΨ(C)CΨ(C)(k,x)(k,x)DH(k||x||Data(k,x))<C或直到一个已经计算和一个不能计算数据ķ X 除非该验证数据ķ X d)。Data(k,x)Data(k,x)Data(k,x)D

当然,C困难的事实带来了一些新的问题。对于一个有用的问题,这是最有可能的一个将要存储对的情况下ķ X ,其中ķ X d在一些数据库。然而,为了接收所述块的奖励,矿灯必须只揭示了一对ķ X ,其中ķ X dħ ķ | |Ψ(C)C(k,x)(k,x)D(k,x)(k,x)D代替的所有对ķ X d无论 ħ ķ | | X | | 数据ķ X < Ç与否。解决这个问题的一种可能的方法是让矿工简单地揭示所有对k x ,其中k x H(k||x||Data(k,x))<C(k,x)DH(k||x||Data(k,x))<C(k,x)出于礼貌。矿工也将有权拒绝链,如果矿工还没有公布对他们的公平份额的能力ķ X d。也许,应该算对的数量ķ X d计算,以谁拥有最长的有效链以及对。如果大部分的矿工张贴他们的解决方案,然后求解的过程 Ψ ç会产生同样多的解决方案,解决的过程 Ç(k,x)D(k,x)D(k,x)DΨ(C)C

在矿工张贴的所有对场景Ψ Ç将满足条件2-3的精神。(k,x)DΨ(C)

  1. 可以或可以不满足条件 4取决于具体的问题。Ψ(C)4

Other Advantages of this technique:

SLT提供了条件1-4以外的其他优点,这对于工作量证明问题是理想的或必需的。

  1. 改善安全性/效率的平衡:如果太容易解决或验证太困难,则SLT会有所帮助。通常,Ψ CC难解决,但Ψ C)的验证与C一样容易。CΨ(C)CΨ(C)C

  2. 消除损坏/不安全的问题:SLT可用于通过算法消除带有备用POW问题和多个POW问题的加密货币中的不良POW问题。假设一个实体找到了解决问题快速算法。然后,这样的问题不再是合适的工作量证明问题,应将其从加密货币中删除。因此,cryptocurrency必须有一个算法,消除Ç从每当有人张贴了一个算法,解决了问题cryptocurrency Ç得很快,但它绝不会取消的问题Ç否则。这里是用来去除我们称之为问题的问题这样的问题去除算法的轮廓一个CCCCA

一种。爱丽丝支付了大笔费用(该费用将支付矿工为验证算法而产生的费用),然后将算法(我们将其称为算法K)发布到区块链,该算法将打破问题如果算法K依赖于大量的预计算数据P C,则爱丽丝发布该预计算数据P C的Merkle根。APCPC

b。问题A的随机实例由区块链产生。然后,Alice的帖子被以与他们的梅克尔分支所需的算法正确地ķ沿工作预先计算的数据的部分,以证明该数据实际上从来到。如果Alice的算法快速提供了预先计算的数据P C,那么问题将被消除,Alice会因发布将问题从区块链中消除的算法而获得奖励。PCPC

在采矿者和验证者上,该问题消除程序在计算上是昂贵的。但是,SLT消除了该技术的大部分计算难度,因此,如果需要,可以在加密货币中使用它(使用这种技术的情况可能很少见)。

  1. 矿池更可行:在加密货币中,赢得区块奖励通常非常困难。由于很难获得集体奖励,因此矿工们经常在称为“ 矿池”的矿场中进行开采,矿池中,矿工将他们的资源结合起来解决问题,并根据发现的“近乎失误”的数量来分享集体奖励。 。一个可能问题是,可能很难就什么构成问题C的“接近未命中”产生定性概念,并且寻找接近未命中的算法可能不同于求解C的算法。由于矿工会寻找未命中的对象,因此他们在解决C方面可能不是很有效CCCC(因此,很少有人会加入矿池)。然而,对于,有一个邻近命中的一个明确的概念,即,近的错过是一对ķ X ,其中ķ X d但是其中ħ ķ | | X | | 数据ķ X ç,算法查找有惊无险为Ψ çΨ(C)(k,x)(k,x)DH(k||x||Data(k,x))CΨ(C)将与寻找解的算法相同。Ψ(C)

  2. 进展游离度:一个证明的工作问题被认为是无进展,如果所花费的时间为一个实体或实体组的数量找上了blockchain下一块遵循指数分布ë - λ X其中常数λ与实体用来解决问题P的计算能力成正比。加密货币挖矿问题要求进步自由,以便矿工获得与其采矿能力成正比的区块奖励,以实现分散化。SLT当然可以帮助采矿问题实现进度自由。PeλxλP

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.