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