編者按:本文來自碳鏈價值,作者:白魚,編輯:唐晗,校對:Conflux研究總監、密碼學專家楊光博士,Odaily星球日報經授權轉載。如果Alice和Bob完成了一筆交易,他們手頭各自都有賬本,在沒有第三方見證的情況下,他們都可能把賬本按照對自己有利的方向進行篡改。銀行是怎么解決這個問題的呢?在傳統的銀行業中,由于Alice和Bob都信任銀行,因此銀行充當了雙方都信任的第三方來進行記賬,并且以第三方的賬目為準,因此雙方不管怎么篡改賬本都沒用。區塊鏈是怎么解決這個問題的呢?區塊鏈同樣引入了第三方來充當記賬者,雖然Alice和Bob都不信任記賬者,但系統會想盡辦法來保證記賬者的誠實性。但是到了閃電網絡,請注意,這里再也沒有一個第三方記賬者了!Alice和Bob又重新拿回了他們的小本子,各自記起了各自的賬本。問題在于怎么保證他們都誠實記賬!說明:此文的思路取之于AaronvanWirdum于2016年寫就、發布于BitcoinMagzine的《閃電網絡三部曲》,許多基本說明的制圖亦取之于此。在此對BitcoinMagazine及AaronvanWirdum先生本人表示感謝。想要查看英文原版的,鏈接見Bitcoinmagazine。閃電網絡最近再次火爆,一方面是由于“閃電火炬“的傳遞,一方面是閃電網絡節點數目的明顯增加。據閃電網絡瀏覽器數據顯示,全網節點已經達到6294,活躍節點達3235,資金量達到691BTC,通道數目為27030。全球范圍看,美國部署的節點最多,共929個,占節點總數的28.56%;來自美國的通道數共12008個,占節點總數的43.75%。其次是德國、法國、加拿大。值得一提的是,美國的這929個節點大部分是商戶,這其中不僅僅包括被人津津樂道的愛華斯披薩店、自由職業服務網站NDWork,還包括著名的社交軟件商Twitter。Twitter首席執行官JackDorsey公開表示,正在嘗試在推特上使用閃電網絡進行比特幣打賞,這個想法可能會在今年落地。甚至還有傳言稱,麥當勞美國也在測試比特幣的閃電網絡。毫無疑問,美國正在刮起一陣“閃電網絡”的旋風。如果這些商家最后都成功采用了閃電網絡,這將給比特幣的支付推廣帶來的影響不可小覷。但可惜的是,這股風潮尚未在中國落地開花。閃電網絡瀏覽器顯示,截至目前,中國一共只部署了11個節點,其中上海占4個,北京2個,江蘇2個,相比起美國來說簡直少的可憐。可以說,雖然閃電網絡很重要,但它還未在國內引起足夠的重視。直觀圖像
比特幣閃電網絡節點數量為17,652個:金色財經報道,1ML網站數據顯示,比特幣閃電網絡(LightningNetwork)的節點數量為17,652個,同比增長1.35%;通道數量為85,454個,同比增長1.4%;網絡容量為3,986.39BTC,同比增長6%。[2022/6/9 4:12:09]
下面兩張圖分別是ACINQ開發的LN瀏覽器展示的節點連接可視化拓撲圖像以及比特幣全球節點的分布圖。從圖中可以看出,閃電網絡與比特幣網絡結構類似,它首先是一種軟件,需要在本地部署一種獨立的客戶端,從而成為節點,然后節點尋找到活躍節點建立通道,最后連接成網絡。從下圖中可以看出,歐洲和北美是閃電網絡和比特幣節點部署最多的地方,而在東亞、澳大利亞等地方也有部署,但數量較少。這種直觀的初步認知對理解LN是非常有必要的。閃電網絡節點圖比特幣網絡節點圖 閃電網絡原理白話版
很多人說閃電網絡是比特幣的未來,是趨勢。但筆者始終覺得,如果不能理解底層的技術原理,就無以言對上層應用的深刻理解,更不足以談對未來趨勢的判斷。接下來,我將在AaronvanWirdum編寫的《閃電網絡三部曲》的基礎上,用更加通俗的語言介紹閃電網絡。感謝AaronvanWirdum繪制的交易結構圖,這對我們理解閃電網絡將會起到莫大的幫助。理解閃電網絡主要分為兩步,一是理解雙向支付通道,二是諸多通道擴展成閃電網絡。閃電網絡想要解決的是比特幣擴容、交易即時確認和手續費高的問題。舉個例子來說明閃電網絡整體思路,設想我們的老朋友Alice要給Bob轉1個比特幣,她該怎么做呢?傳統做法是Alice可以挑選出其未花費的輸出用對應私鑰簽名,并向比特幣網絡廣播,礦工驗證打包,一般來說6個區塊之后即可確認交易。這個過程很慢,需要等待一個小時左右,并且還要支付給礦工的手續費。于是呢,天才的程序員們碰撞出了閃電網絡的解決方案。操作過程是這樣的,Alice和Bob先各自把5個BTC轉給一個由兩人共同控制的多重簽名地址。這筆交易和比特幣網絡上其他普通交易沒什么太大區別,只是轉出的地址是一個多簽地址。這個過程稱為開啟通道。多重簽名技術是多個用戶同時對一個數字資產進行簽名。可以簡單地理解為,一個賬戶多個人擁有簽名權和支付權。如果一個地址只能由一個私鑰簽名和支付,表現形式就是1/1;而多重簽名的表現形式是m/n,也就是說一共n個私鑰可以給一個賬戶簽名,而當m個地址簽名時,就可以支付一筆交易。例如,多重簽名2/3,表示3個人擁有簽名權,而兩個人簽名就可以支付這個賬戶里的比特幣;多重簽名1/2,表示2個人擁有簽名權,誰都可以單獨來支配這筆資金。開啟通道后,這個多簽地址里面就擁有10個比特幣,這是被區塊鏈記錄了的,全網承認。接下來就是Alice和Bob私底下的交易了,不廣播,不記在鏈上,正因如此,交易確認速度快,幾乎零手續費,這個過程稱為鏈外交易,在交易通道中進行。1.構建雙向支付通道什么是通道?怎么在通道進行交易呢?它安全嗎?簡單來說,Alice和Bob都會在各自的小本本上記賬,他們都知道對方怎么記的,且有密碼學設計保證誰也不能多記耍賴。這當然也是由閃電協議精巧的設計保證的,后文再講技術細節。那么我們就可以想象出這樣一個通道:在這個通道中,一開始Alice和Bob各有有5個,如果第一筆記“Alice有4個,Bob有6個”,這就相當于Alice給Bob轉了1個比特幣。如果,過了幾天,Alice又要向Bob支付2個比特幣,那么他倆會再記一次賬,這次記“Alice有2個,Bob有8個”,同時上次記的“Alice有4個,Bob有6個”在兩人共同確認后作廢,也就是說,本次記賬后,Alice只有2個比特幣,她不能再拿出舊賬單說“Alice有4個,Bob有6個”。注意,在通道關閉之前,這10個比特幣只能在Alice和Bob之間使用。也就是說,在不關閉通道的情況下,主網只知道多簽地址有10個比特幣,并不知道Bob已經擁有了其中的8個比特幣,這就是所謂“雙向支付通道”。關于這個記賬過程,EthFans翻譯的《用算盤了解閃電網絡》可以說很形象了。之后Alice和Bob就可以在通道里過上你來我往的相互轉賬的愉快生活,遠離主鏈的擁堵與高費用。這就好比倆人結婚了,夫妻們想要私下結算,只要倆人同意,想怎么算就怎么算。天有不測風云,突然有一天,Alice不想和Bob這么轉來轉去了,想取出自己在通道里的錢去外面的花花世界瀟灑快活。那么就需要關閉通道了,常有兩種方式,一是協議離婚,如下圖,這種方式很和平,雙方共同從最開始的多簽地址簽名發起一筆交易分別轉到兩人各自控制的地址對應數額的比特幣,同時將之前記在小本本上的所有舊賬一筆勾銷。二是起訴離婚,Alice想離而Bob不想離,這時Alice可以單方面強制關閉通道,將小本本最后一筆交易廣播出去,只要礦工驗證并打包進區塊,這婚也算離了,代價是Alice并不能立馬得到比特幣,需要等待一定時間。本著勸和不勸分的原則,閃電協議設置了哈希時間鎖定合約,單方面強制離婚會受到延遲收到退款的懲罰,這是為了保證雙方交易的穩定。以上最后一個過程是通道關閉。注意,不管是協議離婚還是起訴離婚,這都是要法院受理登記的。關閉通道一定要發起交易并廣播到主網,最后礦工記錄,所以還是要忍耐一定確認時間和支付手續費的,這與閃電網絡無關。至此我們已經知道了Alice和Bob鏈下互相轉賬的那點事兒了,這就是所謂“雙向支付通道”。開啟通道需要在主鏈交易,這是鎖定資金,關閉通道也需要在主鏈交易,這是釋放資金。中間可以進行任意多次轉賬支付,是0確認0手續費的。2.將雙向支付通道擴展成閃電網絡新問題來了,世界上除了這兩位,還有Carol、Eric、Diana等等。設想Alice想轉給Carol1個BTC,她該怎么辦呢?自然地,她倆可以再重復上述操作建立一個雙向通道。但是,如果我們為了應用閃電網絡,需要世界上每兩個人之間都建立一條通道,這將是非常大的工作量且不切實際的。為了解決這一問題,我們需要將雙向支付通道擴展成閃電網絡。假如Bob和Carol之間已經建立了支付通道,而Alice和Bob之間也有支付通道,那么Alice可以先把錢轉給Bob再由他轉給Carol,即Bob充當了支付的中間人,在網絡里他就是一個路由節點。如上圖,B和C,A和B之間有通道,A和C就通過B來達成交易。更一般地,A和F可以經過B、D來交易。當很多的節點相互建立通道,最后就會形成閃電網絡。閃電網絡原理技術細節版
閃電網絡節點數量已達13963個:金色財經報道,據1ML.com數據,目前,支撐網絡的節點數量達到13963個,相較30天前數據,環比上漲2.62%;通道數量為37137,相較30天前數據,環比0%;閃電網絡承載能力目前為1112.05BTC,約合1186.54萬美元。[2020/9/28]
通過上文,我們差不多了解了閃電網路是如何形成的。但是看完大家一定會覺得有哪里不對勁。哪里不對勁呢?我們來回顧一下歷史。如果Alice和Bob完成了一筆交易,他們手頭各自都有賬本,在沒有第三方見證的情況下,他們都可能把賬本按照對自己有利的方向進行篡改。銀行是怎么解決這個問題的呢?在傳統的銀行業中,由于Alice和Bob都信任銀行,因此銀行充當了雙方都信任的第三方來進行記賬,并且以第三方的賬目為準,因此雙方不管怎么篡改賬本都沒用。區塊鏈是怎么解決這個問題的呢?區塊鏈同樣引入了第三方來充當記賬者,雖然Alice和Bob都不信任記賬者,但系統會想盡辦法來保證記賬者的誠實性。但是到了閃電網絡,請注意,這里再也沒有一個第三方記賬者了!Alice和Bob又重新拿回了他們的小本子,各自記起了各自的賬本。問題在于怎么保證他們都誠實記賬!1.雙方支付通道:如何使記賬的雙方保持誠實?這是一個非常有意思的問題,使得我們的第一步——建立“雙向支付通道”,變得難以維持了。那么,Alice和Bob這樣兩個完全不信任對方的陌生人,究竟該如何在沒有主鏈礦工記錄的情況下,相互轉賬交易?作為鋪墊,我們需要講解兩個概念,哈希時間鎖定和哈希密鑰鎖定。首先是哈希時間鎖定,這是在交易腳本里面設置時鐘,必須要等設定時間之后,才能用地址的私鑰簽名解鎖地址里的比特幣。例如Alice收到了一筆2BTC轉賬,但是對方設定了1000個區塊之后才能解鎖,所以Alice必須等待1000個區塊之后才能用自己的私鑰簽署交易,花費其中的BTC轉給Bob。其次是哈希密鑰鎖定。哈希函數可以把一串輸入轉換成256位固定長度的輸出,計算過程稱為一次哈希運算,其中輸入稱為密文,輸出稱為密文的哈希值。哈希函數具有單向性,即從密文可以算出哈希值,但是從哈希值反向算出密文幾乎是不可行的。計算的辦法是暴力破解,逐一輸入密文進行哈希運算,驗證運算結果是否為要求的哈希值。基于這種特性,可以把一個密文的哈希值放入交易的輸出當中充當哈希密文鎖,也就是必須得輸入該哈希值對應的密文才能解鎖腳本中的比特幣。例如,例如Alice收到了一筆2BTC轉賬,但是對方設定了哈希值鎖定,所以Alice必須得到交易方的密文,同時配合自己的密鑰簽名才能簽署交易,花費其中的BTC轉給Bob。有了這兩個工具,讓我們看看那群程序員天才們是如何構想出一個程序,使得互不相識的雙方能夠誠實記賬的。在原理的白話版我們已經講過了關于通道的三個步驟:開啟通道,通道內交易,關閉通道。開啟通道較為簡單,Alice和Bob分別向多簽地址1轉入5個BTC。這是一個2/2地址,也就是必須兩人都簽名,此地址的比特幣才可以轉出去。接下來是通道內交易,我們需要講解Alice和Bob之間的兩次交易才能完全明白雙向支付通道的巧妙之處。第一次Alice需要向Bob支付1個BTC,第二次Bob需要向Alice支付1個比特幣。第一次交易的流程是,Bob首先在自己電腦的閃電網絡軟件上構建交易,如下左圖所示。Bob在構建交易時需要通過閃電網絡軟件的通信模塊和Alice建立聯系,獲得Alice創建的密文的哈希值,然后把這個哈希值作為哈希鎖放在自己構建的交易里。這筆交易Bob把10個比特幣分別轉給Bob控制的普通地址6個和另一個“多簽地址2”4個BTC。多簽地址2是一個1/2地址,也就是兩個條件有一個滿足即可解鎖。具體來說,需要Bob用自己的私鑰和Alice的密文同時來解鎖;或者Alice等待1000個區塊后用私鑰來解鎖。如下圖,這兩個條件是雙向支付通道的精髓所在,請先記住它,稍后分析中會講設計的原因。Bob構建完交易后會簽名,然后把這筆未完成的交易以點對點方式發送給Alice,而不是廣播到全網。顯然,上述交易是對Bob有利的,一旦Alice簽名并廣播,Bob可以立即獲得6個比特幣,而Alice需要等到1000個區塊之后才能擁有4個比特幣。這也就是上文提到的單方面“起訴離婚”會受到延時懲罰的技術實現細節。然而,這筆對Bob有利的交易的主動控制權卻掌握在Alice手里,因為Alice不簽名并廣播的話,這筆交易暫時不會生效的。在Bob創建這筆對自己有利的交易同時,Alice也創建了類似的一筆對自己有利的交易,兩者是一種鏡像。這個過程相當于是Alice幫Bob在他的小本本上記了一筆賬,這10個比特幣Bob占6個,Alice占4個,同理Bob也幫Alice記賬了。具體來說,就是Alice電腦里保存著Bob創建并簽名的未完成交易,Bob保存著Alice創建并簽名的未完成交易。兩者合在一起,就完成了他們之間第一筆交易的記賬過程,完整過程如下圖。這個過程并不需要互相信任,只需雙方同時在線,建立聯系并交換哈希值,再在各自的電腦里創建交易最后發送給對方。整個過程不需要經主鏈由礦工打包確認,所以非常快速并且沒有手續費。也可以看到,任何一方都可以隨時強制關閉通道,將自己占主動權的交易簽名并廣播全網,代價是1000區塊延時。但是這里仍然有一個問題,就是外界無法知道通道內的交易次序,因此無法鑒別通道關閉后廣播出去的交易,是否為最終交易。例如,如果雙方在這個通道里不斷發生交易,最后導致Alice手中有9個,Bob手里有1個,但假設最后Bob強制關閉交易通道,并廣播出去Alice有5個,Bob有5個,Bob便能憑空賺得4個。該怎么解決這個問題呢?這次我們就要再次用到上文提到的哈希密鑰鎖了。現在我們考慮過了兩天,Bob要向Alice轉1個BTC,即雙方發生第二筆交易B。類似他們仿照上述第一筆交易操作進行第二次記賬,此時應當是Alice5個,Bob5個。一個最大的區別是建立第二筆交易B之前,兩人會相互交換第一筆交易中的密文,即對方第一把鎖的鑰匙。這么做的目的在于作廢第一筆交易記錄A,使得兩人都只能承認最新的交易記錄B有效。設想Bob在第一筆記錄中擁有6個比特幣,而第二筆記錄變成了5個,那么如果他想作弊去簽名并廣播第一條記錄呢?結果是他將失去通道內所有的比特幣!因為Bob簽名并廣播了下圖交易之后,Alice立馬會獲得4個BTC,同時Bob則必須等待1000個區塊之后才能解鎖6個BTC。然而,由于此時Alice已經獲得了密文即鑰匙1,所以Alice可以趕在Bob之前解鎖這6個BTC。綜合來看,只要Bob想要廣播舊交易記錄,他就會一無所有。有了能作廢舊賬的保證,雙方就可以在通道內反復任意多次交易,每次交易之后的狀態都是資金池資金的劃分比例的最新確認狀態。最后,關閉通道。如本文第二部分所講,有兩種方式關閉通道,一是單方面強制關閉,即某一方將自己控制的最新交易簽名后廣播出去即可。二是商議后關閉,此時雙方再從最開始的多簽地址構建一筆交易。至此,我們明白了如何在無信任的條件下如何建立雙向支付通道。2.閃電網絡:如何使路由節點保持誠實?同樣的,在建立閃電網絡的時候,我們同樣會遇到信任問題:Alice想轉給Carol1個BTC,需要經過Bob,但Bob會擔心自己給Carol轉1BTC后,Alice耍賴;同樣Alice會擔心如果先給Bob轉了1BTC,Bob也耍賴不轉給Alice。在傳統的金融系統中,是由大型知名金融中介機構的信用提供保證的。但閃電網絡中,并沒有這樣一個獨立于交易者的第三方去提供信用擔保。閃電網絡采用了一種HTLC(哈希時間鎖定合約)完美解決了這個問題。過程是這樣的,第一,Carol會選擇一個隨機密文并運算得到其哈希值,再將此哈希值交給Alice。第二,Alice拿到哈希值后,會構建一筆轉賬給Bob的交易。這筆交易需要Bob拿到Carol的密文才能解鎖,如果Bob在限定的時間內沒有解鎖成功,這筆錢則退回給Alice。第三,Bob從Alice處拿到哈希值,他也構建一筆轉賬給Carol的交易,Carol必須拿密文來解鎖。第四,當Carol提供密文從Bob處獲得1個BTC,Bob立馬會拿密文從Alice處獲得1個BTC,這就完成了從Alice給Carol轉賬的任務。上述過程可以看作一個智能合約。故事類似于這樣:A想經過B轉賬給C,那么C先給A一把鎖,C有鑰匙A有錢。A跟B說,你從C那里拿到了鑰匙,我的錢就是你的了。B就拿著鎖去找C,用錢跟C換鑰匙,然后拿鑰匙去換A的錢。如此一來,就實現了錢和鎖從A到B再到C,鑰匙從C到B再到A的一個流轉。當然,在實際操作過程中,Alice給Bob轉賬金額需要大于1個BTC,支付必要的路由費以激勵Bob充當路由節點。其次,要注意兩筆交易之間的哈希時間長度設置,第二步時間必須長于第三步時間。如果Bob在Alice關閉交易之后拿到Carol的鑰匙,他將無法找Alice拿回1個BTC。到這里,我們已經明白了閃電網絡中通過路由節點達成交易的技巧,最后一步只需把之前兩步整合進交易即可,就不再贅述了。
比特幣閃電網絡容量約為895.13個BTC:金色財經報道,1ML數據顯示,當前比特幣閃電網絡節點數為11624個,過去30天內增加2.32%;通道數量為36286個,過去30天內增加0.8%;網絡容量達到895.13個BTC,過去30天內增加3%。[2020/3/8]
聲音 | BafeExPríamo Soria:多方支付能為比特幣閃電網絡提供便利:BafeEx.io交易所CTO Príamo Soria認為,Blockstream公司最新推出的比特幣閃電網絡c-lightning v0.8,有不錯的性能改進,它或許能讓比特幣的閃電網絡進一步擴容。Príamo表示,閃電網絡不需要性能“擴容”,而需要資金擴容。目前的比特幣閃電網絡較難支持大額轉賬,因為通道里鎖定的比特幣數量不夠多。但是如果通過將大額付款拆分成多筆付款并行,也就是多方支付(Multi-Part Payments),將有助于解決此問題。同時,理論上用戶不需要感知此拆分過程,后臺進行即可。[2019/12/22]
動態 | Jack Dorsey希望在Square的Cash App引入閃電網絡:據dailyhodl報道,在最近一次采訪中,Square首席執行官Jack Dorsey稱,正在與Lightning Labs的團隊合作,希望將Lightning Network(LN)帶到Square的Cash App中。[2019/2/12]
據韓聯社報道,韓國首爾在本月15日成立了“首爾區塊鏈治理小組”,探索區塊鏈在行政服務方面的優勢。該團體由21歲到77歲的學生、創業者、企業代表等混合了100多種職業的人士組成.
1900/1/1 0:00:00編者按:本文來自區塊律動BlockBeats,作者0x30,Odaily星球日報經授權轉載。有人說2018年是公鏈元年,這一年有50多條公鏈主網上線.
1900/1/1 0:00:00;譯者|秦曉峰編輯|盧曉明從一開始,以太坊就是一個大膽的實驗——它想為數字貨幣資產、不受審查的應用程序以及分散的組織建立一個通用平臺.
1900/1/1 0:00:00譯者|秦曉峰編輯|盧曉明當進入新的一年,我們對比特大陸在過去2018年的情況做了一些反思,并對未來一年寄予了一些期望。在過去的一年里,我們一直致力于加快創建一個旨在實現指數級增長的平臺和環境.
1900/1/1 0:00:00編者按:本文來自白話區塊鏈,作者:五火球教主,Odaily星球日報經授權轉載。在去年11月那場有關BCH的算力戰爭開始之前,可能沒人想到,BCH兩支最大的開發團隊,居然把那么些個“雞毛蒜皮”的小.
1900/1/1 0:00:00我們研究了有關對銀行如何發放貸款的常見誤解,以及這對銀行在經濟中擴大信貸水平能力的影響。我們分析貨幣的內在屬性,以確保它是符合實際情況的.
1900/1/1 0:00:00