关于披露Vault作弊行为及修复方案

2023年10月7日,多个社区成员反馈发生Delegation数量异常减少的情况。经链上数据核查,发现有多个Vault持有人在通过恶意提升抽佣比例的方式恶意套取用户挖矿收益。

目前链上问题经过升级已经得到解决,对于受到损失的用户将会有后续方案进行全额补偿。同时,本次事件相关的主要Vault持有人的反馈,该行为的发生原因为地址被盗导致的黑客行为,所幸大部分资金尚未丢失,该Vault持有者将会向社区退还该部分资金。
也在此提醒其它社区成员,注意个人账户安全,保护好自己的助记词。

本次被发现作恶行为的地址和Vault PID如下:

ID owner address PID Cheating date Mark
1 3zz9XwgFmBUh86tEBdWXgoiPmFARSvoDjSgCPkL9r36xAbQ7 4850 2023/10/7 账户被盗
4880 2023/10/7 账户被盗
2 41KL4ipqhHovt2U7cXtXQYU2iRnVmuQrotAn2tWzTbYtoxp9 3924 2023/10/6 账户被盗
3730 2023/10/6 账户被盗
4343 2023/10/7 账户被盗
3 42htLs2GGqUavbp4swXUVPnEZvHSRZJVzDvmCRSdFj7Q7tpa 4686 2023/10/6 账户被盗
4 44qTASZSLp9TxEMazC9GpizhQXvWq17WjMhWfxYyFFkG42jV 4852 2023/10/7 账户被盗
5 45etpeyNYjT6W9B4i15kUzPteUvVLgFRU5zgbGJNgKmtYsnk 4034 2023/9/8 2023/9/22 2023/9/26 2023/9/30 未联系上

如果你在上述时间点和Vault内未持有抵押,你将不会受到影响。

其中,ID 1-4号地址受同一方操控,ID 5号地址为另一作弊方。

作弊Vault信息

针对于本次作恶的执行者,我们进行了如下分析,定位了两个作恶执行方的地址相关信息:

作弊方-1:

该部分地址所属团队在发生事件后与Phala团队达成了联系,反馈账户被盗情况以及侵占资金大部分还在地址内的现状。该团队将配合本次事件的解决方案向受影响抵押者进行全额退款。

相关地址清单:
42htLs2GGqUavbp4swXUVPnEZvHSRZJVzDvmCRSdFj7Q7tpa
41KL4ipqhHovt2U7cXtXQYU2iRnVmuQrotAn2tWzTbYtoxp9
3zz9XwgFmBUh86tEBdWXgoiPmFARSvoDjSgCPkL9r36xAbQ7
44qTASZSLp9TxEMazC9GpizhQXvWq17WjMhWfxYyFFkG42jV

Vault Owner在链上注册的公开信息:

3zz9XwgFmBUh86tEBdWXgoiPmFARSvoDjSgCPkL9r36xAbQ7
email: [email protected]
Twitter: @unclecat93
Wechat: GeekPhala

41KL4ipqhHovt2U7cXtXQYU2iRnVmuQrotAn2tWzTbYtoxp9
email: [email protected]
Twitter: @yunlianpool
Wechat: yunlianpool

44qTASZSLp9TxEMazC9GpizhQXvWq17WjMhWfxYyFFkG42jV
email: [email protected]
Twitter: @unclecat93

作弊方1 地址关系图谱(链接):

作弊方-2:

相关地址清单:
45etpeyNYjT6W9B4i15kUzPteUvVLgFRU5zgbGJNgKmtYsnk

地址链上认证信息:
45etpeyNYjT6W9B4i15kUzPteUvVLgFRU5zgbGJNgKmtYsnk
email: [email protected]

作弊逻辑剖析

Vault设计的初衷,是为了减少Phala用户stake的难度。在Vault上线之前,抵押者需要了解和每日手动领取stakepool的收益。Vault使用了类似于LSP的链上设计,可以让Vault Owner使用专业的管理,低风险的帮助用户进行抵押策略执行。

Vault资金池的属性,决定了只有具备高社区影响力的成员才能筹集足够高的抵押额。Vault越大,用户越多,所有者的影响力也越大。如果Vault持有者作恶,Vault越大就可能会造成很大的影响,但被发现并失去声誉的风险也更高。

Vault的链上机制设计,由于单区块交易数量的限制,我们无法实现随着挖矿奖励的派发自动进行Vault的佣金分发。因此我们采取了Vault奖励手动提取的方式,Vault持有者需要对Vault手动申请佣金派发。

本次Vault持有者作恶有两个关键行为:

  • 更改Commission。Commission是Vault持有者设置的抽佣比例。
  • 结算Vault收益。在持有者手动选者结算Vault收益的时候,Phala链上系统会根据Commission对Vault Owner和Vault Staker之间的收益进行结算。结算的参考依据为本次结算和上次结算之间Vault内所有抵押的挖矿奖励带给每一份Share的价值增量。该增量乘以抽佣比例,再乘上Vault内的Share数量,就是Vault持有人本次结算的收益数量。

在此次问题暴露前,链上的实现方式是持有者把手续费提高的同时,不但影响了以后的手续费,还影响了从上一次到现在所有未结算的手续费。

这导致了Vault 持有者在不顾及Vault声誉的情况下,可以不断调整Commssion和操纵结算时间来套取抵押者的利息利润。

损失计算

据初步统计,本次作恶行为涉及到的受损用户共有 246 人次,本息合计损失约 704872.53 PHA。
Vault持有人的作弊获利记录详见:Vault cheater claim records

本月内我们将通过代码更加精细的计算实际受损人数和金额,并追溯Vault上线以来类似行为发生的全部记录和影响情况。因这部分影响的统计逻辑较为复杂,将会需要一段时间的信息整理,还请大家耐心等候。

解决方案

截止目前,我们通过链上升级,已强制要求所有Vault在修改佣金比例前自动计算,从而避免Vault结算影响历史抵押者的收益情况。

Phala - Motion 79Khala - Motion 240中,Phala议会已经发起代码升级来修复该问题。

同时,针对我们追溯出的Vault功能上线以来类似行为发生的全部记录,我们会通过链上公投的形式,通过挖矿奖励账户对受影响抵押者进行全额补偿。具体的补偿方式和补偿清单,将与我们的追溯记录进行同步公示。同时,本次事件的主要关联Vault的持有者,承诺将会退还本次事件相关的资金,退还记录将会和追溯记录同步公示。

What Can I Do?

  • 如果您发现了其他Vault类似行为,请尽快将vault ID反馈到Phala论坛这个帖子: Report bad stakepools&Vaults!
  • 如果您没有抵押给任何上述列表的Vault,请不要恐慌。此次事故将不会影响到你。
  • 如果你已经抵押给了上述列表的Vault,请随时关注我们的社区公告,我们将在受损记录追溯完毕后公示补偿信息。
  • 保存好你的助记词,注意资产安全!

特别感谢:

这是一个迟到的感谢,tucuman团队在二月的时候提出了针对本次Vault奖励逻辑的质疑,尽管在当时我们反复讨论后坚持了vault的原本逻辑,但显然我们当时的决定是错误的。

为此我们将修正自己的错误,本次事件被内部定义为“High level”,我将为tucuman团队申请一个迟到的Bug bounty,价值 4500USD。

同时,感谢社区成员"High/Stake"于10月1日发来的vulnerability report,以及事件发生后社区成员 苏格的持续协助调研。这些都为我们了解事件带来了极大的帮助。我将会为他们二者申请额外的bounty,分别价值 1800USD。