什麼是區塊鏈的鏈外交易和鏈內交易

風靈使發表於2018-08-14

以比特幣為代表的公有區塊鏈系統一直有一個廣為詬病的缺點:交易效能低。交易效能低包括兩方面:一是交易吞吐量小,二是交易速度慢。交易吞吐量是指系統在單位時間內處理請求的交易數量。交易速度是指系統對交易從提交請求到確認交易成功的平均時間。

在比特幣區塊鏈系統中,這兩個值低得可憐。交易吞吐量是平均每秒7筆,交易速度是平均1小時能完成交易確認。對比一下一般商業銀行的核心繫統交易處理能力,交易吞吐量超過每秒2000筆,交易速度基本要達到實時。

正是由於比特幣區塊鏈的交易效能太低,很多人認為這個效能缺陷是導致比特幣無法成為交易貨幣的重要原因。是什麼導致了比特幣區塊鏈系統的交易效能低呢?

區塊鏈作為一種分散式賬本技術,核心功能是要把賬目都記下來。通常公有區塊鏈的記賬方式相當於每個人都在一頁賬頁上一條一條的記錄交易,記錄了一定時間後,通過某種競爭辦法選出記錄的最好的一張紙,大家都複製一份,添到自己的賬本上,然後開始新的賬頁記錄和競爭。

這裡寫圖片描述

這裡面有兩個限制:賬頁的大小和記賬的週期。賬頁大小確定了每個區塊所能容納的交易數量,每個區塊容納的交易數量除以記賬週期就是交易吞吐量;

這裡寫圖片描述

而記賬週期則直接決定了交易確認時間,記賬週期乘以大概率確認區塊有效性的區塊數(比如比特幣裡我們通常認為6個區塊基本上就能確定交易有效)就是交易確認時間。

這裡寫圖片描述

要想提升公有區塊鏈的效能,最直接的辦法就是增加每個賬頁內的交易數量(區塊擴容)和減少記賬週期。(比特幣的擴容之爭,以及比特幣現金(BitCoin Cash)的出現,就是區塊擴容引起的,以後我們會詳細講這個問題。)對於區塊擴容,通常直接影響到區塊的傳播速度。當然,以現在的網路頻寬和速度來看,比特幣當初確定的1MB大小的區塊確實是比較小,但是小區塊也有小區塊的好處——可以採用更多的通訊方式進行傳播,比如衛星通訊。

減少記賬週期,則會影響到區塊傳播的範圍。如果區塊過大並且記賬週期太短,就會造成去中心化程度的降低。原因很簡單,一個礦工挖到了一個區塊,其他礦工還在下載接收這個區塊時,他已經開始挖下一個區塊了。顯然,接收一個區塊所佔用的時間在一個記賬週期中的比例越低,對於全體礦工來說就越公平。否則,先發優勢過於明顯,導致整個系統的去中心化程度降低。與此同時,整個網路同時挖出塊的概率將會大大增加,就會需要更加複雜的機制來解決這個問題。

因此,對於公有鏈來說,用改變區塊鏈自身的方式來提升區塊鏈的交易效能,想要追趕現在金融系統的交易處理能力,難度還是非常高的。換句話說,我們想提高公有鏈的鏈內交易的交易效能,難度極大。

轉回頭看看傳統金融系統的結構。在我國,不同的商業銀行通過央行提供的大小額支付系統實現了跨行交易。而普通使用者在使用銀行系統的時候,很多交易都是在同一個銀行內進行的,只有涉及到跨行交易時,交易資料才會被提交到央行的系統上進行處理。因此,大小額支付系統上的交易數大大降低了。

區塊鏈上也可以採用類似的辦法來解決。我們把這種方式統一叫做鏈外交易。也就是說,某一個組織或者機構可以提供一些服務,讓我們在鏈外記錄這些交易,每隔一定的時間,把這些交易的結果寫入區塊鏈即可。

舉例來說:Alice、Bob、Charlie、Dave 4個人之間發生了一系列交易:一開始每個人都有100美元,然後Alice轉給Bob 50,Bob轉給Dave 120,Dave轉給Alice 50,Dave轉給Charlie 100,Charlie轉給Bob 80,Bob轉給Dave 100。整個轉賬過程如圖所示:

這裡寫圖片描述

這些交易之間經過清算,結果就是:

這裡寫圖片描述

儘管轉賬的過程非常複雜,但是隻需要在鏈上記錄下來每個時刻的賬戶狀態(就是每個時間段的清算結果),最終結果與所有交易資訊都記到鏈上效果是一樣的。區別在於從鏈上的資料並不知道交易發生的真實情況。

除了這個區別以外,還有一個重要的區別:在鏈外交易時,提供這些鏈外交易服務的組織或機構的信用與整個公有鏈的信用是有差別的。在鏈外交易時,這些交易已經不是一個去中心化的交易了,而是一種區域性的中心化的交易系統。當然,由於定時會把交易清算結果寫回鏈上,一旦結果寫回鏈上,我們就能夠確認提供鏈外交易的組織是否存在篡改資料的情況。

從經濟學角度上看,小額交易由於額度較小,對於鏈外交易的服務商來說,篡改資料獲得的利益要小於持續提供服務帶來的盈利。因此,小額交易轉移到鏈外進行,從信任角度來講,沒有過於明顯的區別。未來公有鏈的發展趨勢很可能最終變成一個類似央行清算中心的服務提供者,而實際上大量的小額交易只需要在鏈外交易中進行即可。

相關文章