附錄 區塊鏈技術名詞與核心原理

一、區塊鏈的技術要素

(一)區塊與鏈

從技術角度看,區塊鏈是一種利用去中心化和去信任的方式集體維護一本數據簿的可靠性的技術方案。該方案要讓參與系統中的任意多個節點,通過一串使用密碼學方法相關聯產生的數據塊(block)的每個數據中都包含了一定時間內的系統全部信息交流的數據,並生成數據指紋用於驗證其信息的有效性和鏈接下一個數據庫塊。首先來看基於公有區塊鏈講解的兩張圖:

在圖1中存在一個中心機構O,所有的節點要參與交易必須通過中心機構O來達成交易。

圖1 區塊鏈原理介紹1

這裡的中心機構O扮演了兩個身份,一個是維護者的身份,即維護交易賬目正常達成且真實可靠;另外一個是特權參與者的身份,即發行貨幣(資產)的權利。

如果我們要去中心化,那麼我們應該如何做?

第一是去掉維護者這個身份,如何去掉它又能保證交易正常完成且真實可靠呢?首先,在區塊鏈上我們只記錄交易本身,而不是記錄每個人的賬戶餘額。然後,大家一起記賬,都寫到一個賬本(區塊鏈)上,並且每個人都保留一份總賬副本。

這個問題其實分兩層,第一層是一個技術問題,並且已經有成熟的解決方案了,就是使用P2P技術(BT技術),大家都來同步分佈式總賬本,大家發送交易直接到節點,並且通過公私鑰技術來驗證節點;第二層是一個確認真實交易的問題,我們通過共識過程(consensus progress)來確認交易的有效性。目前有四種共識過程可以選擇:工作量證明(POW)、權益證明(POS)、股份授權證明機制(DPOS)、驗證池(POOL)。

第二是去掉特權參與者這個身份,如何去掉它又能保證資產的流通呢?這個問題也是一個核心問題。在公有鏈上,可以發行自己的虛擬貨幣,如bitcoin和litecoin。而在私有鏈的實現方式裡,是將資產直接數字化,可以將對應的物理實體細分所有權發行。在圖2中節點A直接發交易給節點D,所有節點一起確認並且驗證交易的真實性,更新了公共總賬以後,所有人再同步一下最新的總賬。

圖2 區塊鏈原理介紹2

資料來源:https://www.zhihu.com/question/37290469/answer/79131321

這裡我們將維護者的身份下放至每一個參與者手中,並且通過加密算法來保證交易真實可信,不需要對賬,只需要維護一條總賬就可以。

1. 區塊

Header:鏈接到前面的塊並且為區塊鏈提供完整性

Body:包含驗證了塊創建過程中的比特幣交易的記錄

2. 鏈

鏈目前分為三類:

(1)公有區塊鏈(public BlockChains)

公有區塊鏈是指世界上任何個體或者團體都可以發送交易,且交易能夠獲得該區塊鏈的有效確認,任何人都可以參與其共識過程。公有區塊鏈是最早的區塊鏈,也是(目前)應用最廣泛的區塊鏈,各大bitcoins系列的虛擬數字貨幣均基於公有區塊鏈,世界上有且僅有一條該幣種對應的區塊鏈。

(2)聯合(行業)區塊鏈(consortium BlockChains)

聯合(行業)區塊鏈是指由某個群體內部指定多個預選的節點為記賬人,每個塊的生成由所有的預選節點共同決定(預選節點參與共識過程),其他接入節點可以參與交易,但不過問記賬過程(本質上還是托管記賬,只是變成分佈式記賬。預選節點的多少,如何決定每個塊的記賬者成為該區塊鏈的主要風險點),其他任何人可以通過該區塊鏈開放的API進行限定查詢。

(3)私有區塊鏈(private BlockChains)

私有區塊鏈是指僅僅使用區塊鏈的總賬技術進行記賬,可以是一個公司,也可以是個人,獨享該區塊鏈的寫入權限,本鏈與其他的分佈式存儲方案沒有太大區別。截至2015年底,保守的巨頭(傳統金融)都是想實驗嘗試私有區塊鏈,而公鏈的應用例如比特幣已經工業化,私鏈的應用產品還在摸索當中。

如何建立一個嚴謹數據庫呢?區塊鏈的辦法是將數據庫的結構進行創新。顧名思義,區塊鏈就是區塊加鏈的方式組合在一起,以這種方式形成的數據庫就是我們所謂的區塊數據庫。區塊鏈是系統內所有節點共享的交易數據庫,這些節點基於價值交換協議參與到區塊鏈的網絡中來。

區塊鏈是如何做到的呢?由於每一個區塊的塊頭都包含了前一個區塊的交易信息哈希值,這就使得從創始塊(第一個區塊)到當前區塊連接在一起形成了一條長鏈。由於如果不知道前一區塊的“交易縮影”值,就沒辦法生成當前區塊,因此每個區塊必定按時間順序跟隨在前一個區塊之後。這種所有區塊包含前一個區塊引用的結構讓現存的區塊集合形成了一條數據長鏈。

“區塊+鏈”的結構為我們提供了一個數據庫的完整歷史,從第一個區塊開始,到最新產生的區塊為止,區塊鏈上存儲了系統全部的歷史數據;區塊鏈為我們提供了數據庫內每一筆數據的查找功能;區塊鏈上的每一條交易數據,都可以通過區塊鏈的結構追本溯源,一筆一筆進行驗證;“區塊+鏈+時間戳”是區塊數據庫的最大創新點,區塊鏈數據庫讓全網的記錄者在每一個區塊中都蓋上一個時間戳來記賬,表示這個信息是這個時間寫入的,形成了一個不可篡改、不可偽造的數據庫。

(二)分散存儲

分散存儲是比特幣的一個重要概念,它是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網絡交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。區塊鏈技術是應用程序基礎,它超越了貨幣本身,這些技術能促進智能交易、分佈式股權發佈和資產轉移。在未來,區塊鏈技術可能會給我們貨幣交易、資產和數據進行帶來變革。

1. 分佈式存儲系統

將數據分散存儲在多台獨立的設備上。傳統的網絡存儲系統採用集中的存儲服務器存放所有數據,存儲服務器成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模存儲應用的需要。分佈式網絡存儲系統採用可擴展的系統結構,利用多台存儲服務器分擔存儲負荷,利用位置服務器定位存儲信息,它不但提高了系統的可靠性、可用性和存取效率,還易於擴展。

2. 集群文件系統

是指運行在多台計算機之上,相互之間通過某種方式通信,從而將集群內所有存儲空間資源整合、虛擬化並對外提供文件訪問服務的文件系統。其與NTFS、EXT等本地文件系統的目的不同,前者是為了擴展性,後者運行在單機環境,純粹管理塊和文件之間的映射以及文件屬性。集群文件系統有很多種。

(1)按照對存儲空間的訪問方式分類

可分為共享存儲型集群文件系統和分佈式集群文件系統。前者是多台計算機識別到同樣的存儲空間,並相互協調共同管理其上的文件,又被稱為共享文件系統;後者則是每台計算機各自提供自己的存儲空間,並各自協調管理所有計算機節點中的文件。Veritas的VxFS/VCS、昆騰的Stornext、中科藍鯨的BWFS、EMC的MPFS都屬於共享存儲型集群文件系統。而HDFS、Gluster、Ceph、Swift等互聯網常用的大規模集群文件系統無一例外都屬於分佈式集群文件系統。分佈式集群文件系統可擴展性更強,目前已知最大可擴展至10K節點。

(2)按照元數據的管理方式分類

可分為對稱式集群文件系統和非對稱式集群文件系統。前者每個節點的角色均等,共同管理文件元數據,節點間通過高速網絡進行信息同步和互斥鎖等操作,典型代表是Veritas的VCS;而非對稱式集群文件系統中,有專門的一個或者多個節點負責管理元數據,其他節點需要頻繁與元數據節點通信以獲取最新的元數據,比如目錄列表文件屬性等,典型代表是HDFS、GFS、BWFS、Stornext等。對於集群文件系統,其可以是分佈式+對稱式、分佈式+非對稱式、共享式+對稱式、共享式+非對稱式,兩兩任意組合。

(3)按照文件訪問方式分類

集群文件系統可分為串行訪問式和並行訪問式,後者又被俗稱為並行文件系統。串行訪問是指客戶端只能從集群中的某個節點來訪問集群內的文件資源,而並行訪問則是指客戶端可以直接從集群中任意一個或者多個節點同時收發數據,做到並行數據存取,加快速度。HDFS、GFS、pNFS等集群文件系統,都支持並行訪問,需要安裝專用客戶端,傳統的NFS/CIFS客戶端不支持並行訪問。

(三)共識機制

1. 工作量證明(POW)

就是大家熟悉的挖礦,通過與或運算計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的數據,全網其他節點驗證後一起存儲;工作量證明機制(POW)不難理解,很多情況下我們都使用POW,只是不自知而已。在不考慮驗證的情況下(無論是中心化還是非中心化的驗證),我們可以認為任何具有概率性事件的累計都是工作量證明,如淘金。假設礦石含金量為p%,當你得到一定量黃金時,我們可以認為你一定挖掘了1/p質量的礦石。而且得到黃金數量越多,這個證明越可靠。在一些其他場合我們也可以見到POW的蹤影,比如電子遊戲裡的勝率、K/D比率,在大量的交戰中一定的勝率能說明玩家的實力。同樣有些遊戲裡的成就系統、裝備體系也是POW,一般認為成就點數高的玩家在遊戲裡投入越多,越不容易詐騙,有時候交易點卡要求裝備等級或者成就點數也是這個道理。因此,POW要求出示一定的證明表明工作量,證明可以是直接記錄也可以是以概率表示,其中對於由小概率事件累計的工作,出示結果等同於證明了工作量(因為不太可能直接得到小概率結果)。在比特幣和其他類比特幣的系統中,POW系統是以合乎要求的HASH(哈希)作為工作結果。由於礦工要取得合法的計算結果需要一定量的計算,因此得到合法的計算結果就可以證明完成了一定量的計算。

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

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

2. 權益證明(POS)

POS是POW的一種升級共識機制,根據每個節點所佔代幣的比例和時間,等比例地降低挖礦難度,從而加快找隨機數的速度。POS(Proof Of Stake)就是“股權證明”,即直接證明你持有的份額。除了混合性的PPC之外,真正的POS幣是沒有挖礦過程的,也就是在創世區塊內就寫明了股權證明,之後的股權證明只能轉讓,不能挖礦。在現實世界中股權證明很普遍,最簡單的就是股票。股票是用來記錄股權的證明,同時代表著投票權和收益權。股票被創造出來以後,除了增發外,不能增加股權數量,要獲得股票只能轉讓。在純POS體系中,如NXT,沒有挖礦過程,初始的股權分配已經固定,之後只是股權在交易者之中流轉。股權從創世區塊中流出,被交易者買賣而逐漸分散化。

優點:在一定程度上縮短了共識達成的時間。

缺點:還是需要挖礦,本質上沒有解決商業應用的痛點。

3. 股份授權證明機制(DPOS)

DPOS是一種新的保障加密貨幣網絡安全的算法。它在嘗試解決比特幣採用的傳統工作量證明機制以及點點幣和NXT所採用的股份證明機制的問題的同時,還能通過實施科技式的民主以抵消中心化所帶來的負面效應。DPOS背後的基本原理是給持股人一把可以開啟他們所持股份對應的表決權的鑰匙,而不是給他們一把能挖礦的鏟子。

DPOS的基本特點是持股人永遠掌控大局,這樣一來系統便是去中心化的。雖然投票的方式不夠完美,但當涉及某事物(例如公司)的共同經營權時,這便是唯一可行的辦法。幸運的是,如果你不喜歡公司的經營者,你可以拋售股份,而市場的反饋將促使持股人比一般群眾更理性地進行投票。這樣一來每一位持股人都能夠選出某人,讓他來代替持股人進行區塊的簽署(也可以稱他為受托人)。任何能夠獲得超過1%選票的人都可以成為受托人,這些受托人便組成了“董事會”,並輪流簽署區塊。如果其中一位“董事”錯過了簽署該輪區塊,客戶端會自動將他的選票移走,因此錯過簽署區塊的“董事們”將會被投出董事會,改由其他人加入。董事會成員會收到一些酬勞,以此作為他們進行競選、擔負風險、保證上線時間的工資。而他們也必須繳納一小筆保證金,其金額相當於生產一個區塊的收入的100倍。要能夠達成盈利,一位董事(受托人)必須保證99%以上的在線時間。

優點:最大化持股人的盈利;最小化維護網絡安全的費用;最大化網絡的效能;最小化運行網絡的成本(帶寬、CPU等);大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。

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

4. 驗證池(Pool)

基於傳統的分佈式一致性技術,加上數據驗證機制,是目前行業鏈大範圍在使用的共識機制。

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

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

二、區塊鏈的核心特點

(一)開放

比特幣的本質是一個互相驗證的公開記賬系統。這個系統所做的事情,就是記錄所有賬戶發生的所有交易。每個賬號的每筆數額變化都會記錄在全網總賬本(區塊鏈)中。而且每個人手上都有一份完整的賬本,每個人都可以獨立統計出比特幣有史以來每個賬號的所有賬目,也能算出任意賬號當前餘額是多少。比特幣客戶端在使用時會進行大量的數據同步,它同步的就是全網總賬本,這些數據保障了整個體系的去中心化和每個客戶端的一切知情權。正是因為所有數據公開透明,而整個比特幣軟件也是開源的,任何人都可以去查看它的源代碼,人們才會信任這套去中心化的系統,而不擔心裡面是否隱藏著什麼陰謀。

開放交易的一個主要目的是將所有金融資產分散化,通過密碼學加密所有的人都可以發佈貨幣和各種金融資產。任何人都可以在開放的交易中創建數字標記,這些標記代表實際的價值。這個最具創新的特性是一旦某人發佈了這個數字標記後,他就不能在全球賬單中改變他們的貨幣或者股份。比特幣交易中開放性的好處是無國界、跨境。跨國匯款會經過層層外匯管制機構,而且交易記錄會被多方記錄在案,但如果用比特幣交易則直接輸入數字地址,點一下鼠標,等待P2P網絡確認交易後,大量資金就過去了,不經過任何管控機構,也不會留下任何跨境交易記錄。

開放交易也有一些缺點,它們的表現和比特幣不一樣,這意味著被比特幣社區所接受將更緩慢,而基於比特幣系統的東西更容易被社區接受。

(二)分佈式

區塊鏈技術也被稱為分佈式賬本技術。分佈式賬本從實質上說就是一個可以在多個站點、不同地理位置或者多個機構組成的網絡裡進行分享的資產數據庫。在一個網絡裡的參與者可以獲得一個唯一、真實賬本的副本。賬本裡的任何改動都會在所有的副本中被反映出來,反應時間會在幾分鐘甚至是幾秒內。在這個賬本裡存儲的資產可以是金融、法律定義上的,實體的或是電子的資產。在這個賬本裡存儲的資產的安全性和準確性是通過公私鑰以及簽名的使用去控制賬本的訪問權,從而實現密碼學基礎上的維護。根據網絡中達成共識的規則,賬本中的記錄可以由一個、一些或者是所有參與者共同進行更新。

區塊鏈就是這種分佈式賬本的底層技術,它最初是為在2008年實現的點對點數字現金系統比特幣而設計的。區塊鏈算法讓比特幣的交易可以在“區塊”裡集中起來,並通過密碼學簽名添加到現有區塊組成的“鏈”裡面。比特幣賬本是用分佈式及“無須許可”的方式構建的,任何人都可以通過解決生成新區塊所需的密碼學難題從而添加一個包含交易的區塊。這個系統的鼓勵機制是在解決難題並生成每個區塊後得到25個比特幣的獎勵。任何人只要有網絡和電腦的算力,都有機會解決這些密碼學難題並將交易添加到賬本裡,這些人被稱為“比特幣礦工”。挖礦的比喻是很恰當的,因為比特幣的挖掘是要消耗大量的電腦運算能力,因此會帶來很高的能源消耗。據估計,比特幣網絡運行所需的能源超過1GW(十億瓦特),可以與愛爾蘭的電力消耗相提並論了。

分佈式賬本技術有潛力幫助政府徵稅、發放福利、發行護照、登記土地所有權、保證貨物供應鏈的運行,並從整體上確保政府記錄和服務的正確性。在英國國民健康保險制度(NHS)裡,這項技術通過改善和驗證服務的送達以及根據精確的規則去安全地分享記錄,有潛力改善醫療保健系統。對這些服務的消費者來說,這項技術根據不同的情況,有潛力讓消費者們去控制個人記錄的訪問權並知悉其他機構對其記錄的訪問情況。

現行的數據管理方案,特別是個人數據的管理,通常是在單一的機構內架設的大型傳統IT系統。由此還會引入一系列的網絡與通信系統,才能實現與外界的交流,這也增加了額外的成本和複雜性。高度中心化的系統的單點失敗的概率很高。這也會帶來被黑客攻擊的風險,而數據經常會出現沒有及時同步的、過期的或者不準確的問題。

與此相反,分佈式賬本天生就是很難被攻擊的,因為它沒有用單一的數據庫去存儲記錄,而是保留了同一個數據庫的多個副本,因此黑客攻擊必須同時針對所有的副本才能生效。這個技術也具備阻止未授權修改或惡意篡改的能力,因為網絡中的參與者會立刻發現賬本中的某個部分被篡改了。另外,這種技術用於維護信息安全及更新信息意味著參與者可以共享數據,並確保賬本的所有副本在任何時候都是與其他副本一致的。

不過,這不代表分佈式賬本對黑客攻擊是免疫的,從原則上說,任何人只要能夠找到“合法”地修改一個副本的方法,則有可能修改賬本的所有副本。因此,保證分佈式賬本的安全性是一項重要的任務,就如確保現代社會運行所依賴的數字技術基礎設施的安全性一樣。

商業界很早就看到了這項技術的潛力。分佈式賬本提供了一種確保商品及知識產權的所有權和起源的新方法。例如,Everledger提供了一種確保鑽石身份的分佈式賬本,並記錄從採掘、切割、銷售和承保的相關信息。在這個有相當多的紙質文件被偽造的市場裡,這種技術讓鑽石的歸類更加高效,並有潛力降低詐騙的風險,以及防止“血腥鑽石”(即在戰亂或衝突地區開採並用於資助戰爭活動的鑽石貿易)進入市場。

總的來說,分佈式賬本技術提供了一個框架,讓政府可以用於減少欺詐、腐敗、錯誤和涉及大量紙質文件業務的耗費。它有潛力重新定義政府與公民在數據分享、透明度和信任意義上的關係。對私營部門來說,類似的潛力也是存在的。

(三)總賬本

可以把區塊鏈想像成一個比特幣的公共賬本,這個賬本:(1)裡面記錄著自比特幣誕生以來的所有比特幣轉賬交易(即總賬);(2)存放在互聯網的各個比特幣節點上,每個節點都有一份完整的備份;(3)是分區塊存儲的,每一塊包含一部分交易記錄,每一個區塊都會記錄著前一區塊所有交易信息的哈希值,形成一個鏈狀結構,因而稱為區塊鏈;(4)當你要發起一筆比特幣交易的時候,只需把交易信息廣播到P2P網絡中,礦工把你的交易信息記錄成一個新的區塊連到區塊鏈上,交易就完成了。

1. 公共賬本的特徵

(1)去中心化。整個賬單網絡不需要中心管理系統或機構,個體與個體之間能夠有效實現信息共享,有效提高數據存儲和運行速度。現在交易模式是交易個體將信息傳輸到中央服務器,再由中央服務器經過數據分析,返回到交易個體。而區塊鏈則可以實現網絡個體兩兩互動,交易信息就在他們之間直接傳遞,不再上傳到中央服務器,大大降低了交易的運行時間,提高了效率。

(2)每次交易產生的賬本都記錄在區塊鏈的節點上,每個賬本都有完整的備份。

(3)每個賬本都記錄著本次交易及以前所有交易的所有信息,通過這種方式,從賬本最初狀態開始,每一張賬單記錄是公開可驗證並有時序,當前每個人持有的資產數等信息都是可以被推算出來的。

(4)區塊鏈實現了兩種記錄:交易以及區塊。交易的是被存儲在區塊鏈上的實際數據,而區塊則是記錄確認某些交易是在何時,以及以何種順序成為區塊鏈的一部分。交易是由參與者在正常過程中使用系統所創建的,而區塊則由“礦工”負責創建。

(5)當你要發起一筆交易時,需把交易信息廣播到區塊鏈網絡中,“礦工”把交易信息收錄並驗證合法後,交易就完成了。

(6)對於試圖修改或者重寫交易記錄的人而言,這個成本是非常高的。在數據和用戶量低的時候相對容易通過,但如果數據和用戶量非常大,想要通過修改就將非常困難,別人不認可,你的修改就沒有意義。

2. 關於公共賬本的三個問題

第一個問題:如何保證用戶有足夠的餘額?例如你只有10個幣,而你居然發起了一筆轉20個幣的交易怎麼辦?這個問題很好解決,因為區塊鏈上記錄了所有比特幣交易記錄,只需要回溯所有的和你賬戶相關的歷史交易就能知道你這個賬戶上到底有多少餘額,餘額不對的賬戶礦工是會拒絕記錄你的交易的。由此可能又會產生一個疑問,那麼最初的比特幣是從哪裡來的呢?最初的比特幣是由系統獎勵給記錄區塊的礦工的。每一個區塊在生成的時候就會在生成這個區塊的礦工的賬戶上生成一定數量的新比特幣作為獎勵。

第二個問題:如何保證你的賬戶不被冒名頂替?這個問題也很好解決,用數字簽名技術就可以了。每個比特幣賬戶都有公鑰和私鑰,你發起交易的時候用私鑰對交易信息簽名,礦工收到信息後用公鑰檢查一下簽名就可以。

第三個問題:那麼多礦工,如何決定該由哪個礦工生成下一個區塊?解決方案是這樣的:中本聰設計了一個數學問題,這個數學問題會耗費大量的計算機cpu時間才能得出答案,同時每一次得出的答案都會作為下一次計算的初始條件。全世界的礦工一起來計算這個問題,誰先得出答案,誰就可以用這個答案生成一個新的區塊,再廣播到網絡中。收到這個新塊數據的礦工會立即停止當前的計算,用新塊裡的數據重新進行下一次計算。這就是所謂的“挖礦”。礦工產生的區塊一旦被網絡接受,他就能獲得一筆比特幣作為酬勞。這時要考慮一種情況:如果同時有兩個礦工各自得到一個正確答案,並各自生成了一個區塊廣播出去會發生什麼呢?這時在區塊鏈上同一個位置就有了兩個區塊,所謂的“分叉”就出現了。分叉是絕對不允許的,所以當礦工發現區塊鏈分叉之後,會選擇最長的一條繼續計算,短的那條區塊鏈會被丟棄。

仔細思考下這個體系,你會發現它幾乎無懈可擊。首先你不能憑空造出比特幣,只能挖礦獲得;其次你無法偽造交易,無法控制不屬於你的賬戶;最後交易一旦被確認,幾乎無法取消。

總體來看,區塊鏈數據庫系統是一個公共總賬本,全球一本賬,所有的數據記錄在這一本賬上。比如,我們可能在不同的銀行開了不同的賬戶,不同的銀行賬戶被不同的銀行所記賬,但是沒有一個系統可以提供一本總賬給你。你在不同銀行的所有賬戶到底有多少錢、欠了多少錢、每個月要付多少利息,需要你自己來計算。在區塊鏈這個數據庫,全球一本總賬,這個賬是公開透明的。維護、存儲這個賬本數據庫,使用的是共識算法,這個數據庫裡面所有的賬不是由你本人來記賬,而是由第三方記賬的。你本身無法篡改它,因為你的篡改不會被別人認可,除非你串通網上的所有人都幫助你記假賬,這需要你控制這個網絡超過51%的節點或者計算能力,你才可能在網上做假賬,但這幾乎是不可能完成的事情。如果要完成的話,成本也非常高,高到你做假賬根本不划算。共識算法確保了這個數據庫不可篡改,不能作偽,並且可追溯。即使50%的東西壞了,這個數據庫還能繼續有效地運行。同時,這個數據庫的安全保障是非對稱的加密算法,到目前為止,沒有一個黑客有能力成功攻破過任何一個比特幣賬戶,因為無法破解它。因此,從數據庫的層面,區塊鏈和現有金融體系及金融機構的數據庫相比,具有很大的潛力和價值。

經過無數次的記賬,區塊鏈就成為一個可信賴、超容量的公共賬本。

三、區塊鏈的核心原理

(一)點對點傳輸

點對點技術(peer-to-peer,簡稱P2P)又稱對等互聯網絡技術,是一種網絡新技術,依賴網絡中參與者的計算能力和帶寬,而不是依賴放在較少的幾台服務器。P2P網絡通常用於通過Ad Hoc連接來連接節點,這類網絡可以用於多種用途,各種文件共享軟件已經得到了廣泛的使用。P2P技術也被使用在類似VoIP等實時媒體業務的數據通信中。

純P2P網絡沒有客戶端或服務器的概念,只有平等的同級節點,同時對網絡上的其他節點充當客戶端和服務器。這種網絡設計模型不同於客戶端——服務器模型,在客戶端——服務器模型中通信通常來往於一個中央服務器。有些網絡(如Napster、OpenNAP或IRC @find)的一些功能(比如搜索)使用客戶端——服務器結構,另一些則使用P2P結構來實現另外一些功能。類似Gnutella或Freenet的網絡則使用純P2P結構來實現全部的任務。

1. 點對點傳輸的優勢

P2P網絡的一個重要的目標就是讓所有的客戶端都能提供資源,包括帶寬、存儲空間和計算能力。因此,當有節點加入且對系統請求增多時,整個系統的容量也增大。這是只有一組固定服務器的客戶端——服務器結構不能實現的,因為在上述這種結構中,客戶端的增加意味著所有用戶更慢的數據傳輸。

P2P網絡的分佈特性通過在多節點上複製數據,也增加了防故障的強度,並且在純P2P網絡中,節點不需要依靠一個中心索引服務器來發現數據。在後一種情況下,系統也不會出現單點崩潰。

當用P2P來描述Napster網絡時,對等協議被認為是重要的,但是實際中,Napster網絡取得的成就是通過對等節點(就像網絡的末枝)聯合一個中心索引來實現。這可以使它能快速並且高效地定位可用的內容。對等協議只是用一種通用的方法來實現這一點。

有些網絡和通信渠道,像Napster、OpenNAP和IRC@find,一方面使用了主從式架構結構來處理一些任務(如搜索功能),另一方面又同時使用P2P結構來處理其他任務。而有些網絡,如Gnutella和Freenet,只使用P2P結構來處理所有的任務,有時被認為是真正的P2P網絡。儘管Gnutella也使用了目錄伺服器來方便節點得到其他節點的網絡地址。

2. 點對點傳輸應用

賓夕法尼亞州立大學的開發者聯合麻省理工學院、西蒙弗雷澤大學的研究人員,還有第二代互聯網P2P工作組,正在開發一個P2P網絡的學術性應用。這個項目被稱為LionShare,是基於第二代網絡技術,更詳細地說是Gnutella模型。這個網絡的主要目的是讓眾多不同學術機構的用戶能夠共享學術材料。LionShare網絡混合了Gnutella分散的P2P網絡和傳統的C/S網絡。這個程序的用戶能夠上傳文件到一個服務器上,不管用戶是否在線,都能夠持續地共享。這個網絡也允許在比正常情況下小得多地共享社區中使用。與當前正在使用的其他P2P網絡的主要不同是,LionShare網絡不允許匿名用戶。這樣做的目的是防止版權材料在網絡上共享,這同時也避免了法律糾紛。另一個區別是對不同用戶有選擇性地共享個別的文件。用戶能個別選擇哪些用戶可以接收這一個文件或者這一組文件。學術社區需要這種技術,因為有越來越多的多媒體文件應用在課堂上。越來越多的教授使用多媒體文件,如音頻文件、視頻文件和幻燈片。把這些文件傳給學生是件困難的任務,而如果用LionShare這類網絡則容易得多。

(二)分佈式公共網絡

分佈式計算技術處於多種方案並存的現象,RMI(遠程方法調用)是平台獨立的,但它不是編程語言獨立的技術,客戶機和服務器代碼必須用Java來編寫;對於DCOM,它語言雖然是獨立的,但平台不是獨立的,雖然程序可以使用許多不同的編程語言,但是它只能運行在Microsoft家族的操作系統上。CORBA同時能夠做到編程語言和運行平台的獨立性,但是基於CORBA的系統必須通過ORB進行通信。於是就出現了SOAP這樣一種不捆綁任何一種硬件平台、操作系統、編程語言或網絡硬件的分佈式計算方案。

分佈式網絡拓撲結構一般呈網格狀,和集中式網絡結構不同,節點間不再是點對點的通信方式。通信方式的這種改變使得客戶機/服務器的網絡模型和網絡的計算信息處理模型更易於分佈式地實現。在分佈式網絡結構中,數據處理中心的概念已經淡化了,因為每一個網絡站點既是網絡服務對像又是網絡服務提供者。

1. 分佈式網絡結構和集中式網絡結構相比的優點

(1)電纜長度短,連線容易。因為任何一個想入網的計算設備只需就近連入網絡,而不必直接連到中央節點。

(2)可靠性高。網狀拓撲結構保證了冗余度,因為在任何兩個節點之間至少有兩條鏈路,所以當一個站點失效或者一條鏈路中斷時,網絡其他站點的通信不受影響。

(3)易於擴充。增加新的站點(site)可以在網絡的任何點將其接入。

2. 分佈式網絡結構的缺點

(1)建網複雜,網絡難於管理。

(2)故障診斷困難。分佈式結構的網絡不是集中控制,故障檢測只能逐個檢查各個站點。

(3)需要更多的網絡技術人員和管理人員。因為各個站點彼此分散,而且每個站點的維護、管理工作都不簡單;需要配備網絡專業技術人員定期進行維護,有必要的話還需專職人員進行日常維護和管理。

(三)加密貨幣發行

1. 虛擬貨幣分為非加密貨幣和加密貨幣

(1)非加密貨幣是由公司或者私人自我固定發行,可無限發行,不需要通過計算機的顯卡運算程序解答方程式獲得。知名的虛擬貨幣如百度公司的百度幣、騰訊公司的Q點、盛大公司的點券、新浪推出的微幣(用於微遊戲和新浪讀書)等,因為其依據市場需求可無限發行,所以不具備收藏及升值價值。

(2)加密貨幣不依靠法定貨幣機構發行,不受央行管控。它依據全世界的計算機運算一組方程式開源代碼,通過計算機顯卡、CPU大量的運算處理產生,並使用密碼學的設計來確保貨幣流通的各個環節安全性。基於密碼學的設計可以使加密貨幣只能被真實的擁有者轉移或支付。

(3)加密貨幣與其他非加密虛擬貨幣最大的不同是其總數量有限,具有極強的數量稀缺性。因為這一組方程式開源代碼總量是有限的,必須通過計算機顯卡的運算才可以獲得。

(4)正因為加密貨幣總量有限,具有稀缺性,所以開採越多,升值越高,就好像地球上埋在地裡的黃金,數量有限,永不貶值。我們計算機運算方程式代碼的這一個運算過程就好比在金礦挖礦。

(5)加密貨幣長什麼樣子:通過挖礦開採出來後,加密貨幣就是一串代碼,跟人民幣左下角的那一串序列號一樣,誰擁有這一串序列號,誰就擁有這一加密貨幣的使用權。

2. 加密數字貨幣的核心是其能成為各國貨幣之間的媒介

它最終起到的是“國際物聯網、貿易之間的結算、結匯”作用。虛擬貨幣之所以引起全球眾多領域的關注,是因為它正在製造一個全球的快流通,並且流通領域越大、範圍越廣、其使用價值越高。因此虛擬貨幣的發行必須是在全球化領域發行。並且,從公司平台上能看到流通領域和市場份額,發行商亦正在通過努力拓寬其流通領域的市場空間或平台向此目標邁進。

3. 加密數字貨幣流通必須經得起各國法律的推敲和考證

比如虛擬貨幣發行不能成為恐怖主義、非法組織機構洗錢、逃稅漏稅的工具,虛擬貨幣發行從長遠趨勢看必須能被輕鬆納入各國金融體系和稅收管理,虛擬貨幣才有足夠的市場空間和升值空間。這就要求虛擬貨幣發行管理必須實名化登記,類似比特幣之類的匿名發行方式將成為其去中心化發展的一大障礙。

4. 加密數字貨幣的發行是一種突破

加密數字貨幣的發行有利於增加社會融資渠道、降低國際融資門檻、拓寬社會融資市場,其直銷繁衍的眾籌方式是從社會底層收入抓起的一種經濟方式。其最大的助益是縮小貧富懸殊,提倡人人參與,為社會各界提供一個共榮的平台。因此虛擬貨幣發行模式必須受眾面夠廣。比特幣價格高企,已經不適合一般人去投資,而易物幣的發行模式受眾面更廣,對推動底層經濟較為助益。

5. 投資者、大眾消費者、使用者必須有貨幣戰爭的意識,有全球性視野

因為各國都寄希望於自己國家的虛擬貨幣能充當未來支付媒介系統,畢竟這是一場全球化領域的經濟戰。雖然從表象看虛擬貨幣目前是介於企業之間的戰爭。但從實質看,虛擬貨幣已經成為國家與國家之間主導的一場暗戰。

(四)去中心化

去中心化可能會在某些領域具備巨大競爭優勢。去中心化不代表沒有中心,只是將中心從“人”這種不可控的因素中外移至可控並且中立的因素中,這樣之前的競爭優勢就不會存在。因此從某種意義上來說,去中心化是一個“降權”的操作,同時對於個人而言可控性更好。經過這樣的操作後整個網絡形態會成為一個“細胞組織”,它們互相很難受到影響,因而更加穩定,但同時面臨了新鮮空氣進入困難的問題。去中心化是一個社會學操作,但是更優秀的處理思路可能會來自生物學或者其他學科。去中心化對中層用戶更有價值,中層用戶可以通過迅速成長,擁有自己的話語權。去中心化的益處在於,能夠伸展出更多有價值的小中心,有人的地方就必然有中心,只是聚合半徑大小的問題。

1. 去中心化的優點

(1)可適應性——就像人的腦袋一樣,即使部分區域失去效果(像失憶和失語),但不影響腦袋的整體運行,部分不影響整體。

(2)可進化性——像DNA、電腦系統一樣可以不斷升級。

(3)無限性——這是一套並行運行系統,所以會有冗餘部分,它的自我延伸性和自動繁衍性是永無止境的。

(4)彌補性——無規則組合會產生無數的可能性,同時又不強調個體的重要性,就算個體有缺陷和不足也不會導致整體的不足。

2. 去中心化的缺點

(1)並非最優——存在冗余又沒有中央控制,有時效率是低下的,資源分配是混亂的。如螞蟻搬家時的混亂,但它最終又會走向有序。

(2)不可控制——沒有絕對領導和權威,所帶來的後果就像放出去的羊,被狼吃掉的可能性很大。也像癌細胞,你永遠殺不死它,它會自動調整。

(3)不可預測——像微博上的一件小事件,通過這種網狀傳播,它的效應被無限擴大化,成了流行或熱點事件。

(4)不可知——分佈式的去中心化是一種橫向因果關係,A影響其他,其他影響A,一切像網一樣散開傳播和產生影響。

(5)重啟效應差——點火系統很好,但機械的預熱時間很長,並且要有足夠的影響力和傳播率。每個個體必須找回到自己的所在位置,各就各位才行。

《區塊鏈:重塑經濟與世界》