一、區塊鏈的技術要素
(一)區塊與鏈
從技術角度看,區塊鏈是一種利用去中心化和去信任的方式集體維護一本資料簿的可靠性的技術方案。該方案要讓參與系統中的任意多個節點,透過一串使用密碼學方法相關聯產生的資料塊(block)的每個資料中都包含了一定時間內的系統全部資訊交流的資料,並生成資料指紋用於驗證其資訊的有效性和連結下一個資料庫塊。首先來看基於公有區塊鏈講解的兩張圖:
在圖1中存在一箇中心機構O,所有的節點要參與交易必須透過中心機構O來達成交易。
圖1 區塊鏈原理介紹1
這裡的中心機構O扮演了兩個身份,一個是維護者的身份,即維護交易賬目正常達成且真實可靠;另外一個是特權參與者的身份,即發行貨幣(資產)的權利。
如果我們要去中心化,那麼我們應該如何做?
第一是去掉維護者這個身份,如何去掉它又能保證交易正常完成且真實可靠呢?首先,在區塊鏈上我們只記錄交易本身,而不是記錄每個人的賬戶餘額。然後,大家一起記賬,都寫到一個賬本(區塊鏈)上,並且每個人都保留一份總賬副本。
這個問題其實分兩層,第一層是一個技術問題,並且已經有成熟的解決方案了,就是使用P2P技術(BT技術),大家都來同步分散式總賬本,大家傳送交易直接到節點,並且透過公私鑰技術來驗證節點;第二層是一個確認真實交易的問題,我們透過共識過程(consensus progress)來確認交易的有效性。目前有四種共識過程可以選擇:工作量證明(POW)、權益證明(POS)、股份授權證明機制(DPOS)、驗證池(POOL)。
第二是去掉特權參與者這個身份,如何去掉它又能保證資產的流通呢?這個問題也是一個核心問題。在公有鏈上,可以發行自己的虛擬貨幣,如bitcoin和litecoin。而在私有鏈的實現方式裡,是將資產直接數字化,可以將對應的物理實體細分所有權發行。在圖2中節點A直接發交易給節點D,所有節點一起確認並且驗證交易的真實性,更新了公共總賬以後,所有人再同步一下最新的總賬。
圖2 區塊鏈原理介紹2
資料來源:/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)重啟效應差——點火系統很好,但機械的預熱時間很長,並且要有足夠的影響力和傳播率。每個個體必須找回到自己的所在位置,各就各位才行。