999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

區(qū)塊鏈分叉帶來的安全挑戰(zhàn)

2022-04-29 15:18:08呂蘊藉
計算機與網(wǎng)絡 2022年18期

呂蘊藉

區(qū)塊鏈分叉分為軟分叉和硬分叉。本文主要探討的是硬分叉,一種不支持向后兼容的軟件升級方式。

如果要成功分叉一條區(qū)塊鏈并不容易,并非直接復制原網(wǎng)絡的代碼即可,需要進行基本的修改才能保證它安全運行,為此,總結了幾種常見的安全問題及防護方法。

網(wǎng)絡層

由于分叉鏈是獨立于原網(wǎng)絡的區(qū)塊鏈,首先需要在網(wǎng)絡層(P2P)進行隔離。

種子節(jié)點

種子節(jié)點,也稱bootnode或者seednode,是區(qū)塊鏈啟動時網(wǎng)絡首先會嘗試進行連接的節(jié)點。分叉鏈在啟動時首先連接種子節(jié)點列表里的節(jié)點,從而進一步發(fā)現(xiàn)網(wǎng)絡中其他的對等節(jié)點,然后才能進一步同步區(qū)塊,達成共識。因而必須要修改種子節(jié)點列表,防止連接到原網(wǎng)絡的節(jié)點。

異形攻擊

即使種子節(jié)點列表改變了,但并不代表分叉網(wǎng)絡不會連接到原網(wǎng)絡,因為雙方的P2P協(xié)議是相同的,如果有一個節(jié)點無意中添加了另外一個網(wǎng)絡的節(jié)點連接,那么2個節(jié)點將成功握手,并將對方添加到節(jié)點地址池。不僅如此,雙方節(jié)點還會將自己節(jié)點中的地址分享給對方,進而造成雙邊網(wǎng)絡節(jié)點池互相污染。

為了解決地址池互相污染的問題,需要在通信協(xié)議上做網(wǎng)絡識別。早期的以太坊并不支持網(wǎng)絡分隔,但后續(xù)的版本中在協(xié)議中加入了NetworkID做為網(wǎng)絡區(qū)分的標志,NetworkID通常是每個鏈的ChainID,例如以太坊主網(wǎng)的NetworkID和ChainID都為1,而ETHW初始版本中并未對NetworkID進行分叉,可能存在異形攻擊漏洞。

在比特幣網(wǎng)絡中,使用Magic值來標識不同的網(wǎng)絡,通常在chainparams進行定義,例如比特幣主網(wǎng)值為F9BEB4D9,測試網(wǎng)值為FABFB5DA。

共識層

交易隔離

通常與區(qū)塊鏈交互時,需要用自己的私鑰簽署一筆交易,隨后這筆交易被廣播到網(wǎng)絡,并被礦工或者出塊節(jié)點打包到區(qū)塊中。但如果區(qū)塊鏈出現(xiàn)分叉,這筆交易可能會被2個網(wǎng)絡分別打包到不同的區(qū)塊中,假設這是一筆原鏈上的轉賬,那么分叉鏈上也會有相同的一筆轉賬,顯然這是一個非預期行為,會造成資產(chǎn)損失。

這時就需要對交易進行重放保護,在早期以太坊的版本中沒有做這樣的保護,EIP155之后在交易結構中加入了ChainID,確保用戶簽署的交易只用于當前網(wǎng)絡。如果對以太坊進行分叉,那么也需要對ChainID進行重新定義,當然這并不是只修改配置里的ChainID這么簡單,因為分叉鏈需要對舊的區(qū)塊做兼容,所以需要在分叉高度之后使用新的ChainID,才能保證分叉鏈正常運行。

比特幣的交易結構中不存在ChainID,那么它是如何做重放保護的呢?比特幣使用了一種叫做UTXO的模型,簡單說它是對一筆交易(UTXO)進行花費,而不是對賬號進行花費,通常全新啟動的網(wǎng)絡不會存在相同的2筆交易,也就不存在重放的場景。

但是在硬分叉的情況下,還是會存在交易重放的問題,例如2017年的BCH分叉以及后來的BSV分叉。BCH通過在交易數(shù)據(jù)簽名添加SIGHASH_FORKID (0x40),使得BCH上的交易和BTC的交易不再互相兼容,從而達到重放保護的目的。

算力調整

在分叉前,原鏈占有全網(wǎng)所有的算力,依據(jù)PoW共識算法,它的出塊計算難度也是比較高的。分叉后,算力分散到不同的區(qū)塊鏈上,分叉鏈由于共識不足通常無法獲得足夠的算力去生產(chǎn)新的區(qū)塊,區(qū)塊的增長會陷入停滯。這時有必要降低分叉后的初始計算難度,給分叉鏈贏得一個快速調整算力的時間窗口。

防范51 %攻擊

網(wǎng)絡和交易都隔離開了,區(qū)塊鏈分叉了,新區(qū)塊順利產(chǎn)出,一切都看似正常。然而安全問題依舊突出,它依舊存在一種更普遍、更難以防御的攻擊:51 %攻擊。

挖礦是逐利的,當出現(xiàn)分叉幣時,哪邊的挖礦收益高礦工就會把算力切換到哪個網(wǎng)絡,但現(xiàn)實是分叉幣往往幣價低,導致整體的算力十分低。以ETHW分叉為例,從2 miners上看到,原ETH網(wǎng)絡算力峰值最高超過900 TH/s,而在寫稿時ETHW的算力只有30 TH/s左右,大量算力消失并不是好事,它隨時可以對ETHW發(fā)起51 %攻擊。

對于51 %攻擊的防范幾乎沒有什么很好的方法,只能通過增加確認數(shù)來防范。

應用層

把建立在交易上的應用,如基于虛擬機的智能合約,統(tǒng)歸為應用層。區(qū)塊鏈在分叉時,也會對運行在區(qū)塊鏈上的應用產(chǎn)生巨大影響。

簽名重放

簽名重放與上文提到的交易重放是相同道理的,有一些合約,例如Gnosis Safe,它會在合約中驗證用戶的簽名,如果簽名中沒有包含ChainID,那么這個簽名可能在2個鏈上重放,導致資產(chǎn)損失。

預言機失效

分叉后的區(qū)塊鏈多數(shù)智能合約依舊可以正常運行,例如Token合約、AMM合約,這些自運行系統(tǒng)不依賴于鏈下數(shù)據(jù)就可以穩(wěn)定運行,但類似MakerDAO等借貸系統(tǒng),高度依賴預言機的價格數(shù)據(jù),在失去鏈下喂價支持后,它將無法繼續(xù)運行下去。

價格劇變

區(qū)塊鏈分叉了,一個應用同時運行在2個鏈上,用戶該使用哪個鏈上的應用?哪個算是“正統(tǒng)”的呢?這個問題又回到了共識上,通常哪個區(qū)塊鏈擁有正統(tǒng)的共識,那么它上面的資產(chǎn)就會保留原有的價值共識,而另一個區(qū)塊鏈上的資產(chǎn)會在瞬間失去價值。

這種價格上的劇烈變化,會導致DeFi應用徹底崩潰,借貸應用永遠無法平倉,一些有識之士會抓住分叉的時間窗口,把“歸零”的資產(chǎn)通過AMM等應用兌換成主鏈代幣,從而保留了一些價值,在ETHW分叉事件中,可以觀察到了大量分叉鏈上的套利行為。

至此,我們看到其中存在的技術風險,對于分叉需要十分審慎地對待。并且,不少分叉的背后不僅僅是技術變革的需要,有的可能存在商業(yè)上的直接利益,例如發(fā)起方在分叉中直接獲取大量的分叉幣,這些都需要用戶準確認識,避免不必要的損失。

區(qū)塊鏈是一種去中心化的系統(tǒng),它的升級不依賴于單一個人或組織,因此分叉在區(qū)塊鏈中難以避免,雖然給用戶帶來混亂,但也促進了系統(tǒng)向前發(fā)展以更好地服務社會。

主站蜘蛛池模板: 久久不卡精品| 亚洲中文字幕久久精品无码一区| 国产欧美日韩另类精彩视频| 丁香五月激情图片| 99久久精品无码专区免费| 欧美a在线看| 欧美日韩资源| 日韩国产综合精选| A级毛片高清免费视频就| 免费国产不卡午夜福在线观看| 国产视频a| 亚洲综合久久一本伊一区| 国产产在线精品亚洲aavv| 欧美日韩福利| 亚洲人成在线免费观看| 露脸一二三区国语对白| 青青青视频蜜桃一区二区| 在线另类稀缺国产呦| 激情无码视频在线看| 国产理论精品| 国产亚洲成AⅤ人片在线观看| 日韩A级毛片一区二区三区| 久久精品人妻中文系列| 在线观看av永久| 国产成人精品一区二区不卡| 亚洲综合欧美在线一区在线播放| 伊在人亚洲香蕉精品播放| 国产成人福利在线| 欧美区日韩区| 尤物午夜福利视频| 97成人在线观看| 一本色道久久88| 国产精品青青| 午夜毛片免费观看视频 | 国产簧片免费在线播放| 色妞永久免费视频| 婷婷久久综合九色综合88| 九九这里只有精品视频| 国产成人调教在线视频| 久久久久久久久久国产精品| 91在线一9|永久视频在线| 亚洲二三区| 国产精品福利在线观看无码卡| 有专无码视频| a级毛片网| 99精品视频在线观看免费播放| 国产美女无遮挡免费视频| 国产在线拍偷自揄拍精品| 国产高清在线观看91精品| 久久亚洲中文字幕精品一区| 亚洲国产日韩欧美在线| 亚洲中文字幕手机在线第一页| 51国产偷自视频区视频手机观看 | 在线免费看片a| 一级毛片免费观看不卡视频| 无码aaa视频| 国产簧片免费在线播放| 亚洲精品欧美日本中文字幕| 综合色亚洲| 国产网站免费| 无码视频国产精品一区二区| 亚洲视频三级| 精品久久久久无码| 精品在线免费播放| 亚洲熟女偷拍| 特级欧美视频aaaaaa| 99精品在线视频观看| 一级在线毛片| 久久国产精品嫖妓| 亚洲成人网在线播放| 中文字幕无码电影| 强奷白丝美女在线观看| 亚洲手机在线| 欧美综合区自拍亚洲综合天堂| 国产精品午夜电影| a级高清毛片| 国产小视频在线高清播放| 国产在线麻豆波多野结衣| 亚洲中文字幕无码爆乳| 91精品国产麻豆国产自产在线| 亚洲人成网站观看在线观看| 亚洲品质国产精品无码|