公鏈如何擴容? - 你這慢吞吞的臭公鏈(一)
▍前言:「你這慢吞吞的臭公鏈」系列文章
我研究公鏈、投資公鏈已經將近兩年,但在跟幣圈的朋友聊天時,發現多數人都難以理解公鏈之間的差異,追問之下才知道,因為公鏈的底層架構太學術了,許多人看到這些技術名詞就打退堂鼓,也因此他們在熊市囤幣時很少碰公鏈幣,這樣滿可惜的,錯失很多機會,所以在「你這慢吞吞的臭公鏈」系列文章,我會先從科普開始,用比較白話的方式來說明公鏈的設計原理,再進一步由代幣經濟、項目方運營、開發者生態等面向,去判斷一條鏈的好壞,最後說說我綜合這些資訊後的投資方法,希望能給大家一個參考,少走冤枉路。
▍什麼是公鏈?
公鏈其實就是個很陽春的網路遊戲,沒有絢麗的打鬥畫面,也沒有吸引人的故事情節,但你可以不斷課金要求別人幫你記帳,享受當大爺的快感,所以公鏈就是一個記帳遊戲。在這個遊戲中只有兩個角色,一個是「節點」一個是「用戶」,節點們負責維持遊戲的運作,數百甚至數千個節點運行 24 小時不斷網的電腦,一直同步遊戲數據,紀錄每個用戶的戶頭有多少錢、有多少張 JPG,然後用戶可以課金要求節點幫忙轉帳或購買東西,看似很無聊的記帳遊戲,實際上也很無聊,但這個遊戲強大之處在於「取代傳統銀行」,用節點間的競爭關係來維持遊戲公平,確保「記帳」這件事不會出錯,比傳統銀行更為公平開放。
▍慢吞吞的臭公鏈
但是現在的公鏈實在很慢,依照 Dragonfly 的研究 (如下圖),以太坊的 TPS 大約在 9,而速度最快的 Solana 大約在 273,信用卡卻可以到數千或數萬的 TPS,這樣一比,公鏈的速度根本沒辦法給全世界 78 億人使用,想要玩記帳遊戲,至少要記的比傳統銀行還要快。
所以各大公鏈都在努力做「擴容」這件事情,這樣高技術含量的競賽暗潮洶湧,誰能殺出一條血路成為王者,就能宰制加密貨幣的世界。
『名詞說明』
擴容:在不提高節點硬體成本的狀況下,提升交易的處理速度。
TPS:每秒可以處理幾筆交易。
▍公鏈的運作步驟
其實公鏈的運作就像一個大財主站在城頭上準備撒錢,城頭下一堆老百姓蓄勢待發要大搶特搶,當大財主丟下第一張鈔票,老百姓就瘋狂的推擠搶奪,要成為第一個接到鈔票的幸運兒,當那張鈔票被拿走之後大家又回歸平靜,等待大財主丟下第二張鈔票。
在公鏈中,撒鈔票的大財主就是「用戶」,而下方爭奪的老百姓就是「節點」,不過節點間的競爭比較文明一點,是利用一套寫好的程式碼來規定競爭流程,哪個節點違規就會被罰錢,而這些運作步驟我列在後面,可以去細細體會這些步驟對節點的負擔在哪裡。平常在使用公鏈時,我們的所有交易例如轉帳、買 NFT、操作 Defi 等等,都是透過節點幫我們完成,這其中的每一步都可以優化,加快處理速度。
步驟一:「用戶」送入交易
說明:用戶將「轉帳交易」與「操作智能合約」的需求傳送給節點。
瓶頸:用戶有數十萬數百萬,大量的操作需求送進來時,需要有足夠的網路頻寬,節點不一定能負荷。
步驟二:「節點」計算交易
說明:節點去計算用戶的帳戶餘額夠不夠轉帳,或是智能合約運行的結果是什麼。
瓶頸:計算帳戶餘額與智能合約,需要節點電腦的算力夠好、速度夠快,所以這需要一定效能的 CPU、GPU、RAM。
步驟三:「節點」打包交易
說明:節點將「手續費較高」並且「執行正確」的交易打包成一個區塊,並廣播給其他節點,要求他們驗證。
瓶頸:廣播這件事情也是需要網路頻寬,打包好的區塊大小雖然只有幾 MB,但要傳給數萬個節點依舊很耗時。
步驟四:「節點」投票表決
說明:所有的節點收到廣播後,要投票表態支不支持這個新區塊上鏈。
瓶頸:每個節點收到廣播的區塊後,自己要計算一次區塊內的交易是否正確,才能做出投票判斷,為自己的選票負責,而接收資訊與送出資訊也需要網路頻寬,所以在這步驟網路與算力都有需求。
步驟五:「節點」確認交易
說明:如果半數以上的節點支持這個新區塊,那新區塊就確定上鏈,所有節點都會收到最終的投票結果。
瓶頸:這部分需要網路傳輸的效能,將投票結果同步。
步驟六:「節點」儲存交易
說明:所有節點把新區塊接到區塊鏈最尾端,也就是將交易資料儲存起來,更新區塊鏈數據。
瓶頸:區塊鏈歷史交易紀錄,會隨著時間越來越多,數據也越來越大,這需要足夠的硬碟空間來做儲存。
步驟七:交易完成
到這邊就交易完成,然後再重複循環上述步驟。
▍節點的硬體瓶頸
由上一段落可歸納出公鏈遇到的瓶頸就是節點的硬體,在「網路頻寬、計算能力、儲存空間」這三方面遇到問題,其中最頭痛的就屬網路頻寬,Vitalik 的這篇文章很詳細的解釋節點硬體的限制,也說明公鏈為了能夠承受突發狀況,必須要保留一部分的緩衝,讓節點的硬體效能無法充分使用。
▍直觀卻不可行的加速方法
區塊鏈就是由一個個的區塊連接而成,每條鏈會一直生成新的區塊接到區塊鏈尾端,像以太坊是每 15 秒產生一個新區塊,而每個區塊裡面能容納的交易數是有上限的,所以交易送進來太多是沒辦法塞進區塊的。在出塊時間與區塊大小都固定之後,這條公鏈每秒能處理的交易數量(TPS)就被固定下來,所以想增加處理能力有兩個直觀的方法:
增加區塊大小
區塊變大,就能塞進更多的交易,例如一個區塊從容納 100 筆交易增加為 1000 筆交易,TPS 大了 10 倍,需要傳輸的數據量也大了 10 倍,對節點來說硬體要求就變高了,要做更多的運算,也要更高的網路速度來傳輸,讓節點負擔更大。
縮短出塊的間隔
如果把原先的每 15 秒出一個新區塊,改成 5 秒出一塊呢? TPS 直接提升 3 倍,非常簡單暴力。但有個問題是,節點們需要時間去同步區塊,例如一個節點它網路較差,需要花 9 秒鐘才能同步一個區塊,那每 5 秒的出塊速度它永遠跟不上,就會直接被排擠在外。
以上兩個方法都必須要讓節點的硬體效能提高,但硬體效能提高是要花成本去購買的,這不是一個好的發展方向,所以實際上擴容就是走另一條路,不增加區塊大小也不縮短出塊間隔,卻能夠處理更多的交易,也就是軟體的升級。
▍公鏈的軟體優化
我將軟體優化分為三個方向「降低算力需求、降低網路需求、降低儲存需求」來做說明。
降低「算力」需求
俗話說人多好辦事,很簡單的降低算力辦法就是「分工」,可以像製衣廠的流水線一樣,有的工人只負責切割布料,有的工人只負責縫合布料,有的工人只負責繡上花紋,這樣大家只負責一點點的事情,就能做到專精快速,負擔也不會太大。
舉例:
以太坊的模塊化就是把需要大量運算的事情交給 Layer 2 的節點,Layer 1 的節點只要負責驗證即可,負擔小很多。
Cosmos 這樣由多條「應用鏈」組成的公鏈,每個應用鏈的節點只負責自己那條鏈的交易,就算偶爾會收到跨鏈計算的需求,整體來說需要計算的情境會少很多。
降低「網路」需求
網路通訊一直是公鏈的痛點,數千數萬個節點不斷傳輸資料是很費工的,就像你有一部哈利波特電影想傳給朋友,但你人緣太好、朋友太多,一次要傳給 1000 個朋友請問需要傳多久?這時候你為了減少時間,你可能會挑最親密的 5 個朋友來傳就好,或者,你覺得這 1000 個朋友一個都不能少(不能只有我看到),所以你把一部 4K 畫質的電影壓縮到 240P 之後,再傳給 1000 個朋友,這樣傳輸時間也變快了(但你的朋友只能看到模糊的妙麗)。
舉例:
Cosmos 的 Tendermint 共識機制,就是限定節點數量上限只能到 300 個,減少需要傳輸的對象。
Rollup 會把數千筆交易壓縮在一起,減少數據大小,方便資料傳輸與降低手續費,但不用擔心數據損失,他們不像壓縮電影畫質那樣會破壞數據。
降低「儲存」需求
公鏈的交易數據只會變多不會變少,就像你銀行的轉帳紀錄,會隨著你使用越多次存越多,比特幣運行了 15 年,交易歷史的數據就非常龐大,這會帶給節點負擔,因為儲存交易數據的就是節點,最簡單的解決辦法就是交給別人存,例如以前大家的電腦 D 槽都存著眾多的影片,常會覺得硬碟不夠用,但時代在進步,這些影片都雲端化了,你只要上串流平台就可以看一大堆的電影、影集,釋放了你的 D 槽空間。
舉例:
Solana 就是把歷史交易紀錄交給 Arweave 來存,Arweave 是分散式的儲存空間(IPFS),會把同樣的資料複製好幾份存在不同地方,這樣可以確保安全,而 Solana 的節點如果要調用交易數據,就直接跟 Arweave 拿,這樣就能釋放節點的硬碟空間。
Mina 這條公鏈會把交易歷史用零知識(ZK)的方式做快照,然後節點只需要儲存快照結果,這樣數據就非常小,那如果要查原始交易紀錄怎麼辦?會有部分的節點儲存原始交易紀錄,如果有人對快照結果有疑問,就可以調用原始數據來查證。
▍總結
現在市面上的公鏈都很慢,與信用卡相比差太多,沒辦法給全世界 78 億人使用,所以公鏈開發者都努力在做擴容。
去分析公鏈的運作步驟,會發現節點的硬體好壞限制了公鏈的快慢,但要提升硬體效能是沈重的成本負擔,所以硬體升級這條路不可行。
當硬體有所限制,軟體的優化就至關重要,目前每個公鏈都想辦法減少節點「網路頻寬、計算能力、儲存空間」的負擔,利用分工合作、壓縮數據、零知識證明等方式,來達到擴容的目的。
▍後記
寫這篇文章時,因為想要減少專有名詞的使用,才驚覺專有名詞的強大,一個名詞就可以代表背後幾百字的意義,但這也是學術領域讓人難以踏進來的原因,希望這篇文章的用字遣詞不會太艱深,也希望這篇文章能幫助到你,如果其中有比喻不精確或論述過於簡化,請多多包涵也歡迎給我意見,有任何疑問可以留言或私訊我,讓我們一起學習一起成長,「你這慢吞吞的臭公鏈」系列文章會陸續上架,敬請期待。
關於我
「愛鏈歐文 Podcast 」是由歐文笑長與鏈鏈共同主持,我們會從宏觀角度觀察幣圈趨勢,也會從微觀角度對幣圈項目進行科研,藉此建立長期穩定的投資配置。
Podcast 收聽:Apple Podcast、Spotify、KKBOX
追蹤優質資訊:Telegram
更多相關連結:Linktree
合作夥伴
愛鏈歐文與「鏈閃 Web3 新聞媒體」是深度的合作夥伴,共同在觀察幣圈產業趨勢,我們想讓更多人了解 Web3 領域,一起見證這個嶄新的世界。
學習討論群組:Telegram
新聞官方網站:網站連結
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 选集
- 来自作者
- 相关推荐