前言:從一鍋雞湯說起
當讀者剛開始接觸零知識證明的概念時,面臨第一關就是如何搞懂突如其來的大量名詞,比如離散對數問題、雙線性對還有Groth16、PLONK、RedShift等。不妨我們借用“烹飪”這個生活場景來類比其中的層次關系。
如果把“密碼學”比做“烹飪”,那么上個系列中對雙線性對的學習就類似于學習燉湯前先簡單了解的高壓鍋的工作原理,而zkSNARK則相當于在說明如何用高壓鍋燉出美味雞湯。
由此可見,雙線性對是類似基礎工具的角色:就像高壓鍋既可以燉雞湯也可以燉排骨湯,雙線性對既可以用于零知識證明也可以用于構造簽名等密碼學算法。而Groth16、PLONK、RedShift等,它們同屬于zkSNARK,屬于同一層次,如果沿用上述類比,那大概就是對應用高壓鍋做湯的風味選擇了。Groth16算法是JensGroth提出的一種zkSNARK算法,相關論文不僅對已有算法進行改進,而且討論了基于配對的非交互式零知識論證的證明大小問題。Groth16因其精簡的證明大小和高效的驗證效率,在ZCash等項目中多有應用,是最經典的零知識證明算法之一。
火幣推出《一分鐘讀懂DeFi》系列科普視頻:據官方消息,8月24日,火幣推出《一分鐘讀懂DeFi》系列科普視頻,并與微博財經合作冠名播出,布道DeFi認知,助力行業發展《一分鐘讀懂DeFi》是由火幣成長學院打造的業內首個系統全面講解DeFi的系列科普動畫,繼推出《區塊鏈100問》后的再續佳作。《一分鐘讀懂DeFi》系列動畫對DeFi的發展進行系統梳理,適合想要由淺入深、全面系統了解區塊鏈DeFi的人們輕松了解DeFi。目前視頻已由火幣網官方微博發布。[2020/8/24]
上一個系列中我們完整介紹了零知識證明中用到的橢圓曲線和雙線性配對相關的基礎知識。本系列通過動手算的方式,以Groth16算法為例,循序漸進地介紹zkSNARK的基本原理。
本篇是“動手算Groth16”的上篇,主要介紹如何從程序轉化為電路和描述算數電路的一種約束系統R1CS。下篇會介紹如何從R1CS轉化為多項式相關的約束問題,并且詳細給出完整的Groth16從頭到尾的手算步驟。
IMF今日發布的加密貨幣科普視頻實為兩年前舊聞,且存在諸多疏漏:國際貨幣基金組織IMF今日在推特上發布了一條關于加密貨幣的科普視頻,這段時長兩分鐘的視頻最初發布于2018年6月。該視頻稱加密貨幣是“貨幣進化的下一步”,但沒有特別提到DLT、區塊鏈,甚至是代幣名稱等術語。BTC、XRP和ETH只出現在說明加密交易的圖形中。盡管這段視頻到目前為止已經獲得了超過13.7萬的點擊量和2900個贊,但來自加密社區的許多反應都是批評的,他們指出了信息中的漏洞和似乎具有誤導性的措辭。
Reddit用戶nanooverbtc稱:“他們犯了很多錯誤,比如把私鑰稱為密碼。”該視頻也沒有討論挖礦或加密貨幣供應。Kraken策略師Pierre Rochard等知名人士表示:“可證明的稀缺性是比特幣有趣的原因,你忘了提這一點。”(Cointelegraph)[2020/8/24]
程序與電路
初始接觸通用零知識證明算法時,讀者可能最容易感到疑惑的地方就是各種資料中頻繁提到的“電路”一詞。這里的“電路”是指什么?它又如何等價地對同一個問題進行描述呢?回答這些問題最簡單的方式就是使用具體的一個算法例子進行說明。比如我們有下面一段程序代碼,如何將其轉化為等價的電路呢?
聲音 | 上海股交所總經理:區塊鏈想要大規模發展要做好社會科普工作:金色財經報道,上海股交所總經理張云峰表示,區塊鏈當前還處于一個“概念”的階段,距離成熟應用,影響到百姓的日常生活還有很長的路要走。對于“區塊鏈”和其會帶來的社會和經濟效果,沈陽應當持審慎的態度。區塊鏈想要大規模發展,一方面要做好這項復雜技術的社會科普工作,加快社會大眾對區塊鏈的了解。另一方面,要充分發揮市場的作用,讓企業用實實在在的技術創新,賦能實體經濟的發展。[2019/11/17]
▲需要被轉化為電路的代碼
這里需要注意到程序中值被存儲在變量中,而電路中的值是用電路門之間的連線表示的。這其中有個關鍵的不同是:變量的值是會隨著時間變化的,而電路中連線的值是固定不能改變的。因此首先我們通過引入一些中間量的方式表示隨循環而不斷變化的各階段的變量值,中間量命名為tmp1,tmp2...這樣的形式:
動態 | 區塊鏈技術入選科普雜志《科學美國人》2019十大突破性技術榜單:據新浪網今日新聞報道,美國科普雜志《科學美國人》公布 2019 十大突破性技術榜單。區塊鏈技術因在保障食品安全中的作用而上榜。 入選榜單具體原因:區塊鏈技術的發展應用將顯著改善食品污染源數據追蹤的困境。利用區塊鏈云端系統,食品制造商可以依次在計算機儲存各類過程的信息。[2019/9/29]
▲引入輔助的中間量
最后我們可以轉化為只有加法門和乘法門的算數電路:
▲電路示意圖
動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]
這里除去輸入和輸出外,其他的圓圈代表了電路中的門:可以是乘法門或者加法門。而門和門之間的連線對應了程序中的中間變量在某個時刻的值。
如果站在更高的角度思考,其實可以發現有很多結構都能實現“運算”功能,比如說神經元組成的人腦,比如馮·諾伊曼結構的計算機,甚至更早的機械計算器和當今的人工神經網絡。算數電路也是這樣的一種能夠完成一定運算的結構,而且基于這種結構我們能夠完成對計算輸入和過程的“零知識證明”。因此通用零知識證明算法普遍引入了“電路”這個運算結構并且會研究,如何更好的將高級語言描述的問題轉化為等價的算法電路。
上面例子中約束較多,會給后續的“動手算”產生較多的計算量壓力,因此在下文中我們以一個新的例子重新展示這個轉化的過程。本系列后續文章都會以這個新的例子為主線進行敘述,從而真實展示證明和驗證的具體計算過程。新例子的程序代碼如下:
這里涉及到4個連線以及兩個等式關系。這兩個等式關系用更規范的方式重寫一下可以幫助讀者看地更清晰:
觀察這兩個式子的特點,可以發現兩個等式關系其實都可以寫作A×B=C的形式,其中A、B和C都是變量的“加權組合”。這并非巧合,而是我們有意為之。通過這種形式我們避免了對加法門的約束產生額外開銷,而是在對乘法門進行約束的同時零開銷的對加法關系進行約束,這是groth16的特點之一。在Groth16算法中,加法門和乘法門的地位并不是等價的,我們更關心乘法門。
下面對a,b,c,d四個變量賦予編號,以便下一步的處理,按照groth16的習慣我們將輸出排列在輸入之前:
可以看到除了連線a、b、c和d,還有一個特殊的連線“1”,“1”其實可以看作是一個特殊的公共輸入,他的存在讓我們在算法中能更容易地處理常量。“1”的值總是1。
從電路到R1CS
本部分之前先回顧一下向量的內積概念,向量的內積是從兩個同維向量得到一個標量的運算,其幾何意義對應了“投影”這個概念。比方說兩個二維向量的乘法:
·=2×4+3×1=11
回過頭看剛才的結果,因為A×B=C這個形式的存在,我們其實能夠進一步的對這些等式關系進行抽象。抽象的目的是為了方便編程處理和下一步的討論。以式子(2)為例,我們其實可以認為他是如下的形式:
根據上面介紹的向量內積,可以發現這里的A,B,C其實都是向量內積的形式:
這里的s其實就是全部的連線的值,如果證明者P是真的計算過這個電路的,則P能夠獲知s的值,否則P無法得知s的值。我們將這個s稱為witness。因此通過上面的向量a,b,c我們就能夠對s進行一定的約束,即s應該滿足:
這就構成了一個一階約束,這樣的一個約束對應了電路中的一個乘法門。如果我們將所有的約束聯立起來,就得到一個一階約束系統。通過R1CS我們可以更方便的形式化描述一個零知識證明問題,從而為我們后續解決該問題提供了條件。
下篇我們會介紹如何將R1CS描述轉換為多項式描述,并且通過完整的計算過程展示groth16算法的相關內容,敬請關注。
Tags:區塊鏈ROTGRODEFI區塊鏈幣幣交易Hippo Protocolsquidgrow幣能買嗎defi去中心化交易所下載
要點: 這次融資消息是在Dune在A輪融資中籌集了800萬美元四個月之后發布的。整個加密行業的估值都在飆升——數據初創公司正在收獲回報.
1900/1/1 0:00:00Web3.0被視作是下一代互聯網,將會帶來重大創新并重構當前的商業模式。在過去一年中,Web3.0的概念在全球以“病式”的速度流行起來.
1900/1/1 0:00:00據福布斯12月20日消息,游戲巨頭育碧此前推出的新平臺UbisoftQuartz以及面向《幽靈行動:斷點》的NFT似乎并不受大眾認可.
1900/1/1 0:00:00據CoinDesk消息,12月8日,谷歌提起訴訟,旨在關閉一個復雜的加密劫持僵尸網絡,該網絡利用比特幣區塊鏈來躲避網絡安全官員.
1900/1/1 0:00:00DeFi之道訊,12月18日消息,NFT平臺Ezek宣布將于2022年1月1日與周杰倫潮流品牌PHANTACi合作發布PhantaBear系列NFT,該系列NFT共將發行10,000枚.
1900/1/1 0:00:00據Forkast11月25日消息,韓國國會策略及金融委員會下屬的稅務小組委員會討論了所得稅法修正案,包括推遲虛擬資產所得稅,但未能達成協議,因為出席會議的政府官員仍持反對意見.
1900/1/1 0:00:00