——我們不將分片技術(sharding)作為一種擴展技術

這篇文章簡要介紹了一些關於分片的爭論,以及我們對Tezos「擴展性」的計劃。

摘要:擴展並不需要真正的二次方,非常高的交易量也可以在不顯著損害去中心化的前提下而實現,一個更強大的技術就在眼前 – SNARK 或者STARK。

擴展並不需要真正的二次方

區塊鏈模型通常被描述為讓每個參與者驗證每個交易。如果交易次數隨著參與者數量的增加而增加,那麼將要驗證的次數是整個網路參與者數量的二次方,然後才能進行下一步。人們經常爭論說,只要這仍然是主流範式,那麼沒有任何調整可以提高「擴展性」。這被用來證明「分片」是一種可行的擴展技術或方法,這樣可以讓驗證者在單獨的子鏈上工作,然後這些子鏈再週期性地編合在一起。然而,這種二次方擴展的概念僅在狹窄的理論層面上是正確的,而不具有現實相關性。

首先,比特幣區塊鏈的交易吞吐量的一個主要瓶頸是,驗證時間相對於區塊間隔來說非常短以避免孤立區塊。權益驗證 (POS)的區塊鏈具有同步共識模型,僅僅要求驗證時間短於區塊間隔(某些工作驗證POW方案,比如Bitcoin-NG,無此問題)。假設驗證速度為17秒/ MB,吞吐量可以增加到1到2個數量級,意味著驗證速度可以減小到1.7 秒/MB或者 0.17秒/ MB。雖然每個驗證者仍然需要驗證每筆交易,但兩個數量級的增加還是不可小覷的!

其次,更重要的是,這一思路讓參與網路的驗證者同時也使用網路簡單的支付驗證是原始比特幣白皮書中描述的一項技術,可以在不進行有效驗證的情況下使用網路,同時最大程度降低信任。一般來說,越多獨立的個體參與驗證區塊鏈,他們越不可能串通和破壞賬本的內容。更為諷刺的(或者可能是謹慎的)觀點是,每個個體本質都是腐敗的,因此網路的安全會隨著驗證者的數量和賄賂成本的增加而線性增加。但即使如此,網路的安全,本質上是與獨立驗證者的數量相關,而不是與網路參與者的數量相關。隨著參與者數量的增加,驗證者的數量並不需要按比例增加,他們可能成為網路中一小部分,但不會破壞網路的安全性。

高交易量可以在不顯著損害去中心化前提下獲得

——低門檻的驗證

一個更複雜的觀點是,自由出入的驗證者羣體的權利對維持驗證者誠實性至關重要。

如果沒有新鮮血液的驗證者進入和競爭,一羣惡意的驗證者可能很快就會成為一個穩定的壟斷羣體(卡特爾cartel 羣體)。如果驗證區塊鏈的計算要求很高,那麼它可能會壘起一個技術護城河來保護這羣卡特爾驗證者。分片以太坊區塊鏈的目的是能夠讓「便宜的筆記本電腦」來驗證擬定方案中涉及的輕量級子鏈。他們也暗示了一個經濟模型,驗證者投錢下注去說服其他驗證者相信他們的驗證,而不需要再去檢查他們的工作。

我們來看看一些實際的數字。 Visa的峯值交易率為每秒4000筆。 ED25519(一種加密學演算法)驗證操作需要273364個週期。在當代CPU 3Ghz計算機上,這意味著可以在0.36s內驗證超過4000個簽名。當然,驗證區塊鏈不僅僅只是驗證簽名,但驗證簽名往往佔用絕大部分計算資源。

使用Visa的高峯交易速率可能過於保守。畢竟,小額交易和網路交易的跡象表明交易量需求大大的增加了。讓我們大膽地將這一速率提高一百倍。粗略的保守估算,每秒40萬筆交易可以通過千兆網路和低於2萬美元的伺服器機羣實現。在大部分OECD 國家裡,千兆網路只需要每年幾百刀就可以實現了。2萬美元的伺服器機羣可能在五年後只需要2000美元不到就能搞定。這些就是支持高於VISA 峯值交易量100倍所需要的資源。

即使我們看到交易吞吐量需求的激增,同時計算能力和帶寬的成本也會急劇下降。當然,還有很多鏈下擴展解決方案,比如支付渠道,這是實施小型支付的更合理的方式。

在我看來,以太坊分片區塊鏈的做法似乎太複雜了。為了獲得最大的信譽,他們似乎正在用形式驗證工具來解決這一問題,包括關於賄賂驗證人的經濟假設的驗證。我讚賞這種方法(我們非常重視Tezos中的形式驗證,並設計了我們的架構來實現它),但是在驗證高吞吐量的成本比標準挖礦更合理的當下,我不明白他們為什麼採取如此複雜的嘗試。

我的理解是,這個領域的人過分理想化了鏈式驗證和共識參與。人們經常說比特幣是一個「無需許可權」的網路。對我來說,無需許可權意味著我可以建立一個網站並立即開始接受比特幣。特別是,我不需要銀行的批准,就可以開始接收或發送比特幣。它是金融自由的強大武器。然而,很多人都認為挖礦使比特幣擁有無需許可權的特徵。我覺得這令人費解。某種程度上,我們可以爭辯說,挖礦演算法實現了「無需許可」,但是交易和存儲價格纔是有意義的事,而不是hashing哈希計算。

正如我們之前所說的,驗證的低門檻對於維持一個健康的去中心化和公開的網路非常重要。但是在實現了公開性後,作為一個用戶,成為一個小礦工和微薄的貢獻是無關的。最好的情況下,我會做一個象徵性的聲明,最壞的情況是我會在電價和比特幣價格之間進行賭博。考慮到我通常交易的金額,我最多僅需要擔心一下安全協議驗證工具(SPV-Security Protocol Verifier)級別的安全性。任何完全驗證這條鏈的交易金額都可以承擔這樣做的花費。鏈條驗證必須能夠以廉價方式訪問的想法似乎更多地來源於錯誤的平等主義意識形態,而不是來自實際的經濟或安全論點。

一個更強大的技術就在眼前

一個簡單但非常實用的鏈驗證方法就在眼前,它就是仍處於活躍研究中的「遞歸SNARK (recursive SNARK)」。SNARK全稱是簡潔的非互動式零知識知識證明,是Zcash用於保護交易隱私的技術(如果你不喜歡SNARK需要建立可信賴的設置,請耐心等待,我們有更好的好消息)。除了保護隱私的好處之外,SNARKs可以成為增強可擴展性的強大工具,而且我們希望在未來的Tezos迭代中採用該工具。

下面是它的工作原理:選取某段計算機代碼,例如驗證從A發送到B交易令牌的代碼。通過該代碼,你可以生成一個零知識證明,你知道這是一個有效的交易。從而不用將交易本身提交給礦工,你可以只提交與證明一起的餘額變化。無論交易的複雜性如何,該驗證過程都可以被任何驗證者在幾毫秒內完成。這意味著智能合同的交易費將成為過去。你可以在你的機器上運行一個智能合約,你可以讓它執行數小時的計算,然後向網路提交一個小小的證明,證明你做了計算並且這些數字確實符合計算值。這種顯然違反直觀的可能性是計算複雜性理論(PCP)的一個結果。如此我們可以獲得真正的加密保證該交易被充分驗證,而不用試圖參與到經濟賭注中。

以上只涉及到表層。有一種可能性,待生成的證明是一個你之前見證過和驗證過的證明,而這就是另一個新的證明 (這就是為什麼叫做重複遞歸SNARK的原因)。因此,區塊創建者可以匯總他們收到的所有證明並生成一個新的證明,證明他們已經看到所有這些其他證明。這些交易仍然是完全隱私不可見的,包括區塊創建者,但他們都會被壓縮成一個加密證明。區塊創建者然後會把那一個,單獨的證明以及相應的交易結果一起發布出來。

更深一步,我們可以想像一個區塊鏈,其中每個區塊鏈僅由賬本內容的原始哈希值(root hash)和有效交易(包括智能合同交易)的證明組成。這讓賬本進入新的狀態,而且存儲在前面區塊的證明本身是有效的。

事實上,這意味著用戶從創世區塊開始同步驗證整個鏈條的時間,不會超過一秒鐘。

SNARK有一個眾所周知的缺點:他們需要建立一個可信的機制,可以安全地執行,但事後不能審計。然而,最近一個不同的構想被公佈出來:STARK。他們共享類似的屬性,但是不需要建立信賴機制,並依賴於較少的數學假設。但STARK技術的額外好處是:他們免疫於量子計算的攻擊。我推薦觀看Eli Ben Sasson關於這方面的研究介紹。(https://www.youtube.com/watch?v=HJ9K_o-RRSY)

那有什麼需要的注意的嗎?為什麼區塊鏈社區目前不使用這種魔術技術?不幸的是,這種方法的致命弱點是證明生成仍然需要相當長的時間,遠超過我所描述的實用方案所要求的時間。證明已被驗證的證明的另一個證明(遞歸SNARK)可以在一分鐘水平上實現。STARK領域的研究非常活躍,而且證明生成的速度已經大大提高。 目前STARK證明生成已經比SNARK快三倍。我們大膽的估算,未來幾年STARK證明生成的速度會繼續保持快速增長。貌似我們可以有採用一些最有可能實現的技術。

在這些最有可能的技術中,我們特別感興趣的是設計一種編程語言的可能性(編程語言理論是我們的工具)。該編程語言在STARK的計算模型(有限的多項式迭代)中是有效的,同時能描述智能合約的邏輯。另一個值得探索的是為此任務建立專用硬體。

結論

以下是我們擴展Tezos交易量的計劃:

  1. 擁有大的區塊有很重要的意義(因為我們沒有使用比特幣的工作證明共識演算法),所以我們打算這樣做,因為漸近性的成本問題,但現實世界中的倍增係數也是如此。
  2. 使用支付渠道等離線擴展解決方案。並非所有事情都需要在區塊鏈上進行。在智能合約平臺上構建閃電般的網路也比比特幣更容易。
  3. 需要認識到, 從長遠角度來看計算和帶寬成本的下降速度將遠遠超過未來交易的需求。
  4. 驗證的計算能力要求會比普通的筆記本高。我們顯然不希望我們的驗證者只能是財富500強公司,但我們也可以構建安全的區塊鏈即使在驗證無法立即進行驗證的情況下,比如囊中羞澀的大學生。重要的是,這些大學生可以使用並信任區塊鏈,他們可以在其上開發出出色的應用程序並部署智能合約。網路並不是由極客在地下室用頂級路由器運行而製造的。網路驗證並沒有什麼特別之處,我們更重視大眾的參與。
  5. 在我們的第一個版本中,我們將從非常保守的參數和低吞吐量開始,以促進廣泛採用。因此,一開始便宜的筆記本電腦實際上足以驗證區塊鏈。但是,隨著網路的建立越來越成熟,我們認為Tezos的利益相關者將被建議提高驗證者的吞吐量和相關的計算負載。利益相關者的利益將是在驗證的低成本,促進去中心化和高交易量之間找到平衡點,所有這些都有利於最大限度地發揮其代幣的價值。很難給出具體的數字,但是我們的相關經驗認為,高達每月1000美元的驗證費用不會對網路的分散化造成重大影響。然而,我們不能將這種建議強加給代幣持有者。
  6. 擱置以上的各種博弈。忘記去中心化和吞吐量之間的衝突,忘記擔心驗證的成本。讓我們努力改進零知識證明技術,如此我們可以將區塊鏈轉變為碎小的證明,從而任何人都可以在一秒內得以驗證。

作者:Arthur Breitman/Apr 19, 2017

原文鏈接

翻譯:Tezos中文社區成員/祥子

相關文章