講幾個問題,區塊鏈底層架構

區塊鏈的模型架構

有關區塊鏈的模型結構問題,已經被談論千遍萬遍了,基本已經成為一種定義式的問題了,我們將使用諸多資料中相對較為全面,也較容易理解的一類解釋來向大家闡述。

區塊鏈基礎架構分為6層,包括數據層、網絡層、共識層、激勵層、合約層、應用層。每層分別完成一項核心功能,各層之間互相配合,實現一個去中心化的信任機制。

一、數據層

數據層主要描述區塊鏈技術的物理形式。區塊鏈系統設計的技術人員們首先建立的一個起始節點是「創世區塊」,之後在同樣規則下創建的規格相同的區塊通過一個鏈式的結構依次相連組成一條主鏈條。隨著運行時間越來越長,新的區塊通過驗證後不斷被添加到主鏈上,主鏈也會不斷地延長。

圖2–71區塊鏈的模型架構

每個區塊中也包含了許多技術,比如時間戳技術,它可以確保每一個區塊按時間順序相連接;再比如哈希函數,它能夠確保交易信息不被篡改。

二、網絡層

網絡層的主要目的是實現區塊鏈網絡中節點之間的信息交流。區塊鏈網絡本質上是一個P2P(點對點)網絡。每一個節點既接收信息,也產生信息。節點之間通過維護一個共同的區塊鏈來保持通信。[13]

區塊鏈的網絡中,每一個節點都可以創造新的區塊,在新區塊被創造後會以廣播的形式通知其他節點,其他節點會對這個區塊進行驗證,當全區塊鏈網絡中超過51%的用戶驗證通過後,這個新區塊就可以被添加到主鏈上了。

圖2–72 區塊鏈的網絡層

三、共識層

共識層能讓高度分散的節點在去中心化的系統中高效地針對區塊數據的有效性達成共識。區塊鏈中比較常用的共識機制主要有工作量證明、權益證明和股份授權證明三種,我們在下面的章節中會重點講解。

四、激勵層

激勵層的主要功能是提供一定的激勵措施,鼓勵節點參與區塊鏈的安全驗證工作。我們以比特幣為例,它的獎勵機制有兩種。在比特幣總量達到2 100萬枚之前,獎勵機制有兩種,新區塊產生後系統獎勵的比特幣和每筆交易扣除的比特幣(手續費)。而當比特幣總量達到2 100萬時,新產生的區塊將不再生成比特幣,這時獎勵機制主要是每筆交易扣除的手續費。

圖2–73 區塊鏈的激勵層

五、合約層

合約層主要是指各種腳本代碼、算法機制以及智能合約等。我們以比特幣為例,比特幣是一種可編程的貨幣,合約層封裝的腳本中規定了比特幣的交易方式和過程中涉及的種種細節。

六、應用層

應用層封裝了區塊鏈的各種應用場景和案例,比如基於區塊鏈的跨境支付平台OKLink,以及在「應用篇」中我們將講到的五花八門的應用。

區塊鏈的基本類型

一、公有鏈

公有鏈是指全世界任何人都可讀取、任何人都能發送交易且交易能獲得有效確認,任何人都能參與共識過程的區塊鏈——共識過程決定哪個區塊可被添加到區塊鏈中,同時明確當前狀態。[14]

圖2–74區塊鏈的公有鏈

公有鏈有如下幾個特點:

1. 保護用戶免受開發者的影響

在公有鏈中程序開發者無權干涉用戶,區塊鏈可以保護其用戶。

2. 訪問門檻低

任何人都可以訪問,只要有一台能夠聯網的計算機就能夠滿足基本的訪問條件。

3. 所有數據默認公開

公有鏈中的每個參與者可以看到整個分佈式賬本中的所有交易記錄。

二、私有鏈

私有鏈是指其寫入權限僅在一個組織手裡的區塊鏈,目的是對讀取權限或者對外開放權限進行限制。

圖2–75 區塊鏈的私有鏈

私有鏈有如下幾個特點:

1. 交易速度非常快

私有鏈中少量的節點具有很高的信任度,並不需要每個節點都來驗證一個交易。因此,私有鏈的交易速度比公有鏈快很多。

2.為隱私提供更好的保障

私有鏈的數據不會被公開,不能被擁有網絡連接的所有人獲得。

3.交易成本大幅降低甚至為零

私有鏈上可以進行完全免費或者至少說是非常廉價的交易。如果一個實體機構控制和處理所有的交易,它就不再需要為工作收取費用。

4.有助於保護其基本的產品不被破壞

銀行和傳統的金融機構使用私有鏈可以保證它們的既有利益,以至原有的生態體系不被破壞。

三、聯盟鏈

聯盟鏈是指其共識過程受到預選節點控制的區塊鏈。例如,對由15個金融機構組成的共同體而言,每個機構都運行著一個節點,為了使每個區塊生效需要獲得其中半數以上也就是8家機構的確認。區塊鏈可能會允許每個人讀取,也可能會受限於參與者走混合路線。[15]

圖2–76 區塊鏈的聯盟鏈

聯盟鏈可以視為「部分去中心化」,區塊鏈項目R3 CEV就可以認為是聯盟鏈的一種形態。

四、其他的說法

我們再來說說區塊鏈分類中的其他幾種說法——許可鏈、混合鏈和複雜鏈。

許可鏈是指每個節點都需要許可才能加入的區塊鏈系統,私有鏈和聯盟鏈都屬於許可鏈。隨著區塊鏈技術的日益發展,區塊鏈的技術架構不再簡單地劃分為私有鏈和公有鏈,它們之間的界限越來越模糊,於是複雜鏈和混合鏈的概念就逐漸被人提出來了。

區塊鏈的發展脈絡

根據區塊鏈科學研究所創始人梅蘭妮·斯萬(Melanie Swan)的觀點,區塊鏈技術發展分三個階段或領域:區塊鏈1.0、區塊鏈2.0和區塊鏈3.0。[16]

區塊鏈1.0:以比特幣為代表的可編程貨幣。它更多是指數字貨幣領域的創新,如貨幣轉移、兌付和支付系統等。

區塊鏈2.0:基於區塊鏈的可編程金融。它更多涉及一些合約方面的創新,特別是商業合同以及交易方面的創新,比如股票、證券、期貨、貸款、清算結算、所謂的智能合約等。

區塊鏈3.0:區塊鏈在其他行業的應用。它更多地對應人類組織形態的變革,包括健康、科學、文化和基於區塊鏈的司法、投票等。

圖2–77 區塊鏈的發展脈絡

區塊鏈的共識機制

我們在瞭解共識機制之前,先來看兩個古老的引入問題,類兩軍問題和拜占庭將軍問題。

問題一:類兩軍問題

說到這個問題,網絡上廣為流傳的解釋如下:

有兩個相距很遠的軍隊要傳遞信息,藍軍派遣一個信使去跟紅軍說:「有本事把意大利炮拿出來!」紅軍收到信息後又派了一個信使去跟藍軍說:「收到指令!」然後藍軍又派一個信使去跟紅軍說:「知道你收到指令了!」然後紅軍又派一個信使去跟藍軍說:「知道你知道我收到指令了!」然後藍軍又派一個信使去和紅軍說:「知道你知道我知道你收到指令了!」然後就沒完沒了了。

圖2–78 類兩軍問題

問題二:拜占庭將軍問題

拜占庭將軍問題是一個很古老的問題,具體闡述如下:

拜占庭羅馬帝國在軍事行動中,採取將軍投票的策略來決定是進攻還是撤退,也就是說如果多數人決定進攻,就衝上去。但是軍隊中如果有奸細(比如將軍已經反水故意亂投票,或者傳令官叛變擅自修改軍令),那怎麼保證最後投票的結果真實反映了忠誠的將軍的意願呢?[17]

我們詳細說明一下這個問題。

在很久很久以前,有一個強大的帝國叫作拜占庭,它的軍隊非常強大,周圍有10個小國家,飽受拜占庭帝國的欺壓,但是,必須同一時間有6個以上的國家進攻才有可能打敗拜占庭帝國,否則就一定會戰敗。

這個時候,問題就出現了,古時候軍隊之間的通信完全依賴於人,如果一個國家的軍隊裡有奸細,無論是下令的將軍還是傳信的通信兵,都可能會使得另外9個國家收到假消息,從而造成作戰失敗。那麼,如果你是其中一個小國的國王,你該如何判斷一定會有另外5個以上的國家與你並肩作戰呢?畢竟一個不小心,你就亡國了。

圖2–79 拜占庭將軍問題

正是由於以上這些問題,我們需要達成共識。區塊鏈上的共識機制有多種,沒有一種共識機制是完美無缺的,同時也意味著沒有一種共識機制是適合所有應用場景的。這裡我們引用了「張童鞋」的一篇文章,並獲得了他的授權。我們選取了其中比較有特點的9種共識機制做一個簡單介紹,常見的共識機制主要有工作量證明、權益證明和股份授權證明三種。

一、工作量證明

工作量證明(Proof of Work,簡稱PoW)通常只能從結果證明,因為監測工作過程通常是煩瑣且低效的。

比特幣在區塊的生成過程中使用了PoW機制,一個符合要求的區塊哈希值由N個前導零構成,零的個數取決於網絡的難度值。要得到合理的區塊哈希值需要經過大量的嘗試計算,計算時間取決於機器的哈希運算速度。當某個節點提供出一個合理的區塊哈希值,說明該節點確實經過了大量的嘗試計算,當然,這並不能得出計算次數的絕對值,因為尋找合理的哈希值是一個概率事件。當節點擁有佔全網n%的算力時,該節點即有n%的概率找到區塊哈希值。

PoW依賴機器進行數學運算來獲取記賬權,資源消耗大、共識機制高、可監管性弱,同時每次達成共識需要全網共同參與運算,性能效率比較低,容錯性方面允許全網50%節點出錯。

PoW的優點:完全去中心化,節點自由進出。

PoW的缺點:目前比特幣已經吸引全球大部分的算力,其他再使用PoW共識機制的區塊鏈應用很難獲得相同的算力來保障自身的安全;挖礦造成大量的資源浪費;共識達成的週期較長。

使用PoW的項目有:比特幣、以太坊前三個階段——Frontier(前沿)、Homestead(家園)、Metropolis(大都會)。以太坊的第4個階段,即Serenity(寧靜),將採用權益證明機制。

二、權益證明

權益證明(Proof of Stake,簡稱PoS)由「Quantum Mechanic」2011年在比特幣論壇講座上首先提出,後經Peercoin(點點幣)和NXT(未來幣)以不同思路實現。

PoS的主要理念是節點記賬權的獲得難度與節點持有的權益成反比,相比PoW,其在一定程度上減少了數學運算帶來的資源消耗,性能也得到了相應的提升,但依然是基於哈希運算,競爭獲取記賬權的方式,可監管性弱。該共識機制的容錯性和PoW相同。它是PoW的一種升級,根據每個節點所佔代幣的比例和時間,等比例地降低挖礦難度,從而加快找到隨機數的速度。

在PoW中,一個用戶可能拿1 000美元來購買計算機,並加入網絡來挖礦以此產生新區塊,從而得到獎勵。而在PoS中,用戶可以拿1 000美元購買等價的代幣,並把這些代幣當作押金放入PoS機制中,這樣用戶就有機會產生新區塊而得到獎勵。

總體而言,這個系統中存在一個持幣人的集合,他們把手中的代幣放入PoS機制中,這樣他們就變成驗證者。比如對區塊鏈最前面的一個區塊而言,PoS算法在驗證者中隨機選取一個(選擇驗證者的權重依據他們投入的代幣量,比如一個投入押金為10 000代幣的驗證者被選擇的概率是一個投入1 000代幣驗證者的10倍),給他權利產生下一個區塊。如果在一定時間內,這個驗證者沒有產生一個區塊,則選出第二個驗證者代替產生新區塊。與PoW一樣,PoS以最長的鏈為準。

圖2–80 PoS算法隨機選取

隨著規模經濟(指擴大生產規模引起經濟效益增加的現象)的消失,中心化所帶來的風險減小了。價值1 000萬美元的代幣帶來的回報不多不少,是價值100萬美元代幣的10倍,不會有人因為負擔得起大規模生產工具而得到不成比例的額外回報。

PoS的優點:在一定程度上縮短了共識達成的時間;不再需要大量消耗能源去挖礦。

PoS缺點:還是需要挖礦,本質上沒有解決商業應用的痛點;所有的確認都只是一個概率上的表達,而不是一個確定性的事情,理論上有可能存在其他攻擊影響,例如,以太坊的DAO攻擊事件造成以太坊硬分叉,而ETC隨之出現,事實上證明了此次硬分叉的失敗。

三、股份授權證明

BitShares(比特股)社區首先提出了股份授權證明(簡稱DPoS)機制,它與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬,但其合規監管、性能、資源消耗和容錯性與PoS相似。類似於董事會投票,持幣者投出一定數量的節點,進行代理驗證和記賬。

DPoS的工作原理如下:每個股東按其持股比例擁有相應的影響力,51%股東投票的結果將是不可逆且有約束力的,其挑戰是通過及時而高效的方法達到「51%批准」。為了達到這個目標,每個股東可以將其投票權授予一名代表。獲票數最多的前100位代表按既定時間表輪流產生區塊。每位代表分配到一個時間段來生產區塊。

圖2–81 DPoS工作原理

所有的代表將收到等同於一個平均水平的區塊所含交易費的10%作為報酬。如果一個平均水平的區塊用100股作為交易費,一位代表將獲得一股作為報酬。

網絡延遲有可能使某些代表沒能及時廣播他們的區塊,而這將導致區塊鏈分叉。然而,這不太可能發生,因為製造該區塊的代表可以與製造該區塊前後的區塊的代表建立直接連接。建立這種與你之後的代表(也許也包括其後的那名代表)的直接連接是為了確保你能得到報酬。

DPoS的投票模式可以每30秒產生一個新區塊,並且在正常的網絡條件下,區塊鏈分叉的可能性極其小,即使發生也可以在幾分鐘內得到解決。執行該模式的基本步驟如下:

1. 成為代表。成為一位代表,你必須在網絡上註冊你的公鑰,並獲得一個32位的特有標識符。該標識符會被每筆交易數據的「頭部」引用。

2. 授權投票。每個錢包有一個參數設置窗口,在該窗口裡用戶可以選擇一位或更多的代表,並將其分級。一經設定,用戶所做的每筆交易將把選票從「輸入代表」轉移至「輸出代表」。一般情況下,用戶不會創建專門以投票為目的的交易,因為那將耗費他們一筆交易費。但在緊急情況下,某些用戶可能覺得通過支付費用這一更積極的方式來改變他們的投票是值得的。

3. 保持代表誠實。每個錢包將顯示一個狀態指示器,讓用戶知道他們的代表表現如何。如果他們錯過了太多的區塊,那麼系統將會推薦用戶更換一位新的代表。如果任何代表被發現簽發了一個無效的區塊,那麼所有標準錢包將在每個錢包進行更多交易前要求選出一位新代表。

4. 抵抗攻擊。在抵抗攻擊上,前100位代表所獲得的權力是相同的,即每位代表都有一項平等的投票權,因此,無法通過獲得超過1%的選票而將權力集中到單一代表上。由於只有100位代表,不難想像一個攻擊者可以對每位輪到其生產區塊的代表依次進行拒絕服務攻擊。幸運的是,由於每位代表的標識是其公鑰而非IP地址,這種特定攻擊的威脅很容易被減輕。這將使確定DDoS(分佈式拒絕服務)攻擊目標更為困難。而代表之間的潛在連接將使妨礙他們生產區塊變得更為困難。

圖2–82 DPoS的投票模式

DPoS的優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。

DPoS的缺點:整個共識機制還是依賴於代幣,而很多商業應用是不需要代幣的。

四、投注共識

投注共識是以太坊下一代的共識機制Casper(鬼馬小精靈)引入的一個全新概念,屬於PoS。Casper的共識是按區塊達成的,而不是像PoS那樣按鏈達成。

為了防止驗證人在不同的世界中提供不同的投注,我們還有一個簡單嚴格的條款:如果你兩次的投注序號一樣,或者說你提交了一個無法讓Casper依照合約處理的投注,你將失去所有保證金。從這一點我們可以看出,Casper與傳統的PoS不同的是,Casper有懲罰機制,這樣非法節點通過惡意攻擊網絡不僅得不到交易費,而且還面臨著保證金被沒收的風險。

Casper協議下的驗證人需要完成出塊和投注兩個活動。具體如下:

出塊是一個獨立於其他所有事件而發生的過程,驗證人收集交易,當輪到他們的出塊時間時,他們就製造一個區塊,並簽名,然後發送到網絡上。投注的過程更為複雜一些,目前Casper默認的驗證人策略被設計為模仿傳統的拜占庭容錯共識:觀察其他的驗證人如何投注,取33%處的值,向0或者1進一步移動。

而客戶端確認當前狀態的過程是這樣的:一開始先下載所有的區塊和投注,然後用上面的算法來形成自己的意見,但是不公佈意見;它只要簡單地按順序在每個高度進行觀察,如果一個區塊的概率高於0.5就處理它,否則就跳過它。在處理所有的區塊之後所得到的狀態就可以顯示為區塊鏈的「當前狀態」。客戶端還可以給出對於「最終確定」的主觀看法:如果高度k之前的每個區塊形成的意見高於99.999%或者低於0.001%,那麼客戶端就可以認為前k個區塊已經最終確定。

五、瑞波共識機制

瑞波共識算法使一組節點能夠基於特殊節點列表形成共識。初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由該俱樂部51%的會員投票通過。共識遵循這些核心成員的「51%權力」,外部人員則沒有影響力。由於該俱樂部由中心化開始,它將一直是中心化的,而如果它開始腐化,股東們什麼也做不了。與比特幣及Peercoin一樣,瑞波系統將股東們與其投票權隔開,因此,它比其他系統更中心化。

圖2–83 瑞波共識機制

六、Pool驗證池

基於傳統的分佈式一致性技術以及數據驗證機制,Pool(聯營)驗證池是目前行業內大範圍使用的共識機制。它的優缺點如下。

優點:不需要代幣也可以工作,在成熟的分佈式一致性算法(Pasox、Raft)的基礎上,實現秒級共識驗證。

缺點:去中心化程度不如比特幣,更適合多方參與的多中心商業模式。

七、實用拜占庭容錯

在分佈式計算上,不同的計算機通過信息交換嘗試達成共識,但有時候,系統中的協調計算機或成員計算機可能因系統錯誤交換錯的信息,以致影響最終的系統一致性。對於拜占庭將軍問題,若根據錯誤計算機的數量,尋找可能的解決辦法,這其實無法找到一個絕對的答案,只可以用來驗證一個機制的有效程度。

而拜占庭將軍問題的可能解決方法為:在N≥3F + 1的情況下,一致性是可能實現的(N為計算機總數,F為有問題的計算機總數)。信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。

圖2–84拜占庭容錯

最早由卡斯特羅和利斯科夫在1999年提出的實用拜占庭容錯(PBFT)是第一個得到廣泛應用的拜占庭容錯算法。只要系統中有2/3的節點是正常工作的,就可以保證一致性。

實用拜占庭容錯算法的總體過程如下:客戶端向主節點發送請求調用服務操作,如「<REQUEST,o,t,c>」,這裡客戶端c請求執行操作o,時間戳t用來保證客戶端請求只會執行一次。每個由副本節點發給客戶端的消息都包含了當前的視圖編號,使得客戶端能夠追蹤視圖編號,從而進一步推算出當前主節點的編號。客戶端通過點對點消息向它自己認為的主節點發送請求,然後主節點自動將該請求向所有備份節點進行廣播。

視圖編號是連續編號的整數。主節點由公式p = v mod |R|計算得到,這裡v是視圖編號,p是副本編號,|R|是副本集合的個數。

副本發給客戶端的響應為「<REPLY,v,t,c,i,r>」,v是視圖編號,t是時間戳,i是副本的編號,r是請求執行的結果。

主節點通過廣播將請求發送給其他副本,然後就開始執行三個階段的任務。

1.預準備階段。主節點分配一個序列號n給收到的請求,然後向所有備份節點群發預準備消息,預準備消息的格式為「<<PRE–PREPARE,v,n,d>,m>」,這裡v是視圖編號,m是客戶端發送的請求消息,d是請求消息m的摘要。

2. 準備階段。如果備份節點i接受了預準備消息,則進入準備階段。在準備的同時,該節點向所有副本節點發送準備消息「<PREPARE,v,n,d,i>」,並且將預準備消息和準備消息寫入自己的消息日誌。

3. 確認階段。當「(m,v,n,i)」條件為真的時候,副本i將「<COMMIT,v,n,D(m),i>」向其他副本節點廣播,於是就進入了確認階段。所有副本都執行請求並將結果發回客戶端。客戶端需要等待不同副本節點發回相同的結果,作為整個操作的最終結果。

如果客戶端沒有在有限時間內收到回復,請求將向所有副本節點進行廣播;如果該請求已經在副本節點處理過了,副本就向客戶端重發一遍執行結果;如果請求沒有在副本節點處理過,該副本節點將把請求轉發給主節點;如果主節點沒有將該請求進行廣播,那麼就認為主節點失效;如果有足夠多的副本節點認為主節點失效,則會觸發一次視圖變更。

圖2–85展示了在沒有發生主節點失效的情況下算法的正常執行流程,其中副本0是主節點,副本3是失效節點,而c是客戶端。

實用拜占庭容錯機制是一種採用「許可投票、少數服從多數」來選舉領導者並進行記賬的共識機制,該共識機制允許拜占庭容錯,允許強監管節點參與,具備權限分級能力,性能更高,耗能更低,而且每輪記賬都會由全網節點共同選舉領導者,允許33%的節點作惡,容錯性為33%。由於特別適合聯盟鏈的應用場景,實用拜占庭容錯機制及其改進算法為目前使用最多的聯盟鏈共識算法,其改進算法在以下方面進行了調整:修改底層網絡拓撲的要求,使用P2P網絡;可以動態地調整節點數量;減少協議使用的消息數量。

圖2–85未發生主節點失效的情況下的算法

八、授權拜占庭容錯

2016年4月,小蟻公司發佈共識算法白皮書,描述了一種通用的共識機制——授權拜占庭容錯,提出了一種改進的拜占庭容錯算法,使其能夠適用於區塊鏈系統。授權拜占庭容錯算法在實用拜占庭容錯算法的基礎上進行了以下改進:

1. 將C/S(客戶機/服務器)架構的請求響應模式改進為適合P2P網絡的對等節點模式;

2. 將靜態的共識參與節點改進為可動態進入、退出的共識參與節點;

3. 為共識參與節點的產生設計了一套基於持有權益比例的投票機制,通過投票決定共識參與節點(記賬節點);

4. 在區塊鏈中引入數字證書,解決了投票中對記賬節點真實身份的認證問題。

授權拜占庭容錯機制的優點:專業化的記賬人;可以容忍任何類型的錯誤;記賬由多人協同完成;每一個區塊都有最終性,不會分叉;算法的可靠性有嚴格的數學證明。

授權拜占庭容錯機制的缺點:當1/3及以上的記賬人停止工作後,系統將無法提供服務;當1/3及以上的記賬人聯合作惡,且其他所有的記賬人被恰好分割為兩個網絡孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據。

總而言之,授權拜占庭容錯機制最核心的一點,就是最大限度地確保系統的最終性,使區塊鏈能夠適用於真正的金融應用場景。

九、帕克索斯算法

這是一種傳統的分佈式一致性算法,是一種基於選舉領導者的共識機制。領導者節點擁有絕對權限,並允許強監管節點參與,其性能高,資源消耗低。所有節點一般有線下准入機制,但選舉過程中不允許有作惡節點,不具備容錯性。

[1] 如何向你的「弱智室友」解釋區塊鏈? [EB/OL]. (2016–08–08) [2017–05–18]. http://mt.sohu.com/20160808/n463044051.shtml.

[2] 黃峰亮。淺析比特幣系統原理 [J].數字化用戶,2014 (5).

[3] 楊曉晨,張明. 比特幣:運行原理、典型特徵與前景展望[J]. 金融評論,2014(2).

[4] 唐文劍,呂雯。區塊鏈將如何重新定義世界 [EB/OL]. (2017–02–24) [2017–05–18]. http://www.jianshu.com/p/89275ffca97b.

[5] 蚊子吃青蛙。公鑰和私鑰[EB/OL]. (2013–01–09) [2017–05–18]. http://www.cnblogs.com/wenzichiqingwa/archive/2013/01/09/2853188.html.

[6] 蚊子吃青蛙。公鑰和私鑰[EB/OL]. (2013–01–09) [2017–05–18]. http://www.cnblogs.com/wenzichiqingwa/archive/2013/01/09/2853188.html.

[7] 區塊鏈運行原理[EB/OL]. (2017–03–14) [2017–05–18]. http://www.51jrit.com/news/detail/5821.

[8] 比特股(BTSX)投資白皮書V1.1[EB/OL]. (2014–09–16) [2017–05–18]. http://www.docin.com/p–924681871.html.

[9] 比特幣技術帖:什麼是共識、分叉、兼容性? [EB/OL]. (2016–10–11) [2017–05–18]. http://business.sohu.com/20161011/n469963760.shtml.

[10] 硬分叉擴容不能保證100%一定不分裂,而軟分叉可以 [EB/OL]. (2016–10–09) [2017–05–18]. http://8btc.com/thread-40509-1-1.html.

[11] 比特幣遭遇成長之痛是解決擁堵還是徹底分裂?[EB/OL]. (2017–03–21) [2017–05–18]. http://forex.cngold.org/c/2017–03–21/c4886602_2.html.

[12] 區塊鏈技術詳解[EB/OL]. (2017–02–15) [2017–05–18]. https://wenku.baidu.com/view/1321bb5e326c1eb91a37f111f18583d049640f3f.html.

[13] 區塊鏈技術從初級到深入介紹 [EB/OL]. (2016–06–15) [2017–05–18]. http://8btc.com/thread-34731-1-1.html?utm_ source=tuicool&utm_medium=referral.

[14] 全面認識區塊鏈:公有鏈vs私有鏈[EB/OL]. (2016–08–09) [2017–05–18]. http://www.weiyangx.com/199778.html.

[15] 黃步添. 區塊鏈形態[EB/OL]. [2017–05–18]. https://wenku.baidu.com/view/ 43d83e1b9ec3d5bbfc0a74be.html.

[16] 區塊鏈來了,未來注定將顛覆我們的生活 [EB/OL]. (2016–04–20) [2017–05–18]. http://mt.sohu.com/20160420/n445253975.shtml.

[17] 數據陽光。從技術角度看區塊鏈[EB/OL]. (2016–10–17) [2017–05–18]. http://sanwen.net/a/unmoipo.html.

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