當比特幣於2008年由Satoshi Nakamoto首次提出時,James A. Donald對該系統的第一次公開評論包含如下內容:「我理解你的提案的方式,彷佛沒有達到所需的規模」。十年後,可擴展性仍然是比特幣以及其餘資深加密貨幣系統的最大問題。php
可伸縮性到底意味着什麼?好吧,在它存在的整個過程當中,比特幣每秒只能處理大約7筆交易。雖然這在一開始就足夠了,但該系統已經擁擠了幾年了。所以,交易須要很長時間才能處理,交易費用也是偏高的。java
若是比特幣永遠成爲現有支付系統的徹底替代品,它顯然須要可以與它們競爭。截至目前,它還差得很遠。要了解狀況的嚴重程度,只需比較比特幣每秒7次的小額交易,以及Visa的平均24,000次交易,以及每秒約50,000次交易的峯值容量。node
多年來,比特幣的社區就如何提升比特幣的可擴展性提出了各類建議,但還沒有達成清晰的整體共識。這就是爲何咱們目前有幾個相似比特幣的網絡從原始網絡分支出來的緣由。然而,目前正在測試的一種提議的解決方案可能可以正常工做。它被稱爲閃電網絡。python
在歷史的某個時刻,發送電報是最快捷,最有效的長途通訊方式。爲此,你必須前往當地郵局,填寫表格並根據其中包含的信件支付費用。而後,該消息將被髮送到最近的電報局,以便傳送到遠端。郵差而後將電報發送到目的地。android
基本上,有不少人蔘與發送一條簡短的短信,你必須付出至關多的錢。這幾乎是比特幣網絡的當前狀態。在這個類比中,閃電網絡基本上像若是有一個你想要快速撥號交談的人:只須要按「1」就可讓你朋友的電話響了。git
簡而言之,比特幣閃電網絡背後的想法可能聽起來像這樣:咱們真的不須要每一筆交易都記錄在區塊鏈上。程序員
相反,Lightning Network爲比特幣的區塊鏈增長了另外一層,使用戶可以在該額外層上的任何兩方之間建立支付渠道。這些渠道能夠根據須要存在,而且因爲它們是在兩我的之間創建的,交易幾乎是即時的,費用將極低甚至不存在。github
輸入Danny和Jon。他們可能正在一塊兒工做,他們多是親戚或一對夫婦,重點是他們須要常常,快速且以最低費用向對方匯款。所以,他們在閃電網絡上創建了一個頻道。web
首先,他們須要建立一個多功能錢包,這是一個錢包,他們能夠用他們各自的私鑰訪問。而後,他們都將必定數量的比特幣(好比每一個3比特幣)存入該錢包。算法
從那時起,他們能夠在二者之間進行無限制的交易。基本上,這些交易是存儲在共享錢包中的資金的從新分配。例如,若是Danny想要向Jon發送1BTC,她將須要將該金額的全部權轉讓給他。而後,他們兩個使用他們的私鑰簽署更新的資產負債表。
資金的實際分配發生在渠道關閉時。該算法使用最近簽署的資產負債表來肯定誰得到了什麼。若是Danny和Jon決定在一次交易後關閉頻道,Danny將得到2BTC,而Jon將得到4BTC。
只有在頻道關閉後,有關其初始和最終餘額的信息纔會廣播到比特幣區塊鏈。所以,Lightning Network的工做方式是它容許用戶在主區塊鏈以外進行大量交易,而後將它們記錄爲單個交易。
最使人興奮的是,一旦該技術被普遍採用,你甚至不必定須要創建專門的渠道來向某我的發送資金。相反,你可使用與你已鏈接的人的頻道向某人發送付款。系統將自動找到最短路徑。
這就是閃電網最終可能爲比特幣購買一杯咖啡的永無止境的辯論提供答案的方法。從它的外觀來看,經過Lightning頻道閃電網絡這樣作可能會起做用,由於它幾乎只是一次購買,不會產生任何費用。
那安全嗎?可是,值得注意的是,Lightning Network的概念意味着系統將在區塊鏈之上工做,但實際上並不具有其安全性。所以,它極可能主要用於小微交易。須要去中心化安全性的較大轉帳極可能仍將在原始層上完成。
最後,目前正在測試的Lightning Network的另外一個有趣特徵是交叉鏈原子交換,它是不一樣區塊鏈之間的代幣轉移。簡而言之,它是一種在不使用加密貨幣交換的狀況下將任何給定的加密貨幣交換到另外一種加密貨幣的方式。
最終,這項技術可能會使不安全的集中式加密貨幣交換以及與交易相關的麻煩都過期。比特幣和萊特幣測試區塊鏈之間交換代幣的第一個測試已經證實是成功的。
Lightning Network最初是由Joseph Poon和Thaddeus Dryja在2015年的白皮書中描述的——當前版本的白皮書能夠在這裏找到。目前有三個團隊共同開展閃電網絡的大部分工做:Blockstream,Lightning Labs和ACINQ,以及來自比特幣社區其餘成員的意見。
上面提到的每一個初創公司都在使用他們本身的實現,以不一樣編程語言編寫的Lightning網絡協議。
服務商 | 產品 |
---|---|
Blockstream適用於C版的LN版本。 | |
Lightning Labs正在開發一個用Golang編寫的Lightning Network Daemon(lnd)。 | |
ACINQ負責Scala實施。 |
此外,目前還有正在開發其餘實施方案。完整列表可在此處得到。最後,重要的是要提到最近的測試已經證實三個主要實現是徹底可互操做的,這意味着它們能夠彼此無縫地協同工做。
加密貨幣社區彷佛熱切期待Lightning Network的推出。最初,它是專門爲比特幣設計的,但該技術目前正在爲一系列其餘加密貨幣開發,如Stellar,Litecoin,Zcash,Ether和Ripple。
真正的比特幣實際上已經被髮送而且幾乎老是使用Blockstream,Lightning Labs和ACINQ的實現接收,證實全部這三個實現都是可互操做的。此外,已經公佈了初版閃電網絡規則概述的規範。
這些規範是網絡向前邁出的一大步,由於它們能夠被應用程序的開發人員使用,也能夠在其餘編程語言中實現Lightning Network。
然而,該網絡仍處於起步階段。到目前爲止,尚未軟件可讓網絡的真實臨時用戶進行交易。此外,目前的實施仍然是很是錯誤的時機。Lightning Network開發人員已經敦促用戶使用比特幣的測試網瞭解網絡,而不是發送任何真錢。
開發人員還建議用戶保持耐心,由於網絡代碼很是複雜,須要嚴格的測試。爲了被比特幣社區徹底採用,Lightning Network須要證實本身是安全和可用的。考慮到這一點以及許多其餘因素,專家預測,徹底正常工做的閃電網絡可能須要幾個月到幾年的時間。
至於使用網絡的緣由,答案很簡單:可擴展性。若是網絡實際上將提供比特幣主要問題的解決方案,它極可能會被其餘加密貨幣採用。
若是發生這種狀況,可能會進一步開發交叉鏈原子交換技術,從而標誌着創建真正去中心化的加密貨幣交換的第一步。
正如以前提到的,閃電網絡只是邁出了第一步。它仍然處於開發階段,它是否會像開發人員想象的那樣實際工做仍有待觀察。若是是這樣,如下是Lightning Network的一些最重要的優點,你能夠從中受益:
交易速度。一旦網絡上線,就沒必要等待你嘗試進行的每筆交易的屢次確認。不管網絡有多繁忙,交易幾乎都是即時的。若是發生這種狀況,加密貨幣市場將朝着可以與Visa,MasterCard和PayPal等傳統支付系統競爭邁出巨大的一步。
交易費用。因爲交易實際上將在閃電網絡頻道內和區塊鏈以外進行,所以你只需支付最微小的費用(若是有的話)。這是Lightning Network的主要優點之一,由於這將徹底使比特幣成爲商店,咖啡館,酒吧等的一種付款方式。
可擴展性。聽說閃電網可以將比特幣和其餘加密貨幣的每秒交易數量達到每秒至少100萬筆交易的史無前例的高度。
**交叉鏈原子交換。**交叉區塊鏈交易的第一次測試奏效了,這一切都很是使人興奮。只要兩個區塊鏈共享相同的加密哈希函數(而且大多數主要區域鏈共享),用戶將可以將錢從一個鏈轉發到另外一個鏈,而沒必要信任第三方中介,例如交換。該技術具備真正的革命性潛力。
安全和匿名。絕大多數加密貨幣都沒有徹底匿名。發送仍然能夠從一個錢包跟蹤到另外一個錢包。然而,當談到閃電網絡時,大部分交易都發生在主區塊鏈以外,所以經過Lightning渠道進行的全部微支付幾乎都沒法追蹤。
沒有全面運做。目前Lightning Network的主要缺點可能還在於它還沒有徹底投入運營,所以沒有辦法徹底斷言它實際上有多好。此外,它的概念在紙面上看起來很棒,可是到目前爲止還不可能知道它是否會在實現後看起來很棒。
渠道的複雜性。閃電網絡被概念化爲一種渠道網絡,一旦創建,理論上應該容許無縫交易。可是,若是付款必須採起過於錯綜複雜的路線,則沒法肯定會發生什麼。固然,若是你的交易須要經過幾十個中間渠道,費用就會增長。
渠道上限。該網絡的另外一個缺點是,在其當前版本中,通道被限制。也就是說,兩個用戶在創建頻道時存儲在錢包中的比特幣數量是該頻道中的最大資金數量。這種設置創造了一種狀況,即某些用戶可能須要在主要區塊鏈中選擇閃電網絡渠道中的流動性和其外部的流動性。這遠非理想,特別是那些資源至關有限的人。
路由集中。此外,人們一直擔憂會造成「樞紐」——一種擁有大量資金的節點,大多數交易都將經過這些節點。許多比特幣愛好者認爲這是網絡的進一步集中化。可是,這些中心不太可能可以得到任何重大的交易費用。
一樣,值得指出的是,目前上面列出的閃電網絡的優勢和缺點都很是具備推測性。
嗯,事實上,若是你不是高級用戶,那麼你還不能使用Lightning Network。因此,你如今惟一能夠作的就是等待,看看閃電網絡是否可以實現而非炒做,它是否真正起做用和描述以及它是否安全。
請記住,Lightning Network不是惟一的縮放提案,而且它毫不是該競賽中無可爭議的領導者,比特幣現金(BCH)是其主要競爭對手。BCH擅長者和閃電支持者之間的辯論很激烈,看不到盡頭。多是其中一個提案出如今最前面,它們可能共存,或者可能存在徹底不一樣的解決方案。
閃電網聽起來使人興奮。若是它確實提供,請考慮你實際使用比特幣的內容。若是你使用代幣做爲長期投資而不是其餘任何東西,你可能甚至不須要Lightning Network,由於目前委託它處理大額轉帳彷佛並不徹底安全。
可是,若是你將比特幣視爲一種替代支付方式,那麼閃電網絡若是符合預期,對你來講將是相當重要的。即時微支付,匿名性增長,幾乎不存在費用——它彷佛真正爲大多數比特幣的問題提供瞭解決方案。
======================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的交互式在線編程實戰教程:
- EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、帳戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
- java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
- python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
- php以太坊,主要是介紹使用php進行智能合約開發交互,進行帳號建立、交易、轉帳、代幣開發以及過濾器和交易等內容。
- 以太坊入門教程,主要介紹智能合約與dapp應用開發,適合入門。
- 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
- C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括帳戶管理、狀態與交易、智能合約開發與交互、過濾器和交易等。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Java代碼中集成比特幣支持功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
- php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Php代碼中集成比特幣支持功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
- tendermint區塊鏈開發詳解,本課程適合但願使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI接口、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操代碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。
匯智網原創翻譯,轉載請標明出處。這裏是原文比特幣閃電網絡(Lightning Network)及其工做原理