潘超:摩根大通背後的清算體系與區塊鏈網路

買賣虛擬貨幣
摩根大通發行穩定幣一事,在圈內引發了廣泛的討論,其中又以Maker Dao經濟研究員兼中國區負責人潘超的《JPM Coin三部曲》討論得最為詳細深遠。近日我們有幸邀請到潘超做客碳鏈價值的「碳話」線下沙龍。在這場沙龍中,潘超分析了摩根大通的穩定幣和我們常見的穩定幣(如USDT)有什麼不同、摩根大通可能會採取怎樣的共識機制,其主要追求的是哪些效能等問題。以下為碳鏈價值整理的演講全文:01 摩根幣的誕生摩根幣是什麼?最簡單的說,一個摩根幣等於1美元,看起來和普通的穩定幣一樣。但是他們面向的並不是同樣的一個市場。USDT、USDC、GUSD 屬於零售性的穩定幣,一般使用者可以使用,投資者也可以在交易所上買到,做日常的交易,或者與法幣交換等等。但摩根幣的物件不是普通使用者,而是批發性的銀行。普通人接觸不到,也不會有任何交易所能夠上這個幣。摩根幣是用於實時大額資金結算,可以叫做清算憑證。摩根大通的成員銀行把美元存在一個指定賬戶裡,會按照1:1生成摩根幣。之後可以將摩根幣返還回去,獲得一對一的美元。這看起來和USDT的生成與贖回一樣,其實不然。如我剛剛所言,摩根幣是用於實時大額資金結算。為什麼大額實時資金結算需要一個這樣的東西?首先需要先了解資金是怎麼在銀行之間轉移的。

-只有一個銀行的時候,假設兩人之間發生一筆10塊錢的交易,那麼直接記錄Alice減少10塊錢,Bob增加10塊錢。

-如果有兩個銀行的時候,比如說我在工行,你在建行的話,如果說我想付給你十塊錢,我需要告訴工行說,說我要給你轉十塊錢。工行必須跟建行去達成一個協議,建立一個關係賬戶,在這個關係賬戶當中,工行和建行事先都在這一個賬戶當中先存一點錢,雙方發生交易的時候,不用在雙方之間進行一個結算,而直接在這個銀行層面就可以進行結算就可以了。

但是這樣的模式也會產生問題。只有兩個銀行時,關係賬戶還是比較方便,但是如果銀行的數量增加了,一個國家可能有成千上萬個銀行,那麼如果每兩個銀行之間都要建立這樣的一個賬戶的話,它會是一個指數關係。

那麼怎樣解決這樣一個問題?在清結算當中有兩種模式,一種叫做實時大額結算,同時還有一個叫延遲結算。對於延時結算而言,不同的銀行只負責記賬,不需要馬上進行結算。只需要去記,比如說A欠B多少錢,B欠了C多少錢,然後在一天結束的時候看一下淨額就行了。比如我們在使用微信進行一個支付的時候,它只是一個支付環節,要等到一段時間的週期後才會最終在銀行層面進行結算。

但是延遲結算存在一個問題。延遲結算中交易可以進行撤回。如果對方支付一筆非常大金額,往往需要實時結算,也就是交易的最終性。因為負擔不起資金撤銷帶來的成本。銀行也存在破產的風險,不能在每個銀行都放置一個關係賬戶。

有一個解決方式,這種辦法就是回到最初的銀行世界,依靠一個非常大的公共賬本。這個賬本所做的事情就是負責大額的實時結算,這是為什麼會存在中央銀行的原因之一。中央銀行作為一個權威,所有人都會相信這個賬本。摩根大通最早在美國就起到央行的作用,這也解釋了為什麼摩根幣會出現。涉及到大額支付的時候,銀行A跟銀行B把摩根大通網路當做一個大池子,銀行A跟銀行B都可以將自己的存款放在大池子中,然後會生成一個 1:1 的摩根幣用於即時結算。

02 摩根幣的誕生摩根幣的區塊鏈上有何不同?

那麼為什麼這個網路需要基於區塊鏈呢?

摩根大通使用區塊鏈的原因並非因為透明性、去中心化等原因,傳統公鏈的特性對於摩根大通而言,反而是 Bug。

那麼對於傳統金融機構而言,所需要的區塊鏈賬本有什麼特徵呢?

第一點是隱私性。金融機構之間需要高度隱私性。不能把所有的賬本全部都公開給大眾,否則會導致擠兌風險以及流動性風險。同時銀行也不希望讓對手銀行看見自己賬戶上的情況,並且還要保護使用者本身的財產資訊。這一點在公鏈尤其是以太坊網路,基本沒法實現的,因為只要開啟任何以太坊瀏覽器,就可以看到賬戶所有的資訊,餘額多少、每一筆交易的物件。傳統金融機構如果用區塊鏈研發,必須要解決隱私性問題。

第二點是需要高效能的區塊鏈,雖然大額的資金轉賬對時間要求並不是那麼迫切,但是現在每秒處理幾個交易的公鏈,很難是滿足全國性,或者大規模的金融應用。

第三點是最終性。最終性是說這筆交易從我賬戶發給你,那麼我就沒法對這個交易進行更改,就像現金一樣。我把一百塊錢給到你,你拿走這一百塊錢,就代表交易結束。而不是可以撤回的交易,比如在微信轉賬和 Paypal 交易中,是可以撤回的。很多區塊鏈並沒有最終性,因為會出現分叉的概率。以太坊 The DAO 事件受到攻擊的時候,就進行了一個分叉和回滾,駭客攻擊那部分和之後的交易不被承認,而傳統金融機構無法接受這件事。

03 Quorum是什麼?摩根幣採用什麼共識?

摩根大通銀行選擇的區塊鏈是什麼?摩根大通選擇的是Quorum。

Quorum 可以說是以太坊的一個克隆,是一個准入系統,更類似一個聯盟鏈。Quorum 透過鏈上加鏈下實現隱私保護,同時可以靈活的支援多種的共識機制,相對來說也具有高效能和高速度。並且抗分叉,能夠實現交易最終性。

Quorum 根據以太坊客戶端 Geth 進行更新。這也就意味著以太坊上使用的合約可以直接移植到 Quorum 上,包括一些開發協議(Truffle),都可以直接部署。以太坊是目前而言最健全的公鏈,同時也經歷了多年的攻擊以及抗攻擊,可以說是 Bulletproofed。

那麼 Quorum 和以太坊有什麼區別呢?

首先在交易上有區別,一筆交易在Quorum上可以選擇公開交易或者私人交易。對於公開交易來說,這筆交易是在Quorum主鏈上完成的。在這個主鏈上的節點都可以看到交易的資訊,如賬戶的餘額、發起方是誰、接收方是誰,和以太坊的邏輯上是一致的。如果選擇私人交易的話,就會拿到鏈下,使用獨立的伺服器。

Quorum 主鏈上只儲存加密後資料的雜湊值,而私有交易的資料將儲存在鏈下,透過管理理引擎(Tessera 和 Constellation)在節點共享。只有交易的相關方(以及監管部門)才能看到交易的細節,非相關方無法獲取交易細節。

但是這也會有一些問題,可能會出現單點故障,以及一些細節上的問題,包括監管層面。比如央行或者一個監管機構,一開始並不在這個私有列表裡,但他突然覺得這筆交易存在問題,想去檢查這筆交易。但是因為沒法將賬戶直接加進來,所以沒法看到之前的交易資訊,這從監管層面而言不是很理想。對於摩根大通這種傳統機構,他首先想到的便是監管友好。同時,這種方案無法靠區塊鏈上的共識機制解決雙花問題。

Quorum 與 Zcash 團隊合作,提供了一種鏈上的隱私方案,連線私有合約以及主鏈。合約的商業邏輯在私有合約內部達成一致,然後在主鏈上進行清算,並以零知識證明的方式使用 z-token 作為保護隱私的橋樑。z-contract 合約會生成與主鏈資產 1:1 的代幣資產 z-tokens。z-contract 也在主鏈上執行,只是其資產是隱蔽資產 (Shielded Assets) 可以隱藏交易資訊(傳送方、接收方、資產數量量等)。

Quorum 既沒有采用PoW也沒有采用PoS,因為PoW和PoS都屬於Nakamoto Consensus,任何人都可以隨時加入和退出節點,這種共識機制透過節點之間某種公平的“投票”選擇記賬人。由於節點沒有身份,可以自由地創造,相互不信任,因此投票資源必須是稀缺的。在PoW機制下,缺資源是物理算力,而在PoS下,這種資源是經濟權益。無需准入帶來了去中心化的制衡,但節點之間的“競爭”記賬不可避免地犧牲了速度與效率。

而且對於一個聯盟鏈或者私有平臺、金融機構來說,是不允許任何人都可以到公鏈作為一個節點來記賬的,所以 Quorum 不會使用 Nakamoto Consensus 全域性共識機制。

為了解決這些問題,Quorum 嘗試採用高效能的容錯分散式系統 Byzantine Fault Tolerant (BFT),如 PoA 和 IBFT; 和容故障分散式系統 Crash Fault Tolerant (CFT),如 RAFT。

PoA 的全稱是Proof of Authority (權威證明)。PoA 基於一組有身份的節點,輪流進行記賬。換句話說,每個節點在用自己的 身份和權威作為擔保。

每個區塊只要一個簽名確認就可以,因為只有這幾個節點,不需要與其他節點產生時間競爭,和中心化伺服器的效率不相上下。可能會產生一個節點權力太大的問題,為了解決這樣的單個節點權力過大的問題,每個節點必須間隔記賬。比如說這邊有四個節點,必須在間隔兩個節點之後,才能進行下一次記賬,這個方式就是去限制單個節點的權利。Quorum最初使用的是 PoA,後來因為最終性(可以進行分叉)而不再使用PoA。摩根大通每天處理6萬億美金,如果進行了分叉,參考比特幣現金的分叉對整個系統的影響,大家就能理解摩根大通為什麼不允許分叉的產生了,因為這會導致很多交易無效。

相對而言,Quorum支援的另外兩種共識機制RAFT和IBFT都是抗分叉的。RAFT 其實是一種已經廣為使用的傳統分散式一致性協議,應用在包括 Kubernetes, Docker Swarm等容器叢集管理系統。RAFT 對於容故障、可信節點,需要更快出塊時間和最終性的封閉聯盟非常有效。 與以太坊相比,RAFT 也有自己的節點。相對於以太坊任何節點都可以出塊, RAFT 的節點分為 Leader 、Follower 以及暫時的 Candidate。Leader 是負責生產區塊的唯一節點,Follower 監聽 Leader 的“心跳”,並收取 Leader 傳遞過來的區塊。接受心跳的目的是為了抗系統故障,如果 Follower 在其週期內沒有收到 Leader 發來的心跳,新的節點作為 Leader 繼續出塊。

當新的交易產生後, Leader並不會馬上記錄到鏈上,而是等收到所有 Follower的確認回執後,記錄並廣播一個執行的訊息,之後所有收到執行訊息的 Follower才會將區塊記錄在本地的鏈上,避免分叉,確保最終性。RAFT 機制下的預設出塊時間間隔是 50 ms,而且只有在有交易發生時才會出塊, 大大節省了儲存空間。但 RAFT 機制也有不足之處,要使其得以運轉的前提是全部節點是誠實的。 RAFT雖然可以容單點故障,但是不具備容錯,無法防止節點作惡和篡改歷史資料。

如何防止節點作惡同時又能保證效率和最終性呢?Quorum 支援了伊斯坦布林拜占庭容錯機制。

與 RAFT完全相信 Leader 不同,IBFT 的前提是包容 1/3 不誠實節點,透過驗證者多輪投票,達到彼此一致後出塊。由於在每個區塊高度只有一個節點負責出塊,不會有分叉的風險。 賬本不可改,試圖修改歷史紀錄需要獲取所有備份節點和主節點的私鑰。與 PoW 相比,IBFT 沒有競爭機制,出塊速度更快。不過,IBFT 的劣勢也很明顯,多個驗證階段的結構下讓訊息數量與節點數量成指數級增長,因此 IBFT 的節點數不能太多,通常用作企業級和政府的網路。

摩根幣到底使用的是哪一種共識機制呢?雖然摩根大通對 Quorum 網路的資訊十分公開, 但是並沒有公佈關於摩根幣的共識機制。

從上文推斷來看,摩根幣不會選擇PoA機制,因為沒法實現最終性,那麼只會在IBFT的跟RAFT中進行一個選擇。如果所有的節點都是摩根大通訊任的夥伴,那麼RAFT是不二的選擇;如果只是信任部分成員銀行,IBFT則是可行的試點。

至少在早期階段,摩根幣的物件是相對封閉的聯盟。 摩根大通的清算網路可以大大增加銀行之間的網路效應,而且為跨境支付提供了更加安全的合規資訊交流協議。摩根幣的推出是對以太坊 ,包括區塊鏈應用落地的一個巨大推動。從技術層面,相容以太坊合約的 Quorum網路有機會在之後和已有的公共區塊鏈進行互通,在中心化與點對點的貨幣系統之間搭建橋樑。

(演講者:Maker Dao中國區負責人 潘超;編輯:氫3;來源:碳鏈價值。)

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;