農林漁牧網

您現在的位置是:首頁 > 農業

Vitalik萬字長文:困擾加密貨幣的硬核難題五年後都怎麼樣了?

2022-05-11由 巴位元資訊 發表于 農業

剩餘標準差怎麼計算

寫在前面:本文為以太坊聯合創始人Vitalik Buterin釋出的硬核長文。文章中列出了他五年前認為加密貨幣應該解決的問題,並且給出了五年後的進展。這些問題主要被分為了密碼學問題、共識理論和經濟學這三個方面。最後,Vitalik還補充了一些我們今天需要關注的新問題,並且指出,基礎層的問題肯定會越來越少,而應用層的問題才剛剛開始。

以下為全文:

Vitalik萬字長文:困擾加密貨幣的硬核難題五年後都怎麼樣了?

2014年,我發表了一篇文章和一次演講,列舉了數學、計算機科學和經濟學領域的難題,我認為這些問題對於加密貨幣領域的成熟是很重要的。在過去的五年裡,情況發生了很大的變化。但我們當時認為重要的事情究竟取得了多大進展呢?我們在哪些方面成功了?在哪些方面失敗了?我們對於重要性的改觀在哪些方面有了變化?在這篇文章中,我將逐一討論2014年列出的16個問題,看看我們今天在每個問題上的進展如何。最後,我將列出我對2019年難題的新定義。

這些問題可分為三類:(i)密碼學問題,因此如果可以解決的話,預計將純粹透過數學技術來解決;(ii)共識理論,主要是PoW和PoS的改進;(iii)經濟,面向不同的參與者建立涉及激勵機制的結構,而且通常涉及的應用層問題多過協議層。我們看到,在上述所有領域都取得了重大進展,儘管具體的成效參差不齊。

密碼學問題

1. 區塊鏈可擴充套件性

當前加密貨幣領域面臨的最大問題之一是可擴充套件性……(容量較大的區塊鏈)的主要擔憂是信任:如果只有少數實體能夠執行全節點,那麼這些實體可以密謀,並同意給自己大量額外的比特幣,其他沒有處理整個區塊的使用者就沒有辦法檢視區塊是否有效。

問題:建立一個區塊鏈設計來維護類似比特幣的安全保證,但是需要強大節點的存在來確保網路運作能夠適應交易的數量。

現狀:較大的理論進展,需要更多現實世界評估。

可擴充套件性是一個技術問題,在理論上已經取得了巨大進展。五年前,幾乎沒有人考慮分片(sharding);現在,分片設計很常見。除了以太坊2。0之外,還有OmniLedger、LazyLedger、Zilliqa(等專案都在用分片),幾乎每個月都會公佈相關的研究論文。在我看來,這方面的進展是漸進式的。從根本上說,我們已經有了一些技術,與單個驗證者的環境相比,這些技術允許驗證者群體安全地在處理更多資料的同時達成共識,甚至允許客戶端在51%攻擊的條件下間接地驗證區塊的有效性和可用性。

這些可能是最重要的技術:

還有其他更小的進展,如透過收款進行跨分片(Cross-shard)通訊,以及“常數因子”增強,如BLS簽名聚合。

儘管如此,完全分片的區塊鏈仍然沒有在實際操作中出現(部分分片的Zilliqa最近已經開始執行)。在理論方面,剩下的主要是關於細節的爭論,以及與分片網路穩定性、開發者經驗和降低中心化風險相關的挑戰;對基本的技術可能性似乎不再有疑問。但是仍然存在的挑戰是不能僅僅透過思考就能解決的挑戰;只有開發出一個系統和見證以太坊2。0或一些類似的能夠執行的鏈才能證明這項技術真的可行。

2. 時間戳

問題:建立一個分散式的激勵相容系統,不管它是一個覆蓋在區塊鏈之上還是在自己的區塊鏈之上,它都能保持當前時間的高準確度。所有正當使用者的時間都是正態分佈在某個“真實”時間,標準差為20秒……不允許兩個節點之間的間隔超過20秒。解決方案可以依賴於現有的“N個節點”概念;在實踐中,這將透過PoS或非女巫(non-sybil)token來強制執行(參見第9條)。系統應該持續提供一個時間,這個時間應該在內部時間的120秒內(如果可能的話,可能更少),大於99%的誠實節點的時間。外部系統可能最終依賴於此係統;因此,不管激勵機制如何,它都應該保持安全,防止攻擊者控制小於25%的節點。

現狀:有一些進展。

實際上,以太坊的出塊時間只有13秒,而且運作順利,沒有特別先進的時間戳技術;它使用了一種簡單的技術,在這種技術中,客戶端不接受時間戳早於客戶端本地時間的區塊。也就是說,這還沒有經過嚴重攻擊的考驗。最近的網路調整時間戳提案試圖改善現狀,允許客戶端在不知道當前時間的情況下,在時間上達成一致;這還沒有經過測試。但總的來說,時間戳目前還不是研究挑戰的前沿;也許當PoS鏈(包括以太坊2。0以及其他鏈)真正上線之後,我們才能看到問題所在,這一點也將再次改變。

3. 任意計算證明

問題:建立程式POC_PROVE (P, I) - > (O, Q)和POC_VERIFY (P O Q - >{0,1},這樣POC_PROVE在輸入I時執行程式P並返回程式輸出O,計算證明Q和POC_VERIFY用P, O和Q和輸出(證明)是否Q和O 是透過P用POC_PROVE演算法產生的。

現狀:較大的理論和實際進展。

這基本上是說搭建一個SNARK(或STARK,或SHARK,或…)的過程。我們已經做到了!SNARKs現在已經被越來越多的人理解,甚至已經被用於多個區塊鏈(包括以太坊上的tornado。cash)。作為一種隱私技術(參見Zcash和tornado。cash)和擴容技術(參見ZK Rollup、STARKDEX和STARKing擦除編碼資料根),SNARKs非常有用。

在效率方面仍然存在挑戰;創造演算法友好的雜湊函式是一個重要挑戰,而有效地證明隨機記憶體訪問是另一個。此外,還有一個未解決的問題,即在證明時間內O(n * log(n))的放大是否是一個基本的限制,或者是否有某種方法可以只使用線性開銷來做一個簡潔的證明,就像bulletproofs那樣(不幸的是,這需要用線性時間來驗證)。此外,現有方案存在缺陷的風險也一直存在。總的來說,問題在於細節,而不是基本原理。

4. 程式碼模糊化

關鍵在於建立一個模糊處理器O,這樣面對任何程式P,模糊處理器可以產生第二個程式O(P)= Q, 如果給出相同的輸入,P和Q可以返回相同的輸出。重要的是,無論如何Q不會公佈任何有關P的內部構件資訊。可以在Q內部隱藏一個密碼、一段加密的金鑰,或者可以簡單地使用Q隱藏演算法本身的獨特工作。

現狀:進展緩慢。

簡單地說,我們想要一種“加密”程式的方法,以便加密後的程式仍然為相同的輸入提供相同的輸出,但是程式的“內部構件”將被隱藏。模糊化的一個典型用例是一個包含私鑰的程式,該程式只允許私鑰對某些訊息進行簽名。

程式碼模糊化的解決方案對區塊鏈協議非常有用。其應用是微妙的,因為必須處理這樣一種可能性,即一個鏈上模糊化的程式將在與這條鏈本身不同的環境中複製和執行,但是有許多可能性。對於我來說,我感興趣的是能夠在抗碰撞工具移除中心化運算子,用模糊化程式取而代之,其中包含了一些PoW,在嘗試確定各個參與者的行為時,使用不同的輸入進行多次執行的成本非常大。

不幸的是,這仍然是一個難題。解決這個問題的工作還在繼續進行中,一方面是進行結構方面的工作,試圖減少在實際情況中我們不知道的但卻存在的數學物件的假設數量(如一般密碼學多線性對映),另一方試圖對所需的數學物件進行實際部署。然而,所有這些途徑仍然離創造出一些可行的和安全的東西還很遙遠。請參見https://eprint。iacr。org/2019/463。pdf以獲得對該問題的更全面的描述。

5. 雜湊密碼學

問題:建立一個簽名演算法不依賴於安全假設,但隨機預言機雜湊屬性相對於傳統計算機保持160位的安全性具有最優的大小和其他屬性。

現狀:一些進展。

自2014年以來,在這方面有兩個進展。SPHINCS是一種“無狀態”(意味著多次使用它不需要像隨機數那樣記住資訊)簽名方案,它是在這個“難題”列表釋出後不久釋出的,並提供了一個大小約為41 kB的純雜湊簽名方案。另外,STARKs已經被開發出來,人們可以基於其建立類似大小的簽名。事實上,不僅簽名,通用的零知識證明都可以用雜湊來實現,這是我在五年前絕對沒有想到的;我很高興見到這樣的情況。儘管如此,容量仍然是個問題,持續的進展(最近的DEEP FRI)正在繼續減少proof的大小。

基於雜湊的密碼學主要尚未解決的問題是聚合簽名,類似於BLS聚合所實現的功能。眾所周知,我們可以對許多Lamport簽名進行STARK,但這樣做效率很低;一個更有效的方案將會受到歡迎。(如果你想知道基於雜湊的公鑰加密是否可行,那麼答案是否定的,超過二次攻擊成本,你什麼都做不了)

共識理論問題

6. 抗ASIC PoW

解決這個問題的一種方法是建立一種PoW演算法,該演算法基於一種很難專用化的計算型別……更深入的抗ASIC硬體討論,看這裡。

現狀:已經盡力解決。

在這個“難題”列表釋出的大約6個月後,以太坊確定了其抗ASIC的PoW演算法:Ethash。Ethash是一種memory-hard(硬記憶體)演算法。其原理是,普通計算機中的隨機訪問記憶體已經得到了很好的最佳化,因此很難針對專用的應用進行改進。Ethash的目標是讓記憶體訪問成為執行PoW計算的主要部分來實現抗ASIC。Ethash並不是第一個memory-hard演算法,但它確實增加了一項創新:它在兩級DAG上使用偽隨機查詢,允許兩種方法來評估函式。首先,如果你有整個(約2 GB)DAG,你可以很快地計算它;這就是memory-hard的“快車道”。第二,如果只有DAG的最高級別,則可以更慢地計算它(仍然可以快速地檢查單個提供的解決方案);這用於區塊驗證。

Ethash已被證明在抗ASIC方面非常成功;經過3年時間和數十億美元的區塊獎勵,ASIC確實存在,但它的功耗和成本效率最多是GPU的2-5倍。ProgPoW已經被提出作為一個替代方案,但是越來越多的人認為抗ASIC的演算法將不可避免地有一個有限的壽命,並且抗ASIC存在缺陷,因為它讓51%攻擊更便宜。

我認為可以建立提供中等水平的抗ASIC PoW演算法,但這種抵抗力是有限的,ASIC和非ASIC的PoW都有缺點;從長期來看,對區塊鏈共識來說,更好的選擇是PoS。

7. 有用的PoW

讓PoW在運作的同時變得有用;一個常見的備選方案是Folding@home,使用者可以下載這個軟體到電腦上模擬蛋白質摺疊,為研究人員提供大量資料,幫助他們治療疾病。

現狀:可能不可行,但有一個例外。

有用的PoW的挑戰在於PoW演算法需要很多屬性:

很難計算

很容易驗證

不依賴大量的外部資料

可以有效地小部分資料塊進行計算

不幸的是,沒有多少有用的計算能保留所有這些屬性,而大多數具有所有這些屬性且“有用”的計算只能在太短的時間內“有用”,無法基於此構建加密貨幣。

然而,有一個可能的例外:零知識證明生成。經過零知識證明的區塊鏈有效性各方面很難計算,而且容易驗證。此外,這種難以計算的特點可以持久;如果“高度結構化”計算的證明變得過於簡單,可以簡單地切換到驗證區塊鏈的整個狀態轉換,由於需要對虛擬機器和隨機記憶體訪問建模,這將變得非常昂貴。

經過零知識證明的區塊鏈有效性為區塊鏈的使用者提供了巨大的價值,因為他們可以代替直接驗證鏈的需要;Coda已經在這麼做了,儘管它使用了簡化的區塊鏈設計,併為可驗證性進行了大量最佳化。這樣的證明可以顯著地改進區塊鏈的安全性和可擴充套件性。也就是說,實際需要完成的總計算量仍然比PoW礦工當前完成的計算量少得多,所以這充其量只是一個附加的PoS區塊鏈,而不是一個全面的共識演算法。

8. PoS

解決挖礦中心化問題的另一種方法是完全取消挖礦,轉而採用其他機制計算共識中每個節點的權重。到目前為止,討論中最受歡迎的替代方案是“PoS”——也就是說,不再將共識模型視為“一CPU一票”,而是“一幣一票”。

現狀:較大的理論進步,等待更多的現實評估。

2014年底,PoS社群清楚地意識到,某種形式的“弱主體性”是不可避免的。為了維護經濟安全,節點在第一次同步時需要獲得最新的檢查點額外協議,如果離線時間超過幾個月,則需要再次獲得。這是一顆難以下嚥的藥丸;許多PoW的支持者仍然堅持使用PoW,因為在PoW鏈中,可以透過來自可信源的唯一資料(即區塊鏈客戶端本身)發現這條鏈的“頭”。然而,由於附加的信任要求並不高,PoS的倡導者們願意吞下這顆藥丸。從那裡開始,透過長期安全存款來通往PoS的道路變得清晰起來。

今天大多數有趣的一致演算法基本上與PBFT相似,但是將固定的驗證者集合換成了一個動態列表,任何人都可以透過將代幣傳送到系統級的智慧合約用時間鎖取款(在某些情況下,提款可能需要4個月才能完成)來加入該列表。在許多情況下(包括以太坊2。0),這些演算法透過懲罰違反協議的驗證者來實現“經濟終結性”。

今天,我們有:

有繼續進行的細化(例如這裡和這裡)。將部署FFG的Eth2階段0目前正在實施中,已經取得了巨大進展。此外,Tendermint已經以Cosmos鏈的形式運行了幾個月。在我看來,關於PoS的剩餘爭論與最佳化經濟激勵和進一步形成應對51%攻擊的戰略有關。此外,Casper CBC規範仍然可以使用具體的效率改進。

9. 儲存證明

解決這個問題的第三種方法是使用計算能力或貨幣之外的稀有計算資源。在這方面,提出的兩個主要備選辦法是儲存和頻寬。原則上沒有辦法提供一個事後加密證明頻寬被使用,所以準確來說,頻寬證明應該是社會證明的一個子集,這一點會在後面提到,但儲存證明肯定可以做計算。儲存證明的一個優點是它是完全抗ASIC;我們在硬碟上的儲存方式已經接近最優。

現狀:有很多理論上的進步,儘管還有很多要做,還有更多的現實評估。

有一些區塊鏈計劃使用儲存證明協議,包括Chia和Filecoin。也就是說,這些演算法還沒有在現實環境中測試過。我自己主要擔心的是中心化:這些演算法實際上是由使用備用儲存容量的小使用者主導,還是由大型礦場主導?

經濟學

10. 穩定價值加密資產

比特幣的主要問題之一是價格波動……問題:構造一個價格穩定的加密資產。

現狀:一些進展。

MakerDAO上線了,並且已經穩定了近兩年。其基礎擔保資產(ETH)的價值下降了93%,但它依然活了下來,現在發行的DAI超過1億美元。它已經成為以太坊生態系統的支柱,許多以太坊專案已經或正在部署這一專案。其他的合成代幣專案,如UMA,也在迅速發展。

然而,儘管MakerDAO體系在2019年經受住了嚴峻的經濟形勢,但這些情況絕不是最嚴峻的。過去,比特幣曾在兩天內下跌了75%;同樣的情況也可能發生在以太坊或其他任何抵押資產上。對底層區塊鏈的攻擊是一種更大的未經測試的風險,尤其是在價格同時下跌的情況下。另一個主要的、可以說是更大的挑戰是,MakerDAO這樣的系統的穩定性依賴於一些底層的預言機方案。針對預言機系統的不同嘗試確實存在(見第16條),但是在經濟壓力巨大的情況下,它們能堅持多久,目前還沒有定論。到目前為止,MakerDAO控制的抵押品一直低於MKR代幣的價值;如果這種關係逆轉,MKR持有者可能會有動機去“掠奪”MakerDAO系統。有很多方法可以防止這種攻擊,但是在現實生活中還沒有經過測試。

11. 去中心化公共產品激勵

一般來說,經濟體系面臨的挑戰之一是“公共產品”問題。例如,假設有一個科學研究專案將花費100萬美元來完成,並且眾所周知,如果它完成了,將為100萬人每人節省5美元。總的來說,社會效益是明顯的……(但是)從個人的角度來看,做出貢獻是沒有意義的……到目前為止,公共產品的大多數問題都涉及到中心化的附加假設和要求:存在一個完全可靠的預言機來確定某個公共產品任務是否已經完成(實際上這是錯誤的,但這是另一個問題的領域)。

現狀:一些進展。

為公共產品提供資金一般可以理解為分成兩個問題:資金問題(從哪裡獲得資金)和偏好加總問題(如何確定什麼是真正的公共利益,而不是個人的專案)。這個問題特別關注於前者,假設後者已經解決。

總的來說,這裡沒有重大的新突破。有兩大類解決方案。首先,我們可以嘗試激發個人的貢獻,給予人們相應的社會回報。我自己提出的透過邊際價格歧視進行慈善的建議就是一個例子;另一個是Peepeth上的抗瘧疾捐贈徽章。其次,我們可以從具有網路效應的應用中籌集資金。在區塊鏈領域有幾種選擇:

發行幣

收取協議級別的部分交易費用(如EIP 1559)

從某些第二層應用收取部分交易費用(如Uniswap,或者一些擴充套件方案,甚至在以太坊2。0的執行環境中使用狀態租賃)

收取其他費用的一部分(如域名註冊)

在區塊鏈領域之外,這只是一個古老的問題:涉及到如果你是政府,如何收稅?如果你是企業或其他組織,如何收費?

12. 名譽系統

問題:設計一個正式的名譽系統,包括一個分數rep(A,B)- > V,V是從A的角度來看B的名譽,這個機制可以確定一方被信任的可能性,並根據特殊的公開或最終互動記錄來更新名譽。

現狀:進展緩慢。

自2014年以來,關於名譽系統的研究並不多。也許最好的方法是使用token管理的註冊中心來建立可信任實體或物件的管理列表;Kleros ERC20 TCR就是一個例子,甚至還有一個Uniswap的替代介面,它使用前者作為後端來獲取token、股票程式碼和logo的列表。主觀型別的名譽系統還沒有真正被嘗試過,也許是因為沒有足夠關於人與人之間的聯絡的“社交圖譜”,這些資訊已經以某種形式被髮表了。如果這些資訊因為其他原因而開始存在,那麼主觀名譽系統可能會變得更受歡迎。

13. 優秀證明

這是一個有趣的,但很大程度上未被探索的,解決(token)分配問題的特別方法(有理由說明為什麼它不能如此容易地用於挖礦)是使用對社會有用但需要原始人類驅動的創造性努力和才能的任務。例如,可以提出一種“證明的證明”貨幣,獎勵參與者提出某些定理的數學證明。

現狀:沒有進展,這個問題被遺忘了。

代幣分發的主要替代方法是空投;通常,一種代幣在啟動時就會按比例分配給其他代幣的現有持有量,或者基於其他指標。直接驗證人類的創造力還沒有真正嘗試過,而且隨著人工智慧最近的進展,創造一個只有人類可以做但計算機可以驗證的任務的問題可能太困難了。

14. 去中心化貢獻指標

不幸的是,激勵公共產品的生產並不是中心化解決的唯一問題。另一個問題是決定,首先,哪些公共產品值得生產,其次,確定一個特定的成就實際上在多大程度上完成了公共產品的生產。這一挑戰涉及後一個問題。

現狀:有些進步,有些改變。

最近關於確定公共產品貢獻價值的研究沒有試圖將確定任務和確定完成質量分開;原因是在實踐中這兩者很難分開。特定團隊所做的工作往往是不可替代的,並且是非常主觀的,因此最合理的方法是將任務的相關性和效能的質量打包來看待,並使用相同的技術來評估兩者。

幸運的是,在這方面已經取得了很大的進展,特別是二次融資的發現。二次融資是一種機制,在這種機制下,個人可以向專案捐款,然後根據捐款的人數和捐款的數額,用一個公式計算出,如果他們互相配合得很好,他們本應該捐多少錢(考慮到彼此的利益,沒有成為公地悲劇的犧牲品)。我們捐贈的金額與實際捐贈的金額之間的差額將作為某個中央資金池的補貼提供給該專案(中央資金池的資金來源見第11條)。請注意,這種機制側重於滿足某個社群的價值,而不是滿足某個既定的目標,不管是否有人關心它。由於價值問題的複雜性,這種方法可能對未知的未知更健全。

二次融資在現實生活中也有過嘗試,在最近的gitcoin二次融資中取得了相當大的成功。在改善二次融資和類似機制方面也取得了一些進展;特別是,成對有界二次融資,以防止勾結行為。也有規範和實施抗賄賂投票技術的工作,防止使用者向第三方證明他們投了誰的票;這可以防止各種勾結和賄賂攻擊。

15. 反女巫攻擊系統

與名譽系統問題相關的一個問題是建立“唯一身份系統”的挑戰——生成token的系統,以證明某個身份不是女巫攻擊的一部分……然而,我們希望有一個比“一美元一票”更好、更平等的制度;可以說,一人一票是最理想的。

現狀:一些進展。

人們曾多次嘗試解決這個唯一人類問題。想到的嘗試包括(不完整的列表!):

隨著人們對二次投票和二次融資等技術越來越感興趣,對反女巫攻擊系統的需求也在不斷增長。希望這些技術和新技術的不斷髮展能夠滿足這一要求。

16. 去中心化成功指標

問題:提出並實現一個去中心化的方法來量化真實世界的變數…該系統應該能夠衡量任何人類目前能夠達成大致共識的事情(例如,資產價格、溫度、全球二氧化碳濃度)。

現狀:一些進展。

這現在通常被稱為“預言機問題”。已知的最大的去中心化預言機執行例項是Augur,它已經處理了數百萬美元的下注結果。Token管理的註冊中心(例如Kleros TCR)是另一個例子。然而,由於高度爭議性的問題或者由於51%攻擊嘗試,這些系統仍然沒有開始實際測試。也有以“對等點預測”文獻的形式研究發生在區塊鏈領域之外的預言機問題;在這裡可以看到該領域的最新進展。

另一個迫在眉睫的挑戰是,人們希望依靠這些系統來引導資產數量的轉移,而這些資產的轉移規模要大於系統的本地token的經濟價值。在這種情況下,代幣持有者在理論上有串通一氣給出錯誤答案以竊取資金的動機。在這種情況下,系統將分叉,原始的系統token可能變得毫無價值,但是原始的系統token持有者仍然可以從他們錯誤引導的任何資產轉移中獲得回報。穩定幣(見第10條)就是一個特別的例子。有一種解決方法這將是這樣一個系統——假定無私的誠實資料提供者確實存在,並建立一個機制來識別它們,如果有人開始惡意投票,依賴於預言機的使用者可以先完成有序退出。無論如何,預言機技術的進一步發展是一個非常重要的問題。

新問題

如果要我在2019年再寫一遍難題清單,有些會是上述問題的延續,但關鍵點會有重大變化,也會有重大的新問題。以下是一些選擇:

密碼模糊化:

見第4點

正在進行的後量子密碼學的工作:

基於雜湊和基於後量子安全的“結構化”數學物件,例如橢圓曲線同源、控制曲線……

反勾結基礎設施:

正在進行的工作和細化的內容在這裡,包括增加對運作者的隱私,以最實用的方式增加多方計算等等

預言機:

和上面的第16點一樣,但是去掉了對“成功指標”的強調,而把重點放在“獲取真實世界的資料”這個問題上

唯一身份:

見15個點,但重點是一個“絕對”的解決方案:更難得到兩個身份,但同時獲得多重身份既是不可能的也是有害的

同態加密和多方計算:

為了實用性,還需要不斷改進

去中心化的治理機制:

DAO很酷,但是當前的DAO仍然非常原始;我們可以做得更好

對PoS 51%攻擊的正式迴應:

正在進行的工作和細化的內容在這裡

更多的公共產品資金來源:

理想的做法是對具有網路效應的系統內部的擁擠資源收費(例如交易手續費),但在去中心化的系統中,這樣做需要公共合理性;因此,這是一個社會問題,同時也是尋找可能來源的技術問題

名譽系統:

見第12條

總之,基礎層問題雖然緩慢但肯定會減少,但應用層問題才剛剛開始。