由支付系統的中心化探討去中心化

余哲安
Feb 14, 2021

--

上一篇介紹了貨幣層級的概念與清算原理,這篇會沿著上一篇的提及的內容繼續延展下去,若未讀過前篇可由此連結先行閱讀,這樣可以更容易理解本篇內容。

「去中心化(decentralized)」是一個談到區塊鏈時很容易順帶提及的新概念,可以說是由「中心化(centralized)」衍生出來的,上述這兩個概念算是呈現一種簡易的二元對立。而去中心化這個概念又衍生出了其它新名詞,例如去中心化金融(decentralizeds finance簡稱defi)與去中心化交易所(decentralized exchange)。

有在關注區塊鏈金融應用的朋友對上述去中心化相關名詞應該滿熟悉的,但對於傳統金融是如何一路演化到大家現在所見「由央行主導的中心化系統」可能還沒那麼熟悉,接下來的內容會簡單說明這種「中心化」的演變過程然後與現行各種去中心化案例進行對照。

在前篇所提到小明與小王跨行提款的案例情境中,我們得知系統會因為支付業務而產生金融機構間的負債關係,以及這個債務關係是透過什麼方法消滅、降低營運成本、降低營運過程中的各種風險。

然而在現實中,由於參與跨行支付系統的金融機構的家數很多,前篇案例提到中國信託與郵局的「雙邊關係」也就擴展成了數十家金融機構之間的「多邊關係」。

現代絕大多數產業的業務系統都已經電子化,這些業務系統說到底都是在處理數據,所以在本質上都是與計算機相關的數據處理問題。另外,由於本篇內容是以傳統金融業中的支付業務中心化來跟帶有去中心化概念的區塊鏈應用做對照,這邊要先點明上述兩者之間存在一個關鍵差異:傳統金融業務規模的擴張成本遠遠高於絕大部分業務活動都存在於網際網路的區塊鏈金融服務。例如銀行需要設立多個實體的分行但區塊鏈通常不需要這麼做,相較之下區塊鏈金融服務架設伺服器與線路的成本可謂極低,不過這種擴張成本低的特性其實也造成另一個被許多人忽略的問題,會在接下來的內容中提及。

下面這張圖是多邊關係的系統結構示意圖,每個點之間的每條連線可以視為金融機構處理資金業務和資訊業務的單位成本。以傳統金融支付業務的情境來看,圖中每個藍點其實就是不同家銀行;以區塊鏈金融服務來看,每個藍點就是全節點,每個點之間的連線我們都視為一個單位成本。

那麼隨著參與上述這個多邊關係系統的營運單位越多,其成本會怎麼變化呢?假設系統中的營運單位數量是n,那麼在這樣結構下的連線數量(單位成本)是n(n-1)/2。

以上述角度進行探討的用意是什麼?當我們希望一項業務的規模可以發展到非常大的時候,就要考量到業務工作方法在業務量非常大的時候會發生什麼狀況。換言之,在數據處理的相關問題上我們需要考量到所設計的系統結構與演算法在處理大量數據時是否有效率。若選錯了系統結構與演算法,系統效能會有量級上的差距。

有著計算機算法鼻祖之稱的高德納(Donald Ervin Knuth)提出了一個概念來衡量演算法的效率──時間複雜度(time complexity以大寫字母O來表示) 。

假設現在有兩個演算法處理資料的時間成本函數,分別是G(x)=3n+5與H(x)= 2n²+50。時間複雜度(O)的衡量方式是只取函數的最高次項且不計係數,所以Θ(G(x) )=O(n)、Θ(H(x) )=O(n²) 。下面放一張圖來表示常見的各種時間複雜度並依照複雜度大小進行排序。

時間複雜度這個概念通常用於衡量計算機處理資料的時間成本,在這裡我們把上述概念延伸應用到時間成本之外,衡量業務工作方法與系統結構帶來的各種成本增長。

回到第一張多邊關係的系統結構示意圖,不難發現系統總成本隨著系統規模是以n平方的速度在增長。

我們再假設一個案例情境來進行對照。因為設立傳統中心化支付系統的初始成本很高,我們假設傳統支付系統中開一家實體銀行的成本函數是G(x)= 200x+100000,去中心化區塊鏈金融服務系統僅需架設伺服器故初始成本很低,假設其成本函數為H(x)=0.2X²+50。

由於傳統中心化支付系統需要一個清算中心而且非常花錢,所以把G(x)的常數項設定成10萬。去中心化區塊鏈系統沒有清算中心,所以H(x)的常數項就設了一個很低的數字50,甚至設定成0也行。而G(x)與H(x)最高項次的係數可以視為系統每增加一單位營運規模的成本增長狀況,由於設立銀行比設立機房貴很多,係數200與0.2代表意義差不多就是兩者在發展初期增加營運規模的成本差了一千倍。

透過國中生的數學水平進行計算後,可以發現下圖當x(即業務規模)超過1366時,中心化系統的營運成本開始低於去中心化系統的營運成本。

區塊鏈之所以能廣泛被大家接受並且規模快速增長,也是因為業務規模在規模很小的初始階段營運成本真的很低,進入門檻也就低,去中心化系統整體的營運總成本也很低。直到營運規模大到一定程度前,很難察覺系統的成本變化是非線性的。除非從一開始我們就考慮到規模增長帶來的影響,否則大家都會直覺性選擇初始成本極低的系統結構。

但若真考慮到規模的影響,而選擇了成本以線性增長的中心化系統,那初始階段的營運成本很高會使大家缺乏投入該產業的意願,投入後跟同業的競爭也不會有什麼優勢。選擇中心化方案可以一直發展下去但初始階段會很競爭,選擇去中心化方案一開始有競爭優勢最終卻又發展不下去。

到這裡我們就可以下一個結論了:基於多邊關係的系統結構(也就是去中心化)的成本函數複雜度Θ(H(x) )=O(n²),但營運規模能帶來的利益卻是線性的,也就是Θ=O(n)的複雜度。當營運規模n足夠大時營運成本必然會超越營運利益,系統也就失去了商業價值。

成也去中心化,敗也去中心化。

不過傳統金融支付系統倒並不是僅因上述緣由而走向中心化,早在計算機尚未問世仍依靠紙本進行記帳的年代就已經走向中心化。這個主因在前面一張圖也剛好有暗示,那就是「清算風險」。

回到清算這個主題,我們再次借用前篇的跨行提款的案例。若郵局在該營業日結束時無法償付足額的準備金給中國信託導致清算作業無法完成該怎麼辦?中國信託因郵局無法償付準備金,導致中國信託也沒有足額的準備金償付給其他金融機構,這個狀況一旦蔓延開來就變成了系統風險。

為了解決清算風險與系統風險,大約從兩百年前開始金融機構們便互相在對方開設了一個帳戶並存放準備金,透過調整準備金帳戶內的餘額來實施清算。

在這樣的架構下,每一家銀行都是清算機構,替往來銀行間的資金進行清算。但這個清算機制仍會隨著參與系統的銀行家數增加而變得非常複雜,清算作業的時間成本與財務成本隨著規模增長的速度也是n平方這個量級,複雜度為O(n²)。

早在一百多年前銀行家們為了解決上述這兩個問題,便共同出資成立了一個銀行同業互助組織──清算所(clearing house),清算所是銀行業走向中心化的濫觴。

有了清算所之後,各家銀行就不再需要到各個往來銀行設置準備金帳戶、每天跑各家銀行送公文送錢做結算清算,僅需要到清算所開戶存放準備金與清算所一家處理結算清算業務即可。

在清算所成立之後將各家銀行原有的跨行清算業務剝離並集中到清算所進行處理,銀行同業之間的多邊關係也因清算所的設立變成層級關係。層級關係架構下的營運成本增長速度就從O(n²)轉變為O(n)了,在這樣的狀況下即便系統規模變大仍能保有商業價值,實現規模經濟。電子化的系統上線後,無論是資訊業務還是資金業務也都透過網路系統來處理,再次大幅改善營運成本。

既然為了省營運成本而運用清算機制,為了解決清算機制帶來的清算風險所以設了個清算所。那我們可以從一開始就不要做什麼清算結算,把每一筆交易都老老實實做支付嗎?就像比特幣、以太幣系統一樣,每一筆交易都逐筆清算,也就是支付即清算。

當然可以,問題是會很貴。

清算所運作機制背後的概念我們稱為集中交易對手(CCP, central counterparty) ,下面這張圖片說明了有無CCP的差異。

上圖左側為沒有CCP的示意圖,各機構之間互相進行清算並轉移資金。上圖右側為CCP機制下進行清算並移轉資金,資金移轉量由原先的361大幅削減成90,有效提高了系統的營運效率與經濟效益。目前美國紐約結算所(CHIPS)每日處理支付業務的總金額約16兆美元,透過其優秀的專利清算機制每日僅需約700億美元即可支援整個支付系統的運作(即1美元可支援22美元的付款),系統流動性與經濟效益極佳。

在清算風險這方面,由清算所會員們共同出資設立一個清算基金。當某一位會員出現違約狀況時將由清算基金代為償付,這保障了整個系統不會因為某個參加成員違約進而造成系統中其他成員也跟著違約。

而清算所其實也是中央銀行的前身,雖然中央銀行的職能範圍比清算所更多更廣,但集中交易對手再進行清算的原理仍是不變的。至於清算所是如何演變成中央銀行?上述兩者於現代在職能上的差異是什麼?有機會再另行介紹,本篇不展開。

我們梳理一下清算業務走向中心化的來龍去脈:銀行同業為了拓展業務規模而發展出了跨行業務,為了降低跨行業務的營運成本跟營運風險所以產生了淨額抵銷與清算業務。當參與跨行業務系統的銀行越來越多時,清算業務就發展成了清算所或是現在的中央銀行。在清算所成立後又更進一步大幅降低了清算成本還有清算風險。而清算中心化帶來的單點故障風險則透過清算機構本身的分布式系統與備份機制來解決,同時也設立監管機制與究責機制確保清算中心正常運行。

我國不光是支付業務,票券、股票、債券等等各類金融業務都發展出了中心化結算的機制,並統一由中央銀行來實施清算。

到這裡為止,相信各位能夠理解各項金融業務的系統結構走向中心能有效提高經濟效益、提高營運效率、降低成本、降低各類風險。簡單來說這是一個不斷解決舊問題同時也製造新問題的演化過程,而「中心化」這個表象只是金融系統演化過程中的副產物罷了。

對絕大多數產業的業者與消費者來說,他們一點也不在意中心化/去中心化這種評估角度,通常也沒有預設的技術路線。只要能賺錢、降低時間成本、降低財務成本、降低風險、更能滿足消費者需求的解決方案,那就是好方案、好產品。如同有的生物用肺呼吸,有的用鰓呼吸。這些生物不會預設自己該演化出肺還是演化出鰓,完全視其生活環境而發展出最適的呼吸機制。預設技術路線、預設運作機制且不願隨著環境而修正的做事方法,通常都犯了削足適履這個偏誤。

現在我們來看具備去中心化概念的比特幣,比特幣系統本身並沒有清算中心這樣的單位存在所以在清算作業上是去中心化的,各個全節點(full node)之間都是「平級」的多邊關係,大家都在做清算。

前面也已說明多邊關係架構的成本會如何隨著系統規模而增長,那麼軟硬體的進步可以解決這個問題嗎?可以,但仍非常有限。因為多邊關係架構下的成本增長依然是O(n²)這個量級,這是先天系統結構上複雜度的問題並非技術問題(PoW、PoS、DPoS)、硬體設備問題或挖礦成本問題。

若引用前面案例中的成本函數來舉例,所謂的「技術優化」頂多只能降低成本函數中最高項次的係數與改變非最高項次,仍無法降低成本函數的複雜度。硬要維持這個多邊關係架構且確保商業價值,那麼系統規模(比特幣節點數量)就不能一直增加。不斷提高比特幣交易的費率也是個辦法,但費率太高又會影響消費者的消費意願。

因此即便比特幣的挖礦成本是零,在同樣營運規模下仍無法與層級關係架構的傳統支付系統競爭,更不用說目前比特幣交易所需的能耗非常大。

根據digiconomist.net這個網站的統計資料,目前每一筆比特幣交易的能耗可以支持約70萬筆VISA交易。除非在特殊情境下傳統支付管道無法滿足用戶需求,否則相較之下實在是太不環保也太昂貴了。

接下來是資訊儲存這個面向的去中心化,通常每一家金融機構都只會儲存自家消費者的交易紀錄,並且有備份機制來保障交易紀錄的完整性與正確性,而比特幣的特點是每一個全節點都要儲存整個比特幣系統中所有的交易紀錄。

若以國內股票市場來描述比特幣的資料儲存機制,就像我明明只是元大證券的客戶,但我的交易紀錄卻會被同步到凱基證券、日盛證券、富邦證券等等其他證券商同業的資料庫中。而且這些存放交易紀錄的資料庫都是公開的,所有人都可以查詢每位用戶的歷史交易紀錄。

通常金融交易紀錄都有極強的敏感性與私密性,不適用於如此公開透明的資料儲存方式。即便用戶在交易紀錄上是匿名的,仍可透過交易紀錄中的各種行為特徵來分析出對方可能的身分甚至進行具有惡意的針對性金融操作。美國有一家名為Chain Analysis的公司,該公司宣稱透過交易所數據庫與比特幣交易紀錄掌握了80%以上比特幣用戶的真實身分,甚至曾協助FBI破獲多起在暗網從事非法交易的案件。

除了隱私問題以外還有另一個資料儲存成本的問題。假設比特幣系統總共有10000個全節點,且每個全節點廣播出去的交易紀錄都是一樣多的,那麼每個全節點都要消耗99.99%的儲存空間去儲存與自身業務無關的交易紀錄。再以上述股市的案例情境來舉例:我國目前有70家左右的證券商,若每家券商都視為一個全節點,即便所有投資人都不在意隱私問題,平均而言每家證券商都消耗掉了69/70也就是98.5%的資料庫儲存空間去存放與自身營運業務無關的交易紀錄,這是很大的成本。

再換一個非金融應用的例子,若各位常用的通訊app例如LINE、Telegram、WeChat都採用比特幣這樣的去中心化的資料儲存機制來備份用戶的通訊紀錄會如何?第一個問題是用戶們毫無隱私可言,第二個問題是大家手機中的儲存空間肯定會不夠用。

金融交易紀錄的特點是「非常重要但檔案卻極小」。金融交易紀錄很重要所以需要一個避免遭惡意修改的保護機制與備份機制,金融交易紀錄檔案極小所以在多個資料庫同步時不會占用太多頻寬、儲存空間和作業時間。通常符合上述兩個特點的資料才適合執行多台資料庫的備份,並不是所有資料類型都適合這樣的備份機制。

但若僅僅是為了避免資料遭惡意修改,除了用一大堆資料庫做備份以外還有其他成本更低的保護機制。例如設計一個資料庫讀寫的限制許可,然後搭配兩三個資料庫進行備份。而上述內容其實就是系統有無許可制的其中一個關鍵差異──有許可制的系統能以更低的維護成本來保障資料庫數據的完整性與正確性。而重要金融服務的資料庫網路也通常是封閉式的,不會有一個公開的存取窗口讓大家能嘗試登入,這樣又能以更低的成本來防範資料庫被惡意攻擊。

相較之下,比特幣這樣的公有鏈用了conditional hashing來把交易紀錄封裝成區塊、需要hash pointers來串連每個區塊、需要每個全節點都做完整的資料備份才能確保比特幣系統中交易紀錄的完整性與正確性。上述這些也通通都是成本,為了實現「公有」、「去中心化」等特點消耗了那麼多成本是否值得?

目前驅動比特幣全節點打包資料上鏈的誘因是挖礦與打包交易的手續費,但挖礦的產量又有半衰期,換句話說就是全節點的營運成本會定期性倍增。礦工只能期待幣價上漲幅度能彌補挖礦成本的增長,或是想辦法提高手續費。而提高手續費最好的方法就是讓客戶們大排長龍,自然就會出現願意付出更多費用來「插隊」的消費者。反觀各國現有的銀行轉帳支付系統,手續費低甚至免費、能即時到帳、系統有規模經濟、沒有排隊插隊問題。

或許,中本聰這個人或這個團隊當時設計比特幣這樣的機制是因為他不願付出或是無法付出物力財力來營運這樣的系統,所以想辦法讓系統的參與者來共同承擔比特幣系統的各種營運成本。然後為了讓這個系統「可信任」,又設計了會大幅度增加系統運作成本的工作量證明機制。其實要做到可信任也有很多種成本更低的機制,但若要堅持做一個沒有權責單位、營運單位、身分驗證單位的系統,可行的選項確實就不多了。

不過最有趣的是,上述這樣不存在責任主體、營運單位與身分驗證的支付系統架構竟然被賦予了各種美麗的敘事、思想甚至是信仰。例如「超主權貨幣」、「對現行金融體系的反撲」、「互聯網的新世界秩序」、「發行不受政府控制」、「排除金融中介」、「匿名不受政府審查」、「抗通膨」、「去中心化」等等,在這樣的思想基礎下又衍生出了其它系統結構相似但功能更為豐富的區塊鏈應用。

各路菁英雖自願去改善與開發比特幣的原始代碼,但令人遺憾的是由於比特幣最原始的系統架構宛如一艘破船,即便工匠技術再怎麼優秀與修補材料再怎麼先進,成效依然有限。

今日比特幣、以太幣這類去中心化系統的成功能說是基於支付系統設計上的不成功。而支付系統設計上的不成功,最終也會在營運規模足夠大時各面向的成本太高而開始返噬支付功能與摧毀各類區塊鏈應用萌芽的生態環境。

--

--

余哲安
余哲安

Written by 余哲安

一位對各領域發展都充滿好奇心的投資人

Responses (3)