前言:從一鍋雞湯說起
當讀者剛開始接觸零知識證明的概念時,面臨第一關就是如何搞懂突如其來的大量名詞,比如離散對數問題、雙線性對還有Groth16、PLONK、RedShift等。不妨我們借用“烹飪”這個生活場景來類比其中的層次關系。
如果把“密碼學”比做“烹飪”,那么上個系列中對雙線性對的學習就類似于學習燉湯前先簡單了解的高壓鍋的工作原理,而zkSNARK則相當于在說明如何用高壓鍋燉出美味雞湯。
由此可見,雙線性對是類似基礎工具的角色:就像高壓鍋既可以燉雞湯也可以燉排骨湯,雙線性對既可以用于零知識證明也可以用于構造簽名等密碼學算法。而Groth16、PLONK、RedShift等,它們同屬于zkSNARK,屬于同一層次,如果沿用上述類比,那大概就是對應用高壓鍋做湯的風味選擇了。Groth16算法是JensGroth提出的一種zkSNARK算法,相關論文不僅對已有算法進行改進,而且討論了基于配對的非交互式零知識論證的證明大小問題。Groth16因其精簡的證明大小和高效的驗證效率,在ZCash等項目中多有應用,是最經典的零知識證明算法之一。
美國說唱歌手Megan Thee Stallion與Cash App合作發布比特幣科普視頻:美國說唱歌手Megan Thee Stallion與由Square開發的移動支付服務Cash App合作發布了一段名為“Bitcoin for Hotties”的視頻。該視頻從她的角度解釋了什么是比特幣,為什么比特幣有價值等內容。Megan Thee Stallion在Instagram上擁有超過2410萬粉絲,在 Twitter上擁有640萬粉絲。(Bitcoin News)[2021/8/8 1:41:10]
上一個系列中我們完整介紹了零知識證明中用到的橢圓曲線和雙線性配對相關的基礎知識。本系列通過動手算的方式,以Groth16算法為例,循序漸進地介紹zkSNARK的基本原理。
本篇是“動手算Groth16”的上篇,主要介紹如何從程序轉化為電路和描述算數電路的一種約束系統R1CS。下篇會介紹如何從R1CS轉化為多項式相關的約束問題,并且詳細給出完整的Groth16從頭到尾的手算步驟。
TRON數字錢包科普資料《波場錢包的現在過去與未來》已上線:據最新消息顯示,由TokenPocket聯合波場TRON官方,以及 TokenPocket 社區志愿者共同撰寫的《波場錢包的現在過去與未來》已正式上線。《波場錢包的現在過去與未來》又稱為波場錢包小白書,詳細介紹了當前TRON錢包與TRON生態密切結合的實例,是目前市面上最為詳細的TRON數字錢包科普資料。波場錢包作為波場公鏈生態中極為重要的入口,是波場生態的重要構成要素。波場錢包從一開始只提供權限管理、轉賬收款、節點投票等基礎功能,到如今不僅可以為用戶提供法幣交易、閃兌和去中心化交易所等方便快捷的交易服務,還能讓用戶直接在錢包上體驗波場上DApp,挖礦、DeFi、Staking等資產增值服務。詳情見原文鏈接。[2020/8/20]
程序與電路
初始接觸通用零知識證明算法時,讀者可能最容易感到疑惑的地方就是各種資料中頻繁提到的“電路”一詞。這里的“電路”是指什么?它又如何等價地對同一個問題進行描述呢?回答這些問題最簡單的方式就是使用具體的一個算法例子進行說明。比如我們有下面一段程序代碼,如何將其轉化為等價的電路呢?
人大附中物理老師李永樂科普拜占庭將軍問題和區塊鏈:5月14日,人大附中物理老師、科普視頻網紅李永樂在其公眾號發布視頻《拜占庭將軍問題是什么?區塊鏈如何防范惡意節點?》。李永樂老師在視頻中對拜占庭將軍問題和區塊鏈進行了講解,他表示,拜占庭將軍問題本質上指的是,在分布式計算機網絡中,如果存在故障和惡意節點,是否能夠保持正常節點的網絡一致性問題。在近40年的時間里,人們提出了許多方案解決這一問題,稱為拜占庭容錯法。例如蘭波特自己提出了口頭協議、書面協議法,后來有人提出了實用拜占庭容錯PBFT算法,在2008年,中本聰發明比特幣后,人們又設想了通過區塊鏈的方法解決這一問題。區塊鏈通過算力證明來保持賬本的一致性,也就是必須計算數學題,才能得到記賬的權力,其他人對這個記賬結果進行驗證,如果是對的,就認可你的結果。與拜占庭問題比起來,就增加了叛徒的成本。[2020/5/14]
動態 | 人民日報官方微博科普區塊鏈 強調區塊鏈不等于比特幣:人民日報官方微博今早發表9圖科普區塊鏈。其中涉及區塊鏈的特點有:1、安全;2、不可篡改;3、可訪問;4、無第三方。區塊鏈對未來的影響:1、不需繁瑣個人證明;2、看病避免反復檢查;3、旅行消費更加便捷;4、交易無需第三方。同時強調,區塊鏈不等于比特幣。比特幣只是區塊鏈技術的一種應用,區塊鏈還有醫療衛生、食品安全、版權保護等諸多應用領域。[2019/10/28]
▲需要被轉化為電路的代碼
這里需要注意到程序中值被存儲在變量中,而電路中的值是用電路門之間的連線表示的。這其中有個關鍵的不同是:變量的值是會隨著時間變化的,而電路中連線的值是固定不能改變的。因此首先我們通過引入一些中間量的方式表示隨循環而不斷變化的各階段的變量值,中間量命名為tmp1,tmp2...這樣的形式:
科普時報:區塊鏈與云計算長期發展目標不謀而合:據《科普時報》今日報道,區塊鏈與云計算兩項技術的結合,從宏觀上來說,一方面,利用云計算已有的基礎服務設施或根據實際需求做相應改變,實現開發應用流程加速,滿足未來區塊鏈生態系統中初創企業、學術機構、開源機構、聯盟和金融等機構對區塊鏈應用的需求。另一方面,對于云計算來說,“可信、可靠、可控制”被認為是云計算發展必須要翻越的“三座山”,而區塊鏈技術以去中心化、匿名性,以及數據不可篡改為主要特征,與云計算長期發展目標不謀而合。[2018/5/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算法的相關內容,敬請關注。
一個由美國兩黨參議員組成的小組呼吁財政部長珍妮特·耶倫(JanetYellen)澄清由美國總統喬·拜登(JoeBiden)簽署成為法律的基礎設施法案中有關加密貨幣納稅申報要求的措辭.
1900/1/1 0:00:00這一次,Coinbase將目光放在了元宇宙,并且聚焦在大多數開發人員似乎已經忘記的一個領域,但是這個領域是構建元宇宙必不可少的部分,那就是身份.
1900/1/1 0:00:00據CoinDesk11月23日消息,一位熟悉花旗銀行計劃的人士透露,花旗正在招聘100名員工,以加強其區塊鏈和數字資產部門.
1900/1/1 0:00:00據路透社11月23日報道,曾經風靡一時的《口袋妖怪GO》游戲背后的增強現實平臺Niantic周一在博客文章中表示,該公司以90億美元的估值從對沖基金Coatue籌集了3億美元.
1900/1/1 0:00:00波卡一周觀察,是我們針對波卡整個生態在上一周所發生的事情的一個梳理,同時也會以白話的形式分享一些我們對這些事件的觀察。本文旨在提供信息和觀點,不為任何項目作背書.
1900/1/1 0:00:00據Businesswire11月23日消息,NFT非營利基金會ORIGYN獲得2000萬美元戰略融資.
1900/1/1 0:00:00