写给qian社区的第一封信

各位社区成员:

QIAN 稳定币从2020年10月23日起正式上线运营,十几天以来,总发行量已经突破了3000万 QUSD,这是 QIAN 社区所有成员的共同成就。QIAN 的上线,不但受到了国内外加密社区的关注,也受到了来自于火星财经等媒体的推荐;同时,我们的 Discord 官方加密社区规模迅速增加,电报上的爱好者社区也早已突破5000人。以下,QIAN 社区发起人 David Lei 就几个大的工作方向,向社区成员做第一阶段的总结报告:

一、QIAN 开发团队工作总结

QIAN 社区核心成员 David Lei、Jeffery Chu、Collin Wang 等复盘了 QUSD 上线、Balancer 流动性池上线等关键节点上,项目和社区的整体表现。大家总结后,发现除部分社区大户在积极维护 Balancer 流动性池(单边充值 QUSD,或单边提取 KUN),大多数 QUSD 和 KUN 的持币用户并未有效的单独充值 QUSD 到 Balancer 流动性池以支撑 KUN 的代币价格。

基于以上总结,QIAN 社区核心成员建议:

1.1 在第一周 Balancer 流动性池激励结束以后,给予流动性挖矿3天左右的总结期(具体时间以公告为准),为第二期挖矿做技术、市场方面的充分准备;

1.2 在第二轮挖矿里,加强 QUSD 对 KUN 价格的支撑,同时增加流动性池数量和流动性池的年化回报,让更多的用户向 Balancer 流动性池充入 QUSD ,将 KUN 的价格带入正向循环。

1.3 在第二期挖矿激励期间,沟通并上线以太坊的 s.finance 流动性池,使 QUSD 能够和其他稳定币交易,并且让 QUSD 的用户能够双挖 KUN 和 SFG;

1.4 在以太坊第二轮流动性挖矿开启的同时,上线 BSC 的 Equator、bStable 流动性池,并进行第一轮 BSC 流动性挖矿;

1.5 在每一轮流动性挖矿之后,社区核心成员会检视每轮挖矿的市场表现和反馈,发起如何改进挖矿设计和表现的社区讨论与投票,以便持续改进流动性挖矿的效果,更好的支撑 KUN 的价值。

通过以上规划,可以实现让用户的 KUN、QUSD 能够在更大的市场中进行交易,从而增强 QUSD 持币用户的黏性,也为 KUN 启动治理挖矿和治理投票做充分的铺垫。

二、QIAN 社区治理工作

在 QIAN 上线运营的初期,发起人 David 就建立了 Discord 社群,本周 Discord 的用户群增长迅速,且社区成员对项目发展、经济模型、操作使用等方面都进行了充分和深入的交流,初步显示了 QIAN 社区的潜能。

与此同时,由 David 倡议,建立了“摸金校尉” Discord 频道,校尉们的身份是社区积极成员和中坚力量,会引导社区健康有序的发展。作为积极投身社区建设的回报,校尉们可以获得今后 QIAN 社区线下活动的邀请,同时报销交通和住宿费用;也能获得来自于 QIAN 社区的周边礼物、新年祝福等等。对于不符合社区建设要求的校尉,也会有更新机制,欢迎各位社区成员积极参与 QIAN 的建设,报名成为光荣的校尉。

三、围绕着KUN的一次安全攻防战

在 QIAN 热度增加的同时,全球的黑客和攻击者也开始关注 QIAN 和 KUN,北京时间2020年10月26日上午 10:30 左右,开发团队发现以太坊网络的 KUN 供应量异常,确定遭到了攻击。此后,开发团队立即采取了如下处理措施:

3.1.1 怀疑是 QIAN/KUN 的代码库开源后私钥泄漏,转为私有库加以保护

3.1.2 怀疑是合约部署服务器受到入侵,使用个人管理私钥登录服务器,屏蔽团队共用私钥,排查入侵痕迹

3.1.3 怀疑是 QIAN/KUN 业务相关的个人电脑受到入侵,排查入侵痕迹

3.1.4 更改 KUN 管理私钥,作废旧私钥

3.1.5 冻结入侵者铸造的 KUN

3.1.6 撤回已泄漏私钥的所有权限

3.1.7 升级 QUSD 合约,加入权限,冻结入侵者的 QUSD

3.1.8 排查其它可能受到影响的管理私钥

此次黑客攻击产生了以下影响:

3.2.1 攻击者铸造(增发)了 1,289,758.7181 个 KUN,在 KUN 的合约升级后,已被冻结 1,288,526.7181 个,增发的 KUN 不会对市场造成影响

3.2.2 攻击者在 Balancer 上添加了 1,232 个 KUN 的单币流动性,换出了 10,264.2624 个 QUSD,其中 3,123 个存入 ForTube,剩余的仍在其名下两个账户中

经排查,部署服务器无入侵痕迹,个人电脑无入侵痕迹,最终定位于代码库开源泄漏敏感数据,具体情况如下:

3.3.1 代码库 https://github.com/QIAN-Protocol/QIAN 在审计过程中,曾经应代码审计方要求,保留所有历史记录

3.3.2 该库在6月17日,为了进行 Rinkeby 脚本测试,把本次泄漏的私钥作为一个测试账号写入文件供调用

3.3.3 7月12日,为降低风险,已在代码库中删除所有私钥。但在技术上,Github 的历史记录中仍然能够查到该私钥

3.3.4 KUN 代币合约在部署的时候,使用了6月17日曾作为测试用的私钥进行合约部署

3.3.5 北京时间 10 月 25 日晚间 18 时,https://github.com/QIAN-Protocol/QIAN 未经删除历史记录,就由 David 操作,直接进行了开源

3.3.6 攻击者从该开源库中搜索到私钥,获取了 KUN 管理权限,当晚北京时间 21 时左右发出第一笔交易:https://cn.etherscan.com/tx/0x2281609b0b3075e3d2fed5e10a52b61f8d9815a24569c0ce9bd950c46b5ebfde

我们还原以上攻击过程以后,可以看到,本次黑客攻击能够成功,主要来源于团队成员的疏忽。所幸本次黑客攻击发现及时,且黑客卖出的 KUN 数量也有限,黑客获利的 QUSD 也被永久冻结,未对社区造成过大损失,目前由于黑客卖币所导致的 KUN 价格下跌已经得到了市场修正,广大 QUSD 和 KUN 持有人未遭受实际损失。

魔鬼藏于细节,为了今后避免类似黑客攻击事件的发生,QIAN stablecoin 开发团队会在代码安全管理方面严格落实以下几点:

3.4.1 严格执行 “一次一钥” 的安全原则,生产环境部署合约,每个项目都使用全新的管理私钥,严禁重复使用旧有私钥

3.4.2 严格执行 “全新开源” 的安全原则,代码开源前,删除所有历史记录,重新提交

3.4.3 继续坚持敏感数据不入库的安全原则,所有敏感数据均为本地调用,不向库中提交

3.4.4 解决在本次排查中发现的其它问题,如服务器部署合约后,要删除所有含有敏感数据的代码

3.4.5 定期更换管理私钥,对于锁有大额资产的项目,可考虑“一次一钥”,即每次管理操作完成后,更换新私钥,废弃旧私钥

3.4.6 开发管理私钥监控系统,管理私钥有异常交易时第一时间报警

基于以上安全原则,开发团队为保障项目代码和私钥的安全运行,已在删除所有历史记录之后,重新开源 QIAN 和 KUN 的全部代码,开源代码库的链接为:https://github.com/QIAN-Protocol,同时开发团队还邀请了 Peckshield 团队核验本次开源的 QIAN 合约代码,确保代码和原审计时合约代码版本一致无修改,并且今后在做代码调整的时候,也会及时邀请 PeckShield 协助进行代码安全设计。

以上是 David 和几位 QIAN 社区核心成员对 QIAN 正式运营一周以来的工作总结,欢迎社区的朋友们一起交流,为 QIAN 和 KUN 的更好发展献计献策。期待社区的朋友们一起,一 DAO 定QIAN KUN,将 QIAN 打造成为下一个重要的 DeFi 基础设施。

David Lei
QIAN 社区发起人

1 Like

想不到还经历了黑客的攻击啊。智能合约安全是重中之重。Qian加油!为国争光!!

2 Likes