[摘要]:本文提出了一种改进加密货币系统中工作量证明共识的方案。该方案在系统中添加了一种游戏服务器节点。在系统设定的难度下,从挖矿节点中产生的合法区块将被发送至游戏服务器节点,并由人类玩家代理在游戏中竞争,获胜的区块被写入区块链。该方案中,由于人类玩家的参与,矿工无法通过增加机器算力的方式取得垄断记帐权,从而保证了系统的安全性,同时也起到了抑制能源过度消耗的作用。
1 前言
区块链系统中的工作量证明(POW)共识,即节点之间通过哈希算力的竞争来争夺记帐权,最早被应用于比特币中[1]。基于工作量证明共识的比特币系统稳定运行了将近10年时间,证明了这种共识的有效性,但同时也暴露其带来的两个主要问题:越来越高的能源消耗及大型矿池和专业矿机生产商的出现带来的算力垄断。目前比特币挖矿在一年内消耗的电量至少与爱尔兰全国的年耗电量相当,并且大约每六个月便会翻番。算力垄断的问题则更加严重,根据btc.com的统计数据,比特币系统前5大矿池的算力占比已达64.88 %(2018/9/15)。其它基于POW共识的区块链系统也同样表现出了严重的算力集中。虽然目前要对比特币系统发动51%攻击成本巨大,经济上并不划算,但在复杂的政经环境下并不能完全排除这种可能性。
本文提出一种工作量证明共识的改进方案:哈希战场,用以约束比特币及其他基于工作量证明共识的区块链系统的能源消耗,并防止算力垄断。
2 哈希战场的简明工作机制
哈希战场方案对于工作量证明共识算法的改进在于在系统中引入一种专门的游戏服务器节点,其作用在于收集从挖矿节点产生的合法哈希区块,并让每一个区块的哈希对应一个游戏角色,然后这些游戏角色在某种游戏规则下相互竞争,决出最后的胜利者。服务器为胜利者哈希区块签名并进行广播,由其他节点验证后添加到区块链上。
3 基于哈希战场方案的工作量证明共识系统的实例
上面阐述了哈希战场方案的简化工作机制,接下来用一个实例对其进行详细说明。在这个实例中,首先要做的是构建一个基于哈希战场方案的工作量证明共识系统。这样一个系统的组成部分有以下几个:1. 普通节点(包括POW挖矿与非挖矿节点);2. 游戏服务器节点;3. 哈希战场游戏;4. 通过代理哈希区块参与竞争的人类游戏玩家。
接下来基于这样一个系统来构建一个实例:1. 为简单起见,假定普通节点是两个挖矿节点,标记为A,B;2. 每个服务器对应一个节点,为避免中心化,服务器节点必须达到一定数量,这里假定共有100个节点,编号为X1,X2,…,X100;3. 同样为简单起见,假定所有服务器只运行一种游戏,执行相同的规则;4. 假定参与游戏的玩家数量等于发送到服务器的哈希区块的数量。
构建好这样一个实例后,我们从第n个区块开始分析其工作流程。首先,基于POW机制,A,B两个节点分别基于随机数生成区块。假定在系统设定的难度下,A节点每10分钟生成1个合法区块,B节点每10分钟生成10个合法区块。
第2步,A,B两个节点将各自产生的合法哈希区块发送至游戏服务器。这些区块中包含的内容是:区块创建时间,节点的钱包地址,随机数及哈希值。这里假定游戏服务器每一局的游戏时间为100分钟,区块链大约每10分钟左右添加一个区块。因此将100个游戏服务器每10个1组,分为10组。这样,在10分钟时间内,A,B两个节点各自有1个和10个区块被发送至某一组的10台游戏服务器,假设是X1,X2,…,X10。所以,A一共需要10个玩家代理其哈希区块,B则需要100个玩家。
第3步,A,B节点各自指定代理玩家进入游戏,指定的方式可以是通过服务器返回的密码,然后玩家在游戏中决出获胜者。游戏可以是各种类型,可以是魔兽世界,绝地求生等大型游戏,也可以是简单的纸牌类游戏。游戏的规则可以多种多样,以魔兽世界为例,选择其中的一部分游戏内容。比如,选择一个区域地图,随机刷新一些怪物,进入游戏的玩家需要寻找并击杀这些怪物,同时获得金币。到本轮游戏时间结束时,服务器统计所有角色获得的金币数量,最多者获胜。
第4步,游戏结束,X1到X10服务器将获胜者区块签名并向全网广播,同时开始接收A,B发送的新区块。
第5步,A,B节点接收从X1到X10服务器广播的获胜者区块,验证签名的有效性并统计区块存活率,选出存活率最高的区块。这里,存活率定义为某个哈希区块胜出的数量与每轮游戏服务器数量之比。
第6步,A,B节点创建链上第n+1个区块,该区块中包含的信息是:区块创建时间;存活率最高的区块中的钱包地址及其对应的区块奖励和交易手续费;打包的合法交易;由以上内容加上第n个区块的哈希通过哈希运算得到的区块哈希值。
有可能出现的情况是,在一轮游戏中,有两个或多个区块有相同的存活率。如果出现这种情况,处理方法是节点给这些区块加上一个标记,然后将其发送至新一轮游戏中竞争,通过多轮游戏,有相同标记的区块彼此竞争,最后确定一个唯一的获胜者。
4 哈希战场方案的相关各方利益分析
哈希战场方案的利益相关方有4个:矿工,游戏服务器提供方,游戏开发者以及玩家。整体利益关系如下:矿工通过工作量证明算法挖矿生产哈希区块,每个生产出的区块由玩家代理进入游戏服务器竞争,如果竞争获胜,则获得区块奖励及交易手续费收入;矿工需要为每一个进入服务器的区块支付一定的费用,这些费用分为3份,分别支付给服务器提供方,游戏开发者及玩家。
4 利益最大化前提下的各方行为分析
这里假定所有利益相关方都是理性人,即其行为以获得自身的最大利益为前提。对于矿工一方,其收益是最终获胜区块的奖励以及交易手续费收入,成本则是矿机等基础设施的投入,电费的支出以及为每一个发送到服务器的哈希区块所支付的费用。若要达到利益最大化的目标,矿工必然要尽可能提高得到最终获胜区块的概率并尽量降低成本。
每个矿工取得获胜区块的概率取决于两个因素:1. 发送到服务器的合法区块数量;2. 区块的存活率分布。如果每个矿工的区块都以随机指定的方式选择代理玩家,那么区块的存活率就是一种正态分布,因而矿工取得获胜区块的概率也是正态分布,其中心取决于发送的合法区块数量。这种情况事实上与普通工作量证明方式并无差异,矿工获得最大收益的方式仍然是不断加大算力生产更多区块。
然而在哈希战场方案中,矿工可以指定特定的玩家代理自己节点的区块。在这种情况下,矿工取得获胜区块的概率就不再是正态分布。比如,一个算力小的矿工纵然发送的区块少,但可以通过指定游戏技能更高的玩家来提高最终的取胜概率。也即是说,玩家的实力也可以看成是算力。这样,由于人类行为的复杂性及地域分布和文化的多样性,大矿工想要垄断算力以控制区块链几乎不可能,从而保证了系统的安全性。
哈希战场方案在保证系统安全性的同时也抑制了能源的过度消耗,因为矿工通过单纯增加矿机算力的方式来提高最终取得获胜区块的概率的做法并不划算。矿工生产的区块越多,需要支付给服务器的费用越高,同时其投入的设备成本和电费也越高。所以,矿工必然会在设备和人员投入之间取一个最佳平衡点,从而有效抑制了整个系统的能源消耗。当然,系统还是需要维持一定的区块产生难度,这样做的目的是避免由于某个恶意节点突然增大算力,引起服务器在一定时段内被该节点发送的区块填满而导致的对区块链的威胁。
游戏服务器提供方,游戏开发者以及玩家三方的收入都来自于矿工为每个区块付出的费用,这个费用由矿工自己决定。每个服务器则自行设定一个进入游戏的哈希区块的费用,这个费用将由服务器提供方和游戏开发者依据协议分配。如果矿工提供的费用低于战场服务器设定的费用,则矿工的区块会被拒绝。矿工高出服务器设定费用的部分根据矿工与玩家的协议由指定的玩家得到部分或全部,剩余的部分返还给矿工。每个游戏必须设定一个玩家人数阈值,如果玩家人数低于阈值,则游戏不会被启动,那么矿工发送至该服务器的区块将不会被收取费用。如果服务器达到启动人数阈值,但不是所有区块都有玩家代理,那么,没有被代理的区块也不会被收取费用。在这样的规则下,战场服务器和游戏开发者将尽可能提供好的游戏体验以吸引玩家以及合理的费用以接纳矿工区块,而矿工和游戏玩家也会依据自身利益做出最优选择,最终达到各方的利益平衡。
必须说明的是:1. 基于哈希战场方案的工作量证明共识系统能够运行的必要条件是所有哈希游戏的源代码必须完全公开,服务器运行过程中不能有人为干预且可被监控;2. 哈希战场服务器并非只能为一个工作量证明共识系统服务,因为玩家实际上可以同时代理多个不同系统的哈希区块。
5 结论
本文提出了一种改进区块链系统中工作量证明共识的方案,该方案通过在系统中引入一种游戏服务器以及玩家竞争机制,将区块的写入权从单纯的由机器的哈希算力决定变为由机器哈希算力和人类玩家的游戏能力共同决定。利益分析结果表明,该方案保证了对各方的利益激励,并可有效防止垄断行为。同时,该方案还起到了抑制工作量证明共识系统能源过度消耗的作用。
参考文献
[1] 中本聪. 比特币白皮书:一种点对点的电子现金系统. 2008.
网友评论