以太網(wǎng)和IP與TCP是如何運(yùn)作的
最近,在比特幣和比特幣現(xiàn)金社區(qū),甚至在更大的加密貨幣生態(tài)系統(tǒng)中對閃電網(wǎng)絡(luò)(Lightning Network)產(chǎn)生的諸多混淆引起了我的注意。因此,我想跟大家分享我在嚴(yán)格的網(wǎng)絡(luò)背景下對比特幣、區(qū)塊鏈以及閃電網(wǎng)絡(luò)的觀點(diǎn)。
為了理解區(qū)塊鏈與閃電網(wǎng)絡(luò)是如何運(yùn)作的,我們應(yīng)該從 Twitter 與 Reddit 充滿硝煙的戰(zhàn)場 (并沒有產(chǎn)生好結(jié)果 )退一步,并回顧一下那些支持我們互聯(lián)網(wǎng)的網(wǎng)絡(luò)協(xié)議與系統(tǒng)。在理解了如何通過計(jì)算機(jī)網(wǎng)絡(luò)與互聯(lián)網(wǎng)的運(yùn)作解決比特幣自身的擴(kuò)展限制后,我相信你會受益匪淺。本文我主要介紹的三個(gè)協(xié)議分別是:以太網(wǎng)(Ethernet), IP和TCP。通過了解這些協(xié)議是如何運(yùn)作的,我們就可以更好地解答很多比特幣以及所有區(qū)塊鏈中有關(guān)擴(kuò)展的問題。 簡單介紹完,讓我們開始吧。
如今,計(jì)算機(jī)網(wǎng)絡(luò)中最常見的兩種數(shù)據(jù)傳輸(data transmission)的形式是廣播(broadcast)和單播(unicast)。還有其他形式例如任播(anycast)和組播(multicast),但本文將不會涉及到。我們先來定義并理解這些數(shù)據(jù)傳輸?shù)男问健?/p>
廣播指信息從網(wǎng)絡(luò)中的一個(gè)點(diǎn)傳送到所有其他點(diǎn);一對所有的數(shù)據(jù)傳輸模式。
-圖為廣播數(shù)據(jù)模式-
單播指信息從網(wǎng)絡(luò)中的一個(gè)點(diǎn)傳送到另一個(gè)點(diǎn);一對一的數(shù)據(jù)傳輸模式。
-圖為單播數(shù)據(jù)模式-
基于對以上數(shù)據(jù)傳輸形式的理解,我們很快發(fā)現(xiàn)區(qū)塊鏈交易就類似于廣播的通信形式。當(dāng)在比特幣網(wǎng)絡(luò)進(jìn)行了一筆交易時(shí),這筆交易信息就會被傳送或廣播到網(wǎng)絡(luò)中所有 連接的節(jié)點(diǎn)。也就是說,在比特幣網(wǎng)絡(luò)中,所有節(jié)點(diǎn)都必須接收并記錄下任何一筆存在或產(chǎn)生的交易。區(qū)塊鏈交易的運(yùn)作與傳統(tǒng)的以太網(wǎng)集線器(ethernet hubs) 對數(shù)據(jù)傳輸?shù)奶幚矸浅O嗨啤?/p>
過去,我們總是依賴于以太網(wǎng)集線器來進(jìn)行計(jì)算機(jī)之間的數(shù)據(jù)傳輸。顯然,我們發(fā)現(xiàn)以太網(wǎng)集線器本身的局限性導(dǎo)致它不能擴(kuò)展。 舊時(shí)的以太網(wǎng)集線器嚴(yán)格支持廣播傳輸,來自于一個(gè)接口(interface)或端口(port)的數(shù)據(jù)將會被廣播并復(fù)制到網(wǎng)絡(luò)的其他接口或端口。形象一點(diǎn)就是,想象在一個(gè)100人的網(wǎng)絡(luò)中,如果你想發(fā)送給我一張1 MB大小的圖片,那么這張1 MB大小的圖片也會相應(yīng)地需要復(fù)制99次并廣播至其他的所有 網(wǎng)絡(luò)用戶。
在比特幣網(wǎng)絡(luò)中,我們也能觀察到類似的現(xiàn)象,來自一個(gè)節(jié)點(diǎn)的數(shù)據(jù)(一次交易或一個(gè)區(qū)塊)被廣播并復(fù)制到其他所有的網(wǎng)絡(luò)節(jié)點(diǎn)。如同舊時(shí)的傳統(tǒng)以太網(wǎng)集線器,區(qū)塊鏈在實(shí)現(xiàn)數(shù)據(jù)傳輸與通訊方面可以說是很差的媒介了。作為一名網(wǎng)絡(luò)工程師,考慮擴(kuò)展像比特幣那樣基于廣播的鏈上交易的全球支付網(wǎng)絡(luò)系統(tǒng)對我來說是不切實(shí)際的。即使到今天,我們網(wǎng)絡(luò)工程師在跨越以太網(wǎng)和局域網(wǎng) (LAN network)時(shí)都非常小心謹(jǐn)慎,更不用說擴(kuò)展到全球范圍了。
全面地來看,也就是說如果我們通過像區(qū)塊鏈和以太網(wǎng)集線器那樣嚴(yán)格依靠于廣播數(shù)據(jù)傳輸來重新設(shè)計(jì)互聯(lián)網(wǎng),我們等于是要把世界上的每個(gè)人、主機(jī)和設(shè)備都集中在同一個(gè)局域網(wǎng)段(LAN segemnt)或廣播域( broadcast domain)中。那么互聯(lián)網(wǎng)將會變成一個(gè)巨大的平面局域網(wǎng), 所有 通信都將會被復(fù)制與廣播到每一臺設(shè)備。當(dāng)您打開這篇文章閱讀時(shí),每一個(gè) 互聯(lián)網(wǎng)的其他設(shè)備都會被迫下載這篇文章。換句話說,整個(gè)互聯(lián)網(wǎng)就會戛然而止。
在計(jì)算機(jī)網(wǎng)絡(luò)中,應(yīng)用最頻繁的通信形式是依靠于單播數(shù)據(jù)傳輸,或點(diǎn)對點(diǎn)傳輸。互聯(lián)網(wǎng)上大部分通信都是從一臺計(jì)算機(jī)發(fā)送到另一臺計(jì)算機(jī),我們不再需要依賴于盲目的廣播傳輸數(shù)據(jù),希望接收者能夠接收或看到數(shù)據(jù)。我們能夠準(zhǔn)確地將信息發(fā)送,路由并傳遞給我們一個(gè)或多個(gè)接收方。我們前面已經(jīng)了解到在廣播網(wǎng)絡(luò)中發(fā)送1 MB大小的圖片是要被復(fù)制并廣播到網(wǎng)絡(luò)中每一位用戶的。相反,在支持單播數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)中,我們能夠明確地將圖片文件適當(dāng)?shù)貜钠瘘c(diǎn)發(fā)送到終點(diǎn)。
對我來說,閃電網(wǎng)絡(luò)是比特幣的IP層(我知道這些數(shù)據(jù)傳輸形式同時(shí)存在于以太網(wǎng)和IP中)。但是,我確實(shí)認(rèn)為這種類比有助于我們更好地理解這些復(fù)雜又抽象的概念:比特幣、閃電網(wǎng)絡(luò)以及通道 (channels)等等。
先忽略辯論雙方中持續(xù)了一段時(shí)間的有關(guān)閃電的所有解釋還有那些過于簡單的定義?;c(diǎn)時(shí)間,讓我們客觀地仔細(xì)地看看閃電并確定我們所知道的。關(guān)于閃電我們知道什么?閃電網(wǎng)絡(luò)允許我們鎖定自己的比特幣并與其他人建立通道。還知道其他什么?我們可以在構(gòu)成渠道的兩點(diǎn)之間發(fā)送或接收交易。還知道其他什么?我們還可以進(jìn)一步把交易路由到正確的目的地。
了解了這些關(guān)鍵知識點(diǎn)后,我們就能發(fā)現(xiàn)閃電能使原本只支持廣播傳輸?shù)南到y(tǒng) [比特幣] 實(shí)現(xiàn)單播傳輸。對我來說,比特幣中的閃電節(jié)點(diǎn)等同于IP主機(jī),我們最終能夠執(zhí)行或發(fā)送一對一或點(diǎn)對點(diǎn)交易至其準(zhǔn)確的接收方。在傳統(tǒng)的IP協(xié)議中,我們發(fā)送接收數(shù)據(jù)包(data packets);在閃電網(wǎng)絡(luò)中,我們發(fā)送接收比特幣。IP協(xié)議使我們能夠從過去的小而原始的網(wǎng)絡(luò)擴(kuò)展成今天的全球巨頭,互聯(lián)網(wǎng)。同樣的,閃電也將能擴(kuò)展我們的全球比特幣網(wǎng)絡(luò)。
如果說閃電節(jié)點(diǎn)可被視為IP主機(jī),我就將閃電通道視為建立好的TCP連接。舉個(gè)例子,在今天的互聯(lián)網(wǎng),當(dāng)我們嘗試連接一個(gè)網(wǎng)頁,我們會打開一個(gè)TCP連接到能讓我們下載該網(wǎng)頁HTML源代碼的網(wǎng)頁服務(wù)器?;蛘?,當(dāng)我們下載一個(gè)torrent格式的文件,我們將會打開TCP連接至互聯(lián)網(wǎng)中其他計(jì)算機(jī),以便于傳送torrent數(shù)據(jù)。
在閃電網(wǎng)絡(luò)中,我們與各方建立通道使其能夠像TCP那樣直接[點(diǎn)對點(diǎn)]發(fā)送與接收數(shù)據(jù)(交易)。如果說區(qū)塊鏈?zhǔn)且蕴W(wǎng),那么閃電節(jié)點(diǎn) (Lightning Nodes)就是我們的IP,閃電通道(Lightning Channels)就是我們的TCP。
總的來說,我觀察到閃電網(wǎng)絡(luò)擁有許多與我們早已存在的支持計(jì)算機(jī)網(wǎng)絡(luò)的網(wǎng)絡(luò)技術(shù)與協(xié)議的相似之處,并且我認(rèn)為這是在重新設(shè)計(jì)互聯(lián)網(wǎng)。從技術(shù)的角度來看,我不認(rèn)為鏈上擴(kuò)展比特幣會有用,我擔(dān)心未來會發(fā)生類似廣播風(fēng)暴(broadcast storm)的事件。我衷心希望通過閃電網(wǎng)絡(luò)能實(shí)現(xiàn)我們新的單播傳輸方式。 更重要的是,我對比特幣的網(wǎng)絡(luò)時(shí)代充滿興奮與期待。
當(dāng)所有人的目光都集中在區(qū)塊鏈技術(shù)上的時(shí)候,我更期待閃電網(wǎng)絡(luò)。閃電是比特幣的TCP/IP 協(xié)議棧 。我們將會在閃電上執(zhí)行交易。所有東西都會建立在閃電上。閃電能夠支持我們的應(yīng)用和其他協(xié)議與層。也就是說,主要的比特幣區(qū)塊鏈會成為什么?它將會并應(yīng)該保持一個(gè)去中心化,防篡改且無法回滾的基礎(chǔ)層,為我們提供比特幣的密碼學(xué)證據(jù)。
我們社區(qū)和行業(yè)中的某些個(gè)人和組織散播恐懼并警告我們有關(guān)“閃電中心”(“l(fā)ighTIng hub”)的錯(cuò)誤信息,卻沒有意識到他們鏈上交易的擴(kuò)展方法只會將我們推向一個(gè)真正的(以太網(wǎng))中心設(shè)計(jì)的方向。如果比特幣失去了它去中心化的基層,我們將會失去比特幣。過去9年的努力將只會帶來一個(gè)龐大的中央廣播中心,僅有少數(shù)人有能力運(yùn)作這只怪物。