🤖 最新推出:《Quicknode 人工智慧實戰手冊》 10 個經過實測的 AI 程式設計食譜agents 。
查看食譜 解析區塊鏈為何會變慢:原因與解決方案 |Quicknode已通過 SOC 2 Type II 認證 · ISO 27001
簡而言之:當區塊空間的需求超過網路的處理能力時,區塊鏈的運作速度就會變慢。最常見的原因包括網路擁塞(過多交易爭奪有限的區塊容量)、狀態膨脹(儲存需求不斷增加,導致處理每個區塊的運算成本上升)、共識開銷(隨驗證者數量增加而增加的通訊成本),以及基礎設施限制(節點速度緩慢、RPC 端點延遲過高,以及數據管道效率低下)。 系統變慢的現象會表現為確認時間變長、手續費上升、應用程式中的資料過時,以及使用者體驗下降。其中部分原因源於區塊鏈設計本身的特性,而其他原因則可透過改善基礎設施來緩解。
簡單的解釋
「緩慢」的定義會因提問者而異。對於提交交易的終端使用者而言,「緩慢」意味著必須等待數分鐘甚至數小時才能獲得確認,而非僅需數秒。對於運行資料管道的開發者而言,「緩慢」意味著落後於區塊鏈末端,進而提供過時的資料。對於 DeFi 交易者而言,「緩慢」意味著遲遲無法收到價格更新,從而錯失套利機會。每種延遲現象都有不同的根本原因,也需採取不同的解決方案。
在協定層面上,區塊鏈的效能存在由其共識機制、區塊參數及執行環境所決定的硬性上限。這些上限是設計使然,而非偶然形成。它們是去中心化與安全性的代價。當需求逼近這些上限時,網路並不會崩潰,而是透過提高手續費(將價值較低的交易排除在外)及延長確認時間(讓使用者等待更久)來「平穩降級」。 但從用戶的角度來看,「平穩降級」依然讓人覺得很慢。
在基礎架構層面上,區塊鏈本身可能運作正常,但您的應用程式用來與其互動的工具卻可能是瓶頸。運作緩慢或過載的 RPCendpoint 會為每個請求增加延遲;基於輪詢的資料管道會在區塊生成與資料可用之間造成延遲;而資源配置不足的節點則會落後於區塊鏈末端。這些基礎架構層面的效能瓶頸,通常比協定層面的問題影響更大(也更容易解決)。
網路擁塞 | 需求超過區塊空間,因此手續費和等待時間隨之上升 | 使用者(費用)與應用程式設計 |
政府膨脹 | 隨著區塊數增加,處理每個區塊的成本也會隨之上升 | 協議與核心開發者 |
共識開銷 | 驗證者之間的通訊會造成無法避免的延遲 | 通訊協定設計 |
基礎設施瓶頸 | RPC 速度緩慢、輪詢以及遠端節點都會造成延遲 | 開發者,直接 |
網路擁塞
網路擁塞是導致區塊鏈速度變慢最常見且最明顯的原因。當提交的交易數量超過下一個區塊所能容納的數量時,記憶池中就會形成積壓。區塊生產者會優先選取手續費最高的交易,導致手續費較低的交易處於等待狀態。在嚴重擁塞的情況下,記憶池中可能積壓數十萬筆待處理交易,確認時間也可能從數秒延長至數小時。
網路擁塞本質上具有突發性。大多數時候,熱門區塊鏈的運作都遠低於其容量上限,交易能以低成本迅速確認。但特定事件會觸發需求激增,導致網路不堪負荷。NFT 鑄造、代幣發行、空投領取、市場崩盤,以及病毒式傳播的迷因代幣交易,都會引發遠超正常水準的交易激增。 在 2022 年 5 月 Yuga Labs 舉辦的 Otherside 鑄造活動期間,Ethereum 的 gas 價格曾飆升至 8,000 gwei 以上,是平時水平的數百倍。
關鍵的洞見在於:擁塞雖然會延遲單筆交易的確認速度,但並不會降低網路的吞吐量。區塊鏈仍會以正常速率持續產出區塊(Ethereum 為每 12 秒一次,Solana 為每 400 毫秒一次)。真正發生變化的是交易被納入區塊前的等待時間。網路每秒處理的交易數量並未改變;真正增加的是待處理交易的佇列。
政府膨脹
狀態膨脹是區塊鏈性能退化的一種較緩慢且更隱蔽的形式。每次智慧合約部署、每個新帳戶、每筆代幣餘額記錄,都會增加區塊鏈的狀態——即所有當前帳戶餘額與合約儲存值的集合,節點必須將其保留在記憶體或磁碟中,以便驗證新交易。隨著狀態不斷增長,在交易執行過程中讀寫狀態所需的運算成本也會隨之增加。
在Ethereum 上,狀態 Trie 已從上線時的幾乎為零,擴增至數百吉字節。每筆讀取或寫入狀態的交易都必須經過此資料結構,而其規模越大,每項操作所需的磁碟 I/O 就越多。這對所有節點的影響程度相同,包括由 RPC 提供者營運的節點。與擁塞不同,狀態膨脹並不會造成劇烈且突發的效能下降。 相反地,它會逐漸增加處理每個區塊的基礎成本,這可能表現為區塊處理時間略微延長、存取狀態操作的最低 gas 費用提高,以及運行節點所需的硬體規格提升。
已有數個區塊鏈專案實施或提出狀態管理解決方案。Ethereum 的 EIP-4444 提案提出「歷史資料過期機制」(從全節點中移除舊區塊資料)。狀態租賃提案則會針對合約所佔用的儲存空間收取費用,藉此激勵進行清理。Solana 的帳戶租賃系統已要求帳戶必須維持最低餘額才能保持活躍狀態。這些方法雖試圖管理狀態的增長,但「區塊鏈會記住一切」與「儲存並非免費」之間的根本矛盾依然存在。
共識開銷
共識機制是指驗證者就應將哪些交易納入下一個區塊以及其排序達成一致的過程。此過程本質上會增加延遲,因為驗證者必須相互通訊,而通訊需要時間。參與共識的驗證者越多,必須交換的訊息就越多,共識所需的時間也就越長。
這是區塊鏈三難困境的一個面向。擁有 4 個驗證者的網路能夠非常迅速地達成共識(低延遲),但高度集中化。擁有 40 萬個驗證者的網路(例如Ethereum )則具備強大的去中心化特性,但需要一套複雜的共識協定,其中包含多輪通訊、認證期間以及最終性檢查點,這些環節會在區塊納入與最終確認之間增加數分鐘的延遲。
某些區塊鏈採用基於領導者的共識機制,其中由單一驗證者提議區塊,其餘驗證者負責驗證,此舉雖能降低通訊開銷,卻也引入了單一延遲點(即領導者)。 另一些則採用委員會式共識機制,由隨機選出的驗證者子集負責每個時槽的共識達成,在去中心化與速度之間取得平衡。共識機制的選擇直接決定了網路的基礎延遲下限,即交易提交至最終確認之間的最短時間,無論底層硬體速度多快,此時間都無法進一步縮短。
基礎設施瓶頸
對大多數開發者而言,他們日常所遭遇的效能瓶頸,根本不是出在協定層面,而是基礎架構層面。應用程式所感受到的區塊鏈速度,取決於其資料路徑中最薄弱的環節:它所連線的 RPCendpoint 、饋送資料至資料庫的資料管道,以及將原始區塊鏈資料轉換為應用程式狀態的處理邏輯。
一個由數百名其他使用者共同使用的公共 RPCendpoint ,會因容量競爭而使每個請求產生難以預測的延遲。流量限制會在使用高峰期(也就是您最需要它的时候)對您的請求量進行調控。應用程式伺服器與最近節點之間的地理距離,會增加每次呼叫的往返時間。若節點資源配置不足而落後於鏈條末端,便會提供過期的資料,導致應用程式的狀態滯後於實際情況。
基於輪詢的資料管線會引入等同於輪詢間隔的人為延遲。如果您的索引器每 10 秒檢查一次是否有新區塊,即使在理想條件下,它也總是會落後於區塊鏈末端 0 至 10 秒。在網路擁塞期間,當區塊已滿且處理時間增加時,輪詢間隔便會成為阻礙您的應用程式跟上進度的瓶頸。
這些基礎設施瓶頸是導致區塊鏈速度變慢最可解決的原因,因為開發人員能夠直接針對這些問題進行處理。升級至專用的高效能 RPC 服務提供者,可降低endpoint 的延遲;從輪詢模式切換至串流模式,可消除人為的處理管線延遲;採用地理上分散的基礎設施,可縮短往返時間;而專用且隔離的節點資源,則能消除「噪音鄰居」效應。
Quicknode 如何解決區塊鏈運行緩慢的問題
Quicknode該基礎架構的設計旨在將導致應用程式遭遇區塊鏈速度變慢的基礎架構層級瓶頸降至最低或完全消除。 Core API 運行於橫跨 14 個以上區域及 5 家以上雲端服務供應商的全球分散式網路中,會自動將請求路由至最近且速度最快的可用節點。其平均響應時間比競爭對手快 2.5 倍,並透過 99.99% 的正常運作時間服務水準協議 (SLA),確保即使在網路擁塞事件發生時,仍能維持穩定的可用性。專用的Clusters 提供隔離式基礎架構,可消除「噪音鄰居」效應,讓對延遲敏感的應用程式無論其他使用者正在進行何種操作,都能獲得可預測的效能。
Quicknode Streams 透過基於推送的串流方式傳輸區塊鏈資料,並保證依照最終確定順序進行傳遞,從而徹底消除輪詢瓶頸。此機制無需輪詢間隔、無人工延遲,且不會有遺漏區塊的風險。在網路擁塞期間,當區塊體積增大且包含更多交易時,Streams 會自動調整傳輸規模以因應增加的資料量。可配置的批次處理與壓縮功能,可針對歷史資料補填及高交易量鏈優化吞吐量。針對Solana ,Quicknode 的 Yellowstone gRPC 提供目前可用的最低延遲資料存取,採用二進位 Protocol Buffers 取代 JSON,以在每毫秒都至關重要的區塊鏈上將序列化開銷降至最低。
「緩慢的區塊鏈」與「緩慢的去中心化應用程式(dapp)」之間有何區別?
對使用者而言,這兩種情況的感受相同,但成因卻不盡相同。區塊鏈運作緩慢屬於協定層面的問題:網路擁塞、共識時序或狀態大小等因素,限制了網路確認交易的速度。而去中心化應用程式(dapp)運作緩慢通常是基礎架構層面的問題:區塊鏈本身運作正常,但遠端或過載的endpoint 卻在其中增加了額外的延遲。比較吞吐量與延遲,是判斷實際面臨哪種情況最明確的方式。
面向 | 協定層 | 基礎架構層級 |
|---|
來源 | 共識、區塊限制、狀態大小 | RPCendpoint 、資料管道、節點位置 |
誰掌控著它 | 網路與核心開發人員 | 您,身為開發者 |
有多容易解決 | 困難,需要升級通訊協定 | 很簡單,換個服務供應商或調整模式就好 |
範例 | NFT 鑄造過程中的高手續費 | endpoint 網站速度緩慢,導致延遲增加 |
是什麼原因導致區塊鏈擁塞突然激增?
網路擁塞通常呈現間歇性爆發,而非持續不斷。代幣發行、NFT 鑄造、空投領取、市場崩盤以及病毒式交易,都會在短時間內讓大量交易湧入網路,而隨著使用者競相爭奪有限的區塊空間,手續費便隨之攀升。了解導致區塊鏈擁塞的原因,有助於您針對這些事件做好規劃,而非被其打個措手不及。
第 2 層技術與擴展性如何減緩網路延遲?
第二層網路將大部分交易移出基礎鏈,並以批次方式進行結算,這不僅能大幅提升吞吐量,還能降低日常活動的手續費。在第二層區塊鏈上運行您的應用程式,是避免基礎層擁塞同時維持底層網路安全性的最有效方法之一。
開發人員實際上能解決哪些效能問題?
協定層級的限制大多非您所能掌控,但基礎架構的效能下降卻並非如此。您可以改用更快的服務供應商、將節點部署得更靠近使用者,並以推送式傳輸取代輪詢機制。光是將傳輸方式從輪詢改為串流,就能消除基於間隔的資料管線中固有的延遲。
常見問題
網路擁塞是否意味著區塊鏈處理的交易量減少了?
不。區塊鏈仍會以正常速度持續產出區塊,並處理相同的吞吐量。在網路擁塞期間增加的是待處理交易的佇列,這正是為什麼單筆交易的確認時間會變長,手續費也會隨之上升。
去中心化會讓區塊鏈變慢嗎?
確實如此。驗證者數量越多,為達成共識所需的通訊量就越大,這會提高基礎延遲。關於速度與去中心化之間的這種權衡關係,在「去中心化與效能」一文中已有詳細探討。
更快的 RPC 提供者能解決應用程式運行緩慢的問題嗎?
通常確實如此。如果區塊鏈運作正常,但您的去中心化應用程式(dapp)感覺很慢,那麼瓶頸通常出在您的endpoint 上。透過選用位置更接近且專用的服務提供商來降低RPC 延遲,便能消除使用者所感受到的大部分延遲。
身為開發者,我能解決「狀態膨脹」這個問題嗎?
並非直接如此。狀態膨脹是協議層級的問題,可透過歷史資料過期機制和帳戶租賃等升級措施來管理。您可以透過快取讀取量大的資料,並在合約中避免不必要的鏈上儲存,來減輕其影響。
為什麼當區塊鏈速度變慢時,手續費會上升?
區塊空間有限,因此當需求激增時,使用者會提高手續費以爭取更早被納入區塊。較高的手續費正是決定哪筆交易能進入下一個區塊的市場清算機制。
延伸閱讀