最关键的是这位跟原身交情似乎不错,原身对其评价也是不错。
虽然原身的识人標准林枫很是吐槽,但此时林枫確实挺想搞清楚自己最近遭遇的这件事的。
林枫找到了艾弗里斯曼·奎因的联繫方式。
林枫立即联繫了他。
记忆中这位是標准的夜猫子,一直到两三点钟才睡觉是常有的事。
虽然已经夜深了,林枫还是拨过去了。
果然,林枫成功拨通了电话。
一番简要的寒暄之后,林枫將他遇到的情况详详细细地描述了一遍。
艾弗里斯曼在听完之后沉默了片刻,接著爆发出一阵大笑:“林,原来你这种谨慎的人也会有被黑的一天,哈哈哈。”
“不过也不怪你会中招,你这次遇到的是双攻击。”
“艾弗里斯曼,別光笑了,双攻击到底是怎么回事?这种攻击我还是第一次碰到。”
林枫压住內心的不甘,谦虚地请教。
“別急,我给你解释。”艾弗里斯曼开始耐心地讲解,“比特幣的核心原理之一就是去中心化,交易一旦完成就会被永久记录在区块链上,理论上无法篡改。这也是比特幣如此受欢迎的原因之一。但这个设计有个漏洞,黑客正是利用这个漏洞发起了双攻击。”
艾弗里斯曼继续说道:“双攻击的意思很简单,一张钞票不能两次,双攻击就是攻击者尝试用同一笔比特幣进行两次支付。你可以想像,一张钞票原本只能使用一次,但如果在比特幣的网络中,黑客能够利用网络延迟和交易確认的空档期,將同一笔比特幣转帐给两个不同的地址,就形成了双攻击。”
林枫越听越疑惑:“那这个『kn6eptehь』到底是怎么操作的?他是怎么利用双攻击把我那笔比特幣拿走的?”
“很可能是通过『竞赛攻击』实现的。”艾弗里斯曼停顿了一下,语气变得更加严肃,“比特幣交易確认是有一个时间延迟的,黑客通过这个时间差实现了攻击。”
林枫心中一惊:“竞赛攻击?这又是什么攻击方式?”
艾弗里斯曼耐心解释道:“双攻击通常有两种手法,一种是竞赛攻击,另一种是『51%攻击』。对於普通用户来说,遇到51%攻击的可能性很小,因为这种攻击需要控制超过一半的算力,实际上只有大型矿池或者准官方力量才有可能发动这种攻击。可是你那才100比特幣,根本不值得发动这种级別的攻击。所以,我们可以把注意力集中在竞赛攻击上。”
“竞赛攻击並不需要过多的算力。黑客利用比特幣交易確认时间的空档期,通过向两个不同的地址同时发出转帐请求,然后依靠网络延迟和计算速度的差异实现交易的劫持。”艾弗里斯曼进一步解释道,“比如说,在你和对方確认交易的同时,黑客通过自己的节点向你的钱包地址和他自己控制的钱包地址提交了相同金额的交易。接著,他利用更强的算力,生成了一个包含自己交易的分支链,超过了原链的长度,最终他自己控制的链识別速度更快,比特幣网络认为他自己控制的链才是『真实链』,导致你那边的交易被『替换』掉了。这种操作虽然也需要算力,但只要他的算力比你的强並精確把握交易时机就足够了。”
林枫顿时明白了:“原来如此!所以说,那个黑客通过这条分支链把交易『替换』掉了,导致我无法收到比特幣?”
艾弗里斯曼点了点头:“对。实际上,在比特幣网络中,確认过程是分阶段的。通常,交易完成后需要经过六次確认,確保交易的有效性。在这个过程中,交易並不是立即被確认的,而是在確认过程中,黑客利用了確认间隙,使得自己的交易成功替代了你的交易。”
“那就是说,我明明看到100个比特幣即將到帐,但实际上那只是一个假象?”林枫疑惑地问道。
艾弗里斯曼笑了笑:“正是如此。通常,比特幣的確认需要几分钟甚至更久,这段时间是黑客实施竞赛攻击的最佳时机。你看到的『即將到帐』其实並不代表交易已经完全確认,而是系统尚未完成最终確认,黑客利用这一点將交易劫持。”
林枫若有所悟:“明白了,竞赛攻击就是利用网络確认时间的空隙,向多个地址提交相同的交易,最终通过算力竞爭选择其中一个作为有效交易。而我的那个恰巧就在这个確认空隙中被『替换』掉了,是这样吗?”
“是的,可以这样理解。”艾弗里斯曼说道。