區塊鏈以及區塊鏈技術入門詳解(1)

區塊鏈是目前一個比較熱門的新概念,蘊含了技術與金融兩層概念。從技術角度來看,這是一個犧牲一致性效率且保證最終一致性的的分佈式的數據庫,當然這是比較片面的。從經濟學的角度來看,這種容錯能力很強的點對點網絡,恰恰滿足了共享經濟的一個必須要求——低成本的可信環境。

1. 技術人員看待區塊鏈的正確姿勢

區塊鏈雖然是一個新興的概念,但它依賴的技術一點也不新,如非對稱加密技術、P2P網絡協議等。好比樂高積木,積木塊是有限的,但是不同組合卻能產生非常有意思的事物。

我接觸過一些工程師,初次接觸區塊鏈時,不約而同的表達了:都是成熟的技術,不就是分佈式存儲嘛。站在工程師的角度,第一反應將這種新概念映射到自己的知識框架中,是非常自然的。但是細究之下發現,這種片面的理解可能將對區塊鏈的理解帶入一個誤區,那就是作爲一個技術人員,忽略了區塊鏈的經濟學特性——一個權力分散且完全自治的系統。

區塊鏈本質上是一個基於P2P的價值傳輸協議,我們不能只看到了P2P,而看不到價值傳輸。同樣的,也不能只看到了價值傳輸,而看不到區塊鏈的底層技術。

可以這麼說,區塊鏈更像是一門交叉學科,結合了P2P網絡技術、非對稱加密技術、宏觀經濟學、經濟學博弈等等知識,構建的一個新領域——針對價值互聯網的探索。

那 什麼是價值互聯網 ?價值互聯網可以是當下如日中天的電子商務所衍生的支付業務。但,真的只是支付領域嗎?很顯然這是不夠的,一級資本市場,實體資產確權與轉移,證券登記交割、徵信與反欺詐。我們再仔細想想,我們的各大電商平臺的專業差評師,惡意刷單還少嗎?

如今的金融領域,除了支付比較便利之外,在其他絕大部分的業務中,我們就像是被套着鎖鏈走路一樣,我們反覆確認,反覆審覈,反覆監督,我們反覆構建一個又一個的大大小小的高可用集羣,保證線上服務的可靠性與連續性,我們僱傭一個又一個的安全工程師,交付一個又一個的滲透測試項目。爲什麼?因爲作弊的成本太低了,低到只要改數據庫的一行記錄就可以提取上百萬的資金。

強大的互聯網給了我們成本幾乎爲零的高速信息傳輸通道,卻沒有一個成本低廉可靠的高速價值傳輸通道,那麼這也就是區塊鏈即將帶來的。

區塊鏈是一個公共的分佈式總賬,下面從技術角度簡單介紹一下:

想象有一個100臺的分佈式數據庫集羣,現在的情況是這100個節點實際上的擁有者是一個機構,並且所有節點處在該機構的內網當中,所以這個機構想讓這100個數據庫節點幹嘛就幹嘛,換句話說這100個節點之間是處於一個可信任的環境,並且受控於一個實體,這個實體具有絕對仲裁分配權。

另外的情況是這樣的,想象這100個節點分別歸不同的人所有,且每個人的節點數據都是一樣的,即完全冗餘,並且所有的節點是處在廣域網當中,換句話說就是這100個節點之間是不信任的,且不存在一個實體,它擁有絕對仲裁權。

現在考慮第二種情況,採用什麼樣的算法(共識模型)能夠提供一個可信任的環境,使:

  • 每個節點交換數據過程不被篡改;交換歷史記錄不可被篡改;

  • 每個節點的數據會同步到最新數據,且承認經過共識的最新數據;

  • 基於少數服從多數的原則,整體節點維護的數據本身客觀反映了交換歷史。

區塊鏈本質上就是要解決以上第二種情況的一種技術方案,更確切的說應該叫分佈式的冗餘的鏈式總帳本方案。有關區塊鏈的一些要素,在我以往的文章裏有總結過一些:

  • 包含一個分佈式數據庫

  • 分佈式數據庫是區塊鏈的物理載體,區塊鏈是交易的邏輯載體,所有核心節點都應包含該條區塊鏈數據的全副本

  • 區塊鏈按時間序列化區塊,且區塊鏈是整個網絡交易數據的唯一主體

  • 區塊鏈只對添加有效,對其他操作無效

  • 基於非對稱加密的公私鑰驗證

  • 記賬節點要求拜占庭將軍問題可解/避免

  • 共識過程(consensus progress)是演化穩定的,即面對一定量的不同節點的矛盾數據不會崩潰。

  • 共識過程能夠解決double-spending問題

所以作爲一個技術人員,不應當只看到了區塊鏈所依賴的技術,更應該關注區塊鏈以外的點和麪,綜合來看,區塊鏈將會有趣得多。

2. 區塊鏈的一般性架構介紹

有關區塊鏈本身的發展史,網絡上資料比較多,本文不再贅述。

而有關區塊鏈技術的介紹,在各個區塊鏈平臺的社區是有詳細資料的,但是針對這些資料的總結,以及抽象出一共通概念的介紹,還是鳳毛麟角,本文嘗試總結一下。

在介紹之前,我想稍微介紹一下公有鏈,聯盟鏈的概念,這些概念是以太坊創始人Vitalik提出的,我在這些概念的基礎上做了一些研究。

其實區分公有鏈、聯盟鏈很簡單,只要看這個區塊鏈的訪問權限就可以了,如果訪問該區塊鏈需要獲得鏈上節點的許可,那麼這是一個聯盟鏈,否則是公有鏈。

根據名稱,我們也可以」望文生義「,公有表示一個完全開放的網絡,聯盟表示一個半開放的網絡,成員之間是共享的,非成員身份是沒有自由訪問權限的,所以我們也稱聯盟鏈爲許可鏈。

下面我們來看幾個比較主流的區塊鏈平臺(公有鏈,皆開源):

  • 比特幣 Bitcoin

  • 以太坊 Ethereum/經典以太坊 Ethereum Classic

  • 比特股 Bitshares

我一般戲稱爲」三巨頭「,從生態上來看,比特幣是最爲成熟穩定的,以太坊更像是一個衝在前面的勇士,比特股相比前兩位生態要小很多,但是從創新的角度,也不亞於前兩位。

其他的很多項目,是從這三個區塊鏈上衍生出來的,所以以這三個爲基礎,基本上可以吃透區塊鏈了。

不得不提的還有Linux基金會項目——HyperLedger項目(主打聯盟鏈,開源),也是旨在打造一個通用的區塊鏈技術,不過我認爲目前尚在開發迭代當中,還沒有具體的應用案例,按下不講。

另外還有一些銀行寡頭間的聯盟鏈項目——R3 CEV項目(聯盟鏈,閉源),以及中國的R3項目——ChinaLedger(聯盟鏈,閉源),當然這些不是開源的,我無法獲得有用的資料進行分析,所以就不展開了。

從技術上來看,針對不同的業務場景,對區塊鏈有不同需求,比如實時結算業務,要求區塊鏈提供秒級的交割,相對應的就是出塊速度的要求,而出塊速度過快往往會導致區塊鏈分叉(fork),形成孤兒鏈,孤兒鏈是無效的,那麼交易也就作廢了,影響了區塊鏈的最終一致性。

如果頻繁產生分叉造成相當比例的用戶交易失效,那麼可以認爲系統是不可靠的。

如果我們將這種實時性要求比較高的業務安插到聯盟鏈中,就可以控制風險,通過調整共識算法,利用快速一致共識模型(Consensus Model)來避免上述問題,雖然不如公有鏈那麼健壯,但對某些特殊場景足夠了。

所以架構層面,對公有鏈和聯盟鏈的技術也要差異化對待。

不過客戶端整體的設計還是有一些通用的概念的,如下圖:

一個區塊鏈至少分爲三層,最底層是一些通用的基礎模塊,比如基礎加密算法,網絡通訊庫,流處理,線程封裝,消息封裝與解碼,系統時間等;

中間一層是區塊鏈的核心模塊,一般包含了區塊鏈的主要邏輯,如P2P網絡協議,共識模塊,交易處理模塊,交易池模塊,簡單合約或者智能合約模塊,嵌入式數據庫處理模塊,錢包模塊等等;

最上面一層,往往都是基於Json Standard RPC的交互模塊,基於Json-RPC,我們還可以做出更好的UI界面,也可以是一個web-service。

如果區塊鏈 支持智能合約,可能還要分更多的層,比如增加BaaS層,區塊鏈上的智能合約提供自治的服務,比如下面這張以太坊的架構圖(來自Google,僅作參考):

這種分層更加關注的是區塊鏈本身的分層,即業務上的視角,而不完全是技術的。

我們再轉向比特幣的設計:

比特幣幾個模塊之間的耦合度其實比較高,而且有不少歷史包袱,比特幣的發明者——中本聰在開發比特幣的時候,使用VC++開發,而VC++的標準庫中的sstream流處理性能非常感人,不得不放棄,自行實現了了基於vector 的流處理容器。而隨着c++11的推出以及標準庫的更新迭代,性能不可同日而語。

從整張圖我們可以看出,比特幣的模塊比較少,也比較簡單。chain-paramters描述了整個區塊鏈的參數設置,wallet是與地址/加密還有存儲相關的,mem-pool是未確認的交易池。得益於比特幣核心開發者的不朽貢獻,相比中本聰時代的比特幣代碼,現在的比特幣代碼質量已經相當不錯了。

以上無論哪種設計,一般都要從P2P網絡協議作爲切入,作爲一個P2P錢包,既要提供Service也要提供Client,作爲Service依賴P2P網絡協議,作爲Client依賴Json-RPC。

需要指出的是,目前」三巨頭」所使用的賬戶模型是不同的(所謂賬戶模型是指賬戶記賬方法),比特幣使用UXTO模型,以太坊和比特股使用賬戶餘額模型。

UXTO模型(Unspent Transaction Outputs (UTXOs) ):此模型表達了一種轉移的概念,即任何產生的新幣,在以後的生命週期中,只有轉移,沒有消亡,轉移實質上是由加密算法的簽名與驗證控制的:

賬戶餘額模型:賬戶餘額模型摒棄了這種強驗證的賬戶模型,即賬戶餘額迴歸到數字加減,這樣做提升了交易的效率。

3. 共識算法與分佈式

終於來到重點了,本文每節其實都可以展開成爲獨立的文章,內容所限,簡單講。

所謂區塊鏈共識過程,在上文有所提及,是指如何將全網交易數據客觀記錄並且不可篡改的過程。目前"三巨頭"分別使用不同的共識算法(Consensus Algorithm), 比特幣使用工作量證明PoW(Proof of Work),以太坊即將轉換爲權益證明PoS(Proof of Stake),比特股使用授權權益證明DPoS(Delegated Proof of Stake)。

以上這些算法我稱之爲「經濟學」的算法,所謂經濟學的算法,是指讓作弊成本可計算,且讓作弊成本往往遠大於作弊帶來的收益,即作弊無利可圖,通過這種思想構造一個用於節點之間博弈的算法,並使之趨向一個穩定的平衡。

相對應的我們還有計算機領域的分佈式一致性算法,例如Paxos、Raft,我也稱之爲傳統分佈式一致性算法。

他們之間的最大區別是:系統在拜占庭將軍(Byzantine Generals Problem)情景下的可靠性,即拜占庭容錯(PBFT算法支持拜占庭容錯)。然而無論是Paxos還是Raft算法,理論上都可能會進入無法表決通過的死循環(儘管這個概率其實是非常非常低的),但是他們都是滿足safety的,只是放鬆了liveness的要求, PBFT也是這樣。

下面是一些傳統分佈式一致性算法和區塊鏈共識過程的異同點。先來看相同點:

  • Append only

  • 強調序列化

  • 少數服從多數原則

  • 分離覆蓋的問題:即長鏈覆蓋短鏈區塊,多節點覆蓋少數節點日誌

這是不同點:

  • 傳統分佈式一致性算法大多不考慮拜占庭容錯(Byzanetine Paxos除外),即假設所有節點只發生宕機、網絡故障等非人爲問題,並不考慮惡意節點篡改數據的問題;

  • 傳統分佈式一致性算法是面向日誌(數據庫)的,即更通用的情況,而區塊鏈共識模型面向交易的,所以嚴格來說,傳統分佈式一致性算法應該處於區塊鏈共識模型的下面一層。

考慮上面的不同點,結合公有鏈和聯盟鏈的特徵,我們有:

  • 聯盟鏈:半封閉生態的價值網絡,存在對等的不信任節點,如某某協會成員之間。

  • 公有鏈:開放生態的價值網絡,這層主要是爲行業鏈和私有鏈提供全球交易網絡。

由於聯盟行業鏈其半封閉半開放特性,使用Delegated Proof of XXX 是可行的,可以考慮以傳統一致性算法作爲基礎加入拜占庭容錯/安全防護機制進行改進也是可以的。

而針對公有鏈,PoW/Pos/DPos等「經濟學」的算法可能是最優算法。

技術上,以上不同的共識算法,我們很多新開發區塊鏈都相應的支持一個特性:共識模塊可插拔,以應對不同場景下的要求。

下圖是一張未來區塊鏈生態示意圖:

公有鏈提供可信可靠的價值傳輸網絡,上面可以繼續組建去中心化應用(DAPP)或者部署聯盟鏈,甚至傳統數據庫都行,在上層搭建C端應用。

4. 數字資產與價值流通網絡

這裏有張未來區塊鏈發展的示意圖:

ref: Metaverse元界白皮書-CN(概要)

「三巨頭」中,比特幣在「數字貨幣」處,比特股在「去中心化交易所」附近,以太坊在「去中心化組織」處。而實際上,區塊鏈和現實的接觸點,還在圖示位置。

所以區塊鏈仍是一個正在成長的事物,結合圖5,我們希望構建一個基礎設施完善的價值傳輸網絡,上層應用豐富的區塊鏈生態,仍然需要付出巨大的努力。

下一步目標,是將資產數字化(類比資產證券化),例如我們可以將珍稀物品(藝術品/古董)數字化、知識產權數字化、票據基金等收益權數字化,將極大的提升市場運作效率,配備智能合約,甚至人工智能,可編程社會不再是夢想。


從技術角度簡單理解區塊鏈

(1)區塊鏈的本質

      區塊鏈是一種特殊的分佈式數據庫

      首先,區塊鏈的主要作用是儲存信息。任何需要保存的信息,都可以寫入區塊鏈,也可以從裏面讀取,所以它是數據庫。

      其次,任何人都可以架設服務器,加入區塊鏈網絡,成爲一個節點。區塊鏈的世界裏面,沒有中心節點(去中心化),每個節點都是平等的,都保存着整個數據庫。你可以向任何一個節點,寫入/讀取數據,因爲所有節點最後都會同步,保證區塊鏈一致。

dc3881e8925dc8fc641a92314c83e57f_thu

(2)區塊鏈的最大特點

區塊鏈沒有管理員,它是徹底無中心的。其他的數據庫都有管理員,但是區塊鏈沒有。如果有人想對區塊鏈添加審覈,也實現不了,因爲它的設計目標就是防止出現居於中心地位的管理當局。

沒有了管理員,人人都可以往裏面寫入數據,怎麼才能保證數據是可信的呢,這就是區塊鏈奇妙的地方。

(3)區塊

       區塊鏈由一個個相連的區塊(block)組成。區塊很像數據庫的記錄,每次寫入數據,就是創建一個區塊。

每個區塊包含兩個部分:

  • 區塊頭(Head):記錄當前區塊的元信息

  • 區塊體(Body):實際數據

image_thumb1

   區塊頭包含了當前區塊的多項元信息

  • 生成時間

  • 實際數據(即區塊體)的 Hash

  • 上一個區塊的 Hash

  • ......

      Hash 就是計算機可以對任意內容,計算出一個長度相同的特徵值。區塊鏈的 Hash 長度是256位,不管原始內容是什麼,最後都會計算出一個256位的二進制數字。而且可以保證,只要原始內容不同,對應的 Hash 一定是不同的。

舉例來說,字符串123的 Hash 是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六進制),轉成二進制就是256位,而且只有123能得到這個 Hash。

image_thumb3

(4)Hash 的不可修改性

區塊與 Hash 是一一對應的,每個區塊的 Hash 都是針對」區塊頭」(Head)計算的。

Hash = SHA256(區塊頭)

區塊頭包含很多內容(包括上一個區塊的Hash、當前區塊體的Hash等,見上圖)。這意味着,如果當前區塊的內容變了,或者上一個區塊的 Hash 變了,一定會引起當前區塊的 Hash 改變。

如果有人修改了一個區塊,該區塊的 Hash 就變了。爲了讓後面的區塊還能連到它,必須同時修改後面所有的區塊,否則被改掉的區塊就脫離區塊鏈了。Hash 的計算很耗時,同時修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力。

正是通過這種聯動機制,區塊鏈保證了自身的可靠性,數據一旦寫入,就無法被篡改。這就像歷史一樣,發生了就是發生了,從此再無法改變

image_thumb6

(5)採礦

由於必須保證節點之間的同步,所以新區塊的添加速度不能太快。試想一下,你剛剛同步了一個區塊,準備基於它生成下一個區塊,但這時別的節點又有新區塊生成,你不得不放棄做了一半的計算,再次去同步。因爲每個區塊的後面,只能跟着一個區塊,你永遠只能在最新區塊的後面,生成下一個區塊。所以,你別無選擇,一聽到信號,就必須立刻同步。

所以,區塊鏈的發明者故意讓添加新區塊,變得很困難。他的設計是,平均每10分鐘,全網才能生成一個新區塊,一小時也就六個。

這種產出速度不是通過命令達成的,而是故意設置了海量的計算。也就是說,只有通過極其大量的計算,才能得到當前區塊的有效 Hash,從而把新區塊添加到區塊鏈。由於計算量太大,所以快不起來。

這個過程就叫做採礦(mining),因爲計算有效 Hash 的難度,好比在全世界的沙子裏面,找到一粒符合條件的沙子。計算 Hash 的機器就叫做礦機,操作礦機的人就叫做礦工。


(6)難度係數

你可能會有一個疑問,人們都說採礦很難,可是採礦不就是用計算機算出一個 Hash 嗎,這正是計算機的強項啊,怎麼會變得很難,遲遲算不出來呢?(比特幣挖礦機,就是用於賺取比特幣的電腦,一般有專業的挖礦芯片,多采用燒顯卡的方式工作)

原來不是任意一個 Hash 都可以,只有滿足條件的 Hash 纔會被區塊鏈接受。這個條件特別苛刻,使得絕大部分 Hash 都不滿足要求,必須重算。

區塊頭包含一個難度係數(difficulty)這個值決定了計算 Hash 的難度。舉例來說,第100000個區塊的難度係數是 14484.16236122。

區塊鏈協議規定,使用一個常量除以難度係數,可以得到目標值(target)。顯然,難度係數越大,目標值就越小。

Hash 的有效性跟目標值密切相關,只有小於目標值的 Hash 纔是有效的,否則 Hash 無效,必須重算。由於目標值非常小,Hash 小於該值的機會極其渺茫,可能計算10億次,纔算中一次。這就是採礦如此之慢的根本原因

區塊頭裏面還有一個 Nonce 值,記錄了 Hash 重算的次數。第     100000 個區塊的 Nonce 值是   274148111,即計算了 2.74 億次,纔得到了一個有效的 Hash,該區塊才能加入區塊鏈。

8ab5c8ea028d7e2e2ac3a8f0e0aa9755_thu5e83108f64034f205ce83a40c1236198_thu

(7)難度係數的動態調節

就算採礦很難,但也沒法保證,正好十分鐘產出一個區塊,有時一分鐘就算出來了,有時幾個小時可能也沒結果。總體來看,隨着硬件設備的提升,以及礦機的數量增長,計算速度一定會越來越快。

爲了將產出速率恆定在十分鐘,區塊鏈發明者還設計了難度係數的動態調節機制。他規定,難度係數每兩週(2016個區塊)調整一次。如果這兩週裏面,區塊的平均生成速度是9分鐘,就意味着比法定速度快了10%,因此難度係數就要調高10%;如果平均生成速度是11分鐘,就意味着比法定速度慢了10%,因此難度係數就要調低10%。

難度係數越調越高(目標值越來越小),導致了採礦越來越難。


(8)區塊鏈的分叉

即使區塊鏈是可靠的,現在還有一個問題沒有解決:如果兩個人同時向區塊鏈寫入數據,也就是說,同時有兩個區塊加入,因爲它們都連着前一個區塊,就形成了分叉。這時應該採納哪一個區塊呢?

現在的規則是,新節點總是採用最長的那條區塊鏈。如果區塊鏈有分叉,將看哪個分支在分叉點後面,先達到6個新區塊(稱爲」六次確認」)。按照10分鐘一個區塊計算,一小時就可以確認。

現在的規則是,新節點總是採用最長的那條區塊鏈。如果區塊鏈有分叉,將看哪個分支在分叉點後面,先達到6個新區塊(稱爲」六次確認」)。按照10分鐘一個區塊計算,一小時就可以確認。

image_thumb13[1]

image_thumb12

爲了保證數據的可靠性,區塊鏈也有自己的代價。一是效率,數據寫入區塊鏈,最少要等待十分鐘,所有節點都同步數據,則需要更多的時間;二是能耗,區塊的生成需要礦工進行無數無意義的計算,這是非常耗費能源的。





精彩問答

問題:還是感覺太抽象,至今都還不能具象化的理解這個區塊鏈,也沒找到具象化的解釋。

正如區塊鏈這個名詞一樣,它是被創造出來的,並沒有以往的概念可以映射到上面,所以容易費解。我們不談這個概念,我們只需要想想我們的互聯網還需要什麼。正如比特幣白皮書提到的,一個點對點的現金系統,他使用的前提要求是很低的,不需要註冊,不需要手機號,一個點對點的網絡,只要你用設備接入,那麼你就可以使用。區塊鏈這個概念也一樣,目的是構建一個點對點的生態,解構權力帶來的不對稱。它本身只是一個共享的總賬本,不同於網絡中多節點自己記賬,再對賬,這就瓦解了中心權力。

問題:區塊鏈技術在互聯網身份認證方面如何應用?

這個問題很好。我目前所做的區塊鏈項目是涵蓋了這個概念的,也就是你所說的互聯網身份認證。我們認爲它是使區塊鏈接入現實業務的必要一環。

在我們的設想中,首先什麼是身份?身份不單單是一個ID號,一個密碼,而是一個使用者所有的操作記錄集,這個記錄集的代號纔是身份。正如賬戶丟失,然後申訴一樣,申訴的內容纔是真正定位到你這個人。區塊鏈也一樣,它需要一樣ID,同樣它也需要自動驗證你歷史記錄的合法性。目前互聯網的身份認證是依賴公安系統的,最簡單的方案就是把公安系統中的身份系統映射到區塊鏈中。另外一個方案也是用戶自定義記錄集,根據交易歷史覈對身份。當然再更遠的未來,結合人工智能,區塊鏈可能有更好的表現。

問題:實時交割數據如果放到聯盟鏈中,聯盟鏈的數據是否要最終同步到公有鏈?按分享所說,聯盟鏈的數據對公有鏈來說是不可信任的,聯盟鏈和公有鏈中數據是什麼關係?

我認爲不可能所有機構都願意把資產放到公有鏈上的,一定會出現並存的現象。理想的情況當然完全使用公有鏈搭建去中心化應用。聯盟鏈和公有鏈直接的數據是單純的引用關係,我認爲開放的關鍵數據集,如用戶身份應該沉澱到公有鏈,讓用戶自己管理,而機構比較私有的關鍵數據,應該使用訪問權限將它與公有鏈隔離,所以聯盟鏈的數據和公有鏈的數據我認爲是互補的。也就是說,聯盟鏈的數據是否要同步到公有鏈,這個要是視機構本身的需求而定。另外,公有鏈的外部數據引用,我們稱之爲data-feed,這個東西就要把人的因素引入了,比方說法務,律師,政府機構等等,作爲一個仲裁者幫助引用數據,好壞可以讓市場評價信用,正如對一個機構評級一樣,如果這樣就很透明開放了。

問題:有一些很有趣的實體項目比如智能門鎖,無人租車,這些都是線下項目,怎麼做到互聯互通呢?

首先區塊鏈的項目都是跨平臺的,也就是說嵌入式設備可以依託區塊鏈的低信用成本的優勢,自動記賬,可以是聯盟鏈的,也可以是直接基於某個公有鏈的DAPP,這些賬本是共享的,這些數據在發生引用關係的時候,可以進入公有鏈通道,打通兩者關係。

其次,任何具體的區塊鏈項目,都是需要依託一個公有鏈進行的,正如現在很多落地項目都是基於「三巨頭」,然而其實目前並沒有一個讓大家都特別滿意的標準,讓大家都服,所以我我們還要拭目以待。

問題:多謝分享,能談談最後一張圖中區塊鏈發展的各個階段可能對傳統金融行業尤其是銀行業的影響嗎

對銀行業的影響,我認爲現階段影響不大,尤其是國內。這個要視區塊鏈發展的程度而定。我所瞭解的,央行已經開始着手自己的數字貨幣了,這對銀行來說,頂多就是再來一次IT架構升級的事兒而已,可以幫助銀行業降低IT成本,也可以方便加強監管。但如果在更遠的未來,銀行可能不會特別封閉,變成一些區塊鏈的代理節點,也會被所有人所監督,而不是幾個特殊機構。

問題:如果公有鏈能夠記錄所有歷史,有沒有技術能破壞或封禁,有沒有生命終結的那天?

有一點技術風險,通用量子計算商用的時候,目前的加密技術很多都失效了,基於密碼學的區塊鏈受影響最大(當然現在的中心化架構也會受到影響)。這取決於理論研究的成果,如果出現了新的密碼學理論可以抵抗量子計算就沒問題。如果從P2P網絡的角度,是沒有任何機構或個人能封禁的,只要有兩個節點還能做交易也能記賬,這個區塊鏈就是alive的。

從經濟學的角度,區塊鏈的生死也不主要在於加密技術是否被攻破,而主要在於鏈上聚集了多少財富和利益,鏈上的數據有多少價值,如果沒有價值了,鏈自然就死了,反之如果被攻破了,不過是分叉、或者等待新的加密算法出來之後進行數據遷移,這一點跟中心化數據庫恢復備份沒有什麼太大區別。