區塊鏈雙花現象
① 一句話解釋區塊鏈,你卻為什麼聽不懂
區塊鏈,現在這個概念異常火爆,幾乎哪裡都在講,幾乎人人都在談。但是,真正懂的人似乎並不多。
你一定在網上看到過這樣的文章:「X分鍾告訴你什麼是區塊鏈」、「X張圖講清楚區塊鏈」等等,但是看完後還是雲里霧里。
你也一定聽過,有人用一句話來解釋區塊鏈: 區塊鏈,就是一個分布式賬本。
確實是一句話,但是我知道,你還是沒聽懂。
你不懂什麼是「分布式」,更不懂什麼是「分布式賬本」,尤其困惑的是:不就是個賬本嗎,怎麼就成了要改變世界的技術了?
既然這樣解釋你聽不懂,那麼我嘗試從另外一個角度來解釋區塊鏈。
當然,也是一句話。
讓我們仔細想想,區塊鏈技術無論多麼高深莫測,也不過是一種工具而已, 只要是工具,就是用來解決某種問題的。
從這個角度說,區塊鏈技術和你家裡的榔頭沒有任何區別:榔頭是種工具,要解決的問題就是牆上的釘子。
一種工具,如果它「 是什麼 」很難解釋清楚,那麼就換個問題: 它解決了什麼? 通過回答這個新問題,能否幫助我們最終理解這個工具?
舉個例子:
艾卡哚司他爾(Epacadostater) 是一種極其復雜的分子化合物,代表了當今生物醫學領域最高技術成果。如果講定義,你幾乎不可能給一個外行人說明白它是什麼;但是從它所解決的問題出發,一句話就可以解釋清楚這種神奇的葯物: 它是一種治療艾滋病的特效葯物。
這次,我知道你一定懂了。不是因為你理解了 艾卡哚司他爾(Epacadostater) 的定義,而是因為你理解它所解決的問題:艾滋病。
所以,通過理解問題來理解工具,這種思維方式是完全可行的。
那麼,區塊鏈要解決的是什麼問題?
簡單的一句話解釋: 區塊鏈技術是一種解決雙花問題的有效方案。
好吧,我承認騙你了,你還是沒懂。不過先別打我,其實我們已經很接近了。
看看這兩句話:
這兩句話的關鍵在於:你明白 艾滋病 ,但你不懂「 雙花」問題 ,正是由於這種認知上的差異,導致你能聽懂第一句,卻聽不懂第二句。
所以, 理解雙花問題,是理解區塊鏈的關鍵!
下面就解釋下什麼是「雙花」問題」,雖然不是用一句話,但是也不難理解。
從我們日常用的微信開始,你一定熟悉下面兩個場景:
表面看來,兩種場景似乎差不多,但實際上,卻有著巨大的差異!
你把照片發給別人,照片還在,但是發錢錢卻沒了,為什麼?
也許你覺得本該如此:如果錢還在,人人豈不都有花不完的錢(夢想成真)!
不,這背後的道理一點都不平常。我來解釋下為什麼。
現在,我們每個人都要同時面對兩個不同的世界:一個物理的現實世界,一個虛擬的網路世界(手機、電腦、互聯網等),前者是由原子、分子組成,而後者的組成元素則是「數字」。我姑且把第二個世界稱之為「數字世界」
「數字世界」是人類最偉大的發明之一,很多在現實世界中難以完成的任務,在「數字世界」中可以輕而易舉的實現。
比如,在現實世界中,你有一張紙質照片,你希望分享給你遠方的朋友,同時自己也想保留一份。要做到這點,你需要去照相館復印,然後到郵局寄出。麻煩不說,還花時間。
而這一切在數字世界裡,只需要你在手機上輕輕一點,一瞬間,你遠方朋友就收到了這張照片。很方便。
為什麼如此方便?
在現實世界中,分子原子是不容易復制的,也沒有辦法高速傳輸,而在數字世界裡,數字極其容易復制,也可以高速傳輸(實際上,你在手機上發送照片,你是把這張照片的拷貝發出去,拷貝在數字世界是個很自然的事情)。
就是依賴這種特質,數字世界提供了遠超現實世界的便利性,大大改變了我們的生活。
然而,人們發現這種便利性遇到一個巨大的困難: 如何在數字世界中傳輸「錢」?
在現實世界裡,你把100元現金給你朋友,你的兜里自然少了這100元現金,而你朋友的兜里自然會多這100元現金。這種實物上的操作,不需要別人介入。
然而,在數字世界中,所有東西的組成元素都是數字,100元錢(或其他有價值的東西)和照片沒有區別,都是數字。數字,就可以被輕易的復制和傳輸。
但是你顯然不能用轉照片的方法(復制數字拷貝)轉錢,照片轉走,你可以保留一份原件,但是錢轉走了,你的錢不能保留。
換句話說, 數字世界中你的照片可以有無數份拷貝,而「錢」只能有一份。 「錢」在不同所有者之間流通的必須是它的「真身」,只是換了所有者而已,而不像照片一樣可以有多個「分身」。
因為這種「唯一性」是和數字世界的天性不符,所以必須有額外的機制確保這點。否則,錢一旦可以被復制,那麼你可以先把100元轉給一個人,再把復製品轉給其他人,等於一個100元被花了兩次,這就是所謂的「雙花問題(double spending)」。
綜上,雖然「雙花」問題可以讓人人都有花不完的錢,但是,現代金融體系是絕對不能接受這點的。
怎麼解決呢,之前的解決方案你很熟悉, 就是銀行 ,由銀行來負責記錄每筆錢的所有者。
銀行會給每人一個賬戶,在你交易完成後,銀行會做如下操作:記錄你的賬戶上少了100元,記錄你朋友的賬戶上多了100元,100元只是換了所有者,並沒有被復制。這里銀行充當一個可信的中介。
但是銀行系統有種種問題:
緩慢 ,轉一筆錢可能要幾天才能到賬,這可不是數字世界該有的效率。
風險 ,銀行對黑客攻擊防不勝防。
昂貴 ,高昂的手續費,你懂得。
出於這些原因,我們不想讓銀行來做這個「中介」,那有沒有其他辦法,不需要任何中介,也能解決前面說的雙花問題呢?
很長時間以來,答案是沒有。
人們沒有辦法在一個沒有銀行的數字世界中解決雙花問題。直到某天,一個天才想出了區塊鏈技術,一切從此改變!
區塊鏈技術就是解決雙花問題的有效方案。它讓人類第一次在交易方面充分享受到了數字世界的優勢,快速、安全、可靠而且廉價。有了區塊鏈技術,你可以像發送照片一樣轉賬給朋友,更重要的是,整個過程中 ~沒~有~銀~行!
完美!
下面是這篇文章的總結:
1. 不要從區塊鏈的定義來理解區塊鏈,而要從它解決的問題入手。
2. 現實世界由分子和原子組成, 不容易復制和傳輸。
3. 數字世界一切皆由數字組成,解決了現實世界不易復制和傳輸的問題, 但是帶來新的雙花問題。
4. 構建一個以銀行為中心的網路,可以解決數字世界的雙花問題, 但是又帶來其他問題:效率低,成本高,安全性差等。
5. 區塊鏈技術,解決了上面的問題。一句話的解釋就是:區塊鏈,是一種工具,能夠在去中心化的數字世界中解決雙花問題。
希望讀到這里,你可以通過理解「雙花」問題來理解區塊鏈是做什麼的。至於區塊鏈具體是如何工作的,我會在後續的文章給大家介紹。
最後,艾卡哚司他爾(Epacadostater)是我杜撰的,沒有這種東西。
② 『雙花』攻擊
什麼是雙花?
「雙花」,即一筆錢被花了兩次或者兩次以上,也叫「雙重支付」。通俗的理解,「雙花攻擊」(double spend attack)又叫「雙重消費攻擊」,即同一筆資金,通過某種方式被花費了兩次,取得了超過該筆資金的服務。
在數字貨幣系統中,由於數據的可復制性,使得系統可能存在同一筆數字資產因不當操作被重復使用的情況。
雙花是如何發生的?
眾所周知,區塊鏈節點始終都將最長的鏈條視為正確的鏈條,並持續工作和延長它。如果有兩個節點同時廣播不同版本的新區塊,那麼將在率先收到的區塊基礎上進行工作,但也會保留另外一個鏈條,以防後者變成最長的鏈條。等到下一個工作量證明被發現,其中的一條鏈條被證實為是較長的一條,那麼在另一條分支鏈條上工作的節點將轉換陣營。
雙花簡單說就是花兩次。雙花是如何實現的呢?分為兩種情況:
(1)在確認前的雙花。零確認的交易本來就可能最後沒有寫入區塊鏈。除非小額,最好至少等確認即可規避此類雙花。
(2)在確認後的雙花。這就要控制超50%算力才能實施。即類似於一個小分叉,將給一個商店的交易放入孤立區塊中。這種確認後雙花,很難實施,只是理論上可行。
雙花攻擊案例
2018年曾經發生了比特幣黃金(BTG)的雙花攻擊。BTG當時是全球第27大加密貨幣,流通市值為50億人民幣。2018年5月16日以來,攻擊者對BTG網路成功實施了雙花攻擊,謀取了超過38.8萬的BTG的暴利。
攻擊者控制BTG網路上51%以上的算力,控制算力期間,把一定數量的BTG發給自己在交易所的錢包,這條分支我們命名為分支A。同時,又把這些BTG發給另一個自己控制的錢包,這條分支我們命名為分支B。分支A上的交易被確認後,攻擊者立馬賣掉BTG,拿到現金。隨後,攻擊者在分支B上進行挖礦,由於其控制了51%以上的算力,很快分支B的長度就超過了分支A的長度,分支B就會成為主鏈,分支A上的交易就會被回滾恢復到上一次的狀態。攻擊者之前換成現金的那些BTG又回到了自己手裡,這些BTG就是交易所的損失。這樣,攻擊者就憑借50%以上的算力控制,實現了同一筆加密貨幣的「雙花」。
③ 區塊鏈有多重要
區塊鏈以其精巧的設計理念和思維,能夠推進經濟 社會 相關領域規則體系重構,改變人與人、人與組織、組織與組織之間的協作關系和利益分配機制;同時區塊鏈技術能夠有效解決「雙花問題」,即避免同一筆數字資產因不當操作被重復使用的情況。
這為解決數字資產確權和交易流通提供了解決方案,可以突破制約數字發展的數字資產確權和雙花等問題,構建形成適應數字經濟發展的新型生產關系,這成為區塊鏈技術最重要的價值所在。
01 減少交易中間環節,促進降本增效
經濟 社會 生活各個領域存在大量尋租性中介組織,其中一些組織並不創造真實價值,而是僅僅通過對業務信息或數據的壟斷謀取利益,人為增加了不必要的交易環節和成本。
通過區塊鏈的創新應用,可以構建基於技術的經濟行為自組織機制來代替部分中介機構的業務作用,可以大幅提升數據獲取、共識形成、記賬對賬、價值傳遞的效率,進一步打通上下游產業鏈,大幅減少不必要的中介組織和中間環節,提升各行業供需有效對接效率,為 社會 公眾和商事主體減負松綁,促進實體經濟降本增效。
02 助力數字資產確權,激發創新活力
在數字經濟時代,數據資源正變得越來越重要。2019年,我國已經正式將數據作為同勞動、資本、土地、知識、技術、管理同等重要的七大生產要素之一,推進建立數據要素市場制度。
但由於數據確權難、追溯難、利益分成難,數據還無法實現市場化高效配置和有序流通,嚴重製約數字經濟的發展。
基於區塊鏈的分布式、不可篡改、可追溯、透明性、多方維護、交叉驗證等特性,數據權屬可以被有效界定,數據流通能夠被追蹤監管、數據收益能夠被合理分享,為數據生產要素及其他數字資產的高效市場化配置掃除障礙,有望扭轉當下數據擁有、使用和利益分配日趨集中化的趨勢,推動整個 社會 和數字經濟向著更加可信、共享、均衡的方向發展,進一步釋放數字經濟創新活力。
03 縮短了信任的距離,拓展協作空間
人類近代生活方式的改變與進步,無不與科學技術的發展有著直接的關系。 科技 革命總是辯證地在擴展人類活動疆域的同時縮短彼此的距離。每一次重大的 科技 變革總是伴隨著某種意義上「距離」坍塌,從而為人們帶來了便利。
例如,交通工具的發明拓展了人類的活動半徑縮短了人們地理上的距離;通信工具的發明拓展了人類的「對話」半徑縮短了物理上的距離;互聯網的發明拓展了人類獲取信息的半徑縮短了信息的距離;人工智慧的發明拓展了認知的半徑縮短了認知世界的距離。
區塊鏈縮簡訊任的距離
如今,區塊鏈為我們帶來了一次新的半徑拓展。區塊鏈可以不依託權威中心和市場環境形成基於密碼演算法的信任機制,使得遠隔萬里、從未謀面乃至永不會謀面的陌生人能夠建立信任關系,拓展了人類信任的半徑,從而使得陌生人合作成為可能。
尤其是在一些市場機制不健全、信用體系缺失的地區和領域,區塊鏈技術的價值更顯珍貴。區塊鏈技術使得陌生主體之間能夠建立基於技術約束的生產關系,使得在陌生環境下開展商業合作成為可能,有望激發出一系列新的業務模式。
04 驅動互聯網革命,加快價值傳遞
21世紀的頭20年,人類 社會 經歷了互聯網的全面洗禮和再造,「互聯網+」使得相關行業領域產生了天翻地覆的變化,人們的生活因互聯網而更加便捷,經濟活動因互聯網而更加活躍, 社會 因互聯網而更加公平開放。
然而,互聯網主要解決的是信息的傳播問題,信息內容的真假還難以判斷,數字資產的轉移還存在很多制約障礙。互聯網在帶來巨大便利的同時,也充斥著越來越多的虛假信息,甚至成為各種新型欺詐行為的溫床,人們在越來越依賴互聯網的同時,也越來越戒備互聯網。
基於區塊鏈技術可以構建基於技術約束的下一代可信任互聯網,解決傳統互聯網的陌生人信任問題,將會讓數字資產在互聯網上高效地流通。基於區塊鏈技術可以有效保護互聯網上的數字資產和知識產權,人與人之間進行資產交易會如同發郵件一樣便捷,人們會因為區塊鏈技術的創新而對高度依賴的互聯網放下戒備之心,互聯網將誕生更多有價值的應用。
05 強化誠信體系約束,凈化市場環境
區塊鏈是構建信任的機器。通過推動區塊鏈和實體經濟深度融合,可打造便捷高效、公平競爭、穩定透明的市場環境。區塊鏈技術不可篡改、可追索的技術特徵可在市場機制不完善和誠信體系不健全的地區和領域發揮十分重要的信任機制創新作用。
在傳統模式下,市場監管的工作量大、執行難度高,由於行政執法資源及監管手段的不足,被 社會 大眾廣為痛恨的老賴現象、假貨現象、欺詐行為屢禁不止、難以杜絕。
區塊鏈技術可形成無須中介機構和法律法規為前提條件的自組織和自監管機制,其分布式賬本的不可篡改、不可抵賴、不可操控性事實上起到了對各類經濟行為進行技術監管的作用。
這有利於解決中小企業貸款融資難、銀行風控難等問題;通過全程記錄商品生產和交易流通過程,大幅降低假冒偽劣、以次充好等各類市場欺詐行為,解決市場監管難等問題。
【本文來源於人民出版社出版的《信息化領域前沿熱點技術通俗讀本》】
④ 區塊鏈鼻祖比特幣之8:分叉帶來的雙花支付、51%攻擊與解決辦法
分叉
前面講到了比特幣通過區塊鏈+工作量證明的獨特設計來解決了時間順序,但是不能保證在同一時刻有兩個節點算出了正確的解,雖然這種可能性很低很低。這就帶來了區塊的分叉。
雖然說幾乎同時有兩個節點計算出這一數學問題的可能性微乎其微,但是仍然存在這樣的可能性,所以分叉就以為著同一個區塊的後面可能會跟上兩個不同的區塊。
規則的打破一直要到下一個區塊被人解開。則會立即轉向最長的區塊,而那些短的區塊則會被拋棄。數學問題使得區塊很難被同時拆解。要連續發生多次更是困難。最終區塊鏈會穩定下來。也就是說所有人對最後幾個區塊順序達成共識。分叉意味著,譬如,若你的交易出現在較短的支鏈,它就會失去進入區塊鏈的位置。一般而言,只代表他會回到未確認交易池。然後被納入到下一個區塊。
比特幣網路如何解決分叉帶來的雙花支付
可惜,交易失去區塊位置的潛在可能,給了本來定序系統防範的重復支付攻擊機會。考慮下面的一個攻擊者A,其首先用自己的比特幣交換B節點的貨物,其立即又支付給自己。然後其通過努力的製造更長的鏈條來讓自己的支付替代掉B節點的支付,從而實現了雙重支付,B節點既得不到錢,還失去了貨物。
這時交易會退回到未確認池中,因為A節點已經利用參照同樣的input交易取而代之。節點就會認為Bob的交易無效。因為已使用掉。
你可能會猜測A節點會預先的計算出一支區塊鏈,然後抓住時機發布到網路。但是每個區塊的數學謎題阻擋了這個可能性。如前面所訴,解開區塊是猜測出一個隨機數的過程。一旦得出答案,解出的哈希值就會成為指紋一樣的區塊識別。只要區塊內容有一丁點變化,下一個區塊的參考值就會完全不同。此機制的結果就是無法在區塊鏈中置換區塊。在得到前一個區塊之前,下位區塊無法被解開。前一個區塊的指紋也是雜湊函數的引數之一。
同時,該工作量證明機制還解決了在集體投票表決時,誰是大多數的問題。如果決定大多數的方式是基於IP地址的,一IP地址一票,那麼如果有人擁有分配大量IP地址的權力,則該機制就被破壞了。而工作量證明機制的本質則是一CPU一票。「大多數」的決定表達為最長的鏈,因為最長的鏈包含了最大的工作量。如果大多數的CPU為誠實的節點控制,那麼誠實的鏈條將以最快的速度延長,並超越其他的競爭鏈條。如果想要對業已出現的區塊進行修改,攻擊者必須重新完成該區塊的工作量外加該區塊之後所有區塊的工作量,並最終趕上和超越誠實節點的工作量。我們將證明,設想一個較慢的攻擊者試圖趕上隨後的區塊,那麼其成功概率將呈指數化遞減。另一個問題是,硬體的運算速度在高速增長,而節點參與網路的程度則會有所起伏。為了解決這個問題,工作量證明的難度(the proof-of-work difficulty)將採用移動平均目標的方法來確定,即令難度指向令每小時生成區塊的速度為某一個預定的平均數。如果區塊生成的速度過快,那麼難度就會提高。
如果有一台超級電腦,能夠在區塊解題中獲勝?
即便是一台超級電腦,或者時幾百上千台電腦也很難贏得解一個區塊的勝利,因為競爭對手不是任一台電腦,而是整個比特幣網路。你可以用買彩票來比擬。操作千百台電腦,如同買了千百張彩票一樣。
51%攻擊是指的什麼
根據前面的例子,我們知道,要想有50%的概率領先其他人解題得到勝利,就需要掌握全網50%以上的算力。要連續領先他人解出區塊,掌握的運算能力還需要高得多。所以區塊鏈中的交易是受到數學競賽所保護。惡意用戶必須和整個網路較量。區塊連接建立的結果,使得在支鏈越前方的交易越安全。惡意的用戶必須在更長的時間贏過全網路,來達成重復支付,替換前面的區塊鏈。所以,系統只有支端末尾易受到重復支付攻擊。這也是為什麼系統建議多等幾個區塊,才能確認收款成功。
個人博客:https://dreamerjonson.com/
⑤ 「雙花」是什麼
POW演算法是唯一經過時間檢驗運行較為穩定的演算法,這從比特幣誕生到現在的較穩定的運行就可以看出。
上次說到POW的共識演算法的部分運作原理。把上次所講的內容簡單總結一下,那就是POW通過哈希加密演算法解決了「憑什麼幫你記賬」的問題。
其實,POW共識演算法的目的,是可以保證任意節點被入侵、篡改,其數據信息不會被其它節點所接受,換句話說,POW要通過運行機制保障主鏈的安全性。
因此,僅僅解決「憑什麼幫你記賬」的問題對一個成熟穩定的共識演算法來講還是遠遠不夠的,它還需要解決其它一些問題,比如雙花問題。
雙花問題(Double Spending)即雙重支付,是指一筆數字現金在交易中被重復使用的現象。我們都知道,數字現金的走向只能是線性的,也就是同一筆錢一次只能轉給一個人,不能同時轉給兩個或者以上的人。一旦數字現金的走向發生了偏差,離開了線性軌道的約束,成為發散狀態,那麼雙花問題就會出現。
舉個例子,小明一早出門只帶了10元錢,他來到肯德基吃早餐,點了10元的套餐,把錢付給了肯德基的收銀員,這10元錢得到收銀員的確認。小明吃完早餐出門,發現自己並沒有吃飽(小明飯量有點大),抬頭一看有個麥當勞,於是他走進麥當勞,想再點一個10元的漢堡。這時候,如果小明想用之前買肯德基套餐的那10元錢買麥當勞漢堡,可能嗎?當然不可能。因為那10元錢是獨一無二的(有編號),已經被花出去了。
但如果小明使用的不是現金,而是數字貨幣呢?這就另當別論。這是因為現金的復製成本太高(法律成本、製作成本等等),而數字貨幣則不然,它具有十分經濟的可復制性,使得系統可能存在同一筆數字資產因不當操作被重復利用的問題。
雙花問題在有中介的前提下是不容易發生的,因為每次消費都要經過第三方(中介方)的確認才會完成,比如支付寶。
而比特幣作為一個去中心化的點對點現金系統,是沒有中介和第三方的,它主要依靠未花費的交易輸出(UTXO)和時間戳兩大利器來解決雙花問題。
未花費的交易輸出(UTXO)可以被簡單地理解為一個用戶擁有的比特幣的余額。這個余額是無法偽造的,因為一個用戶擁有的比特幣實際上會被當作UTXO分散到數百個交易和數百個區塊中。
雙花問題是這樣解決的:
首先每筆交易都要先確認對應的比特幣之前的情況,要檢查它是否存在於付款人的UTXO中。
其次,同一筆UTXO付出去,系統節點按照時間戳只會確認先接收到的那一筆。
最後,當兩筆時間上很近的交易被不同節點確認,區塊鏈將發生分叉。當其中一筆交易被6個節點確認後,它將獲得最終的確認,成為最長鏈。
本文僅供學習參考之用,不構成任何投資建議。
⑥ 在區塊鏈中,雙花問題是什麼問題呢
什麼是雙花問題呢?
雙花問題,簡單講就是一筆錢能被花兩次三次很多次。為什麼雙花問題會成為比特幣系統裡面一個這么重要的問題呢?
原因就在於:比特幣,是虛擬貨幣,它是虛擬的,通過代碼形式呈現出來的,是可以被復制下來的。一旦被攻破了代碼漏洞,那麼就可以循環使用同一筆比特幣,這樣一來,比特幣這種「錢」就會變得很雞肋。
我們想一下,要是一筆錢可以花很多次,你有500塊錢,你去買一件500塊錢的衣服,還能循環使用,再去買一雙500塊錢的鞋,這樣一來,錢還能叫錢嗎?
所以,中本聰在設定比特幣系統的時候,他所有的技術手段基本上都是圍繞著解決
「雙花問題」的,來保護比特幣作為一種貨幣,它自身的一個支付手段職能。
其實,這個雙花問題在我們現在的中心化世界裡面根本不是問題,因為有銀行,錢的交易結算都是通過銀行,很安全,有問題直接找銀行。
但是,在去中心化世界裡面呢,沒有銀行這樣一個中心機構,還必須保證一筆錢只能花一次,怎麼樣實現在去中心化的前提下,杜絕「雙花問題」呢,這是一個難題。
這里插一句,中本聰為什麼如此執著的追求「去中心化」呢,自找煩惱嗎?不是,他希望能夠通過去中心化,來解決一些社會問題,其中最主要的問題就是:因為權力機構過量發行貨幣造成的通貨膨脹。
所以,我們總結一下他的邏輯:中心化的貨幣增發導致通貨膨脹——所以我們要實現去中心化——去中心化要面臨很多問題,最大的問題是雙花問題——所以我們要解決雙花問題——怎麼解決雙花問題?
這里,中本聰就引入了UTXO和「時間戳」概念,依靠這兩種手段來解決雙花問題。
⑦ 區塊鏈中,什麼是51%算力攻擊
比特幣白皮書中,有過這樣的表述:誠實節點控制算力的總和,大於有合作關系的攻擊者算力的總和,該系統就是安全的。
換句說,當系統中有合作關系的惡意節點所控制的算力,超過誠實節點所控制的算力,系統就是有被攻擊的風險。這種由惡意節點控制超過50%算力所發起的攻擊,稱為51%算力攻擊(51% Attack)。
那是不是所有的加密貨幣系統都有可能遭遇51%算力攻擊的風險呢?其實並不是的,只有基於PoW(工作量證明)共識機制的加密貨幣,才存在51%算力攻擊,比如比特幣、比特現金和目前階段的以太坊等;而非PoW共識演算法的加密貨幣則不存在51%算力攻擊,如基於DPoS(委託權益證明)共識機制的EOS、TRON等。
在了解了51%算力攻擊之後,你肯定好奇,這種攻擊能做哪些壞事。
1、雙花(Double Spending)。雙花的意思是一份"錢"花了兩次甚至多次。
51%算力攻擊是如何做到雙花的呢?假設小黑有666BTC,他把這些幣支付的大白同時,也把這些幣發到自己的另一錢包地址上。換一句話說,小黑的一份錢,同時轉給兩個人。最終,發給大白那筆交易先被得到了確認,並打包在區塊高度為N的區塊內。
這時,控制了超過50%算力的小黑,發起51%算力攻擊。他通過重新組裝第N個區塊,將發給自己那筆交易打包進區塊里,並持續在這條鏈上延展區塊,由於算力的優勢,這條量將成為最長合法鏈。這樣小黑666BTC雙花成功,大白錢包里的666BTC"不翼而飛"了。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
⑧ 女巫攻擊與雙花攻擊
女巫攻擊 的名字源於1973年由小說《Sybil》改編的同名電影。電影中的女主人公Sybil Dorsett患有分離性身份認同障礙,本身兼有16種人格。
區塊鏈底層是 P2P網路 。網路中各個節點可以隨時加入或退出,為了維持網路的有效性,一般一份數據常常需要部署在若干個分布式節點上。如果一個惡意節點偽裝有多個身份就存在可獲得全部數據的幾率,下面我打個比方:
假設神龍造出了七顆龍珠,並且要將它們分別投放到地球的各個角落。於是神龍昭告天下,讓每個洲來一個人領取龍珠。此時,精通喬裝易容術的我分別假扮出七個不同地域的人來神龍這拿到了龍珠。本來神龍將龍珠放到世界不同的地方基配圓就是為了平衡各地方力量,但是由於我偽造了身份,成功地拿到了全部龍珠,控制了地球。
以上比喻就是女巫攻擊的本質體現。
雙花攻擊是大多區塊鏈加密數字貨幣都要面對的一種攻擊手段。顧名思義,雙花攻擊就是一筆有效的錢被先後花了兩次。
雙花攻擊的可行性完全是由於區塊鏈的共識機制導致。拿比特幣舉例,由於比特幣的POW共識機制屬於最終一致性共識,一筆交易從發布到全網所有節點都達成統一確認需要一定時間,而攻擊者就是利用這個時間間隙進行攻擊。舉個生活中的例子:
假如銀行A有兩個支行B和C。但是,這個銀行的賬目系統比較低效,支行B和C每過1個小時才會去主行A那裡同步賬本。我在主行A中存了100塊錢,過了一個小時後支行B和C同步了賬本,於是我在B和C中都可以查到我擁有100塊錢。之後,我通過支行B用我的賬戶買了100塊錢的好吃的,隨即又通過支行C用我的賬戶賣唯買了100塊錢好玩的。由於支行B和C之間做不到賬目的隨時同步,所以支行C在我去買好玩的時候依然認為我擁搏塌有100塊錢。
以上就是雙花攻擊,並且「雙花」永遠是一種 流通貨幣 所要解決的首要問題。