區塊鏈擴容方案——鏈上擴容(Layer1)


區塊鏈擴容方案——鏈上擴容(Layer1)

擴容一直是區塊鏈社區討論的熱點話題,圍繞如何在“更短的時間完成更多的交易”提出了數十種解決方案。但你知道擴容方案都有哪些嗎?

文 | 鏈盟君

擴容一直是區塊鏈社區討論的熱點話題,圍繞如何在“更短的時間完成更多的交易”提出了,包括隔離見證增加區塊大小閃電網絡(雷電網絡)、分片等數十種解決方案。上篇我們講了擴容,這篇文章鏈盟君地地道道講“擴容方案”。但是隻講“鏈上擴容”。

區塊鏈擴容方案

加密貨幣的擴容解決方案主要可以分為兩種,“鏈上擴容”和“鏈下擴容”。通常情況下,鏈上擴容指的是直接發生在區塊鏈上,通過改變區塊大小或數據結構從而達到提高處理交易能力的解決方案,比如隔離見證和增加區塊容量;而鏈下擴容則指的是在加密貨幣的主鏈之外,建立外圍或第二層交易網絡。

此部分你需要掌握:

目前市面上的區塊鏈擴容實施方案可大致分為兩類

(1)鏈上擴容,即第一層( Layer1)擴容;

(2)鏈下擴容,即第二層( Layer2)擴容。

鏈上擴容—Layer1

所謂第一層擴容技術,即Layer1其實是針對協議層的擴容,是底層區塊鏈本身進行“改造”,改進區塊鏈自身,把區塊鏈自身變的更快、容量變的更大。

若說區塊鏈是一個項目,它本身是由很多個部分組成的。由下往上分別是P2P的網絡、共識機制、虛擬機、區塊鏈的編程語言,每一部分都有很大的發展和改進的空間。

而區塊鏈的擴容方案是怎麼樣改進?

對於第一層擴容技術來說,其實都是在共識這個部分改進的。

具體的擴容方案有:SegWit(隔離見證)、擴塊(2M區塊為例)、Casper和DPOS,都是使其能支持更多更快的鏈上交易。

SegWit(隔離見證)

針對比特幣,現在比特幣的區塊大小限制為1M,當時中本聰設計的時候區塊最大是可以到32M的,但是後面擔心大區塊導致普通電腦無法在有限時間內完成驗證區塊的工作,只有少數高性能機器或專業機器才可以完成,導致算力中心化違背去中心化的初衷,所以把區塊限制在了1M。

在不修改區塊大小限制的基礎上,比特幣社區提出了SegWit(隔離見證)方案,也就是軟分叉。

比特幣交易記錄裡均包含了兩種信息:交易信息(從A轉到B),非交易信息(私鑰簽名等)。

如果將非交易信息從原區塊剝離出去,則提升了每個區塊所能容納的交易數,把腳私鑰簽名等數據從基本結構(比特幣1M計算的是基本結構的大小)中剝離出來移動到新的結構中,這樣做就可以增加單個區塊內的交易數,達到提升TPS的目的,從而提升了比特幣的處理效率。(這種做法也降低了閃電網絡的實現難度。)

舉個例子好理解:

區塊鏈擴容方案——鏈上擴容(Layer1)

這就像在一列行駛的公共列車中,我們把乘客的行李都搬出來,放到公共列車的頂部,這樣列車騰出來的位置就可多塞幾個人。達到同一時間可運輸人數量增加的目的。 隔離見證就是這個意思。

擴塊

每一個區塊裡面都承載著某一個時間段的數據。拿比特幣來說,每個區塊包含著全球十分鐘內的所有比特幣交易。當區塊大小設定為1MB時,最多隻能包含2000多筆交易。

早在2010年,就有人發帖提出將區塊擴容到7.1M的建議,但中本聰以“我們可以等以後需要的時候再改”進行了回絕。在之後的兩年裡擴容之事便再無人提及。

而中本聰自2010年退隱後,比特幣的開發工作就移交給了 Bitcoin Core ,從2013年到現在,比特幣社區經歷了不斷的爭吵、撕逼、互相敵視,Core卻是堅決抵制擴塊的,在信仰與金錢的雙重刺激下,便促使了一系列分裂幣的誕生。

提及比較多的是

2MB區塊,比特幣社區的另外一部分人希望硬分叉直接把區塊大小限制從1M改到2M,基本想法很簡單,也是提升單個區塊內的交易數,每秒打包的交易就會增加,從而提升TPS。

舉個例子好理解:就是公交車,從一層公交車變成兩層公交車,提升了容量,載客量變大。


區塊鏈擴容方案——鏈上擴容(Layer1)

Casper

以太坊的Casper協議是基於POS協議的。POS協議存在Nothing at stake攻擊,該攻擊是由於挖礦沒有成本,礦工為了大概率勝出,會同時基於多個分叉進行挖礦,導致可能出現頻繁分叉,主鏈狀態無法確定。

Casper協議通過保證金和投注解決了這個問題,每個挖礦節點需要投入一筆保證金才能挖礦,每次挖礦都是一種投注行為,礦工對最可能成為主鏈的區塊進行投注,如果猜中可以得到挖礦獎勵,猜錯或隨意更改投注將扣除一定的保證金。

所有的功能由Casper智能合約來實現,包括加入、投注、取款、獲取共識信息等。

區塊鏈擴容方案——鏈上擴容(Layer1)

DPOS

號稱區塊鏈3.0的EOS一開始就宣稱能達到百萬TPS,日前主網上線測得的極限TPS是3000+,雖然沒有達到百萬級別,但是主網能到幾千TPS也是很大的進步,至於百萬TPS可能要通過子母鏈或者其他擴容方案看能不能實現。

EOS能做到這樣的結果跟它選用的共識算法DPOS有很大的關係,比特幣和以太坊使用的是POW共識算法,所有節點都需要計算規定難度的哈希然後廣播給其他節點,而且節點眾多,廣播時間也比較長。


區塊鏈擴容方案——鏈上擴容(Layer1)


DPOS通過投票選出21個超級節點,每個節點輪流出塊,而且不需要計算規定難度哈希直接出塊,只需要這21個節點達成共識就可以了;通過經濟懲罰機制保證鏈的正確性,每個超級節點都需要提供一筆保證金,拜占庭節點會被扣保證金。

DPOS的優勢是能耗低,不需要浪費電用來計算規定難度的哈希;缺點是壟斷性高,普通人無法參與節點競選。

課外小拓展


在2018以太坊技術及應用大會上,以太坊創始人Vitalik Buterin在關於“Casper與分片技術最新進展”的演講中,分享了Casper Pos/分片的技術,尤其是從驗證者角度分析如何成為驗證節點,驗證節點有哪些責任等。另外,V神表示,目前來看,金融行業、遊戲行業與區塊鏈技術的結合較好。


區塊鏈擴容方案——鏈上擴容(Layer1)

以下是V神的演講全文:(不要求掌握)

Casper有一個全新的算法,算法的分片是解決方案,我會具體跟大家闡述一下這兩種技術的流程。

大家如果參與到Casper和分片,從節點角度來說要做什麼?

第一步是存款。Casper是個驗證系統,換句話說,為了加入Casper,需要在權益當中有所存款,存款需要發送存款的交易,這是正常在以太坊上的交易。這個交易需要一個公鑰,32個以太幣和一個取款地址。

這裡大家要注意,簽名公鑰和取款地址可以不完全一致,這意味著兩件事情:一是可以把簽名的權利分配給其他人。比如像我在全世界旅行,不可能一直帶著電腦,就可以把這個key給你的朋友,讓你的朋友為你簽名驗證,幫你參與到算法。

但你不會把所有資金託付給一個朋友,即便你的朋友能代替你做簽名,但他也不能把你的錢取出來,你的錢唯一可以進入的地址是之前提供的取款地址,這就意味著第二件事,即你可以使用熱錢包來簽名,取款到冷錢包。我們剛才提到狀態驗證的機制,公鑰是在一個在線的電腦上,但資金永遠會留在冷錢包裡,這個公鑰是激活這部分資金,防止發給其他人,讓你的資金留在自己的電腦上。這種情況下,作為驗證者,就更加安全、有保障。

一旦你完成了取款交易之後,就進入了第二步:等待加入。這個可能需要一天的時間(這部分協議還沒有完全被確定),要等待這個協議把你加入驗證者的池。

第三步是參加驗證機制。有了存款之後,又等待了一天時間,你加入這個機制,已經進入了活躍驗證者的驗證池,這時候你就是個驗證者了。

作為驗證者,在網絡當中有兩個關鍵功能,第一個是Casper的過程,來參與並且敲定主鏈,這意味著它可以確保主鏈上的區塊,超過一定點之後,主鏈上的區塊是不可逆轉的。一旦完成之後,主鏈就被敲定了,你就完成了工作。第二個是驗證分片上的區塊,我們的系統中不會所有人都來做區塊的驗證,這些區塊被可能分配到100個甚至更多的分片中,交易也是分開的,有不同的驗證者來驗證不同的區塊和交易。這是驗證者最主要的兩個功能。

Casper這個工具的主要目的是一個敲定工具,是鏈上共識機制的一部分,用於區塊的敲定,它可以給區塊更多的安全性。

分片的提案看起來是這樣子的,以太坊的分片提案包含100個子鏈,帳戶交易信息都是儲存在子鏈上的。

主鏈負責生成隨機數,隨機選擇哪個驗證者進入哪個分片、誰可以創立一個分區,並且保持驗證節點的追蹤。如果你是一個驗證者,它會一直追蹤你驗證節點的相關信息,比如你分配到什麼分片、你現在有沒有獎勵和懲罰。所有這些信息都是由主鏈完成的,除此之外,它還可以追蹤子鏈上的區塊。

子鏈的責任比較簡單,主要做交易處理,並且存儲帳戶/合約狀態。它可以存儲絕大多數用戶比較關注的信息,每個階段是差不多1個小時左右,每個驗證節點由系統隨機分配一個分片,為了這個階段或為了這個小時,驗證節點的工作就是驗證,並且幫助確認這個區塊是在這個分片之上的。在任何的時間點,如果驗證節點被分配到某個特殊的分片上,比如我們一共有100個分片,有些人隨機選擇1%的驗證節點,來確認任意一個分片上的區塊。

接下來是“二次分片”。假設一個節點能處理N個交易,那麼主鏈能追蹤N個分片,每個分片都能處理N個交易,所以系統一共能處理N^2個交易。這就是為什麼稱為二次分片的原因。如果你電腦的計算能力是翻一番,這時主鏈可以來追蹤2倍的分片,系統能處理的交易是之前的4倍。

接下來看交聯(Cross-links),交聯是彼此間溝通的方式,並且是主鏈追蹤分片的方式,主鏈不會追蹤每個分片中的每個區塊,只會追蹤交聯。每個交聯大概是100個左右為這個分片分配節點的簽名 ,並且在主鏈上確認這個分片節點的區塊。

驗證節點有以下責任:

1.作為驗證節點工作,驗證主鏈,並且驗證主鏈上的每個區塊,主鏈包括副鏈、交易以及對驗證節點的獎勵和罰款 。

2.驗證兩個節點的區塊,目的是生成區塊、確認區塊/交聯。我們也可以經常在不同的分片中來回交換,做區塊的確認,還有分片和主鏈之間的交聯。

3.在分片上生成區塊。

4.在主鏈上生成區塊。

5.確認分片上的區塊已經交聯。

這些都是大家作為驗證節點的主要責任,也是大家在一個分片系統當中主要的工作。

如果在線正常運行的狀況發出了應該發出的信息,所有都是正常的,這種情況下會發現其他的三分之二節點正常,就可以拿到利息。

如果是離線問題,不過至少有三分之二的節點都在正常運行,會有一些小的懲罰。但是,如果大部分節點離線,那麼,會有大的懲罰。

第三種情況是最差的情況了,即簽名是錯誤或者跟自己有衝突的信息。你可能是在線的,但簽名的信息是不正確的。當我說到你籤的這個信息不正確,我可以更深入的講一下,但是現在我先不講它為什麼這樣,但我只知道這個情況發生了。這種情況是你要攻擊網絡,或者你被黑了,如果有這樣的情況發生,你會有一些懲罰。這個懲罰與其它犯錯驗證節點的數量是成比例的。

另外,如果你是無辜的,有這種情況出現是因為你被黑了,或者電腦有問題,或者數據有問題,這時你受的懲罰就會比較小。如果真的有攻擊發生,需要非常多的驗證節點,這時你的罰款 就會非常大。攻擊系統的成本非常高,如果你作為個人的驗證節點出現了問題,成本 是沒有那麼高的,是公正的。

這個機制希望激勵大家做驗證節點,也希望大家在設置時,能夠更好的保護自己的機制,儘量不與其它節點的安全保護同時失敗。比如你是一個高度去中心化的網絡,不同的節點會在不同時間上線或離線,不同的節點會在不同的時間被黑。如果是一個去中心化網絡,大家都有同樣的權益池,所有人都用不一樣的權益池,如果權益池被黑了的話,假設我們非常集中,所有人都會有非常高的罰款 。

這也就是說:

1.不要加入和別人一樣的權益池。

2.不要跟別人用一樣的VPS。

3.不要跟其他人使用同樣的系統。如果你所有的節點都在這上面,就避免跟其他人撞車,一旦被黑了的話大家都賠很多錢,如果只有你一個人被黑的話也會損失 很大,所以大家不要跟其他人使用同樣的系統。

4.不要跟其他人使用同樣的客戶端。這個機制是希望大家更好的去進行配置自己,不讓網絡同時有非常高的風險。

現在假設大家已經拿到自己的獎勵了,你希望能夠把這個以太幣提出來,該怎麼做?

最後一步,就是退出。

即你的私鑰或提款地址都可以觸發取款過程,一旦觸發了取款過程,你的驗證節點會在大概7天后關閉,你退出了之後,需要等待4個月,來提取以太幣。

最後總結一下,你需要知道的,所謂第一層擴容技術,即Layer1其實是針對協議層的擴容,是底層區塊鏈本身進行“改造”,

改進區塊鏈自身,把區塊鏈自身變的更快、容量變的更大。

歡迎留言探討,還會不斷補充......


分享到:


相關文章: