交易所頻頻被盜,fomo3d大獎(jiǎng)被黑客利用bug獲取,這些都在提醒我們區(qū)塊鏈技術(shù)目前還不夠成熟,存在許多技術(shù)問題,今天班主任就帶大家了解區(qū)塊鏈存在的技術(shù)問題。
區(qū)塊鏈分叉
我們?cè)谇懊鎱^(qū)塊鏈的擴(kuò)容問題中講到,區(qū)塊鏈的擴(kuò)容就需要升級(jí),那么升級(jí)會(huì)不會(huì)出現(xiàn)問題呢?
在區(qū)塊鏈中,數(shù)據(jù)是存儲(chǔ)在節(jié)點(diǎn)中的。如果區(qū)塊鏈升級(jí),升級(jí)后的版本不能識(shí)別之前的版本,用戶們又不會(huì)統(tǒng)一升級(jí),可能就有一部分升了級(jí),有一部分沒升級(jí),但大家還是在那記賬、工作。這樣,升級(jí)后的用戶會(huì)產(chǎn)生新區(qū)塊,沒升級(jí)的也會(huì)產(chǎn)生新區(qū)塊,區(qū)塊鏈就有了分叉。
如果沒升級(jí)的老節(jié)點(diǎn)完全無法接受新節(jié)點(diǎn)創(chuàng)建的區(qū)塊,這就是硬分叉。而老節(jié)點(diǎn)如果能接受新節(jié)點(diǎn)區(qū)塊,但卻不能完全理解和驗(yàn)證新區(qū)塊,那就是軟分叉。
這也是為什么比特幣的每次升級(jí)都會(huì)造成社區(qū)的激烈討論。
什么是重放攻擊?
重放攻擊是黑客常用的一種攻擊手段。是指攻擊者將某個(gè)消息或者數(shù)據(jù)原封不動(dòng)地多次發(fā)送給節(jié)點(diǎn),如果節(jié)點(diǎn)多次接收信息或數(shù)據(jù)不能進(jìn)行有效識(shí)別,就會(huì)有重放漏洞。
舉個(gè)例子:張三去包子鋪買包子。包子鋪規(guī)定先付款再拿包子。張三用支付寶付款。他付完款后給一個(gè)服務(wù)員看,服務(wù)員給了他幾個(gè)包子。然后張三又將這個(gè)付款信息給另一個(gè)服務(wù)員看,另一個(gè)服務(wù)員在不知情的情況下,又給了張三幾個(gè)包子。如此重復(fù)進(jìn)行,張三就獲得了不少包子。而這家包子鋪就遇到了重放攻擊。
重放攻擊在區(qū)塊鏈上發(fā)生分叉時(shí)最容易出現(xiàn)。如果新老版本計(jì)算機(jī)互相不兼容, 黑客就可以將同樣的信息先發(fā)給新版本用戶,再發(fā)給舊版本用戶,從而使區(qū)塊鏈遭受重放攻擊,造成損失。
“雙花問題”如何解決?
張三去包子鋪花了5元錢買包子,他出來后發(fā)現(xiàn)饅頭店的饅頭也不錯(cuò),想買饅頭,但摸口袋沒錢了,他想用剛才在包子鋪的那5元錢再買饅頭, 可能嗎?
這是不可能的,除非他把包子退給包子鋪。
那如果張三用的不是現(xiàn)金,是數(shù)字貨幣呢,數(shù)字貨幣就是一些數(shù)據(jù),他如果把數(shù)據(jù)復(fù)制下來再去使用呢。
這就出現(xiàn)了雙重支付,也就是區(qū)塊鏈的雙花問題。在系統(tǒng)中,可能由于不當(dāng)操作導(dǎo)致一筆數(shù)字資產(chǎn)被重復(fù)使用。
時(shí)間戳就是解決雙花問題的關(guān)鍵。時(shí)間戳可以證明他已經(jīng)在那個(gè)時(shí)間花掉了那筆錢,不能再用了。
區(qū)塊鏈中大家都做算術(shù)題不是嗎?如果有兩個(gè)人同時(shí)解出了這道算術(shù)題,怎么解決呢?這也是區(qū)塊鏈的雙花問題。
區(qū)塊鏈同樣解決了這個(gè)問題:如果兩個(gè)人同時(shí)上傳,雖然這個(gè)概率非常小,但是如果發(fā)生,我們就要看最后哪一個(gè)區(qū)塊的鏈條最先連接上6個(gè)區(qū)塊,才能被確認(rèn)成功,之后所有的區(qū)塊都要在這個(gè)鏈上進(jìn)行,另一條就失效。
什么是51%攻擊問題?
大部分區(qū)塊鏈現(xiàn)在看起來是通過誰算得快來爭(zhēng)取記賬權(quán),生成區(qū)塊的。但是,如果有一天,有一個(gè)節(jié)點(diǎn)練就了一種絕技,算得最準(zhǔn)最快,每一次都是他獲得記賬權(quán),生成區(qū)塊,再如果他有壞心眼的話,那就麻煩了。
石頭村原來是通過擲骰子來決定誰當(dāng)會(huì)計(jì),每個(gè)人擲6次,誰擲出的點(diǎn)數(shù)多誰當(dāng)會(huì)計(jì)。 可是有一天,張三練就了一手絕活,每次都能擲出6點(diǎn)。而村里的其他人都競(jìng)爭(zhēng)不過他,他就可以一直當(dāng)這個(gè)會(huì)計(jì),就可以做手腳。
當(dāng)一個(gè)節(jié)點(diǎn)擁有了超過一半的算力,也就是對(duì)區(qū)塊的絕對(duì)力量時(shí),就可以說他擁有了一定的破壞能力,這就叫51%攻擊。
51%攻擊可以有以下一些場(chǎng)景:
實(shí)現(xiàn)雙花攻擊。比如他生成區(qū)塊后,先不向別人廣播,而是跑到交易所平臺(tái)把自己的數(shù)字貨幣換成紙質(zhì)幣提出來。如果提出錢以后,區(qū)塊鏈長(zhǎng)度還沒有變,而他構(gòu)造的區(qū)塊鏈長(zhǎng)度已經(jīng)是10了,他再廣播出去,網(wǎng)絡(luò)也會(huì)確認(rèn)他的是正確的。這時(shí)錢已經(jīng)取出來了,而他廣播出去的區(qū)塊卻并沒有提錢的記錄,等于數(shù)字貨幣還在他的地址中。
自己有記賬權(quán),就可以阻止一些別人的交易。
他能輕易阻止別的節(jié)點(diǎn)獲得記賬權(quán),因?yàn)樗薪^技。
一項(xiàng)新技術(shù)的誕生,注定會(huì)面臨很多的問題,但是隨著時(shí)間的推進(jìn),問題會(huì)越來越少,技術(shù)也越來越成熟。區(qū)塊鏈現(xiàn)在還處于萌芽階段,我們需要給與足夠的耐心和支持,相信未來區(qū)塊鏈一定會(huì)有顛覆世界的能力。