“日蚀攻击”的概念是由波士顿大学的一位副教授在一篇围绕着以太坊网络的论文中提出的。其核心是一种针对区块链节点的单点攻击方式。
区块链网络中的节点通过P2P网络与其他节点进行交互。假设节点A的交互对等节点为节点B、C、D。如果B、C、D皆为诚实节点,当节点A发来信息交互请求时,它们会返回真实的数据;但是如果B、C、D都来自于同一个作恶团体,那么节点A对外界的感知就可以完全被这个作恶团体掌控。但A本身并不自知,就像以前无法从太空俯瞰地球,人类永远不会相信地球是圆的一样。
日蚀攻击的主要目的就是为了制造“双花”,假设我给Alice转了10ETH,然后又告诉Bob我已经给他转了10ETH并且对其进行日蚀攻击。Bob听说我给他转钱了,肯定要自己验证一下,于是向其他节点发出查询请求。由于我控制了所有与Bob交互的节点,所以我可以轻松做到让Bob从不同节点处都收到转账的查询结果。这样在不具备全网51%算力的情况下,我通过日蚀攻击的方式,完成了51%算力攻击的效果。
长程攻击是针对POS共识区块链的一种攻击手段。该机制下的全节点不需要进行繁琐的算力竞争。只要抵押的代币足够多,那么成为出块者的概率就越大。举个例子:
在一个POS区块链网络内,高度为1024的区块是由节点A出块的,并且当时A抵押的代币数量超过了所有抵押代币总量的50%。在满足这些条件下,我以低廉的价格从A手里买到了他打包高度为1024的区块所用到的秘钥(因为这个秘钥在出块结束后对A来讲毫无用处)。当我拿到秘钥后,可以在高度1023处用A的秘钥重新伪造出一条新的“主链”,并被所有节点接收。
可见,区块链网络中的存在着林林总总的攻击手段,但是我始终坚信正义是占大多数。随着区块链技术的推陈出新,任何作恶者都难逃“魔高一尺,道高一丈”的残酷现实。
网友评论