作者:DMND
来源:https://blog.dmnd.work/slice-making-pplns-work-for-demand-response/
从 GPU 和地下室挖矿时代走出,比特币挖矿行业已经有了很大的变化。这段时间里,矿工在数不尽数的方面取得了进步。比如,如今的标准挖矿设备是 ASIC,而不是 GPU 。大企业也进入了这个领域,开拓了新的疆界并带来了它们的规模和机构化意识,打开了光靠较小规模的矿工无法触达的可能性。如今,在挖矿领域,电网服务、限电策略和能源市场参与早已不是罕见案例,而是核心策略。当周围的世界都在变化的时候,一直有矿工问我们:PPLNS 能跟上时代吗?
许多矿工,尤其是那些跟能源供应商密切合作、或者结合了灵活运营(Demand Response)机制的矿工,都开始怀疑 PPLNS 。他们怀疑 PPLNS 会惩罚偶尔离线的矿工、只奖励不间断挖矿的矿工 —— 对于那些经常需要关机来支持电网或提供其它服务的矿工来说,这当然是坏事。
(译者注:“灵活运营” 在这里是个专有名词,指的是根据电力价格和应用价值来动态调整用电功率的策略。)
这种担心不是毫无来由。它可以追溯到挖矿行业在历史上的一个转折时刻:RIOT 与 Braiins Pool 之间的纠纷。
那时候,Braiins 还在使用 Score 清账系统。Score 是 Slush 自己在 2011 年设计的,其初衷是为矿池解决矿工不断切换矿池来利用奖励机制的问题。这里还有一种误解,以为 Score 是一种 PPLNS 支付系统,但正如 Rosenfeld 的矿池清账系统圣经所说的,Score 和 PPLNS 是完全不同的支付方法。主要区别在于它们统计矿工 shares 的方法:Score 用的是一种带有指数衰减函数的滚动窗口,这实际上让统计 shares 的回溯窗口(lookback window)变得非常短。PPLNS 则相反,是一类使用多种固定长度的回溯窗口的清账系统。
这个已经归档的网站解释了 Score 是怎么工作的,你可以看到,在你的 shares 提交的 90 分钟之后,它就会被矿池清空。意思是,从一个矿工开始挖矿的那一刻开始,其 shares 的奖励很快就会达到其哈希率的公允价值。反过来说,当他停止挖矿,奖励也会迅速下降。
这在牛仔和黑客的时代或许行得通,但它实在不是为今天的复杂挖矿环境而设计的。尤其是它没有考虑到灵活运营,也就是矿工会怀着获利意愿、主动地关闭机器,以稳定电网或在次级市场下注。对 Score 来说,这种行为看起来跟想要欺骗系统没什么区别。
所以,当 RIOT 撤出 Braiins 并表达对清账机制顾虑时,就震动了整个挖矿世界。因为前面所说的误解,Score 系统的错误被不公平地放大成一大类模式的问题, PPLNS 卷入纷争、不幸中枪,整个行业就把宝宝和洗澡水一起倒掉了。
SLICE:一种为 21 世纪的电网而设计的清账机制
回到 SLICE,由 DMND 团队开发的一套先进的、开源的、支持 Stratum-V2 的清账系统。它是 PPLNS 的优化和改进,重新思考了矿工如何得到支付、奖励如何累计、以及,最重要的是,如何处理矿工停机。所有一切,都以保持矿工使用 SV2 构造自己的区块模板的权利为前提。
究其核心,SLICE 跟公平和透明有关。它保留了 PPLNS 的基本理念 —— 按照矿工在挖掘区块中的实际贡献来给 TA 支付 —— 只是让它适配今天的去中心化的挖矿领域。
关键创新则在于 SLICE 计算奖励的方式以及回溯窗口的工作原理。SLICE 不把整个矿池视为一个整体,而是将时间分割成更小的、动态的、由工作量构成的 “切片”,以恰当地分发挖矿收益中的手续费部分。这些切片代表着在特定时期内提交的一批 shares,从中我们可以控制交易池中的手续费数量这一变量,然后比较各个工作模板、为它们所代表的经济价值打分。当发现了一个区块,SLICE 会分别分发区块补贴和交易手续费奖励。补贴按照哈希率的比例来分发,而手续费则根据哈希率和经济价值来分发。
这种模式,在矿工可以选择自己的交易集合的世界里,特别有意义。一些矿工可能会优先选择高手续费的 MEV 式交易集合;;另一些人则可能出于意识形态、政治或技术理由而排除特定类型的交易。SLICE 保证了,在每一个切片内,矿工会根据他们的工作量的数和质量得到奖励 —— 不会因为离线或者说策略性的能源用法而被惩罚。如果你好奇这是怎么做到的,这篇文章能够帮你(中文译本)。
响应需求而不受惩罚
让 SLICE 对参与灵活运营或限电程序的矿工特别有吸引力的点在于,它不会因为你离线而惩罚你。
这是因为,SLICE 不会仅仅因为你停止贡献哈希率而减少给你的支付。只要提交时间足够近,你的 shares 会一直保持在 PPLNS 回溯窗口中 —— 界定有资格获得支付的工作量的滚动窗口。这样一来,每个 share 都会被单独对待,并且预计会获得 8 次支付,因为 SLICE 使用等价于 8 个区块的工作量的滚动窗口,所以,每个有效的 share,平均来说,在接下来 8 个区块的时间内都是有资格获得支付的。也就是说,不论矿池是大是小,你永远不会因为遭遇这种坏情形:连续几天找不到区块,于是你关机,等待矿池找到区块的时候,你又拿不到支付。
(译者注:由于在计算回溯窗口的长度时,使用的是提交给矿池的 shares 的矿池定义难度,而非其绝对计算难度,要求这些 shares 难度总和达到等价于 8 个区块的难度,因此,这个长度更接近于矿池找到 8 个区块的时间,而非比特币网络找出 8 个区块的时间。)
所以,矿工可以在电价高峰期关机,支持自己本地的电网,但依然能从矿池在他们停止运营之后找到的区块中获得自己应得的一份,最重要的是,连他们离线也不影响,只要他们的 shares 还在窗口之内(就能获得奖励)。换句话说,如果矿池真是走霉运了(找不到区块),然后矿工又被叫去响应电网的需求、关机了,即便矿池是在他们关机期间找到了区块,这个矿工依然能凭借自己在线时候的贡献获得公平的份额。这是因为每一个 share,在生成之后的 8 个区块时间内,都算活跃的,并且会得到支付。
这不是什么权宜之计。这就是它的特性。它让 SLICE 完全兼容当代的要求灵活性的能源使用策略,不论你是参与频率调节市场、在电网遭遇紧急情况时降低负载,还是仅仅为峰谷电价而优化运营,都需要这种策略。
举个例子。假设一个矿工在一个矿池挖矿,而这个矿池在当天还没有挖出区块。那么这个矿工当然还没有得到其当前的工作量应得的支付。现在,这个矿工为了在夏季用电高峰提供辅助服务而停机了几个小时,就在此期间,矿池找到了区块。在一个基于 Score 的矿池中,这个矿工在停机 90 分钟之后就别想再拿到一聪,因为衰减机制大发威风。 但哪怕这个矿池就在这个矿工停机 30 分钟之后找到一个区块,因为衰减是指数级的,这个矿工也几乎拿不到多少钱了。相反,(在 SLICE 矿池中),这个矿工会因为当天挖出的所有 shares 得到一笔支付,因为平均来说每个 share 都会得到 8 次支付。因此,矿工会因为恰当的运营得到好处,而不会因为关机而被惩罚。
支付的透明性和可审计性
SLICE 不仅改进了清账的公平性,它还尽可能降低了信任矿池运营者的需要。每一个切片都是完全可审计的。每一个 share 都会被跟踪、编号,并公开由任何矿工验证。所以矿工可以独立验证自己的 share 的区块奖励。这里面没有黑箱,不搞 “信我就行” 的把戏。
如果矿池运营者尝试欺诈,比如说,注入假的 shares 来稀释账单,矿工可以质疑切片的完整性。Stratum V2 的作业声明器插件(也是 SLICE 的依赖项)包含了发布 share 数据、验证默克尔根、确保每个 share 都对应于真实计算量的机制。
对于在乎去中心化的矿工,SLICE 不仅仅是一种支付方案 —— 它是一种审计工具。
从防御到策略
从 Score 到 SLICE,不单单是技术升级,还是思维方式的转变。矿池不应该为了抵御坏人而惩罚所有人。相反,矿池可以这样构造出反映实情的账单:矿工是充满智慧的参与者,不仅在比特币区块链上工作,也参与能源生态系统。
有了 SLICE,PPLNS 就不再是一项债务,而成了一种策略优势。它带来了更好的收益捕捉、更大的透明性和可审计性,并且可以更顺滑地结合电网服务。
当开机时间可以调整、公平性不可妥协,这就是企业规模的矿工所需要的机制;一个灵活的矿池合作伙伴,能够推进创新,就能让矿工用相同的硬件赚到更多的钱。
(完)