主页 > imtoken钱包下载安卓教程 > 对区块链的一些攻击术语分析

对区块链的一些攻击术语分析

imtoken钱包下载安卓教程 2023-05-26 07:27:09

比特币网络决策必须遵循最长链规则,即在一条链上付出最大努力的那条必须被选为有效链。 这意味着最终必须达成共识btc名词解释,由节点决定最长的链是唯一有效的链。

当矿工向比特币网络传输一个区块时,该区块有 1 个区块深。 因此,对于后续的每一个区块,深度区块的数量都会增加1。这就构成了我们目前对区块链的认知。

在最佳情况下,比特币在区块链上的交易层被认为是不可逆的和最终的。 话虽如此,区块链的整个结构实际上是为了生成在计算上无法修改的交易历史记录。 交易也可以是最终的,因此商家不需要从用户那里收集个人信息,因为如果企业在接受付款之前执行严格的支付规则,那么在计算上几乎不可能撤销(或双花)交易。 然而,在实践中,矿工可以根据他们控制的计算能力重新组织区块结构。

因此,商家和贸易商在接受用户付款之前等待确认是非常重要的。 但是,商户选择的确认数在很大程度上取决于业务的风险管理、区块链架构以及可用性和一致性之间的关系。

双重攻击

定义

恶意用户多次成功花费一定金额的能力。

在比特币网络中,我们倾向于在验证交易(或支付)之前等待一定数量的确认。 这确保了在计算上不可能恢复或重复花费一定数量的钱。

那么有多少确认呢?

在比特币社区中,我们通常接受 6 次确认(或 6 个区块深度),这需要大约 60 分钟才能确认一笔交易。

等等,60分钟? 什么! 那我怎么喝咖啡呢? 也许我们应该将比特币视为一种价值储存手段而不是一种货币(但那是另外一次讨论)?

种族攻击

当交易者或商人在不考虑确认的情况下立即接受付款时,就会发生这种攻击。 换句话说,接受 0 次确认的付款。

攻击者可以创建两个相同的交易,并将一个广播给商家btc名词解释,另一个广播给网络。

交易 1:发送 1 BTC 给商户 A

交易 2:发送 1 BTC 给自己

第二笔交易 Tx2 很可能在第一笔交易之前被开采并被接受为最终交易。 另一方面,商家 A 接受了一笔未确认的交易作为付款。

如果攻击者直接连接到商户 A 的节点,则此攻击很容易执行。

芬尼攻击

当商家接受 0 确认的付款时,也会发生这种攻击。

攻击者必须能够生成自己的区块并控制比特币网络中的两个地址,地址 A 和地址 B。

攻击者挖出一个新区块,其中包含一笔交易 Tx1,从地址 a 到地址 b。 但是,攻击者不会广播这个块。

相反,他创建了一个新的交易 Tx2。 由于商家不等待任何确认,他将直接接受攻击者的交易。

现在,攻击者将使用 Tx1 将块广播到网络。

然而,这种攻击在实践中很难使用,因为它要求攻击者具有高哈希率(因为他创建了自己的块),而且现在大多数商家都倾向于要求一些确认。

VECTOR76攻击

它是种族攻击和芬尼攻击的结合,当商家接受 1 次确认付款时也会发生。

先决条件:2个全节点。

节点A:连接到商户A的节点

节点 B:连接到网络的其余部分

它开始时与竞赛攻击非常相似,攻击者可以创建两个使用相同代币的交易。

Tx1:发送 50 BTC 给商户 A

Tx2:发送0.1 BTC给自己

但是,这两项交易都尚未公布。

攻击者开始将交易散列到一个新块中,直到能够挖掘该块。 一旦发生这种情况,他就会同时运行这两个操作。

在节点 A 上:发送 50 BTC 到商户 A 的节点

在节点 B 上:0.1 BTC 被发送到网络的其余部分

很可能网络的其他部分首先解决了这个难题并创建了一个新块,因此,接受具有 0.1 BTC 的块作为有效交易。 基本上,拒绝 50 BTC 交易。

在那一刻,攻击矿工将先前被阻止的块从节点 A 广播给商家。

商家 B 将 50 个比特币存入攻击者的钱包。 攻击者立即取出 50 个比特币(注意商家 B 将从另一个未使用的代币地址发送比特币)。

最终,比特币挖矿网络将解决另一个区块,区块链(可能)知道 0.1 BTC,因此拒绝 50BTC 交易。

选择历史攻击

这是对区块链最有可能的攻击,但是,它需要非常高的计算能力,因此变得非常昂贵。

攻击者基本上为商家创建了一个交易,然后在那个区块上创建了一个新的分叉。 然后,攻击者会秘密挖掘这些信息,直到获得网络最长链的控制权。

当超过 51% 的挖矿算力被攻击者控制时,这种攻击是非常具有破坏性的。