文|蔡維德 胡子木 馬圣程 鄧恩艷
區塊鏈技術從誕生至今已經經過了十幾年的發展,誕生了諸如比特幣,以太坊,Diem(原Libra)等區塊鏈系統,現如今,區塊鏈已經不僅僅能夠支持點對點的數字貨幣轉賬交易,還可以使用智能合約進行一些復雜的數字資產交易。因此,新一代的區塊鏈需要不僅僅可以從事交易,還要保障交易的可信、安全、可監管。
比特幣系統使用的是UTXO模型,即賬戶跟隨著交易。系統只有交易記錄,沒有賬戶信息,這被稱為“半賬本模型”。某一個“賬戶”中的余額并不是由一個數字表示的,而是由當前區塊鏈網絡中所有數據跟當前“賬戶”有關的 UTXO 組成。當需要計算某個地址中的余額時,需要遍歷比特幣網絡中的全部相關區塊,并且共識與交易也是不分離的。由于系統只有交易記錄而沒有賬戶信息,監管存在問題。
以太坊系統是全賬本模型,一個地址對應一個余額。當每次查詢賬戶余額時,不需要計算UTXO的復雜過程,只需取出地址對應的余額即可。雖然以太坊系統查找賬戶信息方便,塊中也有交易信息可以找到賬戶,不存在透明度問題,但由于既要做交易又要維持賬戶,其存在擴展性問題。事實上,以太坊這種系統也比較難以管理,共識與交易是不分離的,系統要囊括以太坊代幣,以及使用ERC-20產生的其他代幣,十分臃腫。
以比特幣系統為代表的傳統區塊鏈系統存在著一些弊端,例如共識與交易沒有解耦,效率較低,無法進行監管等問題。如今區塊鏈正逐漸成為一種金融系統的基礎設施,這些都是必須要解決的問題。
本文在第二部分首先論述共識與交易耦合的原因和弊端;在第三部分介紹Diem中共識與交易解耦的機制,同時分析Diem中依然無法解決的監管問題;第四部分介紹PFMI原則在區塊鏈上的關鍵指標;第五部分介紹以互鏈網為代表的新型區塊鏈架構是如何做到共識與交易解耦、交易與結算解耦,以及如何解決Diem中存在的問題,并滿足PFMI原則;第六部分進行總結。
在傳統的區塊鏈系統中,例如比特幣的系統中,共識與交易是耦合的,當共識協議結束,就意味著交易的完成。如果一次共識的區塊之內,出現了一筆有問題的交易,那么整個區塊都將會無法通過共識,進而共識失敗。
共識與交易耦合所帶來的問題:第一,共識與交易耦合,一筆交易出現問題會導致當前正在進行共識的區塊失敗,所有在同一區塊的交易都算失敗,減慢效率。第二,共識的同時就完成同一區塊內的所有交易,這不符合金融市場基礎設施原則(Principles of Financial Market Infrastructure, PFMI)。 PFMI是多年金融系統累積下來的金融交易原則,如果違反PFMI原則,該金融系統的風險就很大。
原本共識與交易的耦合機制是為了保證共識過的交易成功執行。但由于傳統區塊鏈架構不具備監管機制,甚至設計點對點協議(P2P協議)來對抗政府的監管。隨著區塊鏈成為合規金融市場的重要基礎設施,對于區塊鏈系統的監管問題也變得日益重要,區塊鏈系統不僅僅只能夠做交易,還要在滿足各種監管要求的條件下,對交易進行監管包括反洗錢(Anti-Money Laundering)。
如果共識和交易的機制耦合,系統就有機會發生雪崩的現象而整個癱瘓,而這現象多次發生在我們實驗室。要了解這問題,需要先了解傳統區塊鏈共識失敗的原因:所有參與節點上的數據不一致;只要有一筆交易在一區塊內失敗,這區塊就算失敗,所有里面的交易都算失敗。
根據實驗數據,建塊失敗(就是共識失敗)的主要原因不是第一個原因(數據不一致),而是第2個原因。而且只需要幾筆交易失敗就可以將整個系統癱瘓。原因出于傳統區塊鏈系統的設計原則:
完成共識 = 在所有節點上的數據一致 + 在同一區塊內所有交易都成功
根據上面的設計,一個高速區塊鏈就有可能發生雪崩的現象:
1.一筆交易在一個區塊內失敗;
2.在同一區塊內所有交易都算失敗;
3.所有失敗的交易都被放回區塊鏈系統,需要再度參與共識,可是當時已經有大筆交易正在等待進行共識;
4.由于等待的交易數目增加,下一個區塊體積增大,于是下一區塊內的交易數量增加;
5.不幸的是下一個區塊的共識也失敗,所有在這區塊的交易全部需要重新再進行共識;
6.這樣,需要進行共識的交易數量越來越多,區塊體積也越來越大;
7.區塊越大(里面交易數目越大),假設每筆交易失敗的可能性小但是一致(例如0.01%,就是一萬筆交易只失敗一次),但一個區塊有5000筆交易時,這區塊就有50%可能性會失敗。如果一個區塊有1萬筆交易,這區塊的可能性就非常大;
8.這樣區塊鏈系統很快就會進入一個雪崩的場景,整個系統停止,需要人工處理,將區塊鏈網絡上充滿以及數據庫內滿載的數據清除。
而且這種雪崩現象不會因為加強區塊鏈性能而改變。事實上,區塊鏈的系統性能越好,越容易發生雪崩現象。原因很簡單,如果一個區塊鏈系統每秒只能處理100筆交易,而每筆交易失敗的可能性小(例如0.01%),由于數目小,失敗可能性不大。但是如果一個區塊鏈系統一秒可以處理2萬筆交易,失敗的可能性就大大提高了,幾乎每次都會失敗。因此將共識和交易綁定不是一個好的方案。
在新型區塊鏈系統內,如果將共識和交易解耦后,共識原則改變:
完成共識 = 在在所有節點上的數據一致 + 部分交易成功
根據上面的共識原則,共識失敗的原因只有“數據不一致”,這樣的共識失敗的可能性大大降低,性能也同時間大大提高。這樣雪崩的場景就很難再發生。
而且由于在所有節點上的數據有一致性,所有節點都知道哪一筆交易成功,哪一筆交易失敗,交易完備性還是存留。因此共識和交易解耦是區塊鏈系統內的至關重要的設計方案,沒有這個機制,很難開發高速區塊鏈系統。
Diem是Meta公司于2019年6月份提出一份震撼世界的白皮書,提出一個大型全球區塊鏈政府系統。 2020年第2版白皮書出現,并且在系統上做了大量的改革和創新,其中一個創新就是共識與交易解耦,并且使用了多個Merkel樹分別對賬戶、事件以及賬本進行維護。第2版白皮書的一個重要改革是讓系統可以被政府監管。
Diem區塊鏈內的數據按照Merkel樹的存儲方法進行儲存,并且根據根節點的哈希值檢測到任何數據的變化,與其他區塊鏈將區塊鏈視為交易區塊的集合不同,Diem區塊鏈可以長期記錄交易歷史和狀態,允許使用者從任何時間點讀取任何數據。
Diem中存在著三個Merkel樹,包括賬本歷史的Merkel樹,其中每一個葉子節點都是經過共識后后產生的賬本歷史記錄。在每一次的賬本歷史記錄中,都記錄了三個屬性,分別是賬本狀態的Merkel樹根節點的哈希值,本次共識中所包含的所有交易,以及由事件(Event)所構成的Merkel樹。在賬本狀態的Merkel樹中,記錄了系統中所有賬戶的具體信息,并通過進行哈希得到哈希值,記錄到Merkel樹中,進而防止賬戶內的數據被篡改。
Diem的共識與交易是解耦的,就是將交易和共識機制分開進行,交易過程是交易過程,共識過程是共識過程。這樣共識結束,不意味著交易的完成。之所以Diem是這樣設計,是為了避免存在一些有問題的交易導致系統的性能下降。在進行共識的一批交易中,如果有些交易出現問題,例如余額不足,GAS用盡等,則不會通過虛擬機將交易執行,而僅僅是將這筆交易和其他正確執行的交易一起打包,進行共識階段。也就是說,交易完成的成功與否,不影響共識過程的,通過共識階段的交易,也有可能是有問題的交易。Diem不止對交易進行共識,也要對交易執行的序列進行共識,因為交易序列相同,所有的節點在執行到問題交易時,都會得到相同的問題,因此都會執行完全一樣的操作,保證金融交易的完備性性。
Diem在執行交易的過程中會產生相應的事件,由于一筆交易存在于區塊當中,并不意味著交易已經被正確執行了,需要其他證據來證明交易的正確執行。交易產生的事件也會通過Merkel樹的形式保存起來,能夠防止被篡改。這樣,一個交易無論是執行成功或者失敗,交易本身,交易產生的事件以及交易過后的賬本狀態,都會存儲在區塊鏈中。共識過程只需要保證上面的三者均相同,就可以通過共識,而不需要保證交易能夠成功完成。
Diem雖然實現了共識與交易的解耦,但是卻無法滿足PFMI原則。但是在共識過程結束后,交易沒有經過監管機制的檢查就完成了,在交易之后就立刻進行了結算,這樣會導致無法及時發現例如洗錢等金融違法行為。在這之后再進行檢查監管等行為,也都為時已晚,因為經過交易結算之后,對應的資金已經轉移到對應的賬戶,繼續追蹤也將變得更加困難。
Diem在第二版的白皮書中提到他們將會使用一個嵌入式的監管機制,以滿足政府對于系統的監管需求,但是卻不公開其監管機制。同時,Diem區塊鏈的監管僅要求虛擬資產服務提供商(Virtual Asset Service Provider,VASP)符合監管條件,而不對用戶進行監管,這些都會導致Diem無法滿足PFMI原則。
PFMI是由國際清算銀行支付結算體系委員會(CPSS)和國際證監會組織(IOSCO)為了防止2008年金融危機的重演提出的國際評估標準。PFMI是一個通用原則,適用于每個國家的金融系統。雖然是國際通用的原則,但是每個國家的金融系統使用的軟件和硬件都不同,相關的法律也不同,因此雖然有統一的標準,但在實際評估時還需要大量考量。
根據PFMI的原則,許多學者和央行提出具體數字資產量化指標。PFMI原則全面,考慮到許多方面,例如系統架構、安全性、隱私性、流動性管理、和操作風險管理以及包括明確和嚴格的監管原則。在區塊鏈系統中,針對PFMI原則,我們主要分析其中的的三個特性:可靠性、可擴展性與運行效率和可監管性。
跨鏈原子互換協議設計目的是為了讓交易雙方所在的鏈盡可能的減少通信,無需相互信任就能實現跨鏈交易,同時保證交易的原子性,所有交易操作或者同時成功,或者全部失敗。
PFMI多次提出這需求,就是金融交易系統在全方面都必須是可靠的。可靠性性體現在兩個方面,一是交易平臺系統本身的可靠性,系統可靠性不僅是降低系統出錯的概率,還包括在系統出錯時可糾錯和恢復正常運行的能力,即系統的容錯能力。二是金融基礎設施的可靠性,防止由于功能設計不當誘發各種風險。可靠性量化指標有很多,例如MTBF(Mean Time BetweenFailure),平均故障間隔時間用于評估電子產品的可靠性指標,這個量化方案廣泛應用于包括電子產品在內的多項應用中。雖然這個量化指標可以用在分布式交易所系統,但是交易所作業復雜,現有的比較好的做法是使用三個過程來評估系統的可靠性。首先是交易前的運行可靠性,通過是否有身份認證來判斷。其次是交易中的可靠性,通過判斷是否存在黑手交易。最后交易后的可靠性,通過判斷是否資金到位、安全回滾來判斷。
PFMI 文件也多次提到系統必須可以擴展,而且每次提到擴展性都和可靠性一起提出,表示系統必須同時間可擴展而且擴展機制是可靠的,并且提出這會是系統運行的一個重要風險。根據PFMI原則,系統設計一定要滿足對于金融交易業務能力可擴展性的要求,當系統增大數據量時,系統的處理速度和吞吐量等系統性能不會受到大的影響。依據USL(Universal Scalability Law)理論,我們可以得到可擴展性的計算方法。目前所有分布式賬本系統的可擴展性都很低。原因是每種系統的架構不同,導致每種系統的可擴展性也不同。因此,依據分布式賬本系統的特點和上述可擴展性量化公式,將可擴展性的量化分為三大類:第一類是使用POW為基礎的共識算法,實踐表明POW算法幾乎沒有可擴展性, 第二類是使用以BFT(拜占庭將軍協議)為基礎的共識算法,該算法的可擴展性要高于POW。第三類是在使用BFT的基礎上可擴展性架構(例如ABC-TBC架構)達到無限擴展的目的。
PFMI多次提到央行或是監管單位需要監管金融系統,對監管有著明確而嚴格的規定,例如其中規定,關鍵程序和市場數據都需要提供充分的信息,公開披露,供參與者能夠準確了解。目前區塊鏈或是數字貨幣可監管性并沒有統一標準,但一些研究已經做出了嘗試。可監管性的量化條件可以主要分為三項:快速定位交易、身份認證以及建立人物以及相關公司的關系圖譜和快速停止交易。快速定位交易這是監管第一個必要條件,找不到交易信息不可能監管該交易。身份認證以及建立人物以及相關公司的關系圖譜這是傳統金融監管的機制,主要使用大數據平臺來完成。快速停止交易要求不但要及時找到信息,有的時候還需要及時停止該交易,因為有的交易是實時結算的。
我們提出一個新型交易和共識解耦的機制,同時還提出交易與結算分離,交易與賬戶分離,全流程監管。在區塊鏈系統中滿足了PFMI原則中可靠性、可擴展性和可監管性。共識與交易解耦之后,系統的性能變好,同時軟件簡化并且可以擴展。
新型區塊鏈架構符合PFMI原則,一筆交易需要多次共識。與傳統區塊鏈不同(這些區塊鏈只經過一次共識就完成所有過程)。圖1展示了新型區塊鏈架構中的共識與交易解耦的機制。當交易在經過KYC驗證后會進行第一次共識并上鏈。在經過監管系統的檢查后,會將不合規的交易拒絕,并將所有交易第二次通過共識上鏈。最后會將所有通過了監管檢查的交易經過第三次共識上鏈。

圖1 共識與交易解耦機制
具體來說,交易從提交到完成的過程可以分為以下幾個步驟:
1)一筆所述交易到達區塊鏈系統,查明所有交易方的信息后,確定資金以及資產都是確實的,在鏈上記錄查驗結果上鏈。
3)上鏈共識后,這筆交易等待交易。
4)交易完成后,將完成的交易信息第二次上鏈。如果交易沒有成功或是交易被系統拒絕,這筆交易也上鏈,表示交易失敗。
5)最后將成功完成的交易信息對外公布,第3次上鏈。如果不需要對外公布,可以省略。
一些系統可能選擇在第一步前,先上鏈一次。目的是存收到的信息,保證交易數據在作業中沒有被更改。
新型區塊鏈架構上鏈3次的有益效果是可以追蹤到所有交易流程中所有的步驟,包括失敗的交易(不能完成交易)和在結算前被拒的交易。這些被拒的交易代表相關實體單位或是客戶個人出問題,例如參與洗錢。3次上鏈保證相關信息能夠被存留下來,存留下來的信息便于以后的審計使用。
新型區塊鏈架構將共識與交易解耦,形成了一次交易,三次共識的三部曲。這樣,三次共識分別用于不同的功能,做到步步監管,并且可以在不同系統上完成,提升了系統的效率。由于各個功能相互解耦,因此可以分別進行開發、簡化、優化。在未來,根據不同的監管需要,三次共識也可以變為四次甚至五次,增加了系統的可擴展性。在整個過程中,每一次共識都有著監管機制的全程參與,保證交易的安全和可靠。
由于新型區塊鏈架構使用的是基于拜占庭容錯的共識機制(Byzantine Fault Tolerance, BFT),包括PBFT, CBFT,因此共識速度遠遠大于工作量證明(proof of work,POW)等共識機制,即便在交易前、交易中和交易后進行三次共識上鏈,依然可以保證很高的運行效率和吞吐量。
新型區塊鏈架構與Diem設計不同,Diem區塊鏈僅僅聲明使用了一種嵌入式的監管方式,而沒有詳細說明具體以何種形式進行監管。同時,Diem區塊鏈僅做到了將共識與交易解耦,沒有三段式的上鏈機制。但新型區塊鏈架構明確的提出了監管方法,使用大數據平臺在多次共識中全程進行監管,一筆交易需要通過層層驗證才可以被接受,有問題的交易也會在多次共識上鏈的過程中及時發現并拒絕。
新型區塊鏈架構可以使用大數據平臺將區塊鏈系統報告的所述交易的信息存在數據表或數據圖中,從而便于查詢并從事監管活動。如圖2所示大數據平臺位于至少一個區塊鏈系統的節點上,并和一個或多個監管單位連接。大數據平臺收集驗證數據后,進行分析,獲得當時交易情形作為監管決策的依據。同時,大數據平臺也可以從其他可靠單位獲得相關監管信息,或者自身收集并分析信息。大數據平臺根據黑名單以及其他評級數據,包括自己收集和分析的數據,對正在進行的交易快速評估,決定是否通過這筆交易。完成評估后,大數據平臺立刻將評估決定實時發送到區塊鏈系統,區塊鏈系統根據監管報告,確定完成這筆交易或是拒絕這筆交易。因為共識與交易解耦,所以不論交易是否批準可以完成,區塊鏈系統都會立刻將相關信息放進區塊中,共識后上鏈。如果最后決定是拒絕這筆交易,例如相關單位或是個人如果參與洗錢活動,那么大數據平臺和區塊鏈系統都會自動報告該信息給監管單位;

圖2 大數據平臺在區塊鏈系統的超級節點
新型區塊鏈架構中由于存在多次共識,多次上鏈的機制,不僅僅做到了共識與交易的解耦,同時也做到了交易和結算的解耦。在共識與交易解耦方面,新型區塊鏈架構中分為三次共識,交易通過監管檢查后,只進行一次交易。明顯的可以看出共識和交易是分開進行的,交易無論是否成功,是否會被監管機制所拒絕,都能夠正常的進行共識,并且會將交易是否成功的信息也都通過共識,記錄在區塊鏈中。同時,由于存在監管機制,對應交易的監管信息也都將被記錄在區塊鏈上,保證所有的數據都不會被篡改,而且能夠做到全鏈條的監管。
通過上一節我們可以看出,新型區塊鏈架構將共識與交易完全解耦。不僅如此,相比Diem,新型區塊鏈架構進一步的提出了將交易與結算解耦。絕大多數的區塊鏈系統的交易與結算是一體的,交易的同時就進行了結算,將數字資產轉移到相應的賬戶當中。但新型區塊鏈架構將交易與結算解耦,在交易完成并上鏈后,再進行一次結算。結算的過程中會進行AML的檢測,如果交易無法通過AML的檢測,那么即便交易之前已經成功,那么也不會通過結算,對應的數字資產也就無法轉移,圖3展示的就是交易與結算解耦機制。

圖3 交易與結算解耦機制
具體來說,交易從提交到交易完成再到結算完成的過程可以分為以下幾個步驟:
1)一筆所述交易到達區塊鏈系統進行第一次上鏈,查明所有交易方的信息后,確定資金以及資產都是確實的,就進行排隊上鏈交易。
2)排隊上鏈交易,共識與交易解耦,交易與結算解耦。
3)共識后,這筆交易等待完成,交易需要等待區塊鏈系統交易完成。
4)交易完成后,將完成的交易信息第二次上鏈。如果交易沒有成功或是交易被系統拒絕,這筆交易也上鏈,表示交易失敗。
5)經過反洗錢等處理后,交易在適合的賬戶系統上結算成功,將這筆交易信息包括結算完成時間第3次上鏈。
新型區塊鏈架構使用的交易與結算解耦,使監管系統進一步深入到區塊鏈系統的交易流程當中,從交易到結算,每一個步驟都在監管系統的覆蓋之下,使得區塊鏈系統可以更好得滿足PFMI所提出的要求。同時,新型區塊鏈架構中還是用了5棵Merkel樹來保證信息不被篡改,將共識、交易、結算這區塊鏈中交易流程的三大元素徹底解耦。并且,新型區塊鏈架構還連接著大數據平臺,功能和性能都大大提高。
新型區塊鏈架構的代表就是互鏈網架構,互鏈網能夠多鏈交互,改變操作系統,數據庫系統,連接多鏈。其中最重要的機制是片分片,管中管,庫中庫,層分層,密中密,塊中塊。同時提出了提出交子模型和NFR,網絡上僅保存數字憑證,資產留在實體,遺失私鑰也能保證資產的安全。
新型區塊鏈系統,不再逃避監管,以監管科技為首,是可監管的區塊鏈。形成區塊鏈+智能合約+預言機(LSO)的模式,使用制度化標準化的管理方法。區塊鏈用來控制數據,保證數據不能被篡改。智能合約用來控制應用流程,標準化應用,微服務化應用,監管式應用,智能合約本身也是在區塊鏈上的。預言機用于和外界接觸,控制外面系統接口,可使用任何技術包括區塊鏈、智能合約。
新型區塊鏈系統可以使用STRISA系統進行監管,可以實現穿透到個人數字錢包層面的監管,而這是Diem系統所無法做到的。新型區塊鏈系統通過將共識與交易分開,不僅做到了高吞吐量,同時也可以實現嵌入式的監管,滿足現在的金融市場基礎設施PFMI原則,是一種能夠滿足監管要求的區塊鏈系統。
通過分析區塊鏈雪崩的現象,高速區塊鏈系統需要將共識與交易耦合和解耦,為了要解決監管問題,還需要將交易和結算解耦。當我們這樣設計時,整個區塊鏈的設計就和傳統區塊鏈系統差異大。