OKCoin

素数币:挖矿运算有实用价值的加密货币

宋欢平 发布在 比特币 12 13674

primes

作者:Vitalik Buterin  时间:13年7月8日  翻译:宋欢平

原文:http://t.cn/zQAPO7D

译者注:长铗和朗豫两位技术专家已经在微博抨击了素数币。请关注他们微博学习。我仅仅是翻译,欢迎抨击。

 

比特币的支持者往往掩饰这样一个事实:比特币的挖掘算法几乎没有现实价值。问题的本质是这样的:为了往blockchain添加一个新的比特币块,矿工必须进行“工作量证明”,以寻找一个很难找的数字,找到了就是有效的验证。从本质上讲,工作量证明是矿工花时间产生块的证明,是比特币安全的重要组成部分。如果没有这个工作量证明,攻击者可以容易的伪装成具有数百万比特币的节点,并以这种方式严重损害比特币的交易机制。典型的“重复消费”诈骗,就是在向商家支付后,把钱又发送给了自己,然后创建一个虚假的共识,即第二次交易发生在第一次交易前,从而剥夺了商家的钱。工作量证明解决了这个问题,“伪装成百万比特币的节点”成本非常高。然而,让人不舒服的是比特币的工作量证明(SHA256算法)并没有潜在的价值,比特币的工作量证明表面上看就是在浪费电而已。

 

人们一直认为,其实我们可以做的更好。许多比特币新手建议挖掘算法可以参与SETI@home(译者注:SETI@home 是一项利用全球联网的计算机共同搜寻地外文明的科学实验计划,任何人都可以通过运行一个免费程序下载并分析从射电望远镜传来的数据来加入这个项目)或者floding@home(译者注:floding@home是哈佛大学的研究阿尔茨海默氏症,亨廷顿病、帕金森症和很多癌症的项目,任何人都可以运行他们的软件加入提供运算能力),这样的计算也将有助于人类治疗复杂的疾病或者寻找外星人。然而,问题是,比特币的挖掘算法需要的一个前提是算法能够被验证,而SETI@home的Folding@Home都不具备这个特性。眼下,SETI和floding中所有参与者都是志愿者,这意味着他们除了帮助项目达到目标以外没有别的目的。然而,如果这些网络和比特币的挖掘绑定,参与者将能够受利益驱使,不用再纠结计算产生的无用数据,

素数币是第一个拿出可行的解决方案的基于工作量证明的加密货币。素数币的核心前提,放弃无用的哈希算法,而要求矿工找到素数长链来进行工作量证明。有三个特定类型的素数列:第一类坎宁安链,第二类坎宁安链,和双坎宁安链。

第一类坎宁安链的规则是,素数链中每个数都是前一个数的两倍减一。第一个长度为5的第一类坎宁安链包含以下5个素数:

1531,3061,6121,12241,24481

第二类坎宁安链,素数链中每个数都是前一个数的两倍加一。第一个长度为5的第二类坎宁安链出现得更快,如下:

2,5,11,23,47

最后,双坎宁安链的规则是:大小相差2的孪生素数,后一对的平均值是前一对的平均值的两倍。很容易理解,双坎宁安链具有偶数个数。第一个长度为6的双坎宁安链是:

211049,211051,422099,422101,844199,844201

请注意,双坎宁安链本质上是第一类坎宁安链和第二类坎宁安链组合而成。每对的第一个数字组合正好是第二类坎宁安链,每对的第二个数字组合正好是第一类坎宁安链。

 

找到素数列有什么实际效用呢?电子前沿基金会提供55万美元价值的奖品给第一个发现数字长度超过100万,10万,亿和1亿的素数。目前前两个奖项已经被拿走。“大互联网梅森素数搜索”从1996年以来一直在寻找大素数,世界各地大学的数学家们都在参与。美国田纳西大学马汀分校为寻找素数是有用的提供了一系列说法:除了获得荣耀以外,在数论领域有很多副产品,激励计算机硬件开发,了解素数背后的工作机制,例如,能够深度预测素数间隔的素数理论,在用来寻找素数分布中得到使用。在这里,希望是,如果素数币能够大规模推广,人们能够更有效的找到坎宁安链和双坎宁安链,甚至可能突破性的找到这些数列出现的规律。

 

为了成为可行的加密货币,素数币需要一种微调工作证明难度的方式,否则随着技术日益普及和认可度越来越高,可能会导致新块创建太快而使区块链不稳定或交易时间延长。从原理上看,素数列出现的间隔本身就不稳定,找一个8位长度的素数列比找7位长度的难度要提升一百倍。一种选择是对长度进行奖励,但这将使验证变得困难。素数币提供的解决方案是基于费马测试的。费马测试是一种快速辨别素数的方法:以任意数字(通常为2)为底,以需要测试的素数为幂,计算结果再用来减去该素数和一个大数的乘积,看是否得到原来的数字。例如:

 

2^17-17*7710=2

2^23-23*364722=2

 

但是:

2^21-21*99864=8

 

另一种稍好的公式是,以需要测试的素数减一为幂,采用如上的运算,看能否回到原来的数字。如果通过这个测试,证明它就是素数,而别的其他测试都挺费时间(唯一的例外是,3560运算后为375,但3561运算后为3(而561却不是素数),但素数较大是这样的例外变得很罕见)。素数币将P-1测试和欧拉-拉格朗日-立夫习兹的测试结合,使用类似的原则,来测试素性。所以,问题是,如何才能使用这个测试来创建间隔?也就是说,怎么区分7.2和7.5的素数链长?答案很简单:拿数列中第一个非素数,进行费马测试余数越小,分级长度越大。例如,我们的链2,5,11,23,47下一个值是95,依据上面使用的重复减法的过程计算后,余数是54,因此,链的长度为5+(95-54)/95=5.43。然而,1531……24481素数链的下一个值48961,费马余数为1024,所以链的长度为5+(48961-1024)/48961=5.97。为了一个为了使素数链可以成为有效的工作证明,它用小数表示的长度至少要和现在的难度想当。为写这篇文章时,这个参数在7.1上下浮动。

 

我们不希望工作量证明可以重复使用,素数币还增加了另一种限制。基于素数币的目的,对于双向链的起点被定义为前面两个数字的平均,对于单坎宁安链的的起点被定义为假想双向链存在前面两数字的平均。例如,上面两个单坎宁安链的起点分别是1530和3。这样限制是因为素数列起点必须能够被工作证明的区块哈希数整除。哈希函数从属性看,寻找特定的散列值的唯一途径只能是采用简单地尝试新的值直到得到结果。因此,得到有效的工作证明的方法就是针对已知哈希值的区块寻找素数列,这些素数列只有对特定的区块才有效。

 

素数币还增加了一些其他方面的创新:

 

平滑的难度调整:

不同于比特币每2016个区块(大约两个星期)后调整其难度,以匹配每十分钟一个块的挖掘速度,素数币的难度调整更加平滑,采用每个块后调整其难度,挖掘量向目标总量以指数衰减的方式靠近。例如,如果网络哈希运算能力(或更确切地说,素数生成效率)突然增加一倍,下一个块难度比前面的增加0.02%,假设没有进一步增加运算力,一个星期后挖掘每个新块需要的工作会提高186.5%,两星期后提高198.2%。

非常快的确认

不同于比特币平均10分钟得到确认(实际差不多8分钟,因为难度在追赶运算能力),而素数币每分钟出一个新块。这就能更快速地进行安全的交易;比特币六个确认可能需要50分钟,但在素数币上仅需要6分钟。六个独立的块确认能够保证相当安全的阈值是由背后的数学原理保证的。所以素数币同样6个交易确认并没有降低安全度。

 

自我调节块奖励

比特币因为控制货币供应量的算法而著名,它保证最多只有2100万比特币,且将永远不会增加,并且设定挖掘的速度。素数币遵循不同的路径。每块释放的素数币(XPM)的数量总是等于999除以难度的平方,如果难度线性增加,总量最后会收敛。由于摩尔定律指出,计算能力指数增加,寻找素数列的难度以长度来衡量也是指数增加的,所以最后总量收敛是正确的。

 

素数币也有一些地方错过了较大的改进的机会。首先,自我调节的新块的奖励是更自然的模仿“黄金的稀缺性”。然而,在实践中,它是完全完全相反的。黄金在需求,导致一定程度上,供给是随着价格的增加而增加的;如果在黄金价格突破5000美元,采矿将成为有利可图的,之前没有盈利机会的挖矿设备也会投入,增加了新黄金的开采量,最终使得价格上涨乏力。而素数币而言,如果价格上升10倍,随着矿工的大量进入,难度也会跟着快速提升,导致新生产的币越来越少。因此,素数币不是像黄金学习增加固有的负反馈机制,却创建一个正反馈机制,使得波动变得更加剧烈。此外,素数币原本可以把它的难度指数调整算法设置一个更长的时间(比如经过两个月的调整达到86.5%的完成度)而不是采用一个星期。这个创新使得汇率上升时会产生更多的币,至少在某种程度上能够使得价格稳定。但遗憾的是至今没有一种货币试过这种想法。素数币,尽管它有了很多改进,却错过了成为第一的机会。

 

所有的一切,素数币认为自己会是一个非常有趣的实验。这是历史上第一次,我们有一个货币的挖掘算法除了保证交易安全,还有了一个有价值的附加功效。素数币,不像之前许多其他加密货币,只是在一些无关重要的地方来改善。如果没有比特币的大规模领先地位,素数币很可能是由于比特币的选择,让加密货币未来充满光明的潜力。

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:12

您需要登录后才可以回复 登录|注册
    Author Image
    wb_5927814510 207 天前

    大家好!我在线看过引起我的注意的网站。这个网站就是http://cn.bc-prime.com/。你自己也能看一下。就是容易得挣钱方式,你能没日支出。通过BC-Prime转介计划你可额外获得稳定收入。

    +1
    +1
    我要点评
    Author Image
    JoyBtc 1229 天前

    山寨币(包括素数币)能不能取代比特币?这个问题其实很简单,看这个山寨币有什么超越比特币又无法让比特币吸收进来的优点。我觉得工作量证明从SHA256换成素数运算并不算什么伟大的创新,算出一个天文数字长度的大素数又怎么样呢?本来就存在的东西,知道和不知道世界都不会有任何变化~

    +1
    +1
    我要点评
      Author Image
      changjia 1228 天前

      是的,以前没注重这篇文章,现在越看越觉得好

      +1
      +1
      我要点评
      t
      t 1126 天前

      素数暂时只是个数学“玩具”,至少和一般人没什么大关系。不过说它没用太想当然了点

      +1
      +1
      我要点评
      test
      test 1104 天前

      天真,知道加密依靠大素数不?
      既然是玩密码学货币的人,还是好好研究所用的加密系统吧

      +1
      +1
      我要点评
    Author Image
    胡翌霖 1229 天前

    此文已经提到此素性验证的不完全性,如561等反例存在,但反例出现的概率会越来越小,通过不完全但高命中率的测试法筛选素数仍然是有价值的(如果说找大素数这件事是有价值的话)。Sunny King显然是靠谱的,如果他只是出于捞钱或好玩的心态,完全可以像其它克隆币那样糊弄,但事实上在所有山寨币中几乎只有Sunny King设计的两个币有真正的创意。无论是否赞同这些创意,至少这是一种积极的探索,比特币本来就是一场货币实验,而PPC和XPM是更进一步的小实验。成功了当然好,如果失败了,证明确实此路不通,也仍然是有价值的——积极探索比起拒绝实践而只是理论空想来进行裁判而言,探险家比起守成者而言,更加值得尊敬。

    长铗等对Sunny King的质疑,如果只是就理念不合而进行批评探讨,当然是好的。但是如果说从一开始就持有一种拒绝探索的成见,乃至于表露出某种针对人身的轻蔑,这就很没有意思了。

    ”素数币有可能是第一个在技术上超越比特币的替代性货币“这一说法有些夸张,但并不完全荒谬。关键在于,素数币的确采取了与比特币有极大不同的技术思路,既然在处理方式上有重大的分歧,那么究竟哪一个更优越,在不同的价值标尺下可能得到不同的衡量。我们可以设想,如果素数币比比特币早开发出来将会如何,PPC更早呢?历史可能会改写。而最早出现的换成LTC、FTC之类呢?那么恐怕和比特币不会有本质区别。

    我向来不认为光靠比特币一家就能够统治货币世界。即便是黄金的时代,银币和铜币也都作为补充与之长期共存。黄金也未必是适合做主要货币的最佳元素,黄金的地位也有其天时地利人和的种种偶然因素,但即便将来发现了更优越的金属,也不必把黄金的地位替换掉。

    事实上很难说有一种金属在每一个方面都是完美的,例如黄金虽然各方面性质优异但是过于稀缺以至于其开采太容易被垄断,日常小额交易也不太便利,而铜钱产量较多且分散,但又容易泛滥且容易掺假,白银则相对平衡一些。如此各有长处各有缺陷的多种货币共存,相互平衡或此消彼长,这才构成一个完整的货币生态。

    类似地,比特币的技术模式一定是去中心化货币的最佳模式吗?未必如此。未来的去中心化货币生态绝不会只有比特币一家。而现在的实验和探索或者可能为比特币本身的发展提供参考,或者可能发展出候选的共生者。无论如何,这些探索是重要的。

    +1
    +1
    我要点评
      Author Image
      changjia 1229 天前

      人身的轻蔑?没那么严重吧。对山寨币最大的蔑视是根本不评价它,但我对太阳金的两个发明评价最多,因为它们都有一定创新理念,尤其是PPC。但素数币的设计是矛盾的,一个很严重的问题是,素数在数轴上的分布不是均匀的,位数越大则越稀少,寻找难度呈指数增长,工作量证明却需要难度是平滑增长的。这意味着越到后面,交易越难确认,甚至不能确认。太阳金的解决方案就是妥协,费马测试本来就是一种不完备的筛选,将P-1测试和欧拉-拉格朗日-立夫习兹的测试结合起来就更不完备了,素数币寻找到的坎宁安链越到后面越不可信,恐怕没有哪个数学权威机构会承认它是有效的坎宁安链。

      +1
      +1
      我要点评
        Author Image
        胡翌霖 1229 天前

        你的批评越来越进入细节,而不是一个明显的根本性的“矛盾”。特定整数内素数的分布密度接近于该整数对数函数的倒数,因此难度增长在概率上是可预计的,于是就可以设计让难度平滑增长,办法当然不是“在小于x的整数中寻找坎宁安链”的这个x平滑增长,但分布遵循概率规律的话就可以设计。事实上该文提到难度平滑增长也是素数币的一个创新点。

        我不清楚素数币是否确实使用了费马测试而不是其它更完备的测试法,如果真是如此,估计也是出于与工作量证明的程序设计相妥协的考虑。但即便用此法找到的素数不可信,那么再对之进行一轮更严格的塑性测试不就好了。毕竟这不完备的测试仍然有较高的命中率,对于切实发现大素数还是有帮助的。

        另外,素数币的算法还可以随时改进,有数学家参与进来帮助其完善也不是不可能。

        +1
        +1
        我要点评
    Kingo_XPM123
    Kingo_XPM123 1229 天前

    回复@长铗:译文很好,留存欣赏。不过没有必要急于去否定别人,这个世界本来就没有什么东西是完美的,BTC、XPM都有其存在的价值和合理性,生物因其多样性才有了适者生存的进化过程 //@长铗:回复@P2PBUCKS:纠正一下,是每分钟1个区块。巴比特已有译文:http://t.cn/zQVnJ7e

    +1
    +1
    我要点评
    朗豫
    朗豫 1229 天前

    哈哈 你别说我技术专家啊,我只是认为这种改进意义不大

    +1
    +1
    我要点评
      Author Image
      宋欢平 1229 天前

      你速度好快。。。

      +1
      +1
      我要点评
        朗豫
        朗豫 1229 天前

        今天休假 随便逛逛

        +1
        +1
        我要点评