數學證明:閃電網路無法成為去中心化的比特幣擴容方案

買賣虛擬貨幣

你聽過比特幣閃電網路嗎?這是一個擴容方案:

“透過使用小額支付通道網路,實現比特幣擴容,每天將可以處理數十億美元。”

他們沒有告訴你的是,只有使用大型中心化的“銀行”中心才能實現這個方案。

比特幣社羣的很多人錯誤地認為或者被引導認為,閃電網路(LN)是一個分散式的P2P網。

但是,這個方案是不可行的。事實上,使用一組寬鬆的假設,我們也可以從數學的角度證明這是不可能的。

我們將本文分為幾個部分。第一部分,簡單概述閃電網路。第二部分,簡單說明為什麼閃電網路不能實現去中心化的擴容。第三部分,更為嚴格的數學證明。

第一部分:閃電網路概述

比特幣擴容之戰

比特幣最初被設計成一個點對點的現金系統,可以直接透過增加區塊大小進行擴容。但是,關於網路如何實現擴容的討論已變得更加複雜和更具有爭議。

57名Bitcoin“Core”開發者簽署了一份官方的擴容路線圖,提倡把閃電網路作為“高度去中心化”的“非頻寬擴容機制”(譯者注這裡的“非頻寬”原文是non-bandwidth)。

我們不同意並將證明這是無法做到的。閱讀和理解這篇文章後,你可以自己得出你的結論。

閃電網路及其工作原理是什麼?

閃電網路(LN)是一種可以提供一系列鏈下雙向支付通道的協議。如果你想了解技術細節,Aaron van Wirdum提供非常棒的一個由三部分組成的系列。

“雙向”簡單來說就是兩個方向,所以Alice和Bob可以開啟一個私人通道互相傳送比特幣(在區塊鏈下):

預期的網路

LN傳道者提出了這個Alice透過Bob支付Carol的設想,我們可以擴充套件這個設想來構建一整個支付通道網路,從而能夠在鏈下進行大量的交易。

但是,實際上這實現後並不是一個P2P網路,至少不是一個大規模的P2P網路。

“去中心化”VS“分散式”語義

大多數人每天談論比特幣的時候說的“去中心化”,從技術上是指一種“分散式拓撲”技術。

相反,如果沒有單一的中心,擁有中心化中心機構的網路可以從技術上來說是“去中心化的”。

但是,讓我們別陷入文字遊戲。下面的圖表應該可以把事情說清楚:

第二部分:一個給外行人看的解釋:為什麼閃電網路無法擴容?

我會盡可能簡短地對此進行說明:

首先,你必須瞭解閃電網路不同於其他網路,因為你無法隨時連結到另一個使用者。
為了傳送或是接收比特幣,你需要和具體使用者建立一個支付通道,或者需要一系列相互連線的通道。(一個“路由”)。

只是為了傳送一筆鏈下交易,就建立一個通道是毫無意義的,因為它要求鏈上交易開啟通道。你倒不如直接在鏈上傳送一筆交易;你不需要LN。

這個設想你可以透過一些連結將交易傳送到任何地方。從使用者的角度來看,傳送交易給其他人的潛在路徑就像一個樹結構:

它開始像是一個基礎的數學問題

我們假設目標是規模擴大到100萬使用者。

讓我們來思考一下:如果你有一棵樹,樹上有10個樹枝,每根樹枝有10篇葉子。你可以得到100片葉子。

如果你有1棵長著10根樹枝的樹,每根樹枝有10個小樹枝,每個小樹枝又10個小樹枝等等…你可以進行到第六層“深度”並得到:10 x 10 x 10 x 10 x 10 x 10, 或簡單表示即:10⁶,等於一百萬。

因為你從樹枝跳到樹枝,跳6次得到樹葉,我們可以說進行了“6跳”。因此,10個樹枝6跳,在我們的案例中:10通道6跳。

那麼,挑戰是什麼呢?

你的錢無法同時存在兩個地方

如果我們假設,我們需要10個支付通道進行6跳達到這個網路,這意味著你需要把你的比特幣分為10份。

但是,可能只有其中一個通道可以在某一特定時間可以到達預期的接收者。這意味著你只能轉部分的錢,例如10%。

我們可以建立兩個通道,進行20跳來解決這個問題嗎?我們稍後會回到這個問題。首先,讓我們先了解另一個重要的事實:

每個人都在借錢給另外一個人

想象一下Alice想要透過Bob傳送1個比特幣給Carol, 像這樣:Alice->Bob->Carol

為了傳送交易,Bob在與Carol連線通道的時候,餘額裡必須至少有1BTC。本質上,Alice是借Bob的錢支付給Carol。

Bob在[Bob->Carol]通道將自己的1BTC轉給Carol。而Alice在[Alice->Bob]通道上將1BTC給Bob。這就是它的工作原理——Alice不能“給”1BTC給Bob,然後傳給Carol。

這實際上是貸款,因為網路使用時間鎖來消除保管風險:Alice在確認Bob已經支付Carol之前不會償還Bob。

實際上,在達到目的地的路徑中每一跳都必須要有足夠的資金來進行每一筆交易。所以,跳數越多,借貸的負擔成倍地變得更大。

為什麼這是一個大問題?

大量的“跳”意味著交易破壞(Deal-Breaker)
讓我們假設所有人使用進行20跳的路由,大多數使用者每個月消費1000美金。如果所有人都做完成了自己要完成的部分來幫助傳送交易,每個使用者每個月路由尋徑所需的交易金額為2000美金。

這可能嗎?

這取決於很多因素,包括:一個路由尋徑的時間和交易數量。

即使我們(可能很寬鬆的)假設,使用者可以路由的交易載入量是正常交易載入量的10倍,並其在通道可用性只減少50%,那麼他所需的通道數量將是平時的兩倍。

在現實中,甚至更糟糕

至少還有5個額外的問題會使情況變得更糟。

1.即使我們從基礎數學開始:10⁶=1,000,000並不太適用。如果我們假設peers大多是隨機連結,並且沒有一箇中央機構來規劃路徑,則有一定的成功概率。百萬分之一的機會,重複一百萬次,只能產生63%的成功率。選擇兩百萬次,成功率增加到84%,這也意味著要增加通道的數量。

2.當使用者花費他們的收入時,可用的路徑就會降級,直到存入更多的資金。換句話說,當一個人在網路上收到一筆薪水支付和存款時,他們的通道達到最大值,具備完成路徑的能力。但是隨著這筆錢被花掉,這個能力也降到了0。平均來看,這種模式將路徑的能力砍掉一半,並需要雙倍的通道。

3.你幫人路由了錢也改了當前的通道中的資金分配這會進一步減小可用的通道數量。

4.在任何群體都會有貧富差距。因此,能夠傳送資金給任意其他隨機使用者的使用者數量只是網路的一小部分。這個問題將隨著跳的數量增加而呈指數級被放大。

5.這裡還一直存在著一個風險:連結的通道變無效(不論是有意地或是無意地)。這個風險也將隨著跳的數量增加而呈指數級增加。

簡短總結

在大型網路要透過一系列分叉的通道找到某人,你要麼需要大量的通道,要麼進行大量的跳。

二者都有一個非常大的問題。大量的通道意味著使用者必須劃分他們的資金,除了接受小額支付什麼都做不了。而進行大量跳意味著所有人的錢將都會被佔用來路由別人的錢。

結論:一個完全不可用的系統

隨著網路規模達到100萬個使用者,似乎並沒有現實可行的方法可以避免這些問題。將資金劃分到許多通道上,以及不斷將錢借貸出去,二者都將使網路不可用。

唯一能想到的辦法是,要麼A)每個人都存入遠遠超過他們所需要轉的資金,或者B)系統依靠於一個大型中心化機構。二者都不是一個去中心化的擴容方案,甚至不是其中重要的組成部分。

第三部分:非正式的數學證明

1. 假設
準確搭建一個有一大群人,並且實際上並不真實存在的理論系統網路模型顯然是不可能的。我們這裡做了一些假設,一些是事實,一些是影射,以及一些批評證據。

在這個情況下,我們旨在透過概率計算,演示每個使用者需要擁有大量開啟的支付通道,因此,從根本上100萬使用者規模的系統是無法執行的。

2. 需要通道和跳,沒有約束條件
透過將網路搭建成100萬個節點的複雜模型,我們將檢測在在給定一定數量的開放通道C和允許進行的一定數量的跳H下,找到一個隨機Peer的概率。

從使用者的角度來看,透過分叉的通道找到遠處的peers類似於樹結構。樹葉的數量呈指數增長並且有可能是交易的目的地。

為了簡化計算,我們將忽略樹上的分支可能已經連線到樹上另一個分支的可能性(例如一個祖先或表親)。

這種可能性是將分支節點數量降低,因為我們試圖證明一個相對低數量的Peer可以才能完成在大量通道和跳來相互到達各個節點,而且真實節點數量可能要比計算值還得更少,因為我們使用了非常寬鬆的假設(以強化證明)。

假設n是葉子的數量,定義C^H。例如,10個已經開啟的通道加上6跳就是 10⁶ = 1,000,000。

The probability P for failing to choosing a member of a set |N| with cardinality n by sampling n times, with replacement is:(譯者注:這句句話我也不知道怎麼譯,反正就是一個概率P的計算式。)

透過取不同的指數e,我們可以計算出相應的概率:

使用這個公式,我們可以計算出一些至少達到80%概率的初始值;但是,這並沒有考慮尚未討論到的其他因素:

3. 使用固定數量的貨幣,需要的最少通道和跳數量要求
路線上的所有跳都必須擁有足夠的資金來處理任何一筆他們希望服務的付款。這就是貨幣限制。

搭建一個擁有大量金融組合和消費模式的100萬使用者的網路是不可能的,因為有太多未知因素。

但是,我們使用一個非常寬泛的常識性假設,很多或大多數使用者將以某種定期間隔收到某種收入,並存到LN用來消費。

存入資金通常用來消費或者最終用來提現。(我們將假設LN不是用作為一種儲蓄工具)

當使用者花費資金的時候,可用於路由尋徑的支付通道將會降級,要麼是因為一個通道關閉,或者是因為提供的資金減少。當額外的資金存入,路由的能力將會恢復。

我們沒有哪些和多少使用者何時以及多久得到多少資金的詳細模型。但是我們可以根據大數定律總結一組使用者的行為,該定律指出“從大量實驗獲得的平均結果將趨向於預期值。”

典型的消費週期有收入、支出組成,然後重複。我們可以用reverse鋸齒波總結這這個行為:

支付達到峰值,然後收入逐漸等於消費,直到下一次支付。

對函式進行積分得到這個週期一半的值,正如預期的那樣:

我們的結果變成:

這也是我們做的一個非常寬鬆的假設,即所有的使用者都幫助其他使用者進行路由尋徑。現實中,財富分配不均很可能會給系統帶來額外的重大限制。

4. 借貸的額外限制
除了劃分資金和尋找路徑,我們假設使用者還透過幫助其他使用者傳送支付交易參與網路。

這將以兩種方式中斷使用者。

首先,它可能導致使用者個人資金的分配不均,收支不平衡,將減少可用路徑的數量。隨著時間的推移,理論上這可以透過從任意通道任意方向流入的資金最終達到平衡。但是,在給定時間內,每個使用者都會受到很大程度差別的限制。
第二個是,資金用於幫助其他人進行支付的時候,在這期間使用者無法使用這筆資金。

總體上我們應該忽略第一個中斷因素,並構建第二種情況的模型。我們應該採取簡單的方法來假設,所有的使用者的平均交易次數和支出總額是相同的,並假設每個使用者都平等地參與路由尋徑。

讓我們定義以下的變數:

U: 使用者數量
H: 跳的次數
V:一段時間內網路交易總量
v: 一段時間內每個使用者的交易總量
r:一段時間內每個使用者的routed總量
D: 一段測量時間內的持續時間(小時)
t: 時間段D內每個使用者的平均交易次數
d: 平均route的持續時間(小時)

由於每個跳需要為它所參與的路由尋徑中的任意交易傳送全部交易金額,所以在一段時間內整個網路傳送的交易量= VH。

因此r= VH/U 又 V/U=v,所以r=Hv。

例如,如果v=$1000,影象如下:

讓我們來介紹一下衡量路由尋徑的能力美元-小時的概念。

當然,每個使用者只能花一次自己的錢。但是,為了傳送其他人的資金,我們可以將美元-小時作為他們的通道中的美元總額乘以可用小時數。例如,1000美元一週時間是168000美元-

然後我們可以計算商Q,代表為其他人傳送交易後剩餘的可用路由尋徑能力的百分:

Q = 1- (d(H-1))/D

注意,v 和t 沒有出現在等式中,因為它們都被分離出來,但是它們隱藏在比率d/D中。H-1是因為1跳不需要超過使用者自己的交易(r=Hv)以外的任何網路成本。

例如,如果網路使用4跳,路由尋徑需要4個小時,使用者用於路由尋徑的餘額是建立在168(1周)的基礎上,那麼:

Q=1- ((4)*(3))/168 ) = 0.92

現在我們的概率公式:

5. 根據帕累託分配確定交易限制
似乎沒有必要證明,如果資金需要分成很多份,對可用性將會造成很大的負面影響。但是,為了完成性,我們列入這一部分。

我們假設大多數消費者和企業根據帕累託分配進行消費,因此每個使用者進行相對較少的大型交易、幾個中型交易、大量的小額交易。

帕累託概率密度分佈函式表示為:

這種分佈不會因應用常數而發生改變,但是我們透過Y值乘以1000,用一些真實世界的值來更好的搭建這個模型,以使big items的美元金額變得很大,求一組典型的X值(以每個美元價格交易的數量)的積分,例如50。(譯者注:我也譯不準,The distribution does not change by applying constants, but we can better envision the model with some real world values by multiplying the y-values by 1000, so that dollar amounts for big items become substantial, and integrate over a typical set of x values (number of transactions at each dollar value), say 50.)

交易總量= $980。使用10%,價值$98,

我們可以求解等式:98 = 1000/x²,得到3.194筆交易。

接下來,我們將求最小一組交易的積分,得到交易金額小於我們的最小值$98的交易總額:

因為293.48/980=.299,我們可以說,如果使用10個通道,只能實現29.9%的所需經濟活動。

結語

我希望批評家來挑刺。我鼓勵你們做出自己的批判性思考。不要忘了為了忽略貧富差距而做出了寬鬆的假設。

記住,比特幣必須是去中心化的。警惕合理化“只要基本層是去中心化的,中心化就是OK的”這種觀點。這是一個陰險的陷阱,迫使使用者離開基本層並進入中心化的系統。我們絕對不允許這樣的事情。

因此,是否比特幣會因為第二層不能用而陷入麻煩呢?不,根本不會。比特幣的設計是透過簡單地增加區塊大小實現鏈上擴容的。如果我們允許的話,它是可以做到的。

免責聲明:

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

推荐阅读

;