主页 > imtoken冷钱包 > 你闻所未闻的区块链骗局:隐藏在隐私币BTCP代码深处的阴谋

你闻所未闻的区块链骗局:隐藏在隐私币BTCP代码深处的阴谋

imtoken冷钱包 2023-12-04 05:08:59

640?wx_fmt=gif

640?wx_fmt=jpeg

翻译 |

编辑| 波波

在区块链行业,各种诈骗事件层出不穷,但Coin Metrics最近发现的一起诈骗从去年3月开始潜伏。 在隐私技术和 zk-SNARKs 零知识证明的幌子下挖矿奖励的比特币是哪里来的,这些技术在代码深处埋下了一个巨大的阴谋。

如果Coin Metrics不通过技术手段层层验证,恐怕没人能识破这个骗局。 那么,这个骗局究竟是如何利用最新的区块链技术的呢? 为什么这样的骗局能够骗过那么多区块链领域的技术专家呢?

接下来请看本文深度解析:

BitcoinPrivate(BTCP)项目是比特币和ZClassic(ZCL)的“分叉合并”,旨在将ZClassic基于zk-SNARKs的零知识证明技术的隐私和安全特性加入到比特币中。 其中,ZClassic 是从 ZCash 分叉出来的,由矿工支持,类似于比特币现金(BCH)。

根据BitcoinPrivate官方的说法,其初始代币总量为2040万枚,以当时已发行的比特币(1650万枚)、ZClassic(340万枚)和少量挖矿项目代币(62500枚)为基准。 . 此外,加上一部分用于挖矿奖励的代币递减分配,与比特币的总供应量一样,BTCP 的总供应量也被限制在 2100 万个。

640?wx_fmt=jpeg

然而,在导入比特币UTXO(未花费交易输出)数据的过程中,诡异的事情发生了:204万枚BTCP被神秘地添加到BitcoinPrivate屏蔽池中,使得初始代币总量高达2260万枚。 与官方白皮书和BitcoinPrivate团队公布的数据完全矛盾。

在此过程中,屏蔽池中的一批代币被秘密预挖:其中300,000 BTCP似乎正在从屏蔽池转移到交易所,相当于为当前流通的BTCP额外空投10%的代币; 此外,屏蔽池中还有约180万个预挖BTCP。

虽然 BitcoinPrivate 名义上是结合了 ZClassic 和比特币地位的“分叉合并”,但它的分叉是基于 ZClassic 账本数据,而不是比特币。

BTCP的区块链并不是一条完全从零开始挖矿的链,而是直接产生了数千个事先约定好的区块。 BitcoinPrivate从ZClassic区块链高度272992开始分叉,直接将比特币的UTXO数据导入到母链ZClassic中。 导入结束时,基于“矿工自愿贡献计划”额外生成62500 BTCP。 至此,BitcoinPrivate自己的公链正式上线。

相应的统计如下:

640?wx_fmt=png

因此,BTCP的token数据如下:

640?wx_fmt=png

这与BitcoinPrivate白皮书上的官方数据是一致的:

640?wx_fmt=png

“分叉完成后,将直接从 2100 万个 BTCP 代币中直接生成约 2040 万个 BTCP 代币。”

另外,分叉后每个区块的挖矿奖励为1.5625 BTCP,每210,000个区块奖励减半。 截至撰写本文时挖矿奖励的比特币是哪里来的,BitcoinPrivate 公链的区块高度为 446997。由于分叉发生在区块 278458,因此共有 141542 个区块,挖矿奖励为 1.5635 BTCP,另有 26996 个区块,挖矿奖励为 0.78125 BTCP。

以此为基础,我们计算出当前BTCP的总供应量:

640?wx_fmt=png

根据CoinMarketCap的统计,BTCP的流通供应量为20.525M,这似乎等于“初始供应-矿工自愿贡献计划-初始ZCL屏蔽池62.5K BTCP”得到的价值。

为了验证这些数据,我们亲自运行了一个版本号为1.0.12-1的BitcoinPrivate节点,并使用RPC方法“gettxoutsetinfo”来检索其公链上的数据。 结果如下:

640?wx_fmt=png

在撰写本文时,我们的全节点给出了 20.841 M 的 BTCP 总供应量。这很奇怪,CoinMarketCap 收集的数据和我们根据官方公开数据计算的结果不是这个数字。 什么地方出了错?

为了解释这里的矛盾,我们不得不一一推敲以下可能存在的问题:

接下来,让我们一一分析,哪种解释更合理:

我们的节点没有在正确的链上运行?

BTCP官方区块链浏览器btcprivate.org上446997区块的哈希值和我们的一模一样。 有图有真相:

640?wx_fmt=png

这个可以排除。

gettxoutsetinfo 代码中是否存在错误?

自 BitcoinPrivate 分叉以来,用于访问区块链数据的主要函数 GetStats() 没有被修改。

640?wx_fmt=png

如果这里出现BUG,势必会影响到比特币以及衍生自比特币的各种山寨币项目,但是我们运行的比特币节点的数据是符合预期的。

因此,此项也可以排除。

挖矿奖励变了?

挖矿奖励的执行有固定的时间表,经验证从未被修改过。

也可以排除此项目。

零知识证明协议 (zk-SNARKs) 是否已被破解?

如果Zk-snarks技术真的被攻破,黑客肯定会首先攻击ZCash,而不是BitcoinPrivate。 毕竟ZCash相对来说更有价值。

也可以排除此项目。

那么,Bitcoin Private项目是否有隐藏的预挖设计?

是的。

我们的分析如下:

从高度272992到高度278457的所有BTCP块用于导入比特币UTXO数据,攻击输出未花费的比特币59188317个比特币,总价值16891665个BTC。 高度为278458的BTCP区块包含62,500个“矿工自愿贡献计划”的BTCP(注:此项不是隐藏的预挖代币,而是提前披露的专项发展基金)。

上述区块中,每个区块包含1000个输出,每个输出对应一个比特币UTXO。 (也就是说,这 6000 个左右的区块声明了将比特币状态导入 ZClassic 所需的 6000 万左右的输出。)这是官方数据所期望的。

但奇怪的是,在这些包含10400个输出的BTCP区块中,有一些特殊的区块,其中400个额外的输出,每个输出价值50个BTC,这样的异常区块一共有102个。

我们可以用下图形象地描述一下:橙色线表示将比特币的UTXO数据导入BTCP区块链的预期过程,而蓝色线表示实际发生的情况。

640?wx_fmt=png

因此,在导入过程中,我们看到 102 个非常大的块,每个块包含 400 个额外的输出,每个输出价值 50 BTC,这会产生额外的 102 × 400 × 50 = 2040000 BTCP。

下图清楚地展示了BTCP区块链上的异常区块(请注意:由于UTXO大小不同,每个导入的比特币的区块大小不一样):

640?wx_fmt=png

从UTXO数量对比来看,异常块呈均匀分布:

640?wx_fmt=png

将上图中274590到275017之间的数据放大,得到下图:

640?wx_fmt=png

这额外的2040万个BTCP既没有在白皮书中宣告,也没有出现在比特币的UTXO数据中,仍然是BTCP的区块链凭空创造出来的。

目前,屏蔽池中有1,807,549个BTCP,发布的UTXO数据中有2,084,1921个BTCP,使BTCP代币总数达到2,264,947个,而不是官方公布的2,063,1984个。

那么,BTCP开发团队会承认这一点吗?

简单地说,没有。

该团队一再声明,Bitcoin Private 项目没有预先开采的代币或开发商税。

Bitcoin Private 和 ZClassic 基本上是由同一群开发者创建的,而 ZClassic 之所以从 ZCash 中分叉出来,是为了取消 ZCash 固有的 20% 创始人奖励。 Bitcoin Private的出发点自然是取消创始人税,同时空投BTCP发行总量直接到比特币UTXO数据。

640?wx_fmt=png

Bitcoin Private、Bitcoin、Bitcoin Cash和Bitcoin Gold对比图

640?wx_fmt=png

常问问题:

BTCP的贡献团队是谁? (关联)

是否会有预挖代币或预设创始人奖励?不会

640?wx_fmt=png

640?wx_fmt=png

当然,Bitcoin Private在其官方区块链浏览器上肯定不会统计BTCP区块链预挖的代币,所以我们称之为隐藏预挖行为。

这就是BTCP创始人所说的“社区从未见过的大规模区块链诈骗”吗?

640?wx_fmt=png

#selection-439.0-439.69

另外还有一个问题就是我们的节点只找到了官方数据之外的20万个BTCP,而不是导入数据中分析的全部204万个BTCP。

那么,我们还没有发现的BTCP在哪里呢?

预挖BTCP是个什么事件?

由于 ZClassic 是 ZCash 的一个分支,所以隐私性相对较好。 也就是说,ZClassic可以屏蔽其中的一些地址,让人无法确定具体的交易地址或交易金额。

但是,当屏蔽池和非屏蔽池交互时,可以看到流入和流出屏蔽池的资金。

在 ZClassic 分叉时,屏蔽池中只有 17K ZCL。 截至撰写本文时,屏蔽池中有 180.7 万个 BTCP。 添加屏蔽池和未屏蔽部分给出:

180 万(屏蔽池)+ 2080 万(非屏蔽代币总数)= 2260 万 BTCP

2035 万(从比特币和 ZClassic 导入)+ 204 万(预挖)+ 025 万(分叉后新挖的硬币)= 2260 万

640?wx_fmt=png

从上图可以看出,2018 年 4 月 29 日,隐藏的预挖代币被发送到屏蔽地址。 在 7 月 11 日至 8 月 18 日期间,大约有 300,000 BTCP 退出了屏蔽池,当时 BTCP 的价格在 10 美元到 3 美元之间。 如果这些代币在市场上公开交易,将有 100 万至 300 万美元的利润。

你能找到下图中BTCP发送到屏蔽池的时间点吗?

640?wx_fmt=png

从上图可以看出,从2018年7月到8月,该地址从屏蔽池中收到了1360万个BTCP。 在预挖之前,更多的Bitcoin Private被送入屏蔽池,比特币Private太多,矿工无法挖到(Bitcoin Private必须经过屏蔽池)。

因此,这很可能来自预挖。 有趣的是,大部分预挖的 BTCP 不参与交易,而是存储在屏蔽池中。

关于分叉的另一个有趣线索是它的效率:在 BTCP 区块链上,只有 15% 的代币被“激活”。 这意味着这个预挖的 BTCP 最终将占据其总供应量的很大一部分。

自分叉以来,Bitcoin Private 声称链上只有 2.55M ZCL 和 572K BTC,这意味着非预挖代币总量只有 3.12M BTCP。 目前流出屏蔽池的预挖BTCP数量约为30万个,占分叉后BTCP总量的9.5%。

也就是说,在分叉后钱包中,每10个BTCP就有0.95个来自预挖。

这么大的东西,没人能注意到吗?

Bitcoin Private 的主网于 2018 年 3 月上线,这意味着 2100 万枚代币的供应本应在几个月前就被破坏了。 因为,只要你写一些共识算法,在导入过程中检查不应该存在的token数据,肯定会有人发现问题。

但是为什么这么大的问题却从来没有被注意到呢?

可能有两个原因:一是很多人不熟悉比特币UTXO导入的验证流程,验证能力弱; 其次,Bitcoin Private 继承了比特币的供应检查,用于审查比特币公司的代币输出方式——但没有检测到欺诈,因为 BTCP 的挖矿方式使用 UTXO 数据导入。

不合理的令牌总检查

鉴于 Bitcoin Private 代币来自各种来源,比特币代币供应验证模型在这里并不合适。 在比特币中,代币总数以每个区块为基础进行审查,根据比特币在预定减半时间表中的位置,新开采的代币数量(比特币公司的代币产出)不超过 50/25/12.5/6.25 . 在比特币协议中,验证模型中没有内置自上而下的代币供应审计。 挖币的难度,减半计划顺利进行的难度,每个区块的coinbase review,都考虑到了这一点。

在 Bitcoin Private 中,大部分代币不是来自挖矿,而是来自比特币 UTXO 导入和现有的 ZClassic UTXO 数据。 由于比特币 UTXO 导入检查工具薄弱,Bitcoin Private 也缺乏真正的代币供应审计方法。

为了抓住欺诈,我们可以通过观察代币的实际流动来做到这一点。 Bitcoin Private 不得不相信 UTXO 的导入和挖矿过程是如开发者所说的那样完成的。 按照 Peter Todd 的建议,我们运行了一个完整的验证并删除了检查点,但是额外的令牌发行超出了节点执行验证检查的范围,因此结果对节点运行者来说不是太明显。 由于令牌发行是在协议范围之外完成的,因此完整验证节点无法轻易捕获这些额外的发行。 这需要提取数据,然后运行令牌供应检查。

弱化UTXO导入验证

Bitcoin Private 团队发布了一组用于审核导入块的文件,以及一组用于重新创建这些文件的工具。 每个文件包含单个导入块的内容(10,000 笔交易,每笔交易都需要导入一个比特币 UTXO)。 由于发布的文件代表了正确的 UTXO 数据转储,人们审核这些文件并确保共识代码没有发现任何问题。 对于每个导入的区块,共识代码检查该区块是否包含 10,000 笔交易,以及每笔交易的第一个输出是否与预期的比特币价值和脚本匹配。 但是,它不会检查块中的额外输出,因此无法检查这些额外的令牌。

640?wx_fmt=png

尽管包含大量共识代码,但添加这些检查的拉取请求没有收到任何评论。 除此之外,拉取请求的名称并未反映所提议更改的重要性。

只有当导入的块在最后一个已知的检查点之后(或者检查点被完全禁用时),这些检查才会运行。 由于导入过程的检查点是在分叉后 3 天添加的,因此它们只能在导入期间或之后运行,由运行全节点或禁用检查点(默认情况下,检查点正在运行)的开发人员运行。

这个案例说明,通过运行全验证节点并审计这些节点产生的数据,我们可以检查代币总数是否与官方说法一致,而不是盲目相信开发团队的官方数据,或者一些这样-称为计算公式。

原版的:

- 结尾 -

640?wx_fmt=png