挖矿概念大解析:我们应如何看待“双挖”问题
一.双挖的技术原理
双挖(多挖)是指,对于使用工作量证明(如 PoW、PoC)共识机制的币种,一次挖矿运算可以实现在两个或两个以上的币种中同时有效出块并获取出块奖励。PoC 共识机制中的双挖原理类似于 PoW,但中间涉及特有的 Plotting 过程。PoC 共识过程应当提供一套完整的“私钥-公钥-地址-Plot ID”公私钥体系,且矿工需利用 Plot ID 生成 Plot 文件(即俗称的“P 盘”)方可进行挖矿。由于大部分 PoC 协议使用了一种名为“PoC2” 的 Plotting 算法,因此矿工提交的“答案”往往具有类似的生成逻辑和验证规则,这是大部分 PoC 币种支持 双挖或多挖的前提条件。
但特别需要注意的是,仅仅是实现了同一份 Plot 文件同时适用两个或多个 PoC 共识过程,并不足以形成真正意义上的双挖(多挖)。这是因为,当两个 PoC 币种的 “私钥-公钥-地址-Plot ID”公私钥体系使用了互不 相通的算法时,即使同一个 Plot ID 确实可以参与双挖并出块,该矿工拥有的私钥也无法“花费”他挖出块中 的奖励。因此,真正支持双挖的币种之间必须同时满足:A.共识过程相通;B.不对称加密体系相通;这两个条件。
二、Lava是否可以与其他PoC币种双挖
先说明结论:Lava在设计之初并未支持与已知的PoC币种进行双挖,但是并不排除现在或未来某些PoC币种可通过采用与Lava相通的算法来实现双挖。用更通俗的话解释,Lava并没有被设计成用于双挖其他PoC币种,但不可排除、也无法阻拦未来被其他PoC币种双挖。
社区曾反映BHD的矿工可以凭借其Plot ID来双挖Lava。事实上,由于Lava和BHD都使用了PoC2的Plotting算法,因此BHD的Plot ID以及Plot文件确实可以用于参与Lava的PoC共识;但是,由于Lava的公私钥体系与BHD不相通,因此BHD的矿工无法“花费”在Lava网络中挖出的区块奖励。矿工消耗了算力却无法获得任何经济利益,属于典型的无效双挖。
此外,社区最近反映DiskCoin可以与Lava双挖的现象。我们认为这是由于DiskCoin采用了相对宽松的验证逻辑(具体逻辑未知),导致同一个Plot ID以及其生成的Plot文件可以在参与Lava共识的同时,也有可能满足DiskCoin共识的验证规则、并生成在DiskCoin规则下可通过校验的区块。此外,DiskCoin的算力并不能全部进入Lava,除非这些算力完全按照Lava的规则重新进行P盘,因此无需过于担忧短期内大量算力进入的冲击问题。
三、Lava如何看待双挖
首先,Lava未被设计成与已知的PoC币种进行双挖,也不会因追求与已知币种双挖而调整自己的公私钥体系。以Burstcoin和BHD的双挖为例:由于Burstcoin采用了类似账户模型的公私钥体系,而BHD采用比特币的Codebase导致BHD在原始协议层面不能与Burstcoin双挖;但BHD通过在自身协议内部额外添加了一套与Burstcoin相通的公私钥体系(即意味着BHD内部存在两套不同的公私钥体系),使得与Burstcoin双挖在技术上成为可能。Lava认为协议中共存两套公私钥体系是不合理的,因此仅在比特币Codebase的公私钥基础上直接实现从秘钥对到Plot ID的计算,这使得Lava刻意与已有的PoC币种形成公私钥体系上的区分以防止双挖现象。
那么Lava为何不直接修改Plot算法来彻底杜绝“被双挖”的可能性?从技术角度来说,PoC已经是一个较为成熟的共识算法,且其配套的软件也有较高的完成度,因此如果改动Plotting相关算法,则Plotting软件(P盘软件)、扫盘软件等周边配套都是需要重新开发,这是一项耗费巨大且不产生价值的工作,因此Lava认为这种“刻意的排他行为”是没有意义的。Lava会更倾向于将资源优先投入到对更优越、更能创造实际价值的区块链和共识机制可能性的探索中去。
最后,尽管与已有币种进行双挖固然是快速获得算力规模与生态冷启动的通行策略,但Lava认为这一策略并不适合Lava项目生态的长远发展目标。Lava希望与社区成员共同探索、建立和维护Lava特色的PoC共识协议,打造我们理想中高度开放、平等、去中心化的“全球存储空间之根”。