傳統(tǒng)計(jì)算機(jī)術(shù)語中,重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,是指攻擊者發(fā)送一個(gè)目的主機(jī)已接收過的數(shù)據(jù)包,來達(dá)到欺騙系統(tǒng)的目的。重放攻擊在任何網(wǎng)絡(luò)通過程中都可能發(fā)生,是計(jì)算機(jī)世界黑客常用的攻擊方式之一。
在區(qū)塊鏈網(wǎng)絡(luò)中,重放攻擊也同樣存在。但區(qū)塊鏈上的重放攻擊和傳統(tǒng)計(jì)算機(jī)術(shù)語并不是一回事,只是過程有點(diǎn)類似。
在區(qū)塊鏈技術(shù)中,重放攻擊是指“一條鏈上的交易在另一條鏈上也往往是合法的”,所以重放攻擊通常出現(xiàn)在區(qū)塊鏈硬分叉的時(shí)候。
由于硬分叉的兩條鏈,它們的地址和私鑰生產(chǎn)的算法相同,交易格式也完全相同,因此導(dǎo)致在其中一條鏈上的交易在另一條鏈上很可能是完全合法的。所以你在其中一條鏈上發(fā)起的交易,就可以到另一條鏈上去重新廣播,可能也會(huì)得到確認(rèn)。這就是“重放攻擊”。
舉個(gè)例子,前段時(shí)間熱烈討論的比特幣硬分叉,我們將比特幣原鏈稱為BTC,將分叉的另一條鏈稱為BCC。那么我們知道,BCC是完全繼承分叉前的BTC信息的,因此,分叉后如果發(fā)生重放攻擊,則發(fā)生在BTC鏈上的交易,拿到BCC鏈上去重新廣播,就有可能會(huì)被BCC鏈承認(rèn)有效。這就相當(dāng)于是我在BTC上花了1個(gè)幣,拿著發(fā)票再到BCC上又能消費(fèi)一次。
因此在硬分叉前,通常技術(shù)方都要做好重放保護(hù),即發(fā)生在一條鏈上的交易,在另一條分叉鏈上重放就會(huì)失效。