从工作量证明(POW)到高阶工作量证明(HPOW)

1 介绍

工作量证明机制作为抗女巫攻击的重要手段,已成为区块链和加密货币领域的主流机制之一,目前已广泛使用于一些主流的数字货币系统如比特币、以太币等。这一机制最早由Cynthia Dwork和Moni Naor于1993年在学术论文中提出,用于对抗服务资源滥用或阻断服务攻击的对策,其要求用户端进行一些耗时的复杂计算,而答案能被服务方快速验证,以确保服务与资源是被真正的需求所使用。这一设计机制随后被用于某电子邮件服务中用于反垃圾邮件设计,事实证明,这一机制能有效防止无成本地批量发送垃圾电子邮件。

工作量证明机制真正被大众熟知并了解和使用得归功于比特币。比特币首次提出了一种点对点不依赖于任何中心机构的电子支付方法,其核心设计在于创造了一种任何人都可以自由参与的互相信任的网络体系,这与传统的分布式系统有着本质的区别的,分布式系统计算中,节点之间本身是授权的且信任程度较高,在比特币中,节点的参与是自由的,任意节点可以在任何时刻以任意方式加入或退出系统的服务。在这种体系中,工作量证明机制起到了至关重要的作用,这是因为任意参与节点想要参与数据的记录权必须要完成一定难度的工作量计算,而这能有效地抵抗恶意节点发起的网络攻击。

然而随着比特币矿池的出现,比特币创始人中本聪所设想的“一CPU一票”的公平、公正的自由网络的愿景并没有出现,最终比特币和其他的加密货币体系都走向了集权。

在接下来的描述里,我们将中本聪所设想的这种自由网络系统称为“去中心化系统”。事实上,关于去中心化这一词汇目前并不存在精确的定义,在本文中,我们关于去中心化概念的理解是为了抵抗中心或阻止中心形成这一目的性的,在这一层面上,去中心化由两层含义,其一是系统中的单个个体对系统的控制力非常弱或者说能独立控制系统而成功的概率非常低;另一个方面,则是在一个已有系统基础上,为了防止中心化的形成,系统中的若干个体无法形成有效合作,也就是说,若干个体通过任意策略进行合作,能成功控制系统的概率低于某个合理的阈值。

基于以上的描述,我们将在本文的附录给出一个关于去中心化程度的一个不太严格的形式化定义。对于一个分布式系统来说,只要算力分布足够均匀,也即满足每个参与节点在系统的控制权上几乎相等,系统的去中心化程度就越高;另一方面,该系统还必须有一种有效对抗合作的机制,也就是说多个节点在系统中无论采取什么方式合作,他们能控制系统的能力甚至低于他们不合作对系统的独立控制能力之和。

回到比特币所使用的工作量证明机制上,比特币之所以会形成矿池的根本原因在于工作量证明机制中的工作量计算是可以外包的。目前相当多的人认为矿池的形成是ASIC矿机竞争导致的结果,其实这种观点是不完全正确的,矿机的算力提升只能代表单个节点的计算能力的提升,在自由竞争的条件下,每个节点都会独立提升自己的算力,但这并不会形成集权。倘若存在某种不能外包工作量的工作量证明机制,就能充分减少集权从而使得系统的去中心化程度更高。然而,在工作量证明机制的计算必须要具备难于计算和易于验证的特征,这也就意味着求解过程可以并行地拆分成若干验证工作,也即不存在真正意义上的不能外包工作的工作量证明机制。

如果说传统的工作量证明机制设计的目的就是为了抗女巫攻击,而不是为了对抗节点之间的合作,这在其他系统如反垃圾邮件或抗网络攻击的设计中是有效的。然而为了“一CPU一票”的去中心化愿景能成功实现,就必须设计新的工作量证明机制,在此,我们设计了一种名为“高阶工作量证明”机制,能有效对抗合作,接下来会详细描述其细节。

 

2 高阶工作量证明机制(HPOW)介绍

2.1 私钥参与工作量计算

如果在设计工作量证明的解谜算法里要求计算过程必须知道私钥,这样的解谜算法会给参与者一个艰难的选择,他们可以把私钥分发给合作者,这样任何一个合作者都可以私自挪用私钥拥有者的资产或权限,于是参与者最好的选择就是成为一个独立的参与节点。

当然在解谜算法中要求计算过程中知道私钥并不是要求参与者将私钥公开,只需要将比特币中设计的区块的有效性条件由区块的哈希值小于一个目标值改为对区块的数字签名小于目标值即可。这样,参与者在寻找目标解时需要不停地使用私钥对区块哈希值做数字签名运算,而其他参与者也即验证者只需要通过对应的公钥去验证区块的有效性。

 

2.2 高阶工作量计算

通过私钥参与工作量计算的设计,任何参与者都不会选择与其他参与者合作,但这并不能阻止参与者自己控制的若干节点合作计算。接下来需要引入高阶工作量计算来弱化合作计算的效果。

首先在私钥参与计算的基础上,引入幸运值的概念,也即参与节点“靠自己运气挖矿”,也就是说参与者在每一轮竞争出块之时,会根据自己的私钥和前一区块的hash的签名算出幸运值,幸运值越高,挖矿难度越小;幸运值越低,则挖矿难度越大。

需要注意的是,如果幸运值的计算和验证都是低能耗的话,还是无法阻止某些恶意节点会批量计算大量私钥(我们可以类比为女巫攻击,这里的概念与女巫攻击的定义还是有略微区别的)在某一轮的幸运值,然后选择较高幸运值的私钥参与计算,这样也就相当于这种恶意节点拥有了优先控制权。为了防止这种恶意行为,我们在计算幸运值时再引入一个轻量级的工作量证明机制。

另外计算幸运值所做的工作量证明是轻量级的,这一描述是相对于全网节点数量的,当全网节点数量较少的时候,为了有效抗合作,计算幸运值消耗的工作量会低于运气最好的节点计算目标区块消耗的工作量,也即轻量级工作量。当网络节点数量足够多的时候,计算幸运值消耗的工作量可能要远远高于运气最好的节点计算目标区块的工作量,这样也就保证在全网节点数量足够多的时候,系统具有较强的安全性。

由于计算幸运值会消耗参与者的工作量,单个参与节点就没有动力去批量计算幸运值从而挑选较小幸运值的私钥来进行生成区块。

正是由于采用了这种两阶段工作量证明的机制,我们将该机制称为高阶工作量证明机制(HPOW)。

我们接着通过引入一个简单的数学模型来证明这种高阶工作量证明机制能有效抑制节点间的合作挖矿。

367dd63f02d75733e402679de3590433d6a.jpg

这也就说,对于掌握多个节点的矿工来说,让这些节点独立挖矿的期望产出会高于让它们合作挖矿的产出。

由于出块的过程需要依赖私钥参与签名运算,对于互不信任的矿工来说,他们是没有理由共享私钥参与合作共同挖矿;对于掌握多个挖矿节点的矿工来说,按照以上的论述,其最优挖矿策略则是让这些节点独立挖矿而不是合作。这样也就实现了真正意义上的“一CPU一票”的去中心化目标。

 

3 系统性风险分析

基于以上的分析,在基于HPOW机制下,合作是不理性的,这样就会促使每一个网络参与节点都会选择独立挖矿。

事实上,类似于比特币类型的工作量证明机制中会产生51%的算力攻击这种系统性风险,在HPOW机制中,主要表现为51%节点攻击(也即某一个矿工控制着全网超过51%以上的节点)。

c5eddfdb09d37b9bb7b595106bc4223485c.jpg

经过以上的对比,我们发现在基于HPOW所实现的“一CPU一票”的理想去中心化模型中,系统性风险要远小于基于传统POW机制所实现的算力集中型的系统性风险。

 

4 去中心化的随机数生成机制

去中心化技术自诞生之初就是为了打造一个不依赖于任何中心的具有高度可信任的体系,除了数字货币之外,我们认为一种不可控制、不可预测、可公开验证的随机数生成机制也应该是去中心化体系设计的目标。

在日常的生活中,很多场景都需要用到随机数,比如游戏抽奖、车牌摇号、政府抽查、防伪码或验证码的生成等。在传统的抽奖系统中,依赖于人工现场监督的形式来保证公正性,系统运行效率低,运营成本高,公信力得不到认可。

随着互联网的发展,人们对随机数的运用又越来越依赖中心化系统,但几乎所有的中心化系统,生成的随机数都是伪随机数,存在着极高的作弊风险。

随着区块链技术的发展,由于区块链技术的去中心化特性,理论上能产生比中心化系统更公平的随机数,但是在去中心化环境里,如果出现巨额利益,随机数反而比中心化系统更容易遭受黑客攻击。

事实上,区块链要求各个节点的运算结果是一致的,在区块链系统内部天生不具备生成随机数的能力。目前有些基于智能合约的方案生成随机数如Commit-Reveal或BLS或VRF等,但其涉及到过于复杂的激励机制的设计,同时无法解决最后一轮参与者的作弊问题。

事实上,只有“一CPU一票”这种自由参与的网络体系所实现的随机数生成协议才具有真正意义上的不可预测、不可控制、可公开验证的特征。

另外我们也应该看到,如果存在着这种不依赖于任意第三方的可信的随机数生成机制,很多区块链领域的基础设计的问题也能得到很好的解决。

 

附录A:去中心化程度的形式化定义

根据我们在介绍中的描述,我们可以给出如下去中心化程度的定义:

59c332e569557f921101d13a1ff32ce6772.jpg

通过以上的定义,我们也不难发现,对于一个分布式系统来说,算力分布足够均匀,也即满足每个参与节点在单次生成区块的可能性上是几乎相等的,则该系统中单个节点能成功控制系统的最大概率会足够小。

另一方面,基于高阶工作量证明的对抗合作的机制,也就是说无论多少个节点在系统中无论采取何种方式合作时能成功控制系统的概率小于它们独立成功控制系统的概率之和。很明显在传统的工作量证明机制下,由于矿工的工作量是可以拆分和外包的,若干矿工选择通过外包工作量的方式进行合作时,其成功的概率会远大于其独立挖矿成功的概率之和。

 

附录B:Imrand项目介绍

Imrand项目是笔者经过深入研究和思考区块链及去中心化计算的一些本质问题后,发起的一种去中心化随机数生成协议或方案,以解决社会公正性问题为主。

如对Imrand项目有兴趣,可进入官网imrand.pro,或加入QQ群712780790交流。

转载于:https://my.oschina.net/u/2558422/blog/3070530

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值