最近,以太坊創始人 Vitalik Buterin 的一篇文章引起了巨大關注。他回看了五年前討論加密貨幣生態的文章,并且對其中重要的 16 個問題進行了新一輪的探討。
區塊鏈技術起源于國外,今天在中國迅速地與產業融合,欣欣向榮。作為國內自主研發的開源技術代表,本著開放、學習的精神,百度超級鏈工程師超哥翻譯出V神文章,現公布出來,與各位同行、開發者學習、交流。
密碼學問題
1.區塊鏈的擴展性
當今加密貨幣領域面臨的最大問題之一就是擴展性問題。。.大規模的區塊鏈系統主要關注的問題就是信任:即如果只有幾個實體能夠運行全節點,這些實體很可能合謀篡改區塊內容,而其他用戶因為沒有親自驗證區塊內容,無法判斷一個區塊是否合法。
問題:創建一個安全強度與比特幣持平的區塊鏈,但是網絡中全節點的數量與交易數量呈線性關系。
現狀:理論方面取得重大進展,尚待工業環境檢驗。
擴展性問題是一個技術性問題,我們已經在理論上取得了很多進展。5年前,幾乎沒有人考慮分片技術;現在,分片技術已經司空見慣。包括以太坊2.0,OmniLedger,LazyLedger,Zilliqa,好像每個月都有研究論文發表。我個人認為,分片技術未來會有更多的進展。實際上,我們已經有很多技術能夠保證驗證者集合對更多的數據達成共識(相比單個驗證者),甚至能夠在51%攻擊條件下,保證客戶間接驗證區塊的合法性以及可用性。
有一些技術可能非常重要,如下:
隨機抽樣,允許隨機選擇少量的驗證者并且從統計學上講,能夠代表全部的驗證者集合。鏈接:https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-can-we-solve-the-single-shard-takeover-attack-in-an-uncoordinated-majority-model
欺詐證明,節點發現非法交易或區塊時,可以將非法信息以某種形式廣播給網絡中的其他節點。鏈接:https://bitcoin.stackexchange.com/questions/49647/what-is-a-fraud-proof
監管證明,允許驗證者從概率上證明他們單獨下載并驗證了一些數據。 鏈接:https://ethresear.ch/t/1-bit-aggregation-friendly-custody-bonds/2236
數據可用性證明,客戶可以通過區塊頭信息檢測區塊體是否可以獲取。 鏈接:https://arxiv.org/abs/1809.09044 另外可以參考coded Merkle trees提案。
還有其他一些小進展,例如通過收據進行跨分片通信以及“常數因子”增加功能(例如BLS簽名聚合)。
換句話說,完全的分片技術還沒有被應用到實際的區塊鏈系統中(Zilliqa已經在使用局部分片技術了)。在理論方面,對于分片技術本身不再持有懷疑態度,不過仍然遺留一些有爭議的細節問題以及分片網絡帶來的穩定性挑戰問題、開發者體驗問題等。但是,僅僅通過思考是無法解決那些仍然存在的問題的;還需要持續開發區塊鏈系統,看看以太坊2.0以及類似系統在真實環境中的運轉情況。
2.時間戳
問題:創建一個分布式激勵系統,使得無論是鏈上還是鏈外,都可以使當前時間保持較高的精度。所有正常用戶的時鐘圍繞某個“真實”時間呈正態分布,標準差為20秒。。.兩個節點之間的時間誤差不能超過20秒。實際上,這可以通過權益證明或者非sybil令牌來強制執行。(請參閱#9)系統應該持續提供一個環境,比如在連續的120秒(或者更短的時間),誠實節點占比大于99%。外部系統可能最終依賴于此系統;因此,無論動機如何,都應保證安全,以防攻擊者控制少于25%的節點。
現狀:有一些進展。
以太坊的出塊時間為13秒,沒有采用特別先進的時間戳技術,不過跑得挺溜;它使用了一種簡單的技術,即客戶端不接受其聲明時間戳早于客戶端本地時間的塊(即不接受來自過去的塊)。也就是說,以太坊尚未經過嚴格的時間戳攻擊測試。最近出來的網絡調整時間戳提案嘗試通過允許客戶端在不知道本地時間戳的情況達成高精度的時間共識以便改變現狀;不過還未經過測試。總的來說,時間戳問題并不是當前面臨的最具挑戰性的問題。也許更多的權益證明區塊鏈(包括以太坊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是否由POC_PROVE算法使用P合法產生。
現狀:理論和實踐均有重大進展。
基本就是構建一個SNARK(或STARK或SHARK或。。.)。我們已經實現了這種功能。現在,SNARK越來越廣為人知,甚至已經在多個區塊鏈中得到應用(包括基于以太坊構建的tornado.cash)SNARK作為隱私技術(請參閱Zcash和tornado.cash)和可擴展性技術(請參閱ZK Rollup,STARKDEX,STARKing erasure coded data roots)是非常有用的。鏈接1:https://ethresear.ch/t/on-chain-scaling-to-potentially-500-tx-sec-through-mass-tx-validation/3477鏈接2:https://www.starkdex.io/ 鏈接3:https://ethresear.ch/t/stark-proving-low-degree-ness-of-a-data-availability-root-some-analysis/6214
性能方面仍然存在挑戰;產生一個算術友好型的哈希函數就是一個大問題,高效證明隨機內存訪問是另一個大難題。此外,還存在一個尚未解決的問題,即O(n * log(n))是否是上限,或者是否有某種方法可以僅使用線性開銷來給出簡潔的證明(很遺憾,這需要花費線性時間進行驗證)。現有的方案還存在漏洞風險;通常,這些都是細節問題,而不是技術問題;
4.代碼混淆
理想的情況是創建一個混淆系統O,給定任意一個程序P,混淆系統可以產生一個新的程序O(P)=Q,從而保證如果給定相同的輸入,則程序P和Q能夠返回相同的輸出,并且重要的是,從程序Q無法導出有關程序P的任何信息。一個人可以在程序Q內隱藏一個密碼,比如密鑰,或者簡單地使用程序P來隱藏算法本身的工作。
現狀:進展緩慢。
問題:大白話就是說我們需要想一個方法對一個程序進行加密,在給定相同輸入的情況下,加密后的程序和加密前的程序能夠返回相同的輸出,并且加密后的程序不會暴露程序的內部信息。舉個例子,如果某個程序內部包含一個私鑰,那么這個私鑰除了對特定信息簽名外,無法做任何操作,即私鑰無法暴露出去。
代碼混淆的解決方案對區塊鏈協議會有很大意義。這個用例比較巧,因為用戶必須考慮鏈上的混淆程序會被拷貝到鏈外的可能性,當然還有其他可能性。我個人感興趣的一點就是混淆技術包含工作量證明,去除了中心化的操作。一個人想通過使用不同的輸入來嘗試判斷原用戶的行為,代價非常昂貴。
遺憾的是,這仍然是一個難題。目前通過持續的工作來攻堅這個難題,在理論方面,正在嘗試基于數學對象(即密碼學多線性對映射)推導我們的設想,在實踐層面,正在嘗試基于理想的數學對象做一些代碼上的實現。然而,所有這些工作離創建可行和安全的工具還很遙遠。更全面的概述,可以參考https://eprint.iacr.org/2019/463.pdf
5.基于哈希的密碼學
問題:創建一個數字簽名算法,不再依賴任何安全假設同時保持hash的隨機性(仍然是160bits,能夠抵抗經典計算機的攻擊)并擁有其他屬性。
現狀:有一些進展。
自2014年以來,在此方面取得了兩大進展。 SPHINCS是一種“無狀態”的數字簽名算法,在我將之列為難題之后不久就被發布出來了,它提供了幾個基于hash的純簽名算法,大小約為41KB。此外,STARKs也被開發出來了,可以基于它們創建大小類似的簽名。五年前,我認為數字簽名技術和零知識證明技術是可能實現的,不過hash技術的實現超出了我的預期。就是說,大小仍然是一個問題,需要持續減少證明的大小,盡管看起來進步是漸進式的。
基于hash的密碼學尚未解決的問題主要是聚合簽名,類似于BLS聚合想要解決的問題。眾所周知,我們可以對許多Lamport簽名進行STARK,不過這種方式效率低下;需要一種更高效的算法;(如果你想問基于hash的公鑰加密是否可行,答案是否定的,除了攻擊付出的開銷外,你做不了任何事情)
共識理論問題
6.抗ASIC的工作量證明
解決該問題的一種途徑就是找到一種無法定制化的計算類型,然后基于此創建工作量證明算法。有關抗ASIC的硬件內容更深入的討論,參https://blog.ethereum.org/2014/06/19/mining/
現狀:已經盡最大努力解決了。
在將該問題列為難題之后,又經過了6個月,以太坊決定采用抗ASIC的工作量證明算法:Ethash.眾所周知,Ethash是一種memory-hard的算法。從理論上講,常規計算機中的隨機存取存儲器已經得到了很好的優化,因此很難針對特殊應用進行改進。Ethash旨在主要通過訪問內存來獲得工作量證明,從而實現抗ASIC。Ethash并不是第一個memory-hard的算法,但是它確實有所創新:它在兩層DAG上使用偽隨機查找,從而提供了兩種評估函數的方式。首先,如果某人擁有整個DAG(大約2G),那么他可以進行快速計算;這就是memory-hard所謂的“快速路徑”。其次,如果只有DAG的頂層,那么計算過程就會相當慢;用于區塊驗證。
Ethash在抗ASIC方面被證明非常成功。經過三年和數十億美元的區塊獎勵后,ASIC確實仍然存在,不過它的性能比GPU最高高2-5倍。ProgPoW已經作為替代方案被提案,不過抗ASIC算法注定很快會消失,并且它存在缺點,比如它使得51%攻擊成本更低。以太坊經典51%攻擊:https://cointelegraph.com/news/ethereum-classic-51-attack-the-reality-of-proof-of-work
我相信可以創建提供中等級別的ASIC抵抗力的PoW算法,這種抵抗是有限的,并且ASIC和非ASIC PoW都有缺點。從長遠來看,區塊鏈共識更好的選擇是權益證明。
7.有用的工作量證明
讓工作量證明功能賦能其他事情;比如Folding @ home之類的東西,Folding @ home是一個現有程序,用戶可以在其中將軟件下載到計算機上以模擬蛋白質折疊,并為研究人員提供大量數據,以幫助他們治愈疾病。
現狀:可能并不可行,當然也有例外情況。
有用的工作量證明所面臨的挑戰是,這類工作量證明算法需要許多屬性:
難以計算
易于驗證
不依賴大量外部數據
可以高效地進行分塊計算
遺憾的是,在擁有上述屬性之后,沒有多少計算是有其他用處的,最多就是在很短的時間內“有用”,無法基于它們構建加密貨幣。
但是,有一個例外:零知識證明的生成。關于區塊鏈有效性驗證的零知識證明很難計算且易于驗證。此外,它們很難計算。如果“高度結構化”計算的證明變得太容易了,則可以簡單地切換到驗證區塊鏈的整個狀態轉變,由于需要對虛擬機和隨機內存訪問進行建模,因此這變得非常昂貴。
區塊鏈有效性的零知識證明為區塊鏈用戶提供了巨大的價值,因為它們可以代替直接驗證鏈的需求;Coda已經這么做了,albeit(擁有簡化的區塊鏈設計)也已經針對可證明性進行了優化。這些證明可以極大地幫助改善區塊鏈的安全性和可擴展性。也就是說,實際需要的計算量仍然遠遠小于當前礦工需要的工作量,因此,充其量不過是權益證明區塊鏈的附加項,不能作為單獨的共識算法存在。
8.權益證明
解決挖礦集中化問題的另一種途徑就是完全取消挖礦,并轉為其他機制來計算每個節點的權重。迄今為止,討論最多的替代方案是“權益證明”,也就是一幣一票,取代之前的一個CPU單元一票。
現狀:理論上取得重大進展,尚待實際生產環境驗證。
在2014年底,權益證明社區覺得“弱中心化”是不可避免的。為了保證經濟安全,節點在首次同步區塊時需要獲取最近的檢查點,如果節點離線超過幾個月則需要再次獲取。這很難讓人接受。許多PoW信徒仍然堅持使用PoW,因為在PoW鏈中,鏈的頭信息唯一的可信來源取決于區塊鏈客戶端本身。但是,PoS倡導者愿意接受這種問題,因為增加的信任要求并不大。從那以后,帶有長期保證金的權益證明算法慢慢被人接受了。
當今最有趣的共識算法本質上都類似于PBFT,使用動態的驗證者集合取代固定的驗證者集合,任何人都可以通過向具有贖回鎖定期的系統級合約轉發token(有時,贖回鎖定期可能長達4個月)從而加入到驗證者集合中。在許多情況下(包括以太坊2.0),這些算法能夠通過懲罰那些以特定方式違反協議的驗證者從而達成經濟確定性。
到目前為止,我們實現了如下算法:
Casper FFG: https://arxiv.org/abs/1710.09437
Tendermint: https://tendermint.com/docs/spec/consensus/consensus.html
HotStuff: https://arxiv.org/abs/1803.05069
Casper CBC: https://vitalik.ca/general/2018/12/05/cbc_casper.html
這些仍然在持續改進。以太坊2.0會實現FFG,目前正在實現中并已取得巨大進展。此外,Tendermint在Cosmos已經跑了好幾個月了。我認為,關于權益證明的其他論點都與優化經濟激勵機制以及規范51%攻擊策略相關。
9.存儲量證明
解決該問題的第三種方法是使用計算能力或貨幣以外的稀缺計算資源。在這方面,已提出的兩個主要替代方案是存儲和帶寬。理論上,沒有辦法提供給定或使用帶寬的事后加密證明,因此,準確來說,帶寬證明應該屬于社交證明的一個子集,我會在后面進行討論,而存儲量證明是當然可以通過計算完成。存儲量證明的一個優點是它完全可以抵抗ASIC的攻擊。硬盤驅動器中的存儲類型已經接近最佳。
現狀:盡管還有很多工作要做以及需要實際環境檢驗,理論上已經有了很多進展。
有很多區塊鏈打算使用存儲量證明協議,包括Chia以及Filecoin。也就是說,這些算法尚未經過大量測試。我自己的主要關注點是集中化:這些算法實際上是由使用備用存儲容量的較小用戶主導,還是由大型采礦場主導?
經濟學
10.穩定幣
比特幣的主要問題之一是價格波動問題。。.問題:構建價格穩定的加密資產。
現狀:有一些進展。
MakerDAO現在已經上線兩年了,價值穩定。它的基本抵押資產(ETH)的價值下跌了93%,幸免于難,現在發行的DAI超過1億美元。它已經成為以太坊生態系統的支柱,許多以太坊項目已經或正在與之集成。其他合成代幣項目,例如UMA也在迅速獲得發展。
盡管MakerDAO在2019年活下來(2019年的經濟不景氣),不過2019年絕對不是經濟最不景氣的一年。過去,比特幣在兩天內下跌了75%;有可能,以太或任何其他抵押資產可能也會發生同樣的情況。對區塊鏈底層系統進行惡意攻擊是現存的一個更大的風險,價格下跌會加劇這種風險。另一個主要的挑戰(也被認為是最大的挑戰)就是類似于MakerDAO系統的穩定性,這取決于底層預言機算法。確實存在針對預言機系統的不同嘗試(參閱#16),不過是否能夠成熟巨大的經濟壓力,尚無定論。到目前為止,由MakerDAO控制的抵押品已經低于MKR代幣的價值;如果這種關系發生逆轉,那么MKR持有者可能有集體動機試圖“掠奪” MakerDAO系統。有多種方法可以防止此類攻擊,但是尚未在現實環境中進行過測試。
11.去中心化的公共物品激勵
通常“公共物品”問題是經濟系統中的常見問題。例如,假設有一個科學研究項目將花費100萬美元來完成,并且眾所周知,如果這項研究完成,那么所產生的研究將為100萬人節省5美元。總之,社會收益是明確的……[但是]從對每個人的貢獻來看,這是沒有意義的。。.到目前為止,大多數公共產品問題都涉及集中化附加假設和要求:存在一個完全可信賴的預言機,用于確定某個公共物品任務是否已完成(實際上這是錯誤的,但這是另一個問題的領域)。
現狀:有一些進展。
通常,為公共物品提供資金的問題可以拆分成兩個問題:資金問題(從哪里獲得公共物品的資金)和偏好匯總問題(如何確定什么是真正的公共物品)。假設后者已解決,則此問題專門針對前者(請參閱有關此問題的工作,請參見下面的“去中心化貢獻指標”部分)
總的來說,這里沒有重大的新突破。解決方案有兩大類。首先,我們可以嘗試引起個人的貢獻,從而為人們提供社會獎勵。其次,我們可以從具有網絡效應的應用程序中收集資金。在區塊鏈領域內,有幾種選擇可以做到這一點:
· 發行貨幣
· 在協議級別收取一部分交易費用(例如,通過EIP 1559)
· 從某些2層應用中收取一部分交易費用(Uniswap或某些擴展解決方案,甚至在以太坊2.0的執行環境中聲明租金)
· 收取其他種類的小費。
· 在區塊鏈領域之外,這只是一個古老的問題:如果您是政府,則如何收稅;如果您是企業或其他組織,則如何收費。
12.信譽系統
問題:設計一個正式的信譽系統,包括信譽值req(A,B) --》 V,其中V是以A為視角B的信譽值,一種確定一方可以被另一方信任的概率的機制。以及提供特定公開或最終互動記錄的信譽更新機制。
現狀:進展緩慢。
自2014年以來,在信譽系統方面實際上并沒有開展太多工作。也許最好的辦法是使用token管理的注冊表創建可信任的實體/對象的管理列表;Kleros ERC20 TCR就是一個例子,甚至Uniswap都有一個替代接口使用它作為后端來獲取列表。尚未真正嘗試過主觀多樣性的信譽系統,這可能是因為沒有足夠的關于人們彼此之間聯系的“社會圖”信息以某種形式存儲在區塊鏈上。如果此類信息由于其他原因開始存在,那么主觀信譽系統可能會變得更加流行。
13.優秀證明
一種很有趣且基本未被研究的解決方案(用于解決token分配問題)就是做一些對社會有用的任務,但需要原始的人類驅動的創造力和才能。例如,假如有人想出一個“證明”貨幣來獎勵那些提出特定數學理論證明的玩家。
現狀:沒有進展,問題基本被遺忘了。
token分配的主要替代方案就是空投;token的分配數量通常與現有的其他token持有量比例差不多,或者基于其他指標分配。還沒有相關工作來直接驗證人類的創造力,并且隨著AI的最新進展,創建僅人類可以執行但計算機可以驗證的任務的問題可能非常困難。
14.抗女巫系統
與信譽系統問題相關的另一個問題是創建“唯一的身份系統”,該系統可以生成令牌來證明一個身份是否屬于某個女巫攻擊。。.但是,我們希望有一個比“一美元一票”更好,更平等的制度。可以說,一人一票將是理想的選擇。
現狀:有一些進展。
已經進行了許多嘗試來解決身份的問題。想到的嘗試包括(不完整的列表!):
HumanityDAO: https://www.humanitydao.org/
Pseudonym parties: https://bford.info/pub/net/sybil.pdf
Pseudonym parties: https://bford.info/pub/net/sybil.pdf
BrightID: https://www.brightid.org/
隨著對二次投票和二次資助等技術的興趣日益濃厚,對某種基于人的抗女巫系統的需求也在不斷增長。希望這些技術的不斷發展和新技術可以滿足它的需求。
15.去中心化的貢獻指標
遺憾的是,激勵公共產品的生產并不是中心化要解決的唯一問題。另一個問題是,首先要確定哪些公共物品值得生產,其次,具體需要多大努力完成公共物品的生產。
現狀:有一些進展,主要集中在某些方面。
關于確定公共物品價值的最新工作并沒有打算將確定任務和確定完成質量分開。原因是實際上很難將兩者分開。特定團隊所做的工作往往是不可替代并且是主觀的,因此最合理的方法是將任務和質量的相關性視為一個整體,并使用相同的技術對其進行評估。
幸運的是,在這方面已經取得了很大的進步,尤其是在發行二次融資時。二次融資允許個人向該項目捐款,然后基于捐款的數量以及金額來計算每個人捐款多少(假設他們捐款時考慮到了彼此的利益,沒有成為公地悲劇的犧牲品。)對于任何給定項目,將要捐贈的金額與實際捐贈的金額之間的差額會從某個中央資金池中獲得補貼(關于中央資金池的來源,請參閱第11條)。請注意,此機制側重于滿足某些社區的價值,而不是滿足某些給定的目標。由于價值觀問題的復雜性,這種方法可能對新鮮問題更有價值。
在最近的gitcoin二次融資回合中,甚至已經在現實生活中嘗試過二次融資,并取得了相當大的成功。在改善二次融資和類似機制方面也取得了一些進展;也有關于規范和實現的工作。抗賄賂投票技術,防止用戶向其投票的第三方證明;這樣可以防止各種合謀和賄賂攻擊。
16.去中心化的成功指標
問題:想出并實施一種去中心化的方法來測量現實世界中的數字變量。。.該系統應該能夠測量人類當前可以大致達成的任何共識(例如資產價格,溫度,全球二氧化碳濃度)。
現狀:有一些進展。
現在通常將其稱為“ 預言機問題”。已知最大的正在運行的去中心化的預言機實例就是Augur,已經處理了數百萬美元下注的結果。token管理的注冊表,例如Kleros TCR的token是另一個例子。然而,由于存在較大的爭議或者是嘗試51%的攻擊,這些系統仍然還未經過實際環境測試。還有一些以對等預測文獻的形式研究了鏈外發生的預言機問題。有關此領域的最新進展,請參見此處(https://arxiv.org/abs/1911.00272)。
另一個迫在眉睫的挑戰是,人們希望依靠這些系統來指導資產數量大于系統本機代幣經濟價值的資產轉移。在這種情況下,代幣持有者理論上有動機合謀提供錯誤答案以竊取資金。在這種情況下,系統將分叉,原始系統token可能會變得毫無價值,不過原始系統token持有者仍然會從他們不正確的資產轉移行為中獲得回報。穩定幣是一個特別糟糕的例子。解決此問題的一種方法是,系統假設確實存在利他的誠實數據提供者,并創建一種機制來識別這些誠實數據提供者,并且僅允許它們緩慢運轉,以便惡意數據提供者在依賴預言機的用戶系統中獲得投票時,第一時間讓它們出局。無論如何,預言機的進一步發展是非常重要的問題。
新問題
如果讓我再次列出難題清單的話,上面的一些問題仍然會被列入清單,不過重點會有重大改變,同時還會列出一些新的關鍵問題。以下是一些精選:
· 加密混淆:與#4相同;
· 正在進行的有關后量子密碼的工作:即基于hash,又基于后量子安全的“結構化”數學對象,例如,橢圓曲線等值線,點陣。。.
· 反合謀基礎設施正在進行的工作和改善工作: https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413,包括增加一些隱私機制以防操作員作弊,做到最大程度的多方計算等等。
· 預言機:與#16相同,但不再強調“成功指標”,而側重于一般的“獲取實際數據”問題。
· 唯一身份識別(或者更實際地說,是半身份識別):與#15描述的問題是相同的,不過并不強調“絕對”地解決方案:獲得兩個身份應該比獲得一個身份要難很多,即使能做到,獲得多個身份不僅不可能,而且可能存在風險。
· 同態加密和多方計算:實用性仍需要不斷改進。
· 去中心化的治理機制:DAO很酷,但是當前的DAO仍然很原始。我們可以做得更好。
· 全面規范對PoS 51%攻擊的響應:正在進行的工作和完善工作:https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363
· 更多的公共物品資金來源:理想的做法是對具有網絡效應的系統中的擁塞資源收費(例如交易費),但在去中心化系統中這樣做需要公眾合法性;因此,這是一個社會問題,也是尋找可能來源的技術問題。
· 信譽系統:與#12是一樣的;
總的來說,底層問題正在慢慢減少,而應用層問題正在逐漸增加。
百度超級鏈是100%國產自研的區塊鏈系統,性能卓越、安全可控、行業領先,在存證、司法、版權、醫療、數據協同、溯源、智慧城市等領域推出解決方案并應用,已經與北京互聯網法院、重慶市、百信銀行等政府、大型企業達成深度合作。
責任編輯:ct
評論
查看更多