【鲸交所排名第几】BTCP 虚增 200 多万,突破 2100 万上限
加密资产数据提供商 Coinmetrics 近期发布了一份长达 10 页的报告,题为《不要轻信,要去验证:BTCP 案例研究》 ( Don 's trust, verify: a Bitcoin Private case study ),分析了 Bitcoin Private 的发行量。
该报告称,BTCP 虚增 204 万个,将 BTCP 的实际发行量推升至 2304 万,而非官方宣称的 2100 万。
解读Coinmetrics 报告
Bitcoin Private 是比特币与 ZClassic 的分叉合并( fork-merge )。所谓的分叉合并,就是将两条现有的链的 UTXO ( Unspent Transaction Output )集合组合成一个新的链。
值得注意的是,ZClassic最初就是从 Zcash 分叉出来的,因此具有较强的隐私功能,其分叉目的是为了取消区块创始人的奖励;之后为了振兴 ZClassic 社区,ZClassic 又分叉出了 Bitcoin Private 。
与比特币类似,Bitcoin Private 总发行量也被设定为 2100 万个。但 Coinmetrics 发现:“在比特币 UTXO 导入和发送到屏蔽池的过程中,有 204 万枚 BTCP 被秘密发行,从而将实际的 BTCP 发行上限推高至2304万枚。”
(Odaily 星球日报注:屏蔽池包含存储在屏蔽地址中的 Token,屏蔽地址使用一种匿名交易的隐私技术 Zk-SNARKS )
根据 Coinmetrics 的数据,这些虚增的 BTCP 与 BTCP 的白皮书和官方公告相矛盾,因为白皮书和官方公告宣称 BTCP 总量被设定为 2100 万枚且没有预挖矿。
![]()
![]()
在发现从 BTCP 节点提取的发行数据与 BTCP 预期剩余发行量之间存在差异后, Coinmetrics 开始思索 BTCP 被预挖矿的可能性。根据计算,在 Coinmetric 撰写报告时,预计 BTCP 剩余发行量为2060.7万。然而, Coinmetrics 观察到的节点数据显示,BTCP剩余发行量为 2084.1 万个 ( Coinmetrics 指出,这个数字不包括屏蔽池里的 Token )。
根据 Coinmetrics 的说法,有几个假设可以解释这种差异:
-
Coinmetrics 观测的节点不在正确的链上,并且正在接收错误的数据。
Coinmetrics证实,他们观测的节点与 btcprivate.org 运行的浏览器发布的区块哈希是相同的,btcprivate.org 是 BTCP 官方网站。
-
在 pull 代码中有一个错误,导致 Coinmetrics 无法准确接受数据。
Coinmetrics 证实,同样的 pull 代码能够将比特币数据准确地发送到比特币节点。
-
自白皮书发表以来,挖矿奖励发生了变化。
Coinmetrics 证实,BTCP 的挖矿奖励没有发生变化。
-
BTCP 使用的隐私保护技术 Zk-SNARKS 遭到破坏,有人将已经生成BTCP 发送回屏蔽池里了。
Coinmetrics 认为这不可能的,因为如果 Zk-SNARKS 被利用,黑客就会攻击更具有价值的 Zcash,它和 BTCP 使用相同的技术。
-
有一个隐藏的预挖矿区块,Coinmetrics 证实了这一点。
Coinmetrics 解释说,在 UXTO 导入 BTCP 过程中,BTCP 网络生成了一个“特殊块”。该网络包含 400 个额外输出( extra outputs ),每个输出包含 50 个比特币。Coinmetrics 发现有 102 个这样的“特殊块”。通过计算这些数字( 102 个特殊块* 400 个额外输出* 50 个比特币),Coinmetrics 得出结论,额外产生了 204 万个 BTCP。
在下图中,Coinmetrics 列出了预期的比特币UXTO导入与实际导入的对比:
下面这张图清晰地显示了这些异常的数据块:
那么这些虚增的 BTCP 去了哪儿? Coinmetrics 发现,这些 Token 在 2018 年 4 月 29日被转入到屏蔽地址(即屏蔽池);7 月 11 日至 8 月 18 日,大约有 30 万枚 BTCP 从屏蔽池中转出,剩下的 174万 枚“地雷”没有异动。
Coinmetrics 估计,如果这30万枚 Token 在公开市场上出售,卖家“可能已经净赚 100 万至 300 万美元。”
Coinmetrics 注意到的一件有趣的事情是,“ BTCP 上只有大约 15% 的Token是活跃的。”这意味着,预先挖矿产生的 BTCP 将在市场上活跃的BTCP 中占相当大的比例。
Coinmetrics 估计,在分叉期间有 312万 BTCP 产生并活跃,而从矿屏蔽池转移的 30 万个BTCP 将占活跃 BTCP 的9.5%。换句话说,“每 10 个后分叉后的 BTCP 中,就有 0.95 个来自预挖矿。”
报告的最后,Coinmetrics 也探讨了为什么这些“地雷”(预挖矿)没有被探测到。Coinmetrics给出了两种解释:不好的发行量检查机制;弱 UTXO 导入验证。
1.不好的发行量检查机制:
BTCP 产生来源十分复杂,这种“秘密而陌生”的过程造成发行量审计工具和功能十分薄弱。“BTCP 用户不得不相信,UTXO 导入和挖掘过程都是按照开发人员的要求进行的。”
2.弱 UTXO 导入验证:
在 UTXO 导入之后,BTCP 团队向社区成员发布了文件和审计工具。这些文件“包含单个导入块的内容”,以及由单个比特币 UTXO 导入的 10000 个交易。
根据 Coinmetrics 的说法,使用共识代码来审核这些文件的人不会发现任何问题,即每个块确实有10000个事务,并且每个事务的第一个输出与预期的BTC值和脚本确实是匹配的。但是,共识代码并没有检查块中是否“没有额外输出”。因此,块中的任何额外输出(硬币)都会被忽视。
BTCP 官方回应:等待社区投票达成销币共识
12 月 23 日,BTCP 开发团队发表声明称,核心开发团队在看到 Coinmetrics 文章后,立即进行了调查,目前可以确定这些数字(虚增204万)是准确的,但BTCP 开发团队并不清楚这个漏洞的来源、目的和受益者。
BTCP 团队称,由于该项目是开源的,所以导致了这次的问题。此前,BTCP 将开发代码进行公开,公开的目的是社群贡献者能够查看并帮助修复代码;然而,代码开源也带来负面影响,发现漏洞的人会选择故意不报告,并在分叉期间利用漏洞牟利。
核心开发团队还表示,隐藏预先挖矿的原因是缺少一行代码合并来自 BTCP 代码贡献者的拉取请求,缺少的这行代码允许“由于节点没有正确验证伪造的分叉块,所以可以利用分叉挖矿”。
“BTCP 源代码中的所有错误在分叉之前都没有被发现,我们对此表示遗憾。” BTCP 开发团队说,“但是这种情况在技术领域很常见。”
不过,BTCP 开发团队也表示,这个漏洞今后不可能再次发生,也不可能再被利用。“这种特殊的漏洞,只能在今年早些时候分叉期间被利用。”
下一步怎么办? BTCP 团队也给出解决方案:
1.CoinMetrics 认为屏蔽地址中只有不到 2 万个合法的 BTCP 代币,以及 170—180 万个非法的 BTCP 代币。因此,我们团队倾向于删除所有屏蔽地址中的代币,虽然这会导致 20 万个合法的 BTCP 代币消失,但总比将 170—180 万个非法代币留在市场更可取。同时,这也可以解决供大于求的问题。
2. 我们可以执行一个硬分叉来删除所有“死币”(不活跃的币),当然这个数量可能会超过 1200 万,我们认为这会解决供应总量超标的问题,但不会删除非法代币。
目前,BTCP 开发团队正着手进行第一个选择,当然最后的决定需要社群投票达成共识。不过,BTCP 团队也强调,无论哪种选择一定要尽快落实,因为黑客可能会提前从屏蔽池中将代币转移。
“最坏的情况就是,我们对这 170 万枚 BCTP 进行快照,及时回滚交易,但我们不希望这样的情况发生。”
BTCP 团队也向交易所及个人发布通知,要求所有的交易所关闭 BTCP 的存款以及取款,从而降低未来可能发生的回滚对网络造成的伤害;对于个人,用户在转账时最好谨慎操作。
原文来自theblockrypto和medium
作者分别为Steven Zheng和Bitcoin Private。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。

聚焦点



