你知道什么是攻擊塊嗎
比特幣網(wǎng)絡(luò)決策必須遵循最長鏈規(guī)則,即必須選擇投入在一個鏈上最工作努力的作為有效鏈。這意味著最終必須達(dá)成共識,由節(jié)點決定最長的鏈?zhǔn)俏ㄒ挥行У逆湣?/p>
當(dāng)?shù)V商將一個區(qū)塊傳輸?shù)奖忍貛啪W(wǎng)絡(luò)時,該區(qū)塊的深度為1個區(qū)塊。因此,對于每個后續(xù)塊,深度塊的數(shù)量將增加1。這構(gòu)成了我們現(xiàn)在區(qū)塊鏈的認(rèn)知。
在最優(yōu)環(huán)境下,比特幣在區(qū)塊鏈上的交易層被認(rèn)為是不可逆的、最終的。話雖如此,但區(qū)塊鏈的整個結(jié)構(gòu)實際上是為了生成一個交易歷史,而修改在計算上是不切實際的。交易也可以是最終的,因此,商家不需要從用戶那里收集個人信息,因為如果企業(yè)在接受付款前執(zhí)行嚴(yán)格的付款規(guī)則,那么在計算上幾乎不可能逆轉(zhuǎn)(或雙倍支出)交易。然而,在實踐中,礦工可以根據(jù)他們所控制的計算能力重新組織塊結(jié)構(gòu)。
因此,商家和貿(mào)易商在接受用戶支付前等待確認(rèn)是非常重要的。然而,商家選擇的確認(rèn)數(shù)量在很大程度上取決于業(yè)務(wù)的風(fēng)險管理、區(qū)塊鏈體系結(jié)構(gòu)和可用性與一致性的關(guān)系。
雙重攻擊
定義
惡意用戶不止一次地成功消費一定金額的能力。
在比特幣網(wǎng)絡(luò)中,我們傾向于在驗證交易(或支付)之前等待一定數(shù)量的確認(rèn)。這就確保了在計算上不可能還原或重復(fù)支出一定數(shù)量的錢。
那么有多少份確認(rèn)呢?
在比特幣社區(qū),我們通常接受6個確認(rèn)(或6個區(qū)塊深度),在確認(rèn)交易前大約需要花費60分鐘。
等一下,60分鐘?什么!那我怎么去買咖啡呢?也許我們應(yīng)該把比特幣看作是一種價值儲存手段,而不是貨幣(但這是另一個時間的討論)?
RACE攻擊
此攻擊發(fā)生在交易員或商戶在沒有考慮確認(rèn)的情況下立即接受付款。換句話說,也就是接受帶有0個確認(rèn)的付款。
攻擊者可以創(chuàng)建兩個相同的交易,并將一個交易廣播給商家,另一個廣播給網(wǎng)絡(luò)。
交易1:向商戶A發(fā)送1個BTC
交易2:發(fā)送1個BTC給自己
很可能在第一個交易之前挖掘第二個交易Tx2,并將其作為最終交易接受。另一方面,商戶A已接受未經(jīng)確認(rèn)的交易作為支付。
如果攻擊者與商家A的節(jié)點有直接連接,那么這種攻擊很容易執(zhí)行。
芬尼攻擊
此攻擊也發(fā)生在商人接受0個確認(rèn)付款時。
攻擊者必須能夠生成自己的塊并控制比特幣網(wǎng)絡(luò)中的兩個地址,地址A和地址B。
攻擊者挖掘一個新的塊,并包含一個交易Tx1,從地址a到地址b。但是,攻擊者不會廣播這個塊。
相反,他創(chuàng)建一個新的交易Tx2。由于商家不等待任何確認(rèn),所以他會直接接受攻擊者的交易。
現(xiàn)在,攻擊者將使用Tx1將該塊廣播到網(wǎng)絡(luò)。
然而,這種攻擊在實踐中很難使用,因為它要求攻擊者具有高哈希率(因為他創(chuàng)建了自己的塊),而且大多數(shù)商家現(xiàn)在傾向于需要一些確認(rèn)。
VECTOR76攻擊
它是種族攻擊和芬尼攻擊的組合,也發(fā)生在商人接受付款1個確認(rèn)時。
先決條件:2個完整節(jié)點。
節(jié)點A:連接到商戶A的節(jié)點
節(jié)點B:連接到網(wǎng)絡(luò)的其余部分
它開始時非常類似于Race攻擊,攻擊者可以創(chuàng)建兩個花費相同的代幣的交易。
Tx1:發(fā)送50個BTC給商戶A
Tx2:發(fā)送0.1個 BTC給他自己
然而,這兩個交易都還沒有廣播。
攻擊者開始將交易哈希到一個新塊中,直到能夠挖掘出該塊為止。一旦發(fā)生這種情況,他就同時運行這兩個操作。
在節(jié)點A上:將50個BTC發(fā)送到商戶A的節(jié)點
在節(jié)點B上:0.1 BTC被發(fā)送到網(wǎng)絡(luò)的其余部分
很可能網(wǎng)絡(luò)的其他部分首先解決了這個難題,并創(chuàng)建了一個新的塊,因此,接受帶有0.1 BTC的塊作為有效交易?;旧?,拒絕50 BTC交易。
在那一刻,攻擊礦商將之前被阻止的塊從節(jié)點A廣播給商人。
商家B會將50比特幣存入攻擊者的錢包。攻擊者立即收回50比特幣(注意,商家B將從另一枚未使用的代幣地址中發(fā)出比特幣)。
最終,比特幣挖掘網(wǎng)絡(luò)將解決另一個區(qū)塊,而區(qū)塊鏈(很可能)知道0.1 BTC,因此拒絕了50BTC的交易。
選擇歷史攻擊
這是在區(qū)塊鏈最可能發(fā)生的攻擊,然而,它需要非常高的計算能力,因此變得非常昂貴。
攻擊者基本上是為商家創(chuàng)建一個交易,然后在該塊上創(chuàng)建一個新的分叉。然后,攻擊者將秘密地挖掘這些信息,直到獲得對網(wǎng)絡(luò)的最長鏈的控制。
當(dāng)超過51%的采礦力被攻擊者控制時,這種攻擊是非常具有破壞性的。