日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 什么是重放攻擊? 重放攻擊(Replay Attack)是計(jì)算機(jī)網(wǎng)絡(luò)中常見(jiàn)而古老的攻擊手段。在區(qū)塊鏈中,重放攻擊特指在硬分叉中,攻擊者將一條鏈上的交易拿到另一條鏈上“重放(Replay,

什么是重放攻擊?

重放攻擊(Replay Attack)是計(jì)算機(jī)網(wǎng)絡(luò)中常見(jiàn)而古老的攻擊手段。在區(qū)塊鏈中,重放攻擊特指在硬分叉中,攻擊者將一條鏈上的交易拿到另一條鏈上“重放(Replay,即重新播放之意)”,從而獲取不正當(dāng)利益的攻擊手段。這畢竟是一個(gè)技術(shù)概念,小白可能不容易理解,為了解釋清楚,我們干脆用一個(gè)真實(shí)案例來(lái)說(shuō)明重放攻擊具體是如何實(shí)施的。這個(gè)真實(shí)案例出自大名鼎鼎的以太坊The DAO分叉事件。

The DAO是以太坊上發(fā)起的一個(gè)眾籌項(xiàng)目,它運(yùn)行在智能合約上。由于智能合約存在某種漏洞,黑客轉(zhuǎn)走了合約內(nèi)管理的價(jià)值數(shù)千萬(wàn)美元的以太幣。為了挽回?fù)p失,以Vitalik為首的大部分社區(qū)意見(jiàn)支持分叉以實(shí)現(xiàn)交易回滾(使得黑客的攻擊無(wú)效化),于是通過(guò)硬分叉形式發(fā)起了一條新鏈。然而另一部分社區(qū)意見(jiàn)則認(rèn)為不應(yīng)該回滾,仍舊維護(hù)原有的區(qū)塊鏈。這導(dǎo)致以太坊分裂成新鏈(Ethereum, ETH)和原鏈(Ethereum Classic, ETC)兩條不同的區(qū)塊鏈。

那么重放攻擊又是怎樣實(shí)施的呢?我們假設(shè)小明在分叉前持有500個(gè)ETH。分叉以后,小明的地址(暫且稱為A地址)下就同時(shí)持有500個(gè)ETH和500個(gè)ETC,因?yàn)檫@個(gè)A地址在兩條鏈上都是存在的。由于小明是堅(jiān)定的分叉支持者,因此小明只看好ETH未來(lái)的發(fā)展,覺(jué)得ETC肯定要?dú)w零。此時(shí)小剛找到小明,提議以低價(jià)購(gòu)買小明手中的ETC。小明便將手中的500個(gè)ETC全部轉(zhuǎn)賬到了小剛的地址(暫且稱為B地址)。

前面聽(tīng)起來(lái)沒(méi)什么不對(duì)勁吧,然而小明沒(méi)有想到的是,小剛反手就把這筆ETC的轉(zhuǎn)賬交易發(fā)到了ETH的網(wǎng)絡(luò)上。由于ETH、ETC是分叉的產(chǎn)物,因此兩者交易結(jié)構(gòu)、密碼學(xué)體系都是一致的,ETC鏈上的交易在ETH鏈上也一樣可被識(shí)別,因此這筆交易就會(huì)被驗(yàn)證上鏈,最終的結(jié)果是ETH鏈上的A地址也轉(zhuǎn)出了500個(gè)ETH到B地址去。小剛假意低價(jià)收購(gòu)ETC,卻成功騙取了小明所有的ETH,小明自然是虧大發(fā)了!

如何防范重放攻擊?

我們可以看到,小剛問(wèn)小明收購(gòu)ETC這個(gè)行為,本身沒(méi)有問(wèn)題;小明將手中的ETC轉(zhuǎn)賬給小剛這個(gè)行為,也沒(méi)有任何問(wèn)題。真正出問(wèn)題的地方在于,由于ETH和ETC兩條鏈?zhǔn)褂昧送耆恢碌慕灰捉Y(jié)構(gòu)和密碼學(xué)體系,導(dǎo)致在ETC上有效的交易在ETH上也同樣有效。這就給了攻擊者可乘之機(jī)。

攻擊者可以將ETC上的一筆有效的交易“重放”到ETH的鏈上,仍可形成一筆有效的交易,然而這筆被重放的交易并不是交易者本人的真實(shí)意愿,因此容易被攻擊者利用而造成資產(chǎn)損失。

大家可能會(huì)有一個(gè)疑問(wèn):那豈不是在分叉后的鏈之間,比如ETH和ETC之間、BTC和BCH之間,做的所有交易都是有可能被“重放”的?

事實(shí)上,重放攻擊的實(shí)施是需要一系列嚴(yán)苛條件的。只有在剛分叉完畢的一段時(shí)間內(nèi),兩條鏈才能夠保持共享幾乎相同的鏈上數(shù)據(jù)的狀態(tài)(因?yàn)樵诜植娓叨戎暗臍v史數(shù)據(jù)都是完全相同的),最容易發(fā)生重放攻擊;一旦運(yùn)行一段時(shí)間,兩條鏈上分別有了新的數(shù)據(jù)輸入,將一條鏈的交易重放到另一條鏈的可行性就大大減弱了。

從防范重放攻擊的角度,我們可以總結(jié)一些規(guī)律。首先,大家要意識(shí)到,重放交易本身不是一種Bug,并不能直接竊取您的資產(chǎn),重放攻擊一定是配合或結(jié)合其他惡意行為進(jìn)行的。就好像我們剛才提到的小明賣ETC案例中,一定是有小剛這樣的角色實(shí)施了“假意低價(jià)收購(gòu)ETC、實(shí)則圖謀ETH”的欺詐行為。如果您在分叉之后的一段時(shí)間內(nèi)保持警惕,時(shí)刻意識(shí)到您在新鏈上的交易有可能被重放到原鏈(或相反),就可以杜絕絕大多數(shù)與之相關(guān)的欺詐行為。

我們介紹兩種具體的防范手段。

第一種是在分叉后購(gòu)買極少量“新鮮的幣”到您的地址內(nèi)。所謂“新鮮的幣”是指那些在分叉高度以后挖礦產(chǎn)出的幣,這些幣在另一條鏈上并不存在,因而當(dāng)交易的input引用到它們時(shí),這筆交易就不可能被另一條鏈所驗(yàn)證。

第二種是在分叉后將您所有地址內(nèi)的幣歸結(jié)到一個(gè)新生成的地址。這也就是所謂的“騰籠換鳥(niǎo)”,可以減少攻擊者在另一條鏈重放交易的可行性。

如果您按順序結(jié)合使用兩種方法,基本可以免除遭受重放攻擊的可能性。

Lava團(tuán)隊(duì)關(guān)于分叉期間的風(fēng)險(xiǎn)提示和相關(guān)建議

首先,我們特別提醒,本次PoC2+升級(jí)使用硬分叉方式,有可能形成兩條鏈,即一條升級(jí)協(xié)議后的“新鏈”、一條仍運(yùn)行舊協(xié)議的“原鏈”。這是區(qū)塊鏈的特性所致,只要原有的協(xié)議有算力維護(hù),那么原鏈也可以保留下來(lái)(反之無(wú)人維護(hù)則逐漸消亡)。

Lava技術(shù)團(tuán)隊(duì)聲明,升級(jí)完成后我們不會(huì)對(duì)運(yùn)行舊協(xié)議的原鏈進(jìn)行任何維護(hù)和開(kāi)發(fā)工作。

因此,我們首先建議社區(qū)用戶務(wù)必在分叉前更新您手中的所有全節(jié)點(diǎn)或錢(qián)包軟件版本。您可以前往官網(wǎng)(https://www.lavatech.org/zh/)下載最新版本的軟件,并在升級(jí)指南頁(yè)面(https://www.lavatech.org/zh/poc2Upgrade)檢查您的軟件版本是否為最新。如果您沒(méi)有及時(shí)更新,仍在使用舊版本的錢(qián)包,可能會(huì)造成混淆和誤操作。

其次,我們建議您在沒(méi)有把握的情況下,分叉后短期內(nèi)謹(jǐn)慎與第三方進(jìn)行轉(zhuǎn)賬活動(dòng)。分叉后可能有人提出收購(gòu)您在原鏈(或新鏈)的LV資產(chǎn),您需要特別意識(shí)到交易存在被重放的風(fēng)險(xiǎn)。

Lava技術(shù)團(tuán)隊(duì)可能計(jì)劃在分叉完成后,向所有持有LV余額較大的地址轉(zhuǎn)賬少量金額的“新鮮LV”,以減少攻擊者實(shí)施重放攻擊的可行性。我們建議所有持有大額LV資產(chǎn)的用戶,在接收“新鮮LV”轉(zhuǎn)賬后,將持有的LV歸集到一個(gè)新的地址。(具體方法是在您的錢(qián)包內(nèi),將所有LV余額都通過(guò)發(fā)起一筆轉(zhuǎn)賬交易,轉(zhuǎn)移到您錢(qián)包下的另一個(gè)新地址中。請(qǐng)參考下列教程。所有方案都為建議方案,您可以自行操作。)

教學(xué):如何做歸集交易

歸集交易(或稱為規(guī)整交易)就是將您錢(qián)包內(nèi)分散在各個(gè)地址下的資金統(tǒng)一發(fā)送到一個(gè)地址下的交易。該地址應(yīng)當(dāng)是一個(gè)由您的錢(qián)包控制的、最好是沒(méi)有使用過(guò)的地址。在分叉后進(jìn)行一次資金歸集,能夠減小被重放攻擊的可能性。

(1)如果您使用帶有界面的錢(qián)包,例如輕錢(qián)包、GUI錢(qián)包:

此處以GUI錢(qián)包為例,其他帶有界面的錢(qián)包的操作方法類似。

在“接收”界面點(diǎn)擊“請(qǐng)求付款”,錢(qián)包會(huì)自動(dòng)展示一個(gè)收款地址。

復(fù)制該地址,前往“發(fā)送”界面,將錢(qián)包內(nèi)所有資金發(fā)送至該地址即可。

您可以預(yù)先瀏覽您的錢(qián)包余額并填寫(xiě)需要發(fā)送的資金數(shù)額,或者在發(fā)送交易時(shí)直接勾選“發(fā)送全部余額”(或在填寫(xiě)金額時(shí)選擇“Max”選項(xiàng),因錢(qián)包而異)以保證所有余額都得到歸集。

(2)如果您使用全節(jié)點(diǎn)錢(qián)包(命令行模式):

·使用getbalance查看錢(qián)包內(nèi)的總余額;

·使用getnewaddress生成一個(gè)新地址;

·使用sendtoaddress將錢(qián)包內(nèi)的所有余額轉(zhuǎn)賬到新地址內(nèi)。

注意:要考慮留出交易手續(xù)費(fèi),因此可以在轉(zhuǎn)賬之前先設(shè)置settxfee 0.001,然后將剩余余額通過(guò)sendtoaddress轉(zhuǎn)入歸集地址。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉