你聽過比特幣閃電網(wǎng)絡(luò)嗎?這是一個擴容方案:
“通過使用小額支付通道網(wǎng)絡(luò),實現(xiàn)比特幣擴容,每天將可以處理數(shù)十億美元。”
他們沒有告訴你的是,只有使用大型中心化的“銀行”中心才能實現(xiàn)這個方案。
比特幣社區(qū)的很多人錯誤地認為或者被引導(dǎo)認為,閃電網(wǎng)絡(luò)(LN)是一個分布式的P2P網(wǎng)。
但是,這個方案是不可行的。事實上,使用一組寬松的假設(shè),我們也可以從數(shù)學的角度證明這是不可能的。
我們將本文分為幾個部分。第一部分,簡單概述閃電網(wǎng)絡(luò)。第二部分,簡單說明為什么閃電網(wǎng)絡(luò)不能實現(xiàn)去中心化的擴容。第三部分,更為嚴格的數(shù)學證明。
第一部分:閃電網(wǎng)絡(luò)概述
比特幣擴容之戰(zhàn)
比特幣最初被設(shè)計成一個點對點的現(xiàn)金系統(tǒng),可以直接通過增加區(qū)塊大小進行擴容。但是,關(guān)于網(wǎng)絡(luò)如何實現(xiàn)擴容的討論已變得更加復(fù)雜和更具有爭議。
57名Bitcoin“Core”開發(fā)者簽署了一份官方的擴容路線圖,提倡把閃電網(wǎng)絡(luò)作為“高度去中心化”的“非帶寬擴容機制”(譯者注這里的“非帶寬”原文是non-bandwidth)。
我們不同意并將證明這是無法做到的。閱讀和理解這篇文章后,你可以自己得出你的結(jié)論。
閃電網(wǎng)絡(luò)及其工作原理是什么?
閃電網(wǎng)絡(luò)(LN)是一種可以提供一系列鏈下雙向支付通道的協(xié)議。如果你想了解技術(shù)細節(jié),Aaron van Wirdum提供非常棒的一個由三部分組成的系列。
“雙向”簡單來說就是兩個方向,所以Alice和Bob可以打開一個私人通道互相發(fā)送比特幣(在區(qū)塊鏈下):
預(yù)期的網(wǎng)絡(luò)
LN傳道者提出了這個Alice通過Bob支付Carol的設(shè)想,我們可以擴展這個設(shè)想來構(gòu)建一整個支付通道網(wǎng)絡(luò),從而能夠在鏈下進行大量的交易。
但是,實際上這實現(xiàn)后并不是一個P2P網(wǎng)絡(luò),至少不是一個大規(guī)模的P2P網(wǎng)絡(luò)。
“去中心化”VS“分布式”語義
大多數(shù)人每天談?wù)摫忍貛诺臅r候說的“去中心化”,從技術(shù)上是指一種“分布式拓撲”技術(shù)。
相反,如果沒有單一的中心,擁有中心化中心機構(gòu)的網(wǎng)絡(luò)可以從技術(shù)上來說是“去中心化的”。
但是,讓我們別陷入文字游戲。下面的圖表應(yīng)該可以把事情說清楚:
第二部分:一個給外行人看的解釋:為什么閃電網(wǎng)絡(luò)無法擴容?
我會盡可能簡短地對此進行說明:
首先,你必須了解閃電網(wǎng)絡(luò)不同于其他網(wǎng)絡(luò),因為你無法隨時鏈接到另一個用戶。
為了發(fā)送或是接收比特幣,你需要和具體用戶建立一個支付通道,或者需要一系列相互連接的通道。(一個“路由”)。
只是為了發(fā)送一筆鏈下交易,就創(chuàng)建一個通道是毫無意義的,因為它要求鏈上交易打開通道。你倒不如直接在鏈上發(fā)送一筆交易;你不需要LN。
這個設(shè)想你可以通過一些鏈接將交易發(fā)送到任何地方。從用戶的角度來看,發(fā)送交易給其他人的潛在路徑就像一個樹結(jié)構(gòu):
它開始像是一個基礎(chǔ)的數(shù)學問題
我們假設(shè)目標是規(guī)模擴大到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跳。
那么,挑戰(zhàn)是什么呢?
你的錢無法同時存在兩個地方
如果我們假設(shè),我們需要10個支付通道進行6跳達到這個網(wǎng)絡(luò),這意味著你需要把你的比特幣分為10份。
但是,可能只有其中一個通道可以在某一特定時間可以到達預(yù)期的接收者。這意味著你只能轉(zhuǎn)部分的錢,例如10%。
我們可以創(chuàng)建兩個通道,進行20跳來解決這個問題嗎?我們稍后會回到這個問題。首先,讓我們先了解另一個重要的事實:
每個人都在借錢給另外一個人
想象一下Alice想要通過Bob發(fā)送1個比特幣給Carol, 像這樣:Alice-》Bob-》Carol
為了發(fā)送交易,Bob在與Carol連接通道的時候,余額里必須至少有1BTC。本質(zhì)上,Alice是借Bob的錢支付給Carol。
Bob在[Bob-》Carol]通道將自己的1BTC轉(zhuǎn)給Carol。而Alice在[Alice-》Bob]通道上將1BTC給Bob。這就是它的工作原理——Alice不能“給”1BTC給Bob,然后傳給Carol。
這實際上是貸款,因為網(wǎng)絡(luò)使用時間鎖來消除保管風險:Alice在確認Bob已經(jīng)支付Carol之前不會償還Bob。
實際上,在達到目的地的路徑中每一跳都必須要有足夠的資金來進行每一筆交易。所以,跳數(shù)越多,借貸的負擔成倍地變得更大。
為什么這是一個大問題?
大量的“跳”意味著交易破壞(Deal-Breaker)
讓我們假設(shè)所有人使用進行20跳的路由,大多數(shù)用戶每個月消費1000美金。如果所有人都做完成了自己要完成的部分來幫助發(fā)送交易,每個用戶每個月路由尋徑所需的交易金額為2000美金。
這可能嗎?
這取決于很多因素,包括:一個路由尋徑的時間和交易數(shù)量。
即使我們(可能很寬松的)假設(shè),用戶可以路由的交易加載量是正常交易加載量的10倍,并其在通道可用性只減少50%,那么他所需的通道數(shù)量將是平時的兩倍。
在現(xiàn)實中,甚至更糟糕
至少還有5個額外的問題會使情況變得更糟。
1.即使我們從基礎(chǔ)數(shù)學開始:10?=1,000,000并不太適用。如果我們假設(shè)peers大多是隨機鏈接,并且沒有一個中央機構(gòu)來規(guī)劃路徑,則有一定的成功概率。百萬分之一的機會,重復(fù)一百萬次,只能產(chǎn)生63%的成功率。選擇兩百萬次,成功率增加到84%,這也意味著要增加通道的數(shù)量。
2.當用戶花費他們的收入時,可用的路徑就會降級,直到存入更多的資金。換句話說,當一個人在網(wǎng)絡(luò)上收到一筆薪水支付和存款時,他們的通道達到最大值,具備完成路徑的能力。但是隨著這筆錢被花掉,這個能力也降到了0。平均來看,這種模式將路徑的能力砍掉一半,并需要雙倍的通道。
3.你幫人路由了錢也改了當前的通道中的資金分配這會進一步減小可用的通道數(shù)量。
4.在任何群體都會有貧富差距。因此,能夠發(fā)送資金給任意其他隨機用戶的用戶數(shù)量只是網(wǎng)絡(luò)的一小部分。這個問題將隨著跳的數(shù)量增加而呈指數(shù)級被放大。
5.這里還一直存在著一個風險:鏈接的通道變無效(不論是有意地或是無意地)。這個風險也將隨著跳的數(shù)量增加而呈指數(shù)級增加。
簡短總結(jié)
在大型網(wǎng)絡(luò)要通過一系列分叉的通道找到某人,你要么需要大量的通道,要么進行大量的跳。
二者都有一個非常大的問題。大量的通道意味著用戶必須劃分他們的資金,除了接受小額支付什么都做不了。而進行大量跳意味著所有人的錢將都會被占用來路由別人的錢。
結(jié)論:一個完全不可用的系統(tǒng)
隨著網(wǎng)絡(luò)規(guī)模達到100萬個用戶,似乎并沒有現(xiàn)實可行的方法可以避免這些問題。將資金劃分到許多通道上,以及不斷將錢借貸出去,二者都將使網(wǎng)絡(luò)不可用。
唯一能想到的辦法是,要么A)每個人都存入遠遠超過他們所需要轉(zhuǎn)的資金,或者B)系統(tǒng)依靠于一個大型中心化機構(gòu)。二者都不是一個去中心化的擴容方案,甚至不是其中重要的組成部分。
第三部分:非正式的數(shù)學證明
1. 假設(shè)
準確搭建一個有一大群人,并且實際上并不真實存在的理論系統(tǒng)網(wǎng)絡(luò)模型顯然是不可能的。我們這里做了一些假設(shè),一些是事實,一些是影射,以及一些批評證據(jù)。
在這個情況下,我們旨在通過概率計算,演示每個用戶需要擁有大量打開的支付通道,因此,從根本上100萬用戶規(guī)模的系統(tǒng)是無法運行的。
2. 需要通道和跳,沒有約束條件
通過將網(wǎng)絡(luò)搭建成100萬個節(jié)點的復(fù)雜模型,我們將檢測在在給定一定數(shù)量的開放通道C和允許進行的一定數(shù)量的跳H下,找到一個隨機Peer的概率。
從用戶的角度來看,通過分叉的通道找到遠處的peers類似于樹結(jié)構(gòu)。樹葉的數(shù)量呈指數(shù)增長并且有可能是交易的目的地。
為了簡化計算,我們將忽略樹上的分支可能已經(jīng)連接到樹上另一個分支的可能性(例如一個祖先或表親)。
這種可能性是將分支節(jié)點數(shù)量降低,因為我們試圖證明一個相對低數(shù)量的Peer可以才能完成在大量通道和跳來相互到達各個節(jié)點,而且真實節(jié)點數(shù)量可能要比計算值還得更少,因為我們使用了非常寬松的假設(shè)(以強化證明)。
假設(shè)n是葉子的數(shù)量,定義C^H。例如,10個已經(jīng)打開的通道加上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的計算式。)
通過取不同的指數(shù)e,我們可以計算出相應(yīng)的概率:
使用這個公式,我們可以計算出一些至少達到80%概率的初始值;但是,這并沒有考慮尚未討論到的其他因素:
3. 使用固定數(shù)量的貨幣,需要的最少通道和跳數(shù)量要求
路線上的所有跳都必須擁有足夠的資金來處理任何一筆他們希望服務(wù)的付款。這就是貨幣限制。
搭建一個擁有大量金融組合和消費模式的100萬用戶的網(wǎng)絡(luò)是不可能的,因為有太多未知因素。
但是,我們使用一個非常寬泛的常識性假設(shè),很多或大多數(shù)用戶將以某種定期間隔收到某種收入,并存到LN用來消費。
存入資金通常用來消費或者最終用來提現(xiàn)。(我們將假設(shè)LN不是用作為一種儲蓄工具)
當用戶花費資金的時候,可用于路由尋徑的支付通道將會降級,要么是因為一個通道關(guān)閉,或者是因為提供的資金減少。當額外的資金存入,路由的能力將會恢復(fù)。
我們沒有哪些和多少用戶何時以及多久得到多少資金的詳細模型。但是我們可以根據(jù)大數(shù)定律總結(jié)一組用戶的行為,該定律指出“從大量實驗獲得的平均結(jié)果將趨向于預(yù)期值。”
典型的消費周期有收入、支出組成,然后重復(fù)。我們可以用reverse鋸齒波總結(jié)這這個行為:
支付達到峰值,然后收入逐漸等于消費,直到下一次支付。
對函數(shù)進行積分得到這個周期一半的值,正如預(yù)期的那樣:
我們的結(jié)果變成:
這也是我們做的一個非常寬松的假設(shè),即所有的用戶都幫助其他用戶進行路由尋徑?,F(xiàn)實中,財富分配不均很可能會給系統(tǒng)帶來額外的重大限制。
4. 借貸的額外限制
除了劃分資金和尋找路徑,我們假設(shè)用戶還通過幫助其他用戶發(fā)送支付交易參與網(wǎng)絡(luò)。
這將以兩種方式中斷用戶。
首先,它可能導(dǎo)致用戶個人資金的分配不均,收支不平衡,將減少可用路徑的數(shù)量。隨著時間的推移,理論上這可以通過從任意通道任意方向流入的資金最終達到平衡。但是,在給定時間內(nèi),每個用戶都會受到很大程度差別的限制。
第二個是,資金用于幫助其他人進行支付的時候,在這期間用戶無法使用這筆資金。
總體上我們應(yīng)該忽略第一個中斷因素,并構(gòu)建第二種情況的模型。我們應(yīng)該采取簡單的方法來假設(shè),所有的用戶的平均交易次數(shù)和支出總額是相同的,并假設(shè)每個用戶都平等地參與路由尋徑。
讓我們定義以下的變量:
U: 用戶數(shù)量
H: 跳的次數(shù)
V:一段時間內(nèi)網(wǎng)絡(luò)交易總量
v: 一段時間內(nèi)每個用戶的交易總量
r:一段時間內(nèi)每個用戶的routed總量
D: 一段測量時間內(nèi)的持續(xù)時間(小時)
t: 時間段D內(nèi)每個用戶的平均交易次數(shù)
d: 平均route的持續(xù)時間(小時)
由于每個跳需要為它所參與的路由尋徑中的任意交易發(fā)送全部交易金額,所以在一段時間內(nèi)整個網(wǎng)絡(luò)發(fā)送的交易量= VH。
因此r= VH/U 又 V/U=v,所以r=Hv。
例如,如果v=$1000,圖像如下:
讓我們來介紹一下衡量路由尋徑的能力美元-小時的概念。
當然,每個用戶只能花一次自己的錢。但是,為了發(fā)送其他人的資金,我們可以將美元-小時作為他們的通道中的美元總額乘以可用小時數(shù)。例如,1000美元一周時間是168000美元-
然后我們可以計算商Q,代表為其他人發(fā)送交易后剩余的可用路由尋徑能力的百分:
Q = 1- (d(H-1))/D
注意,v 和t 沒有出現(xiàn)在等式中,因為它們都被分離出來,但是它們隱藏在比率d/D中。H-1是因為1跳不需要超過用戶自己的交易(r=Hv)以外的任何網(wǎng)絡(luò)成本。
例如,如果網(wǎng)絡(luò)使用4跳,路由尋徑需要4個小時,用戶用于路由尋徑的余額是建立在168(1周)的基礎(chǔ)上,那么:
Q=1- ((4)*(3))/168 ) = 0.92
現(xiàn)在我們的概率公式:
5. 根據(jù)帕累托分配確定交易限制
似乎沒有必要證明,如果資金需要分成很多份,對可用性將會造成很大的負面影響。但是,為了完成性,我們列入這一部分。
我們假設(shè)大多數(shù)消費者和企業(yè)根據(jù)帕累托分配進行消費,因此每個用戶進行相對較少的大型交易、幾個中型交易、大量的小額交易。
帕累托概率密度分布函數(shù)表示為:
這種分布不會因應(yīng)用常數(shù)而發(fā)生改變,但是我們通過Y值乘以1000,用一些真實世界的值來更好的搭建這個模型,以使big items的美元金額變得很大,求一組典型的X值(以每個美元價格交易的數(shù)量)的積分,例如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/x2,得到3.194筆交易。
接下來,我們將求最小一組交易的積分,得到交易金額小于我們的最小值$98的交易總額:
因為293.48/980=.299,我們可以說,如果使用10個通道,只能實現(xiàn)29.9%的所需經(jīng)濟活動。
結(jié)語
我希望批評家來挑刺。我鼓勵你們做出自己的批判性思考。不要忘了為了忽略貧富差距而做出了寬松的假設(shè)。
記住,比特幣必須是去中心化的。警惕合理化“只要基本層是去中心化的,中心化就是OK的”這種觀點。這是一個陰險的陷阱,迫使用戶離開基本層并進入中心化的系統(tǒng)。我們絕對不允許這樣的事情。
因此,是否比特幣會因為第二層不能用而陷入麻煩呢?不,根本不會。比特幣的設(shè)計是通過簡單地增加區(qū)塊大小實現(xiàn)鏈上擴容的。如果我們允許的話,它是可以做到的。
評論
查看更多