而這個技術的起因是源於比特幣早期遺留下來的一個問題。因為比特幣最開始設計的時候,一個區塊只有1M大小,只能記錄上千筆交易,但後來隨著比特幣的推廣度越來越大,使用的人也越來越多,交易量上來以後,這個容量明顯不夠用了,於是就出現了比特幣的交易擁堵問題。為了解決這個問題,比特幣社羣提出了兩種方案,一種就是擴大比特幣的區塊容量,另一種就是不擴容,閃電網路就屬於不擴容這種方案。
閃電網路的思路,就是在比特幣區塊鏈的基礎上,再增添新一層的側鏈,使得使用者能在該附加層上與其他使用者搭建起一個支付通道,然後一部分交易由這個通道進行處理,幫助主鏈處理的交易進行分流。
它的工作原理是這樣的:比如我們要做交易,那就可以在我們之間以鏈下的方式建立一個支付通道,我們把資金都先放到這個通道的錢包賬戶中,這個錢包只有經過我們雙方的私鑰確認後才能開啟,它起到一個資產記錄副本的作用。
之後我們之間就可以進行無限制的交易,每筆交易,都會透過類似智慧合約的功能,記錄在這個副本里,就相當於是我們這個共享錢包中所存資金的重新分配,直到什麼時候,我們之間不再做交易了,就可以關閉這個支付通道,把我們這一系列交易所導致資金分配的最終結果,反饋到主鏈上,經過全網廣播,記錄到鏈上。
這種方式,就相當於給比特幣搭建了個側鏈,主鏈就只用記錄分配的最終結果,至於中間的交易,則透過閃電網路的方式處理,以此分擔了主鏈交易的壓力,自然就解決主鏈交易擁堵的問題。另外,因為所有在通道內的交易都是鏈下的,只需智慧合約來執行,不用要透過全網確認,所以能大大提升使用者之間交易的處理效率。
除此之外,閃電網路也可以實現跨鏈功能,所應用的就是我們上節課提到的雜湊鎖定。它需要跨的兩條鏈都支援閃電網路,兩條鏈將資產都暫存到通道中的臨時賬戶,然後透過雜湊鎖定技術,將雙方的資產進行鎖定。
比如A要與B進行兌換,協議就會先鎖定A的錢,然後讓B給出一個暗號,如果給出的這個暗號的雜湊值能夠等於約定的一個值,那麼這筆錢就會解鎖給B,否則這筆錢就會原封不動地解鎖給A,以此讓不同鏈上的資產在兌換時,能夠同時進行結算,進而完成不同鏈間的價值轉移。
總的來說,閃電網路是目前用來解決可擴充套件性問題和互操性問題的主流方案,不僅適用於比特幣,也適用於其他專案,相信隨著閃電網路的逐步落地,未來可以讓我們真正享受到區塊鏈級別的安全與便捷。