以太坊上的擴容方案:概述

買賣虛擬貨幣
目的

區塊鏈世界中,可擴充套件性是每個專案都需要應對的問題。從以太坊專案入手,有利於我更好地瞭解這個難題,並作出投資決策。以太坊擴容系列結束後,其他專案也可能涉及,例如eos和quarkchain。

這些文章不會涉及到程式碼,我只概述我理解的可擴充套件性工作機制。

2018:以太坊基建之年

之前在關於區塊鏈可擴充套件性一文中提到,目前尚無區塊鏈兼顧去中心化、可擴充套件性和安全。對以太坊來說,可擴充套件性問題在ico和cryptokitties等應用中已體現出來,自然這成為以太坊開發者考慮的重點。按照創始人vitalik buterin的說法,2018年將成為以太坊基礎設施建設之年:

[2018] will be the year where all of the ideas around scalability, plasma, proof-of-stake, and privacy that we have painstakingly worked on and refined over the last four years are finally going to turn into real, live working code.

從實用角度來說,以太坊尚處於早期,當前的情況是它既不安全(考慮到智慧合約中經常出現的漏洞),也難以擴充套件。距離最終目標:為幾十億人服務的安全易用的去中心化網路,路途尚遠。

為了解決這個問題,目前有多個專案從事以太坊擴充套件性研究。最近一次綜合這些方案現狀的是今年三月份在巴塞羅舉辦的scalingnow!大會,參會專案類別和名稱如下:

state channels(狀態通道)類別
  • uraiden
  • counterfactual
  • funfair
  • decentraland
  • liquidity network

sidechains(側鏈)類別
  • parity tech
  • poa network
  • plasma

sharding(分片)類別
  • diamond drops

multi-chain(跨鏈)類別
  • cosmos

alternative(其他)類別
  • truebit

擴充套件性的難點

擴充套件性討論中常出現的一個縮寫詞是tps(transaction per second, 每秒交易數),當前以太坊差不多有15tps,而visa在65000tps左右,可見以太坊成為日常生活的一部分,還有很長的路要走。這種限制發生在以太坊設計本質上,因為每筆交易都會被網路中每一個節點處理;每個節點,無需依賴其他人告訴當前網路狀態,它自己可以得知。

或許我們可以讓每個節點做更多的事情,例如把區塊大小翻倍,但這樣子做會犧牲去中心性,因為處理能力較強的節點將在挖礦中獲得優勢,從而使得全網算力分佈更加集中。

所以,我們的目的是在不增加每個節點工作量的前提下,儘可能讓整個網路做更多的事情。目前看來有兩種方法。

如果每個節點無需處理網路中的每個操作

這個假定直接推翻了以太坊的設計原則,但如果我們把網路切成兩半,各自可以半獨立執行呢?a部分處理一半交易,b部分處理另一半,這將使全網tps翻倍。在此基礎上,我們把網路切成多個,這將更大地提高tps。這就是前文提到的sharding(分片)處理。

分片處理由vitalik buterin帶領研究。以太坊將被劃分為多個shard(片),每一個可以獨立處理交易。分片技術經常被稱為layer 1(第一層,或稱鏈上)擴充套件方案,是因為它在以太坊協議中實現。這也意味著,分片技術將造成hard fork(硬分叉)。硬分叉的定義就是區塊鏈發生了永久性的分歧,導致沒有升級的節點無法驗證已升級節點產生的區塊。

如果我們能從以太坊當前處理能力中獲得更多

第二種想法就是,與其硬分叉以太坊,不如我們基於當前的tps做更多的事情。這種通常稱為layer 2(第二層,或稱為鏈外)擴充套件方案,它們建立在以太坊之上,無需修改以太坊本身。典型的例子如上文提到的state channels(狀態通道),plasma(側鏈的一種)和truebit(提高複雜運算能力)。

  • 狀態通道
以有賭注的打牌為例,假如我們把撲克牌遊戲放到以太坊上,這將註定是一個比較昂貴緩慢的遊戲,因為參與打牌的人需要等待礦工的確認,而且每次動作都需要付出以太坊的gas,這個實在難以接受。不如,我們找個以太坊之外(鏈外)的地方打牌,每次輸贏先用本子記下來,最後到以太坊鏈上統一結算。這將極大加快我們的打牌進度,並且也不影響最終結果。

當然,實際執行起來是有很多細節和限制的,我將在以後的文章中解釋。

  • 側鏈
另一種打牌方法,我也不在以太坊上打,但我自己發明一條區塊鏈,作為以太坊的子鏈依附其上,而且子鏈上還能掛載下一層子鏈。這種方法也能極大減少以太坊的負荷並提高tps。典型的專案就是vitalik buterin釋出的plasma技術。

  • truebit
truebit不會直接提升網路中的tps,它的目的是讓以太坊應用能處理較為複雜的運算,並且能在主鏈上得到驗證。考慮gas費用,複雜運算在以太坊上進行是很貴的。truebit有一套專門的驗證計算結果的方法,將在以後文章中論述。

跨鏈操作

目前公鏈(public blockchain)數目不少,cosmos致力於建立基於區塊鏈的乙太網(internet of blockchains),使得各個區塊鏈能連線到一起。cosmos將從整個網路角度提升tps,和單個區塊鏈的鏈上鍊外方案構成補充。

總結
  • 目前尚無區塊鏈兼顧去中心化、可擴充套件性和安全。對以太坊來說,可擴充套件性是2018年的重點
  • 解決以太坊擴充套件難題,目前有鏈上鏈外兩種解決方案
  • truebit專門用來處理複雜運算
  • cosmos能從整個網路(跨鏈)角度提升tps
到這裡也就結束了以太坊擴容方案的概述,接下來的文章,將按照鏈上、鏈外、複雜計算和跨鏈四個角度逐一解析,也歡迎各位的反饋。

免責聲明:

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

推荐阅读

;