有人在問Lightening Network,這一篇是我看過中文文章裡面寫得算是很詳細的。
就簡轉繁轉錄在這邊
新聞來源連結:
http://www.8btc.com/skepticism
16enj2bapYdzPfa2DWSVaT1g95MCXg2hHt
新聞本文:
閃電網路懷疑論
我喜歡閃電網絡這個點子。在我看來,閃電網絡背後的開發者們很聰明,而且選擇利用比
特幣協議這一點也是非常精明的。我相信閃電網絡中的任何一項東西都是有利於比特幣生
態圈的。然而我不贊成的是,閃電網絡能否順利替代比特幣還是個未知數,現在就開始過
早地貶低比特幣核心(零配置網絡交易和低交易費)。然而,這似乎就是那些核心開發人
員一心想要做的事。
我們知道,至少閃電網絡在技術上是具有可行性的。我們只是不知道它是否為一個兼具經
濟可行性,甚至說是一個稱心如意的替代方案。它是會變成分散的對等支付層?還是說最
終仍像現代銀行一樣的準集中式的支付網絡?我們都不得而知,除非我們將其付諸於實踐
,而這也正好說明全部押在閃電上不負責任的。
起初我主要擔心的是,作為一個中轉站輻射型支付層,它只有很少的中轉站,準集中型網
絡和一個易受攻擊的調節器。而且似乎不只有我一個人存在這樣的疑慮,由於最新支點的
出現並不同於其他中心輻射型網絡拓撲結構,它變成了一種更有組織的、錢包對錢包的路
徑。這種網絡結構可以設想為沒有那些大型支付層的,更加純淨的p2p支付層。
當然,因為它已經印證了我最初的疑慮,所以這個發展情況還算在我意料之中。但不幸的
是,我覺得閃電網絡的這個觀點太過樂觀了。接下來我會給出閃電網絡的一個概況,並闡
述一些理由來說明我為什麼會認為這種網絡結構很有可能以中心輻射型拓撲結構(
hub-and-spoke topology )形式結束。
閃電網絡的工作原理
閃電網絡的核心概念,也就是支付渠道。使用一些複雜的比特幣腳本,雙方就可以建立一
個“渠道”,這個“渠道”一旦被打開,就可以讓他們做成無數筆無需信任的“鏈下”交
易。
http://7fvhfe.com1.z0.glb.clouddn.com/@/wp-content/uploads/2015/12/channel.png
為了打開這個渠道,雙方需要共同建立一筆交易,交易中的一方或者雙方需要將比特幣存
入這個渠道中,然後這筆交易再被轉移到比特幣區塊鏈中。在上圖所示的例子中,愛麗絲
在渠道中投入了0.5比特幣,而鮑勃在渠道中投入了0.8比特幣。
當要關閉這個渠道時,雙方中的任意一方均有一秒的反應時間,比特幣網絡的鏈上交易將
替雙方支付這次交易所需費用。然而,當這個渠道處於開放狀態時,雙方在任何時候都可
以不通過上鍊交易就可以共同協商修改支付分配。比如說,當愛麗絲想要支付鮑勃0.1BTC
時,他們可以更新支付分配,其中鮑勃可以得到0.9BTC,愛麗絲則會得到0.4BTC。而只要
這個通道一直處於開放狀態,那他們就可以無限制的進行交易。
渠道網路
考慮以下因素就可以看到這是如何擴展為一個支付網絡的:
http://7fvhfe.com1.z0.glb.clouddn.com/@/wp-content/uploads/2015/12/network.png
如上圖所示,愛麗絲想要支付0.5BTC給鮑勃,但她並沒有一個渠道來和他進行交易。幸運
的是,她和查理有一個交易渠道,而查理正好和鮑勃有一個交易渠道。這樣愛麗絲就能藉
助查理的交易渠道,通過hashed timelock contract(HTLC)來和鮑勃進行交易了。
為了完成這次交易,愛麗絲就會給鮑勃發短信說:“嘿!我要給你付筆款。”這時鮑勃自
己將收到一個隨機數字(R),接著鮑勃便會回一個被hash的數字(H)(你可以認為被hash
的數字R是隨機數字的一種加密形式)給愛麗絲。然後愛麗絲的錢包緊接著就會聯繫查理
說:“嘿,查理。如果你給我生成(H)的未加密值(R),那麼我就同意更新我們渠道的支
付分配,這樣你就可以得到的就會比0.5BTC多一點,我得的比0.5少一點。”儘管查理並
不知道R,但他也會同意。之後查理便會去找鮑勃說:“嘿,鮑勃。如果你給我那個能生
成H的未加密的值R,我將同意更新我們渠道的支付分配,這樣你就可以得到的會比0.5
BTC多一點,我得到的比0.5少一點。”
因為R就是從鮑勃這裡生成的,所以他肯定知道。接著他馬上將R告訴查理,並更新了其渠
道的支付分配。然後查理將R告訴給了愛麗絲之後也更新他們的渠道,最後交易完成,愛
麗絲以脫鏈的形式付給鮑勃0.5BTC。
閃電網絡的最初設想為一個中心輻射型網絡。
http://7fvhfe.com1.z0.glb.clouddn.com/@/wp-content/uploads/2015/12/hub-spoke-2.png
你的錢包將會連接到一個“支付中轉站”,也就是上述例子中查理所扮演的角色。由於各
種支付渠道彼此之間都保持暢通,愛麗絲有一個和中轉站A相通的渠道,而鮑勃也有一個
和中轉站B相同的渠道,這樣愛麗絲就可以直接和鮑勃交易了。和之前的比起來,用相同
的辦法現在只需要在彼此間有一到兩個額外跳躍就可以完成。
如果能有許許多多的小額支付中心(成百或上千個),那麼這個網絡拓撲結構就能完美運
行。但是,若是只有少數幾個大型中轉站,那麼這個網絡拓撲結構就會完全失敗。它就是
下一個visa卡、萬事達卡或者美國運通。
那需要多少個中轉站?
要精確地預測出存在於網絡均衡中的中轉站的數量是完全不可能的,但是仍有一些理由可
以說明這個數字是會逐漸變小,而不是增加。然而不可否認的是,這是一款開源性的軟件
,任何人都可以在上面運行一個支付中轉站(至少在政府部門決定監管之前),只是支付中
轉站運行的高成本就像是給進入者們形成了一道堅固的壁壘,從而也就產生出了集中式壓
力。
我在討論什麼樣的成本呢?讓我們回到查理扮演“交易中轉站”的那個例子中去。
http://7fvhfe.com1.z0.glb.clouddn.com/@/wp-content/uploads/2015/12/network1.png
回想一下,愛麗絲需要(通過查理)把比特幣付給鮑勃,所以查理不得不在更新他和愛麗
絲的分配渠道之前就更新他與鮑勃的分配渠道(付給鮑勃的多,自己得到的要少)。也就
是說,查理在得到鮑勃的0.5BTC之前(一段很短的時間內),就得先付錢給愛麗絲。
這意味著,如果查理想要成為一個支付中轉站,那他自己必須在他“客戶”共有的渠道裡
存夠足夠多的比特幣,這樣才能促成這些“客戶”的脫鏈交易。如果查理沒有預存至少
0.5BTC(今天換算過來應該是420$)到鮑勃的渠道裡,那麼這筆交易就不能做成。
現在,這筆錢不會以任何形式來構成貸款,查理將保留其百分之百的控制權。但是,這筆
錢至少還是需要放在那些渠道裡,以便促成那些脫鏈支付。我們知道,錢的時間價值是一
個東西,所以要運行一個支付中轉站還是需要一些切切實實的成本的。更不用說在你剛開
始之前就需要拿出一大筆錢了。
那一個支付中轉站應該給每個渠道存入多少預存款呢?我並不知道,我們只能說這是價值
500$的比特幣。如果你想要運行一個服務100人的支付中轉站,你需要50000$的資產來啟
動它(更現實一點的話,這個數字將會變為百萬)。我碰到的一些媒體人似乎認為人們在
臥室就可以運行他們的支付中轉站,然而我想說的是事實並非如此。
因此,如果某天閃電網絡最終還是為中轉站輻射型拓撲網絡,那麼集中製就是這天中最大
的顧慮了。
錢包對錢包的路徑
我們可以設計出比中轉站輻射型更好的模型嗎?現如今已經有很多關於阻止支付中轉站的
討論了,人們也在嘗試去創造出更分散化、有組織的錢包對錢包的路徑。但是這個是如何
奏效的呢?試想一下,如果愛麗絲想要買一杯咖啡,在此之前,她的錢包會用相同的技術
在網絡中通過其他節點找到一個路徑來支付這杯咖啡。如果錢包找不到任何一個節點,那
麼它將與咖啡店打開一個新的支付渠道來完成這筆交易,然後留著這個渠道以便日後再用
。理論上說來,愛麗絲的錢包能夠維持數十個開放的渠道。
如果有人每次在嘗試支付時都不能找到一個渠道,那麼新的渠道將會被打開,長此以往用
戶間的一些有組織的渠道路徑就會形成,例如:
http://7fvhfe.com1.z0.glb.clouddn.com/@/wp-content/uploads/2015/12/routing.png
從上圖我們可以看到,愛麗絲在離開咖啡店後仍保持其支付渠道的開放,鮑勃最近去了咖
啡店後也保持其支付渠道的開放,而且他還從商店裡買了一條新領帶,這個支付渠道也是
處於開放狀態。
在這個例子中,愛麗絲不僅可以將比特幣以脫鏈的形式給鮑勃,還可以從已形成的有組織
的路徑中將比特幣付給商店老闆。這簡直是太棒了!看起來我們似乎已經解決了閃電網絡
中集中製的問題。但是我們不得不問一下,這種類型的路徑可行嗎?就我自身而言,我當
然希望這是可行的,因為那些比特幣的核心開發者們已經把房子都押在上面了。但是當你
仔細想一下時,你就會知道這個方法並不切實際。下面我就來闡述一些為什麼這個方法不
切實際的理由。
當考慮到具體值的情況下,路由路徑則是很難被找到的
在上述例子中,我們可以得到一條從愛麗絲到商店並通過咖啡店和鮑勃的路由。現實生活
中,它可能很難以我們需要的值來找到一條有組織的路由路徑。讓我們在我們的例子中添
加一些具體值來試試:
http://7fvhfe.com1.z0.glb.clouddn.com/@/wp-content/uploads/2015/12/values.png
愛麗絲和鮑勃都要花5美元來買了一杯咖啡(0.011BTC),這就是為什麼咖啡店在愛麗絲
和鮑勃的渠道中都有0.011BTC。對愛麗絲來說,不管她是想把錢給鮑勃還是商店老闆,咖
啡店老闆都需要更新他和鮑勃的支付分配渠道,咖啡店老闆自己得到的少(從愛麗絲想要
付的錢中),鮑勃從中得到的多。但是注意一下,咖啡店老闆在和鮑勃的渠道中只有
0.011BTC($5),也就是說愛麗絲最多只能付給鮑勃或是商店老闆5$。如果她想要付更多的
錢,那她就需要重新開一個新的渠道。
當人們以不同數額的金額買不同的東西時,這種類型的數值不對稱性就很有可能會頻繁發
生。從一個節點到另一個節點的路徑是很容易被找到,但是每一次找到正確數值的跳躍路
徑則是最困難的部分。
最終我們可能使用更多的是鏈上交易
我們想一下,要是愛麗絲的錢包不能從商店那裡找到一條她想要數額的路徑時,她是怎樣
開啟一條新的渠道的。據推測,在給定的時間內,你錢包中的比特幣,儘管不是全部,也
有絕大部分會留在渠道中。那麼愛麗絲的錢包哪裡還有比特幣來和商店開一個新的渠道呢
?好,如果它不得不關閉現存的渠道之一,那麼當你的錢包在交易時不能找到一條路徑的
過程將是這樣:
1)關閉現有的一條渠道來完成上鍊交易。
2)和收款人開啟一條新的渠道來完成上鍊交易。
這兩筆上鍊交易中還只有一筆付款。要是有一筆大交易無法找到一條路徑(因此不得不關
閉一個舊的渠道來打開一條新的渠道),很多的存款都將被浪費掉。如果有超過百分之五
十的交易找不到路徑,閃電網絡實際上會更多促成的是比特幣上鍊交易,而不是直接付錢
給人的交易。
絕大多數的用戶會處於離線狀態的
在一定程度上來說,人們即便是使用桌面上的錢包,也不會讓它二十四小時都掛著,他們
在不用錢包的時候就會關閉程序,蓋上筆記本電腦的蓋子,關掉電腦等。除此之外,很多
人的手機錢包都是休眠狀態,不會時刻保持上線狀態。因此我們否決了這個方案,因為我
們99%的預期用戶都不會參與路由付款。如果不是之前有組織的路徑工作良好,那麼99%的
預期用戶都不會參與的可能性會變得有多小?
渠道無法即時創建
還記得當錢包無法找到路徑時,它們會使用魔法般的能力來即時開創出新的渠道。在我們
以前的例子中,愛麗絲要給咖啡店付款,她的錢包無法找到路徑,於是錢包只能開創一條
新的渠道並使渠道一直保持開放狀態。
這在過去也許還行得通,但是記住,現在核心開發人員已經給我們增補了全RBF(注意當
區塊處於滿額狀態時它不會選擇性的加入,它是強制性的加入否則你的交易將會被卡住)
。於是你只是不能即時開啟新的渠道(至少不能進行零售購買),因為建立渠道的比特幣
可以被自如地雙向使用到其他地方,所以你只有在渠道確認後才能進行付款。因此現在我
們留下的是,如果你不能通過現存(已確認)的渠道來找到一條路徑,那你就不能向商店
老闆付款。這將對使用大型已連接的支付中轉站產生巨大的壓力,因為那是你唯一能保證
通過已確認渠道所獲得的路徑的方法。
接收者必須在線
回想一下以前例子里關於HTLC的路徑的解釋。愛麗絲的錢包聯繫鮑勃的錢包,並問它要一
個Hash的隨機數字(R)。好吧,基本上鮑勃是需要在線才能將那個數字給她。這個能夠
直接和比特幣進行對比,因為在比特幣目前的使用中,發送者和接收者是不需要同時在線
的。當然鮑勃可以將這個功能外包給第三方(這簡直是一個丟臉的解決方案IMO),但這
也正好對只能用一個支付中轉站,而不是有組織的路徑造成了更多的壓力。
所以當我們把上述的所有的點都考慮進去時,這種有組織的錢包對錢包的路徑似乎並不能
運行得特別順利,而且對於用原始的中心輻射型模型也會有壓力。
考慮到所有的點後(就是已知的核心開發團隊),除了等著看到閃電網絡是如何發揮作用
,你還真沒有辦法證明那些急於貶低比特幣核心功能的對錯。如果閃電網絡最後不了了之
了(當然我們並不希望這個發生),那麼比特幣就會像我們一樣,別無選擇,只能以那點
來利用它了。
評論:
連續的計量小額支付用Lightening Network是非常好的(譬如Wifi和4G網路費),
但是並不代表這可以取代比特幣區塊擴容
比特幣假如要成為廣泛使用的全球性支付網路,1MB的區塊容量是絕對不夠的