序言
當前的比特幣網絡或者以太坊網絡,全網都會有不少等待區塊打包確定的交易。這種交易等待確認機制,極大地打擊用戶使用的體驗,交易擁堵是整個行業現在亟待解決的問題。另外,由于區塊鏈自身的公開透明,一旦地址被標記,我們的所有交易行為就毫無隱私可言。隨著DeFi的發展,在這加密貨幣的黑暗森林里,隱私保護的需求從來沒有比現在更加迫切。在DeFi積木瀕臨倒塌的時候,鏈上清晰可見的清算線和定點爆倉成了價格止不住下跌的重要推手。對于網絡并發容量和隱私兩大難題,極客和開發者們進行了數年的探索。零知識證明技術,憑借其自身獨特的性質,如同透明、去中心化和不可篡改對于區塊鏈技術那般重要,自成體系地帶來了擴容和隱私問題的解決方案。本文將從零知識證明的定義和實現方案出發,以市場上的眾多熱門項目為例,探討它在擴容和隱私保護兩大領域的探索,從投資機構的角度,去思考這其中的投資機會。目錄:零知識證明的定義零知識證明的實現零知識證明的虛擬機零知識證明和擴容零知識證明和隱私零知識證明的投資方向零知識證明的定義
人們在生活交往過程中會傾向于相信自己的所見所聞,但是,對于有價值的信息,或者說是知識,它的擁有者都會想在不泄露核心機密的同時,讓其他人相信自己對知識是具有所有權的。為了解決這樣的需求,零知識證明應運而生。換用更加學術化的表達,零知識證明是兩方針對"知識為真"進行的證明和驗證,其中知識的所有方也即證明方,另一方則對應是驗證方。我們用一張草圖,直觀地解釋零知識證明能夠實現什么。
Figure1:ProofwithoutZKPandwithZKP從這張圖中,我們可以提煉出零知識證明的三個性質:完備性:誠實的證明方,對"知識為真"這一論斷進行證明,肯定可以讓驗證方信服。合理性:證明方無法將”知識為假“證明成“知識為真”。零知識性:整個證明,驗證方除了”知識為真“這一論斷,不會獲得其他與知識相關的機密。這三個性質用大白話講,那就是:真的假不了;假的真不了;未知是真的,未知依然未知。第三個性質換一種更加通俗的說法,我說了“什么是真的”,你驗證了“什么是真的“,但是你不知道什么是什么。
跨鏈基礎設施Celer Network基于StarkEx推出新版本Layer2.finance:4月28日消息,跨鏈基礎設施 Celer Network 基于 StarkEx 推出新版本 Layer2.finance,該版本的 Layer2.finance 與已 Compound 集成,未來將擴展到其他協議和區塊鏈。Layer2.finance 旨在通過 Layer2 解決方案將低參與 Layer1 上 DeFi 的成本。[2022/4/28 2:35:49]
Figure2:零知識證明三個性質和兩個特性前面兩個性質相對第三個性質容易理解和注意,而第三個性質非常容易混淆和忽略。當證明和驗證雙方都知道知識的內容時候,是可以很容易地驗證“知識為真”的,但是,卻再也無法滿足證明要求的零知識性。反之,如果滿足了零知識性,我們又很難驗證。試想一想,我們怎么判斷證明和驗證的過程中,沒有泄露到任何知識內容呢?如果沒有泄露到知識內容,那么驗證者會相信知識是真的呢?畢竟,他連知識是什么都不知道,甚至于,可能連知識是否存在都無意識無感知!但事實是,知識必然要存在,反則,證明的“知識為真”根本無從發起!我們用更具體的例子講講,例如,我們都相信中本聰肯定是存在世界的,不然,比特幣就無從出現了,但是,這么多年以后,我們并不知道中本聰是否存活在世界。假如中本聰依然存活,并且,他想告訴世人他還活著。那么,中本聰可以使用零知識證明向世人傳遞”我依然活著”,此時世界按照零知識證明驗證得知這個信息,但是并不會知道中本聰是否有使用到私鑰,是否登陸當年BitcoinTalk的賬號自證等。另一種場景是,中本聰在發明比特幣的時候,創世地址是擁有第一筆比特幣,當這個地址使用對應私鑰進行活動的時候,同樣可以傳遞中本聰依然活著的信息,但是這卻不再滿足了零知識性,因為,世人都知道中本聰依然活著,是因為他的私鑰發生活動。簡單地說,零知識證明不僅可以保證知識的隱私性,也可以保證知識的有效性。這兩點直接決定了零知識證明在加密世界里的兩大類應用場景:隱私和擴容。當然,隱私場景會有更多細分應用,例如隱私支付、匿名投票甚至于隱私公鏈等,也可以通用地理解為資產支付型隱私和邏輯通用型隱私。至于擴容場景,使用的是零知識證明的完備性和合理性,以及其他技術手段共同實現的。零知識證明的實現
Orbiter Finance現已支持Goerli上的StarkNet:3月1日消息,去中心化跨 rollup 橋 Orbiter Finance 宣布已支持 Goerli 上的 StarkNet,用戶現可在測試網 Goerli 上使用 Orbiter Finance 橋接 StarkNet。[2022/3/1 13:29:52]
零知識證明是使用很多數學和密碼學知識共同協作配合發明和實現的。在整個證明的實現上面,按照交互與否,可以分為交互式證明和非交互式證明。交互式證明是證明過程需要證明方和驗證方按照某種順序和規則交替進行,然后通過隨機概率完成證明。非交互式證明是證明方按照證明規則或證明過程,完整的一次性自行計算和提交所有證明資料,然后,驗證方可以直接用這些證明資料進行驗證。換一種極端的理解,非交互式證明是將交互式證明的多個步驟壓縮到一步交互即可。另外,非交互證明可以看作將整個實現拆分成為證明過程和驗證過程。下面,我們用兩個不同的場景模擬交互式證明和非交互式證明的差異。簡化場景一,假設中本聰的創世私鑰重現人間,現在,要證明這個私鑰依然活動。交互式證明的流程:1,驗證方喊話創世私鑰證明方,你在某個區塊高度之后寫下一句話:HelloWorld。2,創世私鑰證明方按照要求,等待某個區塊高度之后,向全網留言:HelloWorld。3,驗證方在網絡里面驗證創世私鑰是否按照要求在某個區塊高度之后留言:HelloWorld。4,重復1、2、3這三個步驟,當次數達到一定程度,從概率學角度可以判定,這個私鑰基本是活動的。非交互式證明的流程:1,某個設備/模擬器/圖靈機生成一個共享的、隨機的字符串xyz,然后將這個字符串公開,并且要求創世私鑰證明方以“xyz,HelloWorld”的形式,向全網留言。2,創世私鑰證明方,按照設備/模擬器/圖靈機的規則,使用這個字符串xyz,加上自己的HelloWorld,向全網留言:“xyz,HelloWorld”。3,驗證方拿著這個字符串xyz,看到創世私鑰的留言之后,直接判定這個私鑰是活動的。簡化場景二,假設張三懂高斯算法,李四不懂。交互式證明的流程:1,李四喊話張三,30秒內計算1+2+3+...+8887+8888。2,張三拿著高斯算法,30秒算出結果,并告訴李四。3,李四用自己最樸素的加法檢驗結果是否正確。4,重復1、2、3這三個步驟,當次數達到一定程度,從概率學角度可以判定,張三懂高斯算法。非交互式證明的流程:1,某個設備/模擬器/圖靈機生成一個共享的隨機的整數x。2,張三拿著高斯算法,直接計算1+2+3+...+(x-1)+x的結果。3,李四用自己最樸素的加法檢驗結果是否正確,若正確,張三懂高斯算法。通過上面的例子,我們可以發現,非交互式證明比交互式證明有明顯的優勢:1,不依賴于特定的交互驗證方,是1個證明方對N個驗證方的極佳方案;2,不局限于交互時刻,可以隨時進行。但是,我們也注意到非交互式證明里面多了模擬器/圖靈機的存在!這里,就引出了零知識證明的核心概念:模擬器/圖靈機。模擬器/圖靈機可以隱藏知識,但是依然保證“知識是真”可以順利進行證明和驗證。為了實現非交互式證明的模擬器/圖靈機核心功能,現在的技術方案大概有:隨機預言和公共參考串,而其中公共參考串是廣泛使用的方案。我們認為,隨機預言和公共參考串沒有太大本質的差別。公共參考串CRS必須由一個受信任的第三方進行生成,然后共享給證明方和驗證方。這里,CRS的生成必須保證隨機可信,因此,產生CRS的環節也稱為可信設置,TrustedSetup。我們可以用神來比喻模擬器/圖靈機,神是公立的,不僅可以幫助證明者隱藏知識,協助證明者完成證明,也可以辨識證明者是否偽造知識,協助驗證者順利驗證。神是完美無缺的,但終歸需要人去創造神,創造神的過程可以對應為:可信設置。另外,神是存在適用性的,也不一定是通用的,就像耶穌是西方的神,如來是東方的神。再往深的想,神也有可能不靠譜。一切的證明始終得回到具體步驟。正如我們在解答數學證明題一樣,也有答題步驟。對于零知識證明來說,這個具體步驟有專業的術語:電路。至于QAP/QSP,布爾電路和算數電路,我們都簡單粗暴地將它歸為非交互式證明過程中的具體步驟即可。世間數學證明題千千萬,解題證明的時候,都需要編寫對應的解題步驟。同理,對于不同知識下面的零知識證明,電路也是需要專門編寫的。當然,也有某類知識的證明可以通過共用電路框架簡化編寫的過程。對于不同的數學證明題,我們要寫出單獨的答題步驟,而某一類數學證明題,我們可以寫出通用的答題步驟,甚至,有一類題目,我們可以直接引用另一類題目已經寫好的答題步驟/結論。。順著前面的數學證明題講講電路的位置
幣安智能鏈DeFi項目AutoShark Finance被黑分析:據慢霧區消息,幣安智能鏈(BSC)DeFi項目AutoSharkFinance被黑,導致代幣價格閃崩。慢霧安全團隊在第一時間跟進分析,并將結果以簡訊的形式分享給大家,供大家參考。由于AutoShark策略池的機制,攻擊者需要事先存入一定數量的LP代幣到策略池中,為后續攻擊做準備,所以整個攻擊其實分成了2步,這里主要分析的是第2筆的攻擊交易。攻擊步驟如下:
1.攻擊者從Pancake的WBNB/BUSD交易對中借出大量WBNB;
2.將第1步借出的全部WBNB中的一半通過Panther的SHARK/WBNB交易對兌換出大量的SHARK,同時池中WBNB的數量增多;
3.將第1步和第2步的WBNB和SHARK打入到SharkMinter中,為后續攻擊做準備;
4.調用AutoShark項目中的WBNB/SHARK策略池中的getReward函數,該函數會根據用戶獲利的資金從中抽出一部分手續費,作為貢獻值給用戶獎勵SHARK代幣,這部分操作在SharkMinter合約中進行操作;
5.SharkMinter合約在收到用戶收益的LP手續費之后,會將LP重新拆成對應的WBNB和SHARK,重新加入到Panther的WBNB/SHARK交易池中;
6.由于第3步攻擊者已經事先將對應的代幣打入到SharkMinter合約中,SharkMinter合約在移除流動性后再添加流動性的時候,使用的是SharkMinter合約本身的WBNB和SHARK余額進行添加,這部分余額包含攻擊者在第3步打入SharkMinter的余額,導致最后合約獲取的添加流動性的余額是錯誤的,也就是說SharkMinter合約誤以為攻擊者打入了巨量的手續費到合約中;
7.SharkMinter合約在獲取到手續費的數量后,會通過tvlInWBNB函數計算這部分手續費的價值,然后根據手續費的價值鑄幣SHARK代幣給用戶。但是在計算LP價值的時候,使用的是PantherWBNB/SHARK池的WBNB實時數量除以LP總量來計算LP能兌換多少WBNB。但是由于在第2步中,Panther池中WBNB的數量已經非常多,導致計算出來的LP的價值非常高;
8.在LP價值錯誤和手續費獲取數量錯誤的情況下,SharkMinter合約最后在計算攻擊者的貢獻的時候計算出了一個非常大的值,導致SharkMinter合約給攻擊者鑄出了大量的SHARK代幣;
9.攻擊者后續通過賣出SHARK代幣來換出WBNB,償還閃電貸。然后獲利離開。[2021/5/25 22:41:58]
The Crypto?Lark主持人披露波卡DeFi生態系統最有前途的5個項目:The Crypto?Lark主持人、加密投資者Lark Davis透露其認為波卡DeFi生態系統最有前途的5個項目,由于其高利潤潛力,可能會引起炒作。
第一個是Acala,該平臺最近部署測試網,獲得大量參與。Acala是波卡生態系統的跨鏈、多抵押和去中心化穩定幣。
第二是Ocean Protocol(OCEAN)。信息不僅用于DeFi,Ocean更進一步。這可以給各個行業帶來很多價值。特別是它可以用于AI等信息密集型行業。信息可能是新的石油。
第三是去中心化自治組織Mantra DAO(OM)。Mantra建立的伙伴關系加強了其生態系統,包括Band Protocol、Kava、Terra和 Kira Network。該平臺還提供88%的質押獎勵。
第四是Rio DeFi(RFUEL)。OKEx最近上線RFUEL。Rio將允許用戶使用法幣網關和Rio錢包輕松進出DeFi。
第五是去中心化跨鏈交易所Polkastarter。
他最大的投資投向了波卡原生代幣DOT,并預計DOT未來幾年可能漲至100美元,市值將達到1000億美元。(Crypto News Flash)[2020/10/4]
Figure3:電路的類比至于其他的概念或者術語,例如一階約束系統R1CS、NP問題、多項式、多項式的知識、因式分解、模糊計算、信息、知識、電路可滿足性、完全安全、語義安全、不可區分性、映射、同態、有限域、循環群、Fiat-Shamir變換、ECDSA簽名......由于涉及到太過概念和數學計算,除非是數學和密碼學專家,不建議花費過多腦力和精力在這方面。我們只需要知道的關鍵信息是:不同的零知識證明實現方案在于可信設置的引入與否、可信設置的適用性以及電路的編寫難易。對于不同的零知識證明實現方案而言,我們可以用證明方和驗證方的時間開銷和空間開銷,以及安全性,這五個維度是判定實現方案的優劣。證明方的時間開銷:也即計算時間,決定證明的快慢;驗證方的時間開銷:也即驗證時間;證明方和驗證方的空間開銷:存在證明大小的概念,決定存儲的空間使用要求,也是常說的簡潔性所指;安全性:由于部分的協議需要引入可信設置,對應的實現方案在安全性方面會依賴可新設置。另外,可信設置也存在適用性的差異,也就是“永久型”和“一次型”之分。實現方案的不同,最終分成了零知識證明的兩大派系協議:zk-SNARK零知識簡潔非交互式知識論證和zk-STARK零知識可擴展透明知識論證。zk-SNARK:Zero-KnowledgeSuccintNon-interactiveArgumentsofKnowledge。非交互式證明、需要可信設置,不同的實現方案在可信設置方面要求和效果也不一樣。從ZCash開始采用發展多年,并且有很多細分的優化實現方案,知名的項目有:ZCash、zkSync、Aztec等,因為時間較長,又誕生出大量的衍生協議:Schnorr協議,Pinocchio協議、Marlin協議,Sonic協議,Libra協議,PLONK協議、Spartan協議、BullteProof協議等。zk-STARK:Zero-KnowledgeScalableTransparentArgumentofKnowledge。非交互式證明、不需要可信設置,抗量子計算、證明大小開銷很大。Starkware團隊發明和提出,有一些專用型的項目在應用,dYdX、Immutable和Deversifi。參考區塊鏈不可能三角的說法,零知識證明的實現方案可以說是不完美三角,所有的實現方案雖然可以同時實現完備性、合理性和零知識性,但因為應用場景的要求,都是有某方面的取舍。或者更明顯的情況是,側重完備性和合理性時,零知識性的實現會弱化,甚至可能忽略。另外,零知識證明本身是沒有去中心化的屬性,如果這方面有要求,需要結合去中心化的設計。零知識證明的虛擬機
動態 | LEO已被納入CoinMarketCap,市值排名第13位:加密貨幣交易所Bitfinex上月私募發行的代幣UNUS SED LEO (LEO)已被納入知名加密貨幣數據網站CoinMarketCap,投資者可以在該網站查看LEO的實時價格、漲幅波動和市值。LEO目前在CoinMarketCap上市值排名第13位,僅次于TRX。[2019/6/20]
在探討實現方案的不同后,我們接下來探討方案落地的關鍵。現在互聯網的應用和產品都是采用高級編程語言實現的程序。虛擬機/解釋器是程序執行的黑盒子,可以將程序轉換成為機器可以識別和理解的語言,然后代替機器運行程序。如果沒有零知識證明的虛擬機,我們在使用零知識證明技術編寫程序的時候,需要專門為程序編寫對應的實現電路。這類電路的編寫、測試和生產使用是非常困難和低效的。為此,要讓零知識技術的使用更加廣泛和高效,可以為程序生成證明的提交和驗證的零知識證明版虛擬機就是必然需要的。至于zkVM采納的高級編程語言到底是C++、Java還是專門設計的電路編程高級語言,這些取決于zkVM的設計和能力。需要強調的是,zkVM是沒有硬性使用區塊鏈的要求的。
Figure4:PolygonMidenDeepDivezkVM對于zkVM而言,可以通用地支持程序是非常重要的,如果只能完成某類程序的虛擬機化,那這種zkVM的通用性將大打折扣。除了通用性以外,簡潔性、遞歸可用性、可組合性和易用性都是其他需要考量的指標。這里主要舉例說明下遞歸可用性:問題:假設計算機只支持兩位數相加,不支持多位數相加和相乘,計算1+2+3+...+99+100?非遞歸版解決:1+2=3,3+3=6,6+4=10,...,4950+100=5050總共執行了99次相加。遞歸版解決:1+2+3+...+99+100計算1和的計算可以重新使用這種方法去解決,也就是(2+3+...+99+100)轉換為計算2和(3+...+99+100),如此循環以至符合兩位數相加的限制條件,即99+100=199,然后用199去結束遞歸,算出結果。遞歸可用性可以在解決問題的時候,直接重復使用解決問題的方案。這可以大大簡化實際問題的解決思路。前面我們提到zkVM的使用和區塊鏈沒有硬性關聯,所以,接下來,我們會嘗試探索zkVM和區塊鏈的結合。首先,讓我們回到以太坊,這臺創新性提出智能合約的世界計算機,或者更技術范地說,分布式的虛擬機。廣義的EVM,可以等同于以太坊,包含的模塊有可變的機器狀態、只讀的EVM代碼、存儲的賬戶數據。狹義的EVM,可以指代以太坊虛擬機的只讀EVM代碼和EVM操作碼。對于以太坊而言,全網在任何時刻都維護達成共識狀態的主鏈,這條主鏈由最長區塊進行決定。區塊里面的交易將會驅動以太坊的世界狀態發生變化。我們在抱怨網絡的交易吞吐量不夠以及隱私不足的時候,實際根源正是以太坊內部組件自身的瓶頸和缺陷。此刻,讓我們進行無比美好的憧憬,如果整個以太坊的所有模塊都可以進行零知識證明化,那么交易的執行計算不再需要由以太坊進行處理,以太坊單純只需要完成交易有效性的驗證即可,并且,以太坊內部賬號數據,可以根據需要選擇性地公開透明。這樣一來,以太坊的交易處理能力可以得到大大地釋放,鏈上數據的隱私能力也得以保證。配合當下零知識證明實現的多樣性,以太坊不用局限于某一類零知識證明的實現,可以兼容性地支持各個主流零知識證明的實現,保持自身的開放性和擴展性。理想是美好的,但是事實總是骨感,甚至是殘酷的。以太坊在創立時候,是沒有考慮引入零知識證明的,所以,如果以太坊直接零知識證明化,將帶來最大的問題是,以太坊協議的大部分組成將會導致大量的零知識證明計算,這在本質上面并沒有發揮零知識證明的優勢。當然,以太坊協議本身是可以隨著時間和技術的發展發生迭代更新的。如同PoW轉成PoS這種劃時代性的共識機制變化,以太坊協議的零知識證明化在未來是有可能通過以太坊升級達成的。
Figure5:ETHEREUMVIRTUALMACHINE(EVM)
Figure6:ETHEREUMVIRTUALMACHINE(EVM)2022年8月4日,以太坊創始人Vitalik發布文章:《ThedifferenttypesofZK-EVMs》。該篇文章與此前Scroll團隊、以太坊研究員JustinDrake提出的以太坊EVM分類有異曲同工之妙。我們可以從下面幾張圖更清晰地理解這些zkEVMs/zkVMs的設計和優缺點。
Figure7:ThedifferenttypesofZK-EVMs
Figure8
Figure9現在,讓我們簡單匯總整個zkVMs/zkEVMs技術的團隊或項目的進展。
Figure10zkVM和zkEVM的研究和實現,面臨的實現難題不盡相同,也沒有先后依賴順序,因此是可以同步并行推進。具體到設計挑戰和解決方案,可以參考各家項目的資料和文檔。不同項目的對于zkVM/zkEVM選擇肯定有自己的考量,目前看來,大部分都會傾向優先zkEVM道路,畢竟以太坊擴容的剛需場景一直存在。另外,以太坊本身終極ZK目標是,全部兼容。這么一想,基于zkEVM進行研發的項目,未來或許都會進化成多樣的以太坊輕節點客戶端。至于zkVM,我們只能說,區塊鏈必然是它行進的伙伴,但它遠方的夢想也不止于區塊鏈。參考資料:https://github.com/sec-bit/learning-zkp/blob/master/zkp-resource-list.md零知識證明學習資源匯總https://mp.weixin.qq.com/s/808jMXvIUqB973aVHrAzGQForesightVentures:解讀zk、zkVM、zkEVM及其未來https://www.odaily.news/post/5178462Scroll研究:zkEVM的設計挑戰和解決方案https://www.odaily.news/post/5177903LDCapital:一文縱覽ZK方案全明星項目https://mirror.xyz/cvalleylive.eth/Deag4YB_EYHaTDv0lc5iPhLpWxzMLG1tyC2GSTwJE4k萬字硬核解讀:ZK為什么重要?https://ethereum.org/en/developers/docs/evm/EthereumVirtualMachine
Layer2指基于底層區塊鏈的鏈下網絡、系統或技術,目的是為了擴展底層區塊鏈網絡。Layer2網絡可以提升任何底層區塊鏈的吞吐量以及其他性能.
1900/1/1 0:00:00Aug.2022,ThiagoDatasource:SynthetixDashboard最近的集成和即將發布的版本加強了Synthetix的地位.
1900/1/1 0:00:00自去年11月以來,所謂的“加密寒冬”已經讓數字貨幣市值蒸發了2萬億美元,許多投資者已經進入冬眠狀態。但香港AnimocaBrands創始人YatSiu的攻勢卻更加激烈.
1900/1/1 0:00:00很有意思的一件事:前幾年最紅的公司之一Shopify的CEO,在今年早期就加入了Coinbase的董事會,這段時間他個人也買了Coinbase的股票.
1900/1/1 0:00:00FTX創辦人SamBankman-Fried(SBF)上周作客NBA球星AndreIguodala主持的《PointForward》節目.
1900/1/1 0:00:00背景概述 2022年8月3日,Solana公鏈上發生大規模盜幣事件,大量用戶在不知情的情況下被轉移SOL和SPL代幣.
1900/1/1 0:00:00