掌握私钥就能掌握资产?一般而言,如果一笔区块链交易的交易费设置的很低,它是不会被网络纳入的,但在某些情况下,零交易费的交易也会被接纳。而在你的认识当中,如果一个地址内有价值不菲的通证,并且有人告诉你这个地址的私钥,是否就意味着你可以拿走其中的通证呢?其实,这些奇怪的现象,正是欺诈者们精心设计的一个圈套,而在这篇文章当中,作者Nikita Savchenko将为我们一层又一层地拨开其中的真相。
(图片来自:Pixabay)
你是否曾在区块链账本中看到过一些非常可疑的(或者,乍一看似乎不可能)的交易?
这篇文章揭示了一些不同寻常事物背后的一些秘密,其中大部分在区块链领域是会被忽视的,然后文章会详细解释这些事情。
长话短说:区块链如果运用地得当,它仍然是安全的。但是,矿工们显然会比其他网络参与者会有更多的特权;
在我们开始之前
本文主要谈到的例子是以太坊,目前世界上最受欢迎的智能合约平台。我们将研究在以太坊平台中发生的例子,其中有很多例子也适用于其他区块链平台。
请注意,这篇文章并没有指责以太坊或任何其他区块链的意思。以太坊很棒,而技术也是可以得到改进的,密码货币平台的进化速度会非常快,而这篇文章中提到的东西,可能并不会持续很久的时间。
文章的大致内容有:
如何在不支付交易费的情况下发送交易;
公布私钥的游戏是怎么玩的;
面对这些私钥,你该做什么;
几个有趣的案例,和真实的例子;
让我们进入正题
几乎所有的公链都是透明的(除了门罗币这类隐私公链),这意味着任何人都可以轻松查看其历史记录中的所有交易。这是区块链的主要特征之一,如果你做了什么,它会成为可见历史的一部分。区块链的透明特性,使得我们能够搜索和分析相关的数据。
零费用交易
来看看这笔交易例子:https://etherscan.io/tx/0x62e296eb903efa4f6276da2ec19d469b75d358e5f6fc24b92bdfd4c6e892176b
它是一笔丛一个账户到另一个账户的简单以太币转账交易。
你可能注意到了,这笔交易的交易值只有0.000000000000009623 以太币(价值远小于0.000001美元)。显然,这样一笔粉尘交易不是一笔正常交易,它是不合理的!因为以太坊网络的平均交易费用约为0.01美元至0.1美元。
但是,这笔交易却是通过零交易费来完成的!从图中我们可以看出,这笔交易的gas价格被设为了0.也就是说它没有支付任何交易费就被确认了(以太坊的交易费用是通过交易用到的gas乘以交易发送者给出的gas价格得出的,所以21000 * 0 = 0)。这是否意味着有人找到了免费进行交易的方式?
好吧,有人可能会猜测了,这次交易之所以成为了可能,是因为网络在那个时候没有加载其它的交易,矿工没有其它的选择,只能将这笔免费的交易纳入了区块当中。但事实并非如此,因为,当时在交易存储池当中还有上千笔其它的交易。
如果每个人都能够免费地执行他们的交易,那么网络就会因为无法支持流量而过载。要了解这样的交易是如何发生的,我们需要了解一些区块链背景。
你可能知道数据是在经历挖矿过程后进入区块链当中的,一位特定的矿工会找到下一区块的正确哈希(这就是工作量证明,即PoW共识算法的工作原理)。挖掘区块的矿工,可决定哪些交易会被纳入区块,这并不是什么秘密。虽然大多数矿工试图通过包含最高的交易费用来最大化他们的收益,但没有什么能够阻止他们选择自己想要的任何交易。
因此,矿工们可以做的一件事,就是选择他们自己“提前准备”的交易,并以此作为下一个区块的一部分。由于以太坊区块链允许设置任何交易费(gas价格),矿工是有机会进行交易插队作弊的,例如,通过稍微更改他们的挖矿时间戳,或违反规程而处理他们自己的交易。但是,他们仍然无法篡改其它的交易(通过公钥加密进行加密保护),这使得区块链依旧是强大安全的。
你可能想知道,那权益证明(PoS)以及其它共识算法区块链的表现又是怎样的呢?例如,在权益证明共识机制当中,是不存在“挖矿”这个过程的,下一个“矿工”是通过伪随机的方式选出来的,这取决于持币者的币数量,区块数等因素。但是,仍然会有一个被选定的人会负责组装下一个区块,因此他就有机会纳入或排除一些特定的交易。为防止矿工作弊,关于共识算法我们可以考虑更多的限制,但有两件事是不容易处理的:
排除(禁止)来自某个矿工的特定交易;
使矿工能够在适当的地方添加他们自己的交易,至少这是不易处理的;
这是很难做到的,至少对区块链而言是这样的。其它分布式账本技术(如hashgraph),可以解决其中的一些问题,但它们会引入区块链所没有的其他类型问题。目前还没有任何已知或经实践证明的算法可解决这些问题。
私钥“公布游戏”
在以太坊当中,我们可以简单地确定哪些矿工在进行这些免费交易。谈到上面那笔没有费用的交易,我们可以看看它所在的区块,并找到实际处理这笔交易的矿工地址。除了以太坊的交易历史记录之外,我们没有关于该矿工的其它信息。无论如何,我们只需要执行快速搜索,即可轻松识别到它们:
0x52e44f279f4203dcf680395379e5f9990a69f13c
0xb75D1e62b10E4ba91315C4aA3fACc536f8A922F5
0xb2d0cba76ed764c068d25bc9b620365fd5bf4a35
0xd4383232c8d1dbe0e03bdfab849871fa17e61807
…
如果我们回到上述零费用交易,并查看其目的地址,我们会发现,几乎所有这个地址的交易,都是由这些矿工免费处理的。让我们看看这样做的目的是什么。
通过点击这些地址,我们可以找到可疑地址:0xa8015df1f65e1f53d491dc1ed35013031ad25034 (例如)。然后看看它的交易历史:
有几点信息:
这个地址里有一些有价值不菲的通证;
关于这个地址,有一些匿名人士在评论中公布了这个地址的私钥!(似乎你可以拿走这些币?)他们也在其他带有一些通证的地址中贴出了私钥。
而要转移这些地址里的通证,你必须在账户里存入一些以太币,这样才能进行通证转移(这就是以太坊和特定通证智能合约的工作方式)。因此,要从这些地址中获取到通证,你首先需要向这个地址发送一些以太币,然后才能进行币的转移。但请注意,一旦这个地址收到了以太币,它几乎会立刻将其转移到其它地方,这会使地址内没有足够的余额进行通证转移。
如果我们仔细研究这些被转移的交易,我们会发现,它们的gas价格通常是高得离谱的(有时候会高出所需价格的1000倍!)
那么,到底发生了什么?
有一些技术经验丰富的人正在欺骗别人,他们公布相关地址的私钥,使得不明真相的潜在受害者认为这个地址里的币是唾手可得的(因为他们已经掌握了私钥!)但实际上,所有尝试转币的人都会失去自己的资金。
背后的谋划者运行了一个脚本,它会监视此地址的以太币交易情况,一旦有人将以太币转入其中,他们会立即发出自己的交易,将地址内的以太币转移到其它地方(因为他们也拥有着这个地址的私钥)。此外,即使你一次发布两笔交易(一次存入,一次提币),实际上你的交易和骗子的交易最终会在同一个区块中被处理,而骗子的脚本会立即通过他们的交易取代你的第二笔交易(设置比你更高的gas价格),因此,他们的交易总是会比你更快得到处理。而这也解释了上面的高gas价格的情况 (第4点.)
考虑到这些诈骗者,在某种程度上与挖矿有关,你没有机会在他们设计的游戏中击败他们。这就好比你是在和Bobby Fischer(美国国际象棋棋王)在玩国际象棋,你知道怎么打败他吗?
对于这些诈骗者来说,除非有人向这些以太坊地址发送大量以太币,否则他们就是无利可图的。而这个故事,更详细地讲述了这些诈骗者如何通过黑掉所谓的“脑钱包”(很多是由弱密码和短语生成的)来获得大量的资金。
更多的案例
故意(或错误地)设置了一笔交易的费用,其费用是正常所需费用的100万倍。
迄今为止以太坊历史上最昂贵的一笔交易(更多细节);
在这个狡猾的矿工无偿转移他们的通证之前,失败的交易超过了500笔(看起来他们失败了,因为通证智能合约锁定了它们,直到ICO完成);然而,矿工本可以更聪明一些,通过在发布交易之前简单地检查交易是否成功,从而避免将资源浪费在不成功交易之上。
区块到底可以容纳多少笔免费交易?更多?(由alpereum处理,它是最早之一的以太坊矿池);
结论
区块链的设计是非常安全的,但是,在使用区块链进行大额交易之前,你必须格外小心,并进行自我教育。
在区块链这个世界,矿工们(矿池和节点池等)所拥有的权力要远大于网络的普通用户。他们可以纳入或排除他们想要的任何交易,而不会破坏任何网络规则。但是,他们仍然有动力去保持网络公平,以增加其资产的价值。然而,目前并没有东西能够阻止他们作弊。
虽然这种类型的作弊,大多数情况下对其他人是无害的,但拥有更多的特权,对于所有的网络参与者而言,总是不公平的,这就是今天我们需要去解决的问题。
以下是常用的一些以太坊工具资源:
etherscan.io(非常受欢迎的以太坊浏览器);
bloxy.info(显示很多有趣的工具和统计信息);
ethgasstation.info(显示网络费用,并有很多统计数据);
ethviewer.live(关于挖矿过程的可视化网站);
ethstats.net(挖矿活动的实时可视化网站);
deadcoins.com(死币的对照列表);