Eclipse攻击是一种攻击去中心化网络的手段。攻击者试图隔离和攻击一个或多个特定用户,而不是攻击整个网络。
在本文中,我将解释以太坊的一些特性,包括它的TERT块阻塞机制,以及如何使它更容易受到这种攻击。
区块链中的数据结构
区块链是一种去中心化的协议,它将数据库分布在网络中的多个节点上,为过去、现在和将来的交易建立共识机制。区块链中的数据结构用块表示。
在去中心化的区块链网络中,参与者同意什么是正确的,而不是中央当局。区块链也是透明不变的。所有网络参与者都可以看到网络上发生的事情。除非通过商定的机制,否则不能更改交易日期。
比特币区块链中的区块类
创世地块
创世区块是任何区块链的第一个区块,是系统的基本起点,与所有未来交易相关。世界上第一个创世纪区块是由中本公司创建的,中本公司创建了比特币。
Genesis区块的存在使得区块链能够通过允许新创建的区块与以前的区块相关联来生成其交易历史。此外,genesis块在同步网络节点方面起着重要作用——它们的数据库中必须具有相同的genesis块。这确保了区块链的分布式交易簿对于每个人都是相同的,从而提供了安全性。
主链滑车
主链块是所有已经验证并包含在区块链中的区块。为了实现这一点,块必须通过一个节点来解决其分配的加密问题,以获得网络的同意。一旦网络达成共识,区块将被包括在区块链中,并由所有节点传播。这样,网络的每个节点都有一个新的块作为其验证点。
每个有效的块都包含一系列用该块验证的事务。例如,在比特币中,每个有效区块平均承载2100笔交易。确认有效块中的每个事务。
所有有效的块继续确认以前的事务,并完全保护网络上的所有块和事务。当然,每个有效块都包含一个允许验证的数据结构。该结构包括哈希值、时间戳、nuncio和块事务数据。搜索候选解的过程称为挖矿,参与的节点称为矿工。每一个为区块加密问题生成有效解决方案的矿工都会成为***,并被允许识别未经确认的交易集,然后将其连接到区块链。
隔离块
孤立区块或旧区块是不属于区块链的有效区块。当两个矿工几乎同时验证块时,或者当具有足够哈希功能的攻击者试图反转事务时,可以创建此数据。在这些情况下,网络共识协议将在确定哪些块将被包括在区块链中以及哪些块将被隔离方面发挥作用。
事实上,区块链网络被编程为总是支持最长的区块链。也就是说,它选择包含更多信息或已处理事务的块。在比特币区块链中,孤立的区块被丢弃,矿工所做的工作毫无用处。
此外,正是因为这种类的封锁,大多数交易所和一些钱包自动等待额外的确认,然后再融资。它们通过计算在您正在接收的事务和当前块之间挖矿了多少块来实现这一点。
燃气轮机;ETH.getBlock(块号)
}
燃气轮机;ETH.syncing.highestBlock ETH.getTransaction(“”.blockNumber)
如何验证块?
区块链系统使用Merkle树数据结构运行,这使得它们(理论上)是不变的。Merkle树于1979年由ralphmerkle获得专利,在密码学中得到了广泛的应用。Merkle树是验证共享数据没有改变、损坏或改变的基本方法,它非常适合区块链,因为它是轻量级的。例如,由于比特币的Merkle树结构,用户的移动钱包不需要下载所有比特币交易进行验证。
给定块中的每个事务对应于Merkle树中的一个叶,Merkle树是通过散列单个事务从这些叶递归构造的。
事务对(叶)被散列以创建可能对应于区块链网络中的事务的其他叶节点。尽管可以从大量事务创建Merkle树,但Merkle根始终对应于32字节或256位字符串(例如,sha256哈希算法始终输出32字节的固定长度,而不管输入的大小)。通过这种方式,我们可以使用小到32字节的数据来验证多达数千个事务。
根据案例,任何改变,无论多么微小,都将阻止Merkle根的验证,并使区块链的部分或全部历史失效。
以太坊区块链中的区块类
以太坊和比特币的区别在于,它有一个更快的区块创建机制来加速交易过程。然而,当区块生成之间的时间区间非常短(约15秒)时,会创建大量的孤立区块,因为将所有这些区块都包含在区块链中是低效的。
这就导致了矿工浪费时间在区块上工作而得不到报酬的问题。为了解决这个问题,以太坊的开发者推出了ghost协议。
鬼代表绿心观子树,概念很简单。它奖励那些验证孤立区块的矿工,即使奖励低于标准区块。为了释放奖励,区块必须被主链中的区块或第三区块引用。
这种机制的另一个优点是解决了网络中心化的问题。当区块快速创建时,大矿池很容易垄断区块验证,导致较小的竞争对手创建无休止的孤立区块。
以太坊区块链中的区块类
以太坊区块链中有两种类的区块:
主链块是以太坊区块链中包含的区块。找到它的矿工将得到奖励。
第三级块是未包含在主链中的经过身份验证的块。矿工得到的回报低于有效区块。
想象一下,世界不同地区的两名矿工同时挖出同一个区块。然后他们在网络上散布他们的街区。这可能会导致区块链出现分歧,因此必须选择一个,较大的区块将始终获胜。未选定的块将成为孤立块(在比特币中)或第三块(在以太坊中)。与比特币不同,以太坊矿工将获得整个区块1/8的奖励。
书院奖励如何运作?
主链滑车中的矿工可参考TERT滑车。当他们这样做,额外的奖励分配给矿工在主链块和特块。主链中包含的每个区块最多可以引用两个三级区块,并为每个引用的三级区块提供1/32的完整区块奖励。然而,支付给舒快矿工的报酬将随着时间的推移而减少。
通过确保对原本会被浪费的计算工作进行补偿,并随着时间的推移减少报酬,竞争链中的矿工有动力重新加入主链。这些TERT块提高了区块链的安全性,降低了51%的攻击概率。
在以太坊池中,它可以以多种方式分布
按比例付款计划
在这个简单的方案中,矿工将根据在矿池中发现的两个区块之间的时间区间内提交的代币数量获得奖励。因此,区块奖励B根据提交的代币数量在基金池中的n个矿工之间分配。
按**n股支付(PPLNs)
PPLNs计划按最近提交的n股比例分配奖励。
基于队列的支付方案
ETHpool3是第一个引入基于队列的奖励机制的以太坊。根据该计划,矿工为提交给池运营商的每个代币累积信用。每次挖矿完一个完整的区块,区块奖励就分配给池中累积信用余额**的矿工。然后,**矿工将其信贷余额重置为自己与池中第二高的信贷余额之间的差额。
引用关系会产生额外的铸币奖励,普通区块所有者的1/32全额区块奖励和1/32三级区块奖励(8-i)/8。根据参考区块的高度,变量;I范围从;1到6。
除了改进区块链的结构,以太坊还有另外两个安全改进。一是随意打破抽签规则。节点不接受第一个接收的链,而是从所有相同长度的接收链中随机选择一个链。数字γ 不再固定,等于竞争链数量的倒数。另一个目的是改进区块的挖矿策略。
书快与日食攻击
eclipse攻击是如何工作的?
Eclipse攻击要求攻击者控制主机节点的僵尸网络(每个节点都有自己的IP地址),并找出受害者的相邻节点,基本上是通过反复试验。实现此目标所需的努力取决于网络的大小和性质,但如果成功,在受害者注销并重新加入网络后,攻击者将控制受害者的所有连接节点。
在本例中,有三个参与者—攻击者、受害者和诚实节点。如果受害者发现一个块,攻击者将不会将该块传播到网络。如果攻击者发现一个块,他们会与受害者共享。这样,攻击者就为自己和屏蔽节点创建了一个私有区块链。
通过这样做,攻击者可以获得比诚实挖矿多96.4%的收益。Eclipse攻击是可能的,因为在去中心化的网络中,一个节点不能同时连接到网络上的所有其他节点。相反,为了提高效率,一个给定的节点将连接到一组选定的其他节点,这些节点又连接到自己选定的组。因此,只有两台具有唯一IP地址的机器才能发起eclipse攻击。
以太坊依赖于一个基于kademlia协议的结构化网络,该协议旨在使节点更高效地连接到其他节点。通过使用密钥生成算法,攻击者可以快速创建无限数量的节点ID(对等网络上的标识符)。更糟糕的是,攻击者甚至可能以比随机节点ID更吸引受害者的方式创建节点ID,基本上将受害者吸引到这些节点ID上。
以太坊有三个特点,可能使它容易受到日食。首先,区块的快速创建将产生无尽的松散区块,通过增加以太坊的供应间接侵犯诚实矿工的利益。第二,第三块机制意味着节点可以从这些块中受益。第三,以太坊增强的节点连接为攻击者提供了能量。
文章标题:了解以太坊eclipse攻击的底层逻辑和tert阻塞机制
文章链接:https://www.btchangqing.cn/290723.html
更新时间:2021年06月26日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。