講一下原理,區塊鏈如何運作

區塊鏈的核心概念

在講解區塊鏈的工作原理之前,我們先將區塊鏈中涉及的幾個核心概念做一個簡單的闡述。

一、區塊

區塊作為區塊鏈的基本結構單元,由包含元數據的區塊頭和包含交易數據的區塊主體構成。

區塊頭包含三組元數據:

1. 用於連接前面的區塊、索引自父區塊哈希值的數據;

2. 挖礦難度、Nonce(隨機數,用於工作量證明算法的計數器)、時間戳;

3. 能夠總結並快速歸納校驗區塊中所有交易數據的Merkle(默克爾)樹根數據。

圖2–17 區塊頭的結構

區塊鏈系統大約每10分鐘會創建一個區塊,其中包含了這段時間裡全網範圍內發生的所有交易。每個區塊中也包含了前一個區塊的ID(識別碼),這使得每個區塊都能找到其前一個節點,這樣一直倒推就形成了一條完整的交易鏈條。從誕生之初到運行至今,全網隨之形成了一條唯一的主區塊鏈。[3]

二、哈希算法

哈希算法是區塊鏈中保證交易信息不被篡改的單向密碼機制。哈希算法接收一段明文後,以一種不可逆的方式將其轉化為一段長度較短、位數固定的散列數據。

它有兩個特點:

1. 加密過程不可逆,意味著我們無法通過輸出的散列數據倒推原本的明文是什麼;

2. 輸入的明文與輸出的散列數據一一對應,任何一個輸入信息的變化,都必將導致最終輸出的散列數據的變化。

圖2–18 哈希算法的兩個特點

在區塊鏈中,通常使用SHA–256(安全散列算法)進行區塊加密,這種算法的輸入長度為256位,輸出的是一串長度為32字節的隨機散列數據。[4]區塊鏈通過哈希算法對一個交易區塊中的交易信息進行加密,並把信息壓縮成由一串數字和字母組成的散列字符串。區塊鏈的哈希值能夠唯一而準確地標識一個區塊,區塊鏈中任意節點通過簡單的哈希計算都可以獲得這個區塊的哈希值,計算出的哈希值沒有變化也就意味著區塊中的信息沒有被篡改。

圖2–19 區塊鏈中的哈希算法

三、公鑰和私鑰

在區塊鏈的話題中,我們還經常聽到這樣的詞彙——公鑰和私鑰。這就是俗稱的不對稱加密方式,是對以前的對稱加密方式(使用用戶名與密碼)的提高。

我們用電子郵件加密的模型來簡單介紹一下:公鑰就是給大家用的,你可以通過電子郵件發佈,可以通過網站讓別人下載,公鑰其實是用來加密/驗章的。私鑰就是自己的,必須非常小心保存,最好加上密碼,私鑰用來解密/簽章,私鑰由個人擁有。[5]

在比特幣的系統中,私鑰本質上是32個字節組成的數組,公鑰和地址的生成都依賴私鑰,有了私鑰就能生成公鑰和地址,就能夠花費對應地址上面的比特幣。私鑰花費比特幣的方式就是對這個私鑰所對應的未花費的交易進行簽名。

圖2–20 區塊鏈中的公鑰和私鑰

在區塊鏈中,使用公鑰和私鑰來標識身份,我們假設區塊鏈中有兩個人,分別為小白和小黑,小白想向小黑證明自己是真實的小白,那麼小白只需要使用私鑰對文件進行簽名並發送給小黑,小黑使用小白的公鑰對文件進行簽名驗證,如果驗證成功,那麼就證明這個文件一定是小白用私鑰加密過的。由於小白的私鑰只有小白才能持有,那麼,就可以驗證小白確實是小白。

在區塊鏈系統中,公鑰和私鑰還可以保證分佈式網絡點對點信息傳遞的安全。在區塊鏈信息傳遞中,信息傳遞雙方的公鑰和私鑰的加密與解密往往是不成對出現的。

圖2–21使用公鑰和私鑰完成一筆交易

信息發送者:用私鑰對信息進行簽名,使用信息接收方的公鑰對信息加密。

信息接收方:用信息發送者的公鑰驗證信息發送者的身份,使用私鑰對加密信息解密。

四、時間戳

區塊鏈中的時間戳從區塊生成的一刻起就存在於區塊之中,它對應的是每一次交易記錄的認證,證明交易記錄的真實性。

時間戳是直接寫在區塊鏈中的,而區塊鏈中已經生成的區塊不可篡改,因為一旦篡改,生成的哈希值就會變化,從而變成一個無效的數據。每一個時間戳會將前一個時間戳也納入其隨機哈希值中,這一過程不斷重複,依次相連,最後會生成一個完整的鏈條。

圖2–22 區塊鏈中的時間戳

五、Merkle樹結構

區塊鏈利用Merkle樹的數據結構存放所有葉子節點的值,並以此為基礎生成一個統一的哈希值。Merkle樹的葉子節點存儲的是數據信息的哈希值,非葉子的節點存儲的是對其下面所有葉子節點的組合進行哈希計算後得出的哈希值。[6]

同樣地,區塊中任意一個數據的變更都會導致Merkle樹結構發生變化,在交易信息驗證比對的過程中,Merkle樹結構能夠大大減少數據的計算量,畢竟,我們只需驗證Merkle樹結構生成的統一哈希值就可以了。

圖2–23 區塊鏈中的Merkle樹結構

從比特幣病毒談起

前文我們說到了區塊鏈中的幾個核心概念和定義,那麼,區塊鏈究竟是如何運行的呢?要解決這個問題,我們就不得不先從比特幣開始聊起。說起比特幣,許多人的第一反應就是比特幣病毒。下面我們就從比特幣病毒這一事件引入,聊一聊比特幣究竟是什麼,有哪些特性。

敘述一下全世界都知道的事

還記得被比特幣支配的恐懼嗎?

那一天,早上醒來,你發現屏幕上彈出一個醜陋的紅框框。

你異常激動,終於不用寫論文了。

圖2–24 比特幣病毒入侵

2017年5月12日,網上發生了一件微小的事情,眾多學校、醫院的文檔都陸續被一個叫「永恆之藍」(WannaCry)的勒索蠕蟲病毒鎖住了:想看資料,可以;交錢,也不需要太多,300個比特幣就行。有人一看瞬間覺得,只用300個,這麼少。其實,一個比特幣的價格在中國差不多等於一萬元,這還是因為中國的比特幣平台正處於監管期不能提現,國外的價格就更高了。當然,對於個人用戶來說,是不需要給這麼多錢的,畢竟並不是誰都有300多萬元的。

圖2–25需要比特幣贖金才能解鎖

黑客想讓大家用比特幣支付,不過這事本身和比特幣還真沒什麼太大關係。比特幣就是一種幣,本來安靜地在旁邊躺著,早上醒來卻發現自己上頭條了。截至2017年5月16日,已經有150多個國家的30多萬用戶受到「迫害」了,而且,有消息顯示,「永恆之藍」病毒已經升級為2.0版本了,新版本病毒不受域名限制,傳播性更高。

圖2–26「永恆之藍」

那麼,這個比特幣病毒究竟是什麼東西呢?它可以被視為由兩種東西混合開發出來的神奇病毒——加密算法勒索病毒和「永恆之藍」黑客工具。「永恆之藍」黑客工具負責開道,不需要點擊直接入侵別人的電腦,然後加密算法勒索病毒墊後,對你的文件加密之後再進行勒索。

比特幣病毒從何而來

加密算法勒索病毒其實是個「老朋友」了,世界上第一個有記錄的勒索軟件Cryptolocker誕生於1989年,它其實就是一種用加密算法來勒索錢財的程序,後來,病毒製造者沒幾天就被抓獲了。

圖2–27Cryptolocker病毒製造者被抓獲

其實,Cryptolocker最開始是很好破解的,因為它最開始使用的是對稱加密算法,編個程序逆向破解一下就可以了,但是,現在流行的勒索病毒Wallet、Onion使用的卻是非對稱加密算法。非對稱加密算法的加密和解密過程使用兩個密鑰,因此,單純靠逆推是不可行的,我們在後面會具體講解一下。

然而,這次的黑客不僅改進了勒索蠕蟲病毒,還搭配了一個「好夥伴」——「永恆之藍」黑客工具,不需要你點擊任何鏈接,它就可以直接佔領你的計算機。「永恆之藍」病毒還有一個美麗的傳說,據說它原本是美國國家安全局用來竊取其他國家信息的工具,是「美國武器庫」中的一種。美國國家安全局旗下有一個黑客組織叫「方程式組織」,負責替美國政府做一些不可告人的事情,後來,因為聞名天下的伊朗核試驗的「震網」事件以及後來的「稜鏡門」事件逐漸為人所知。

圖2–28非對稱加密算法無法逆推

圖2–29「美國武器庫」的傳說

後來,有個叫「影子經紀人」的黑客團隊,把「美國武器庫」破解了。然後,他們在網上拍賣,想把這些「武器」換成錢。然而,沒人理他們,於是,他們發起眾籌,企圖利用這些「武器」贏利,依然沒什麼人理他們。最後,一氣之下,在2017年4月14日,他們直接把這批「武器」公開了。於是「永恆之藍」黑客工具和加密算法勒索病毒就成為一款「殺傷性武器」。

圖2–30影子經紀人的傳說

當然,這件事只是一個美麗的傳說,美國國家安全局也沒有承認,所以,「永恆之藍」究竟從何而來眾說紛紜,並沒有實際考據。

這個病毒什麼時候能破解

首先,「永恆之藍」黑客工具是利用Windows(微軟公司的操作系統)漏洞來攻擊的,也就是說,只要更新Windows補丁,並開啟防火牆的主動防禦,基本上,這個工具就沒有了生存的土壤,然而,Windows漏洞總是不斷更新,說不定什麼時候黑客搭配一個攻克新款漏洞的工具,就又生出了各種變種病毒,比如「永恆之紅橙黃綠青藍紫」之類的。

圖2–31 升級防火牆

我們知道,勒索病毒使用非對稱加密算法進行加密,其最突出的特點就是不可篡改和不可逆,加密和解密過程使用的是兩個不同的密鑰。

圖2–32非對稱加密算法不好破解

現在的計算機無法完成倒推所需要的計算量,或者說,算出來的成本太高了。現在全球熱議的最領先的區塊鏈技術使用的就是非對稱加密算法,也就是說,黑客是站在時代最前沿的科技的肩膀上設計密碼,我們想要破解沒那麼容易。

圖2–33站在巨人的肩膀上

我們可以回想一下那個家喻戶曉的「熊貓燒香」病毒最後是怎麼被破解的?寫病毒的黑客被抓住之後,自己編了套程序破解了,而這次的情況也類似,最可能的解決方法就是,把黑客抓住之後,讓黑客把他手裡的密鑰交出來,我們輸入密鑰之後就可以解封了。

圖2–34 黑客交出密鑰

為什麼只要比特幣

黑客到底什麼時候會被抓到,怎麼抓?這就涉及我們探討的第三個問題了,為什麼黑客非要用比特幣支付呢?因為比特幣的匿名性,換句話說,你不容易抓住他。比特幣是一種網絡虛擬貨幣,可以在全世界流通,具有匿名性,這便於黑客隱藏身份。你不需要知道對方是誰,只需要一個比特幣地址就可以點對點地給對方打款。同時,比特幣的世界性和流動性也是黑客選擇比特幣的理由,比特幣在數字貨幣中佔有最大的份額,它在全世界中擁有很多「粉絲」,很多國家都承認了比特幣的合法地位,一些大型企業也接受比特幣支付。

圖2–35比特幣的全球性

但是,黑客想要逃脫法網也不是那麼容易的,因為比特幣的特點之一就是不可篡改,所有的記錄都是無法篡改的,並且公開可查。一旦黑客公佈的比特幣地址收到了比特幣,那麼賬本上就多了一筆記錄,每個人手裡的賬本會同步更新。每個人都能查到這個記錄,之後這個地址的各種轉賬、提現記錄也都是可查的。只要黑客進行了比特幣提現這類需要和現實交互的操作,就一定會露出蛛絲馬跡。

圖2–36比特幣交易記錄公開可查

實際上,在大多數情況下比特幣本身並不是百分之百匿名的。發送和接收比特幣,就像作者用筆名發表作品一樣。如果一個作者的化名和他的身份聯繫在一起,他曾經寫下的任何東西都會與其聯繫在一起。

對於個體來說,比特幣的匿名性與你接收比特幣的錢包有關。涉及該地址的每一項交易都將永久保存在該區塊鏈中。如果你的地址和你的真實身份相關,那麼每一項交易都會和你有關。

現在,許多國家都把比特幣交易平台納入監管範圍,交易需要多重實名認證。因此,只要黑客露出與現實相關的蛛絲馬跡,就有可能被抓到。

圖2–37比特幣並不是百分之百匿名

圖2–38多重實名認證

怎麼預防「永恆之藍」病毒

第一招:搜索

現在,請打開你的任何一個瀏覽器,在輸入框裡輸入「如何預防比特幣病毒」,你就會發現鋪天蓋地的解決方法,隨便找一個點開看就行了,畢竟都一樣,無非是斷網、設防火牆、阻止445端口、升級Windows補丁。在這裡,建議大家都養成長期打開防火牆的習慣,雖然Windows的防火牆總是時不時彈出,但是,安全終歸最重要。

圖2–39第一招:搜索

第二招:以毒攻毒

預防了這次的病毒攻擊,下次再遇到怎麼辦呢?你可以嘗試這麼操作:黑客不是要加密我們的重要文件嗎,比如後綴為doc(文檔)、xls(電子錶格)、ppt(演示文稿)、psd(圖片文件)之類的文件;而對於一些冷門格式的視頻和種子文件,黑客總不會加密吧,所以,除了重要文件要多備份幾遍之外,我們還可以把所有的重要文件做成壓縮包,然後改成一個莫名其妙的格式(比如後綴為「modv」)。當然,這一招並不能完全斷絕重要文件被破壞的可能性。

圖2–40第二招:以毒攻毒

第三招:占坑搶位

這一招最絕的一點就在於,走黑客的路,讓黑客無路可走,所以適用於程序員:自己編一套經非對稱加密的「病毒程序」,把自家電腦的文件都加密,密鑰保存在自己手裡,每次查看前先輸一遍密鑰。這樣就是麻煩點,但是它有用啊!「此坑是我的,想毒我,沒門兒!」

圖2–41 第三招:占坑搶位

最後需要說的一點是,目前中國的比特幣平台是不能提現的,因此,若想要繳納贖金也需要謹慎考慮。畢竟,我們並不知道繳納贖金之後是否能百分之百地解鎖並免受病毒的二次入侵。面對病毒,我們需要冷靜,再冷靜啊。

圖2–42繳納贖金後解鎖失敗

其實,作為和區塊鏈、比特幣相關的從業者,從病毒暴發的那一刻開始,我就收到七大姑八大姨的各種電話問候:聽說你們公司研究的玩意兒都成病毒了,你們公司不會跑路吧……白天被各種圍追堵截詢問:您好,請發表一下對此事的看法,到底什麼時候才能抓到?

比特幣之所以被黑客當作勒索的工具,確實是因為它具有匿名性、去中心化等方便黑客隱藏身份的某些特性,但我始終認為,技術本身是無罪的,比特幣抑或區塊鏈都不應該背黑鍋。

圖2–43技術本無罪

比特幣的工作流程

如圖2–44所示,在區塊鏈中,所有的節點向上回溯,都會到達源頭,即區塊鏈中的第一個區塊,也就是「創世區塊」。

圖2–44比特幣工作流程

在「創世區塊」誕生之後,比特幣的用戶通過不斷地「做題」,即通過計算尋找滿足特定SHA–256哈希值對應的數值解。這個過程就是比特幣中的「挖礦」。[7]

當任意一個用戶優先計算出符合要求的數值解時,就會在全網範圍內廣播,而網絡中的其他節點收到這條信息會進行驗證,若通過驗證,其他節點就會放棄計算,並將新創建的區塊加到前一個區塊的後面。

圖2–45 計算特定哈希值的數值解

隨著越來越多的人加入比特幣的區塊鏈系統,一個又一個哈希值的數值解被找到,在不斷重複的過程中,新的區塊不斷地生成、驗證,最終形成一個主鏈。同時,哈希算法的難度也會調整,以此控制用戶們解出數據所用的時間。

而在比特幣的實際交易過程中,假設比特幣中的用戶A和B之間要完成一個交易,包含這筆交易的區塊向區塊鏈中的所有用戶發佈廣播,全網用戶通過驗證哈希值來確認這筆交易是否有效,一旦被認證為有效,這個區塊就會被加蓋時間戳,然後被添加到區塊鏈主鏈上。

圖2–46 加蓋時間戳

區塊鏈的本質是一個互相驗證的公開記賬系統。這個系統所做的事情,就是記錄所有賬戶發生的所有交易。每個賬號的每筆數額變化都會被記錄在全網總賬本中。而且每個人手上都有一份完整的賬本,每個人都可以獨立統計出有史以來比特幣系統每個賬號的所有賬目,也能算出任意賬號當前餘額是多少。 [8]

由於所有數據公開透明,任何人都可以去查看它的源代碼,人們便會信任這套去中心化的系統,而不擔心裡面是否隱藏著什麼陰謀。

比特幣會硬分叉嗎

2009年比特幣誕生,如今,其市值已達數百億美元,眾多人為之瘋狂(注意,根據政策規定,比特幣不是貨幣)。最近,有人預測,比特幣到了不得不分叉的時候,甚至可能會暴跌。

圖2–47 比特幣會分叉嗎

一、中本聰拍了下腦袋

中本聰在設計比特幣的時候,是2009年,那個時候數據能有多少?更何況也沒有多少人使用比特幣。於是他一拍腦袋決定了,比特幣中一個區塊的容量就是1M(兆字節)吧。而一筆交易是250字節甚至更多,現在一些交易基本達到了500字節。容量不夠用啊!

我們來算筆賬:

比特幣一個區塊的容量是1M,

1M=1 024KB(千字節)=1 048 576字節,

那麼一個區塊包含的交易總數為:1 048 576÷250≒4 194.3(筆)。

比特幣中一個區塊確認的時間是10分鐘,

10分鐘=600秒,

那麼一個區塊每秒能處理的交易數為:4 194.3÷600≒7(個)。

圖2–48 1M的容量不夠用

如果一個區塊每秒只能處理7筆交易,要是交易數據再大點,可能連7筆都達不到。這樣會造成一個結果,比特幣上的交易擁堵而緩慢。一筆交易發生之後,前面還有好多交易在排隊等待確認,到底要等到什麼時候啊?總有一天堵塞到一定程度就會超過容量極限,然後就崩潰了!

圖2–49 區塊需要擴容

二、擴容方案意見不一

出了問題怎麼辦呢?改啊!

怎麼改啊?中本聰消失了啊!

那找誰啊?中本聰把系統維護交給了5個極客!

哦,怎麼改啊?

聽我的,改成2M;不,聽我的,改成20M!

很多人代表各方的利益群體提出了自己的擴容方案!

1. Bitcoin Classic(比特幣經典版),此方案認為應該將這個字段的最大值調到2M,並且以後有計劃取前2 016個區塊大小的中位數再乘一個約定好的倍數來決定下一批區塊的大小上限。

2. Bitcoin XT(比特幣新版),此方案認為這個值應該修改為20M,並且每兩年翻一番,直到上限值達到8.3G(千兆字節)。

3. Bitcoin Unlimited(比特幣無限版),此方案認為這個值多大都行,甚至可以無限大,由礦池決定其大小。

圖2–50 擴容方案意見不一

每個人都覺得自己是對的,誰也說服不了誰,怎麼辦啊?比特幣不升級了?不行啊,還是要升級的!那麼問題就來了,要是做出來一個升級版本,所有人都直接升級成了新版,就沒有分叉問題了,全世界大升級大和諧啊。但是,有人的地方就有紛爭,有的人升級,有的人不升級。這可好了,亂套了,用的系統都不一樣,那要如何統一呢?

圖2–51方案不同可能會導致分叉

不同的理念催生出了多種擴容方案,各個方案間無法統一,於是比特幣分叉了。其實,隨著時間的流逝,方案所提出的容量大小也隨之增長,莫非,這不是價值觀的原因而是世界觀的原因?

三、硬分叉和軟分叉

分叉怎麼還分軟硬呢?簡單來說就是兼容性的不同,軟分叉是暫時的,硬分叉是永久的。

區塊鏈發生永久性分歧,在新共識規則發佈後,部分沒有升級的節點無法驗證已經升級的節點生產的區塊,通常硬分叉就會發生。

圖2–52 硬分叉結構圖

硬分叉的定義是這樣的:硬分叉是指比特幣的區塊格式或交易格式(這就是廣泛流傳的「共識」)發生改變時,未升級的節點拒絕驗證已經升級的節點生產出的區塊,不過已經升級的節點可以驗證未升級節點生產出的區塊,然後大家各自延續自己認為正確的鏈,所以分成兩條鏈。[9]

圖2–53 硬分叉是什麼

硬分叉的特點如下:

1. 沒有向前兼容性,之前的版本將不可再用,需要強制升級;

2. 在區塊鏈層面會有分叉的兩條鏈,一條舊鏈,一條分叉新鏈;

3.需要在某個時間點全部同意分叉升級,不同意的將會進入舊鏈。[10]

圖2–54硬分叉的特點

當新共識規則發佈後,沒有升級的節點由於不瞭解新共識規則,就會生產不合法的區塊,從而產生臨時性分叉。

軟分叉的定義是這樣的:

軟分叉是指比特幣交易的數據結構發生改變時,未升級的節點可以驗證已經升級的節點生產出的區塊,而且已經升級的節點也可以驗證未升級的節點生產出的區塊。[11]

圖 2–55 軟分叉結構圖

圖2–56 軟分叉是什麼

軟分叉的特點如下:

1. 有較好的兼容性,之前版本的部分功能可用,可不升級;

2. 在區塊鏈層面沒有分叉的鏈,只是組成鏈的區塊有新區塊和舊區塊之分;

3. 相當長的時間裡,可允許不進行升級,繼續使用原版本生成舊區塊,與新區塊並存。

圖2–57 軟分叉的特點

四、舉幾個有趣的例子

我們模擬一種極端的情況,抽像出一個比特幣王國來解釋所謂的新系統的兼容性問題。在遙遠的島上,有一個比特幣王國,大家相安無事地生活了很多年,由於王國設施陳舊,存在著這樣那樣的問題,於是大家開始討論解決方案。

有人覺得應該推翻了重新修葺,並且上書了一本「如何建造一個華麗的王國」的奏書,裡面有九九八十一種推翻重建的方案。有些人認為補補窟窿,刷刷牆還是勉強可以看,根本不用大動干戈。兩派爭論不休,無法達成一致,這就引起了分叉。

圖2–58 比特幣王國的例子

什麼情況下會出現硬分叉呢?派係爭論不休,於是開始各幹各的。提議推翻重建的人雇了幾十個民工,新的建築煥然一新,王國裡新舊建築的風格相當不統一。這就相當於比特幣世界裡的硬分叉,表現在比特幣世界裡就是從新的節點開始,分成了兩條鏈——舊鏈和新鏈,兩條鏈互不兼容。

圖2–59 打個比方說明硬分叉

軟分叉會出現什麼結果呢?派係爭論不休,但要求重建的一派有了妥協的意願,同意讓裝修裝飾派試一試他們的方案。於是裝修隊開始對牆上的破洞進行修補,把陳舊的顏色換成鮮艷的顏色。這時,王國裡正常的生活仍然在繼續。新舊面貌共存。表現在比特幣上就是未升級的節點按照以前的規則繼續計算,但已經升級的節點仍然按照擴容後的規則計算。因此,Bitcoin Core(比特幣核心錢包)主張的Segwit(隔離見證)升級後,比特幣依舊是比特幣,不會有新的幣種誕生。

圖2–60 打個比方說明軟分叉

五、分叉有什麼影響嗎

說到影響,我們看看近來比較成功的一次分叉。

2016年7月,以太坊開發團隊通過修改以太坊軟件的代碼,在第192 000區塊,強行把The DAO(分佈式自治組織)及其子DAO的所有資金全部轉到一個特定的退款合約地址從而「奪回」黑客所控制的DAO合約的以太幣。

之後,便形成兩條鏈,一條為ETC(原鏈),一條為新的ETH(分叉鏈),以太坊成功地硬分叉了!

圖2–61以太坊的硬分叉

硬分叉對比特幣礦工的影響:

硬分叉這事能鬧起來,礦工絕對出了大力氣。一旦分叉,礦工挖礦便簡單了,可以挖到更多幣了,多開心啊,但是,他挖出來的幣值不值錢還得看有沒有人買,畢竟市場決定價格。

圖2–62 對礦工的影響

硬分叉對比特幣產業鏈的影響:

從技術角度來看,硬分叉的主要問題是它需要所有用戶轉移到具有不同規則的新區塊鏈。為了保持比特幣的品牌價值和對比特幣的信仰,比特幣的支持者是反對硬分叉的。如果真的硬分叉,將會掀起一場徹底的網絡戰和輿論戰。

硬分叉對幣價的影響:

再說一句,分叉後比特幣的幣價是漲還是跌,前景究竟會如何發展,由市場的選擇決定。按常理來看,估計分叉後比特幣會先暴跌一場,然後分叉後的兩個幣種經過時間的洗禮後會漸漸回歸理性,畢竟分叉後的「1+1」肯定不等於2。

圖2–63 對產業鏈的影響

圖2–64 硬分叉對幣價的影響

比特幣分叉彷彿是一個一旦開始就永不會落幕的會議,但這也正是去中心化的比特幣的魅力之所在。

區塊鏈的工作原理

那麼,區塊鏈究竟是如何工作的呢,如圖2–65所示,我們假設A和B之間要發起一筆交易,A先發起一個請求——我要創建一個新的區塊,這個區塊就會被廣播給網絡裡的所有用戶,所有用戶驗證同意後該區塊就被添加到主鏈上。這條鏈上擁有永久和透明可查的交易記錄。全球一本賬,每個人都可以查找。

圖2–65 區塊鏈的工作原理

區塊鏈技術實際上是一個分佈式數據庫,在這個數據庫中記賬不是由個人或者某個中心化的主體來控制的,而是由所有節點共同維護、共同記賬的。所有的單一節點都無法篡改它。

如果你想篡改一個記錄,你需要同時控制整個網絡超過51%的節點或計算能力才可以,而區塊鏈中的節點無限多且無時無刻都在增加新的節點,這基本上是不可能完成的事情,而且篡改的成本非常高,幾乎任何人都承擔不起。

圖2–66 篡改賬本無法實現

區塊鏈的四大特點

經過無數次的記賬,區塊鏈就成為一個可信賴、超容量的公共賬本。它具有以下幾個特徵:[12]

1. 去中心化:在一個去中心化的金融系統中,沒有中介機構,所有節點的權利和義務都相等,任意節點停止工作都不會影響系統整體的運作。

圖2–67 區塊鏈特點之去中心化

2. 去信任:系統中所有節點之間無須信任也可以進行交易,因為數據庫和整個系統的運作是公開透明的,在系統的規則和時間範圍內,節點之間無法欺騙彼此。

圖2–68 區塊鏈特點之去信任

3. 集體維護:系統是由其中具有維護功能的所有節點共同維護的,系統中所有人共同參與維護工作。

圖2–69 區塊鏈特點之集體維護

4. 可靠的數據庫:系統中每一個節點都擁有最新的完整數據庫拷貝,修改單個節點的數據庫是無效的,因為系統會自動比較,認為最多次出現的相同數據記錄為真。

圖2–70 區塊鏈特點之可靠的數據庫

《圖說區塊鏈:神一樣的金融科技和未來社會》