Qitmeer Network 周报(2020/11/16-2020/11/22)

每周一聊

一条 POW 网络需要什么样的算法?

我们知道,Qitmeer 的共识协议 MeerDAG 是基于 BlockDAG 框架,BlockDAG 要求所有的区块都是通过挖矿产⽣,所以 BlockDAG 能与以⽐特币为代表的PoW区块链拥有同样安全性以及去中⼼化程度, 不同的是 BlockDAG 能安全地接受⾼并发时产⽣的区块,突破区块链协议的吞吐量限制。

为了保证协议框架的安全性和去中⼼化,挖矿算法的公平就性⾄关重要。⼀⽅⾯要保证算⼒⾜够的分散,这样这样中⼩型算⼒不会因为挖矿风险过⼤⽽退出竞争,导致马太效应,形成算⼒垄断;另⼀⽅⾯就是在挖矿效率⽅⾯要保证算⼒的投⼊和产出之⽐⼤体稳定。

因此,在 Qitmeer 最开始的时候,考虑到早期社区的⽤户没有专业的挖矿设备,为了回馈社区在 Qitmeer 初期的⿍⼒⽀持,初期的挖矿算法选择了 CPU 和 GPU 友好的 Blake2BD 算法,拥有一定的抗ASIC窗口期,这样即使是个⼈电脑也能参与挖矿,可以让社区⽤户尽可能挖到更多的Pre-Qitmeer (PMeer)。

Qitmeer的完全社区化,零预挖的理念,吸引了远超预期的算⼒涌⼊,其中不乏专业的矿池以及⼤型矿⼯。虽然 Qitmeer 已经在挖矿算法上尽可能地照顾中⼩型矿⼯,在技术上已经是完全去中⼼化且公平的,所以没有专业的 ASIC 矿机出现,但是由于Blake2BD算法本⾝还是属于计算密集型的算法,⼤矿⼯的GPU矿机相对于个⼈挖矿来说还是有巨⼤的规模优势。经过⼀段时间测试,项⽬的挖出的区块还是集中在少数矿池⼿中,中⼩矿⼯逐渐退出竞争,没有达到Qitmeer 去中⼼化的⽬标;此外,Blake2BD 这种较为简单的变种抗ASIC的窗口期即将结束。最终,Qitmeer 决定将算法替换成更抗ASIC的 Cuckoo Cycle 。

使⽤ Cuckoo Cycle 算法作为测试网第一版上线后受到大量矿工的欢迎,包括 bminer,gminer 等⼀些知名的矿⼯开发者参与。但也引发了一个问题,因 gminer 与官⽅miner 挖矿效率差距较⼤,导致很多矿⼯利益受损。并随着ETH币价的影响,矿⼯流失严重,大量矿工在以太和 PMeer 之间来回切换,造成算⼒的极不稳定。

虽然矿⼯的趋利⾏为可以理解,但是由此引发算⼒的不稳定,对Qitmeer的安全性却是极⼤的冲击,因为基于 PoW 共识的安全性的来源就是算⼒的聚集,特别是在项⽬早期算⼒积累得⽐较少的时候,所以Qitmeer 需要保证⼀定的算⼒忠诚度,让真正愿意共同建设 Qitmeer 的矿⼯分享Qitmeer 发展的收益。在此背景下,最终 Qitmeer 决定⽀持对 FPGA 算法更友好的、迁移成本要⾼得多的 Qitmeer_keccak256,以提高矿⼯的忠诚度,保证网络一定的稳定算力,并开创性地⽀持了 FPGA 和 GPU 混合挖矿模式。

在混合挖矿的初期,考虑到 FPGA 挖矿的效率⽐GPU⾼,同时也考虑到GPU矿⼯作为早期参与者,对GPU矿⼯进⾏了保护,将GPU 和 FPGA的出块⽐例确定为 7:3,也希望能引⼊竞争让GPU矿⼯能稳定的⽀持Qitmeer。但结果并不理想。由于GPU矿⼯只投⼊少量的算⼒却掌握了⽹络绝⼤多数出块权,不仅对忠诚度更⾼的FPGA来说不公平,更是⼀个重⼤的安全性隐患。 最终,Qitmeer做出了⼀个艰难的决定,决定通过在⼀定⾼度软分叉,取消GPU算⼒的保护,⽽将算法统⼀为对 FPGA 更友好 Qitmeer_keccak256。

Qitmeer_keccak256 是标准 keccak 算法的简单变种,⽽且也是开源的,Qitmeer 随时欢迎 GPU 矿⼯⽀持 Qitmeer 的发展,考虑到FPGA矿⼯前期投⼊的风险,GPU 矿⼯收益率很有可能⽐FPGA矿⼯更⾼。取消了对GPU矿⼯单⽅⾯的保护,是希望引⼊同⼀套公开的算法能让更⼴泛的矿⼯更公平的竞争。对于还处在测试网的 Qitmeer,对安全性进行一定的保护也是必要的。

不得不承认,引⼊新的竞争者,⽆论规则是否公平,势必会造成早期⽀持者的不理解。但是从长远来看,⼀条⽹络只有真正安全稳定了,创造出价值了,才会有⾜够的吸引⼒让每个⾓⾊都能积极为社区做贡献。Qitmeer初期GPU的保护,只是很理想地认为GPU是社区每个成员都可以拥有的神圣的⼀票,积极参与⽹络的贡献,但在成长的过程中让Qitmeer学到的是社区只有在⽹络⾜够成熟的时候才会⾏使投票的权利。

PoW 算法的变迁之旅也是Qitmeer的成长之旅,Qitmeer 的成长不仅在解决⼀个又⼀个的技术挑战,更是在探索理想与现实之间的平衡点,朝着 “打造⼀条可⽤的区块链” 的这个务实又倔强的⽬标不断前进。

那么,作为区块链行业的一名参与者,你觉得一条 PoW 网络该如何选择自己的算法呢?欢迎你来聊。

原文摘自Qitmeer社区作品

以上文中观点,纯属社区个人观点,如有不当,请指正。

qitmeertalk.org 时刻欢迎您来聊)

Qitmeer Network 周报

新闻动态

  • PMEER将于11月30日11:00上线全球最大的综合性数字货币矿池-F2Pool开启挖矿。这将是Qitmeer Network里程碑事件,标志着Qitmeer Network已经加入行业头部矿池序列,网络即将进入新的发展阶段。

项目技术进展

底层核心代码更新


Qitmeer Network Development Report

News

  • PMEER will be listed on F2Pool, the world’s largest comprehensive digital currency mining pool, at 11:00 on November 30 to start mining. This will be a milestone event for Qitmeer Network, marking that Qitmeer Network has joined the industry’s top mining pool sequence and the network is about to enter a new stage of development.

Project Development Progress

Core Code Update


Qitmeer Common Links