分析 | 分片技術將如何實現區塊鏈擴容

買賣虛擬貨幣
在本文中,我們將以以太坊區塊鏈上的分片技術為例,分析分片技術將如何實現區塊鏈擴容。
來源|hackernoon
作者|Tiaan Wolmarans
翻譯|頭等倉Annie
編譯|頭等倉Alonso Chen
文章版權屬原作者,翻譯由頭等倉提供,任何轉載請保留前言資訊

在本文中,我們將以以太坊區塊鏈上的分片技術為例,分析分片技術將如何實現區塊鏈擴容。

眾所周知,目前最常用的區塊鏈是乙太網,所以理解為什麼以太坊開發者社羣希望在以太坊上採用分片技術,將有助於理解分片技術是什麼,以及分片技術為什麼是一個受歡迎的擴容解決方案。

ETH Gas Station表示,在以太坊網路中,將交易新增到以太坊區塊鏈大約需要1.78分鐘,生成一個新區塊需要32秒,平均每秒處理15-20筆交易。可以看出,以太坊生態系統是一個對礦工有利,而非對使用者有利的環境,如果使用者想要優先處理他們的交易,就必須提高該筆交易的gas(手續)費用。

低吞吐量、高延遲和高交易費用是當前以太坊面臨的主要問題,一些對擴充套件性有要求的服務和應用不太適合採用以太坊網路。以太坊吞吐量低的主要原因是每個節點都要處理系統中的所有交易。

分片技術是什麼?

簡單地說,分片是一種分割槽方法,將計算工作量和儲存工作量分佈到P2P網路上,這樣每個節點就不負責處理整個網路的所有交易,而是隻處理自己本分割槽(或分片)的資訊。

為了進一步瞭解分片,我們從實現分片最簡單的方式開始講,V神在他的文章中將這種方式稱為“scaling by a thousand altcoins(透過上千種山寨幣來進行擴充套件)”。

在這個分片方式中,我們不會只執行單條區塊鏈,而是執行多條區塊鏈,並且不是將每條鏈稱為區塊鏈,而是稱為shard(分片)。每個分片都會擁有獨立的驗證者或節點網路,即透過 PoW 機制挖礦或者質押投票機制來驗證交易和生成區塊的網路參與者。

分片技術面臨的一些主要挑戰

在嘗試使用分片技術中,我們發現的第一個問題是,由於每個分片都有自己的驗證者,單個片區的安全性就會比整條鏈更差。例如,一條有 X 個驗證者且沒有分片的區塊鏈,決定硬分叉成一條有分片的鏈,並將 X 個驗證者分攤到10個片區中,那單個片區中的驗證者數量就是 X/10個,因此只需要控制總驗證者數量的 5.1%(51%/10)就可能破壞一個分片。

我們遇到的第二個問題是:“由誰來為每個分片選擇驗證者?”對於一個壞的參與者來說,如果所有5.1%的驗證者都在同一個分片中,則控制5.1%的驗證者會造成不好的情況。如果驗證者無法選擇驗證哪個分片,則控制5.1%驗證者的參與者極不可能在同一分片中獲得所有驗證者,從而大大降低了它們破壞系統的能力。

實際上,幾乎所有的分片設計都依賴於某種隨機性(randomness)來為分片分配節點,且隨機性和驗證者分配都需要不針對任何特定分片的計算。為了實現這種計算,幾乎所有現有的設計都包含一條單獨的區塊鏈,負責執行維護整個網路所需的操作。

這個鏈在以太坊中稱為信標鏈(Beacon Chain),負責生成隨機數、為分片分配節點、接收分片的資訊更新(並建立快照)、處理權益證明(PoS)和其他各種功能。

信標鏈也有一些不足之處。因為信標鏈需要做一些記賬計算工作,且這些計算量是與系統中分片的數量成正比的,所以分片數量越多,信標鏈的計算工作量就越大。這就出現了與沒有使用分片網路時的同樣問題:低吞吐量和高延遲,所以分片網路存在一個與生俱來的可擴充套件性限制的問題。

但是,分片網路的結構確實對節點的任何改進都具有乘法效應。因為任何提高節點效率的提升都會使節點能更快地處理交易,如果執行網路的所有節點處理交易的速度都變成 4 倍,那每個分片能夠處理的交易量將是之前的4倍,且信標鏈能夠維持的分片數量也將是之前的4倍。由此來看,整個系統的吞吐量將變成之前的 4x4=16 倍。

如何將資料分割為碎片?

讓我們先看看節點在區塊鏈上主要執行那些事務:

1.處理/驗證交易

2.將經過驗證的交易和已完成的區塊傳播給其他節點

3.儲存所有交易的歷史

隨著網路的發展,節點需要能夠跟上網路的需求,從而隨著網路的發展而增長;

1.隨著需要處理的交易的數量不斷增長,要求每個節點增加更多的計算能力

2.隨著需要中繼的交易的數量不斷增長,節點在中繼交易和區塊時需要更多的網路頻寬;

3.隨著狀態的增多,節點在儲存資料時需要更多的儲存空間。

從這三點可看出,無論每秒的交易量和中繼的交易量是否增加,資料儲存都會增加。

雖然很多人提議過對儲存進行分片,而不是對交易處理進行分片,但是有一些專案已經實現了對交易處理的分片(而非對儲存分片),最常見的分片型別被稱為“狀態分片”,在狀態分片中,每個分片中的節點都在搭建自己的分片鏈,這條鏈包含的交易只會影響該分片全域性狀態中本地的狀態。這意味著分片中的驗證著只需要儲存本地的狀態,並且只需執行和中繼那些影響本地狀態的交易。

原文:https://hackernoon.com/sharding-and-the-scaling-of-a-blockchain-xz1kq30j0
稿源(譯):https://first.vip/shareNews?id=2131&uid=1

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;