飞行的蜗牛

vuePress-theme-reco 极客学长    2013 - 2025
飞行的蜗牛 飞行的蜗牛

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
author-avatar

极客学长

154

文章

151

标签

首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
  • Filecoin系列09-浅谈 Filecoin 的惩罚机制

    • 惩罚的触发条件
      • 罚金的处理
        • 销毁所有的罚金
        • 将所有的罚金全部给举报者。
      • 参考链接

      Filecoin系列09-浅谈 Filecoin 的惩罚机制

      vuePress-theme-reco 极客学长    2013 - 2025

      Filecoin系列09-浅谈 Filecoin 的惩罚机制


      极客学长 2019-11-15 0 Filecoin IPFS

      孙子兵法·虚实篇

      故备前而后寡,备后则前寡,备左则右寡,备右则左寡,无所不备,则无所不寡。

      Filecoin 测试网上线已经进入倒计时了,各路矿工都蠢蠢欲动。最近有不少同学给我发邮件咨询 Filecoin 的惩罚机制是怎样的,因为临近上线了, 大家都在开始部署矿场,准备矿机了。鉴于单个回复太浪费时间,所以这里就写一篇博客统一解答。

      我们做事情不仅要考虑收益,更要考虑风险。正所谓 未谋胜,先虑败。正如孙子兵法里面所说“以已之不可胜,以待敌之可胜”。 先把自己修炼得不可战胜,然后等待敌人犯错误,这样敌人就“可胜”了,这样就”胜可全也“(胜利就是板上钉钉的事了)。 简单的说就是,先保证自己不犯错误,然后等待敌人犯错误,然后再抓准时机,一战而定。

      讲回到 Filecoin 挖矿,很多人只看到了挖矿的收益,以为只要买了高配置的矿机放那里挖,然后就回家坐等收币就行了,而没有考虑到挖矿过程所遭遇的惩罚。 结果就是可能你辛辛苦苦挖好几个月,结果因为一次 slashe(惩罚),就血本无归,落得一个“辛辛苦苦几十年,一罚回到解放前”结局。

      # 惩罚的触发条件

      闲话休说,我们先看下 Filecoin Specs(协议规范) 规定了哪些行为是会收到惩罚的。

      共识惩罚:在相同的高度提交两个以及以上的区块,以提高自己的 Weight(出块权重)

      惩罚力度:当前矿工的所有 pledge collateral(抵押币)全部扣除,storage power(存储算力) 清零,并且均不可恢复, 即使作弊者重新抵押,该矿工也无法再产生新的区块。

      存储惩罚:未能按时提交 PoSt(时空证明),或者提交非法的 PoST(作弊)

      这两种存储惩罚,由于性质不一样,所以惩罚力度也有很大的差别,对于那些逾期提交 PoST 的矿工,只需加纳一定数量的罚金,具体数量通过调用 ComputeLateFee(minerPower, numLate) 函数计算得出,当前矿工的存储算力并不会受到影响。

      但是对于后一种通过 generation attack (生成攻击)生成 PoST 的矿工,处罚就是致命性的, 除了扣除所有的抵押代币,存储算力清零之外,处于这种状态的矿工,即使被选取为出块矿工,它产生的任何区块都将无效。

      合约惩罚:不遵守合约,在存储交易到期之前,私自删除客户数据

      这种违约惩罚相对来说不算严重,只是扣除你违约部分的订单金额。比如说你接了一个订单,帮客户存储 10 GB的数据100天, 总价为 100FIL,假设你把这 10GB 的数据密封成 10 个sector,但是你在第 99 天的时候不小心把其中 9 个 sector 删除了, 那此你就需要缴纳 (9/10)*100 = 90 FIL 的罚金。这里协议并没有说明订单的那 100FIL 是否归你所有, 但是有特别指出了这个罚金是从你的抵押币中扣除的,由此可见,订单的钱你应该也是拿不到的,这叫赔了夫人又折兵。

      # 罚金的处理

      在上面每种情况下,都会从矿工哪里扣除一些资金。你可能会想问,那罚了矿工那么多币,这些币给谁呢?目前来说有两种主流的处理方案。

      # 销毁所有的罚金

      这种方案的优点是简单粗暴。但是这样一来大家举报违规者的动机就太低了,因为目前举报是需要支付交易的 Gas 费用的, 但是如果罚金全部销毁的话,那么举报者得到的唯一奖励就是全网的总币值减少了。这样做完全是损人不利己,得不偿失。

      # 将所有的罚金全部给举报者。

      这样依赖举报者的积极性就提高了。但是会遇到了两个相当微妙的问题:

      1. 攻击者可以用另外一个身份(矿工)举报它自己,这样如果所有的罚金都给举报者,那攻击者作弊的成本就大大降低了,相当于是左右拿到右手,钱还在自己口袋里。
      2. 如果罚金足够多,这可能会导致矿工尝试分叉,以要求自己获得罚金的奖励。这可能会导致链的不稳定,并产生奇怪的诱因。

      方案一显然不可取,鉴于方案二的缺陷,协议实验室在方案二的基础上做了一些约束:

      • 举报者的奖励金额应当足以激励矿工们积极的去举报违规者。
      • 举报者的奖励不应高到在竞争矿工之间煽动分叉。
      • 销毁的罚金应该高到足以惩罚违规者,即使他们在自己举报自己的情况下。

      针对上面的约束,协议实验室会指定一个合理的算法,不过也有多开发者提供了一些比较可行的建议,比如针对不同类型的罚金处理方案要不一样, 例如对那些误删数据的矿工,他们的罚金应该交给客户, 因为客户丢失了数据,得到补偿也无可厚非。最终被执行的方案是怎样,就得去看 Filecoin 的源代码了,这个我们以后有机会再讲。

      # 参考链接

      • Filecoin Fault List (opens new window)
      • On burning funds and rewarding slashers (opens new window)
      • Slashing (opens new window)

      本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01

      量子计算机将颠覆数字加密货币? 《黑客与画家》读书笔记