李康,孫毅,張珺,李軍,周繼華,李忠誠
1. 中國科學(xué)院計算技術(shù)研究所,北京 100190;2. 中國科學(xué)院大學(xué),北京 100049;3. 內(nèi)蒙古大學(xué),內(nèi)蒙古自治區(qū) 呼和浩特 010021;4. 布比(北京)網(wǎng)絡(luò)技術(shù)有限公司,北京 100190;5. 重慶金美通信有限責(zé)任公司,重慶 400030
區(qū)塊鏈的出現(xiàn)首次從技術(shù)上解決了基于信任的中心化模型帶來的安全問題,它基于密碼學(xué)算法保證了價值的安全轉(zhuǎn)移,基于散列鏈及時間戳機制保證了數(shù)據(jù)的可追溯、不可篡改特性,基于共識算法保證了節(jié)點間區(qū)塊數(shù)據(jù)的一致性。區(qū)塊鏈這種技術(shù)體系正在深刻地變革著各行各業(yè)的生產(chǎn)方式,成為未來數(shù)字經(jīng)濟(jì)時代價值互聯(lián)網(wǎng)的構(gòu)建基石。
自2008年比特幣提出以來,區(qū)塊鏈技術(shù)得到了快速發(fā)展和應(yīng)用,承載著各種功能的區(qū)塊鏈平臺應(yīng)運而生,如智能合約平臺以太坊、去中心存儲平臺Filecoin以及金融商業(yè)級解決方案Corda等。基于區(qū)塊鏈的行業(yè)應(yīng)用也越來越豐富,例如,倫敦證券交易所、倫敦清算所、法國興業(yè)銀行、瑞士瑞銀集團(tuán)以及歐洲清算中心等機構(gòu)聯(lián)合成立的區(qū)塊鏈集團(tuán)將區(qū)塊鏈技術(shù)應(yīng)用到證券領(lǐng)域,旨在通過區(qū)塊鏈技術(shù)改變證券交易的清算和結(jié)算方式;美國Factom公司將區(qū)塊鏈技術(shù)應(yīng)用到數(shù)字存證領(lǐng)域,嘗試通過區(qū)塊鏈技術(shù)革新商業(yè)社會以及政府部門的數(shù)據(jù)管理和數(shù)據(jù)記錄方式;美國Chronicled公司將區(qū)塊鏈技術(shù)應(yīng)用到供應(yīng)鏈溯源領(lǐng)域,保證商品的真實性,保護(hù)消費者權(quán)益。
然而,區(qū)塊鏈的公開透明也給用戶的隱私保護(hù)帶來了巨大的挑戰(zhàn)。區(qū)塊鏈參與方維護(hù)一個共同的賬本,皆可查看并且驗證其他參與方的交易數(shù)據(jù),這就給參與方的隱私泄露開了一道大門,如圖1所示[1]。因此,隱私保護(hù)成為了制約區(qū)塊鏈應(yīng)用發(fā)展的瓶頸之一。
圖1 2013年比特幣交易圖譜
為此,如何在不犧牲區(qū)塊鏈人人可驗證、公開透明等特性的前提下,使參與方的隱私數(shù)據(jù)受到保護(hù),成為當(dāng)前區(qū)塊鏈研究領(lǐng)域的主要科學(xué)問題。
針對上述現(xiàn)狀,本文將總結(jié)區(qū)塊鏈領(lǐng)域中現(xiàn)有的隱私保護(hù)方案,重點圍繞零知識證明技術(shù),闡述其如何應(yīng)用到區(qū)塊鏈中實現(xiàn)交易隱私保護(hù),并介紹零知識證明與區(qū)塊鏈結(jié)合中亟待解決的幾個技術(shù)挑戰(zhàn)。
區(qū)塊鏈中最主要的組成部分就是交易,交易是驅(qū)動區(qū)塊鏈系統(tǒng)運轉(zhuǎn)的信息載體,通過交易,區(qū)塊鏈節(jié)點可以將資金在用戶之間進(jìn)行轉(zhuǎn)移,并進(jìn)行一系列更為復(fù)雜的操作,比如執(zhí)行相關(guān)的智能合約。交易涉及的基本元素有發(fā)送方、接收方、金額,雖然發(fā)送方與接收方在區(qū)塊鏈系統(tǒng)中一般表示為公鑰地址,但是輔之社會學(xué)挖掘方法,可以將現(xiàn)實世界中的真實身份與公鑰地址聯(lián)系起來,而區(qū)塊鏈作為公開的交易賬本,任何人均可從中查出其他用戶在該系統(tǒng)中發(fā)生過的行為,如資金流轉(zhuǎn)過程、合約執(zhí)行過程等,從而泄露了用戶的隱私。因此,如何保證用戶在區(qū)塊鏈系統(tǒng)中的操作行為不被其他人獲取是區(qū)塊鏈隱私保護(hù)的主要內(nèi)容,而實現(xiàn)這一目標(biāo)的解決方案就是保護(hù)交易的關(guān)鍵性信息不被泄露。
自比特幣后的區(qū)塊鏈平臺紛紛開始重視交易的隱私保護(hù),并從協(xié)議級別支持交易的隱私保護(hù),而且無需喪失區(qū)塊鏈公開可驗證的特性,這為區(qū)塊鏈的進(jìn)一步應(yīng)用發(fā)展奠定了基礎(chǔ)。
達(dá)世幣①https://github.com/dashpay/d a s h/w i k i/Whitepaper是最早在區(qū)塊鏈中實現(xiàn)了交易隱私保護(hù)并且得到大規(guī)模應(yīng)用的平臺。它采用了一種稱為混幣的技術(shù),實現(xiàn)了匿名發(fā)送(darksend)的功能。匿名發(fā)送是混幣技術(shù)的一種實現(xiàn)版本,基本思想是使用網(wǎng)絡(luò)中的主節(jié)點將來自多個用戶的交易混合形成單筆交易。在達(dá)世幣匿名發(fā)送中,每個用戶需將交易發(fā)送至主節(jié)點,主節(jié)點需要至少3筆交易進(jìn)行混合,然后形成單一交易中的多個輸出,同時確保輸出亂序。為了從整體上提高系統(tǒng)隱私性,規(guī)定使用固定面值0.1、1、10、100的交易金額,在每輪混幣過程中,所有用戶應(yīng)該提交相同面值的輸入與輸出,除了使用相同面值外,交易手續(xù)費會從交易中移除,并且在獨立、不可鏈接的交易中支付。在匿名發(fā)送中,主節(jié)點承擔(dān)了保護(hù)隱私的責(zé)任,存在被攻擊的可能。通過引入鏈?zhǔn)交旌希╟haining)技術(shù),用戶會隨機選擇多個主節(jié)點,這些主節(jié)點構(gòu)成一條鏈,最后輸出混合后的交易;通過引入基于中繼系統(tǒng)的盲化技術(shù)(blinding),用戶可不直接向交易池提交交易,相反在全網(wǎng)中隨機選擇主節(jié)點,然后要求該主節(jié)點將交易提交至目標(biāo)主節(jié)點,這樣目標(biāo)主節(jié)點就難以獲取用戶的真實身份。但是達(dá)世幣的局限性在于,節(jié)點始終需要信任網(wǎng)絡(luò)挑選的主節(jié)點以及參與混幣服務(wù)的用戶,一旦主節(jié)點被控制,或者參與混幣的用戶是惡意的,都會在一定程度上導(dǎo)致用戶隱私泄露。
為了避免達(dá)世幣中存在的主節(jié)點信任風(fēng)險,門羅幣②https://getmonero.org/采用了一種不依賴于主節(jié)點的加密混合方案,其中涉及兩個關(guān)鍵的技術(shù)點:一是隱秘地址技術(shù),另一個是環(huán)簽名技術(shù)。隱秘地址的基本原理是,當(dāng)發(fā)送者發(fā)送一筆資金時,首先通過接收者地址,基于橢圓曲線生成一次性公鑰,然后發(fā)送者將交易連同附加信息廣播到區(qū)塊鏈網(wǎng)絡(luò)中,接收者時刻使用自己的私鑰監(jiān)測區(qū)塊鏈中的交易,如果能成功解析該交易,證明發(fā)送者已發(fā)送相關(guān)交易;當(dāng)接收者想要花費交易時,使用私鑰連同附加信息計算出簽名私鑰,對交易進(jìn)行簽名即可花費,保障了輸入與輸出地址不可關(guān)聯(lián)的特性。環(huán)簽名基本思想是利用自己的私鑰以及若干個用戶的公鑰對交易簽名,驗證簽名時,則使用其他人的公鑰以及簽名中包含的參數(shù),從而達(dá)成隱藏發(fā)送者信息的目的。但是門羅幣的局限性在于,用戶在使用環(huán)簽名技術(shù)時,需要依賴其他用戶的公鑰,如果其他用戶是惡意的,則會在一定程度上導(dǎo)致用戶隱私泄露。
2016年11月,國際著名銀行區(qū)塊鏈聯(lián)盟R3組織開源了其為金融機構(gòu)打造的商業(yè)級解決方案——Corda平臺③https://docs.corda.net/_static/corda-technicalwhitepaper.pdf。在金融機構(gòu)業(yè)務(wù)環(huán)境中,隱私保護(hù)是必不可少的一環(huán),Corda在這方面下了不少工夫。首先,傳統(tǒng)的區(qū)塊鏈中,所有節(jié)點都會維護(hù)一個共同的賬本,隱私泄露的可能性會大大增加,因此,Corda直接摒棄了交易進(jìn)行廣播的行為,只在交易相關(guān)方之間進(jìn)行交易的傳播與見證。其次,采取了敏感信息抽離(tear-off)技術(shù),即將敏感信息進(jìn)行散列,并且組成分層 Merkle樹,使得非敏感信息仍可以通過 Merkle樹進(jìn)行分支驗證,而一旦出現(xiàn)法律糾紛時,可以申請披露敏感信息,進(jìn)行驗證。最后,采用了復(fù)合簽名技術(shù),通過為每個簽名主體賦予協(xié)商好的權(quán)重,輔以簽名閾值設(shè)置,則可以設(shè)置靈活的簽名方案,從而保護(hù)簽名人的信息。
2016 年 11 月,以隱私為主要功能的零幣(Zcash)[2]區(qū)塊鏈系統(tǒng)進(jìn)行了開源,致力于打造一個完美的隱私保護(hù)平臺。零幣使用了零知識證明中最為著名的zkSNARKs[3-10]技術(shù),該技術(shù)具有非交互性、簡潔性、公開可驗證等特性。零幣系統(tǒng)中有透明地址與匿名地址之分,使用匿名地址可達(dá)到交易隱私保護(hù)的目的,包含匿名地址的交易稱為隱秘交易,隱秘交易將發(fā)送方、接收方、轉(zhuǎn)移金額全部隱藏在生成的零知識證據(jù)中,區(qū)塊鏈節(jié)點根據(jù)事先生成的零知識證據(jù)驗證密鑰,可驗證隱秘交易的真實性,保證只有真實的發(fā)送方在有真實資產(chǎn)的情況下才可以完成一筆有效的隱秘交易。由于隱秘交易不包含發(fā)送方、接收方、轉(zhuǎn)移金額等關(guān)鍵性信息,使得攻擊者無法根據(jù)交易追溯性獲取更多信息,從而有效地保護(hù)了用戶的隱私。
除上述已應(yīng)用到區(qū)塊鏈平臺進(jìn)行隱私保護(hù)的技術(shù)之外,區(qū)塊鏈研究人員還將同態(tài)加密技術(shù)④https://en.wikipedia.org/wiki/Homomorphic_encryption列為隱私保護(hù)的關(guān)鍵性密碼學(xué)技術(shù)。同態(tài)加密的特性使得交易相關(guān)方見證明文,而交易無關(guān)方可以見證密文,即可驗證交易的有效性。但是由于同態(tài)加密技術(shù)效率較為低下,與區(qū)塊鏈的結(jié)合還處于一個相對初級的階段。如果未來同態(tài)加密技術(shù)取得重大突破,將會大大促進(jìn)同態(tài)加密技術(shù)在區(qū)塊鏈系統(tǒng)中的應(yīng)用。
零知識證明是指一方(證明者)向另一方(驗證者)證明一個陳述是正確的,而無需透露除該陳述正確以外的任何信息,適用于解決任何NP問題。而區(qū)塊鏈恰好可以抽象成多方驗證交易是否有效(NP問題)的平臺,因此,兩者是天然相適應(yīng)的。將零知識證明應(yīng)用到區(qū)塊鏈中需要考慮的技術(shù)挑戰(zhàn)分為兩大類:一類是適用于隱私保護(hù)的區(qū)塊鏈架構(gòu)設(shè)計方案,包括隱秘交易所花資產(chǎn)存在性證明、匿名資產(chǎn)雙花問題、匿名資產(chǎn)花費與轉(zhuǎn)移、隱秘交易不可區(qū)分等技術(shù)挑戰(zhàn);另一類是零知識證明技術(shù)本身帶來的挑戰(zhàn),包括參數(shù)初始化階段、算法性能以及安全問題等技術(shù)挑戰(zhàn)。
在不使用零知識證明的區(qū)塊鏈系統(tǒng)中,證明交易所花資產(chǎn)存在有兩種模型:未花費的交易輸出(unspent transaction outputs,UTXO)模型與賬戶模型。在UTXO模型中,每一筆交易的輸入會引用來自前一筆交易的輸出,區(qū)塊鏈節(jié)點會根據(jù)保存的UTXO集合來驗證一筆交易花費資產(chǎn)是否存在;在賬戶模型中,每一筆交易會指定發(fā)送方,區(qū)塊鏈節(jié)點會根據(jù)保存的賬戶信息驗證一筆交易花費資產(chǎn)是否存在并且足夠。如果在區(qū)塊鏈中使用零知識證明保證交易的隱私,首要解決的就是如何證明隱秘交易所花資產(chǎn)存在于區(qū)塊鏈上。由于隱秘交易隱藏了發(fā)送者地址信息,所以隱秘交易所花資產(chǎn)不能來源于區(qū)塊鏈中已存在的透明資產(chǎn),也就意味著不能明確地引用前一筆交易輸出或者賬戶。因此,隱秘交易花費的資產(chǎn)應(yīng)該是匿名的,這就需要設(shè)計一套機制來發(fā)行匿名資產(chǎn),并對匿名資產(chǎn)進(jìn)行標(biāo)識。零幣系統(tǒng)中存在兩種匿名資產(chǎn)發(fā)行機制:一是花費“挖礦”所得的獎勵,即將獎勵轉(zhuǎn)換為匿名資產(chǎn),這樣做的目的是為了系統(tǒng)中有足夠多的匿名資產(chǎn),防止匿名資產(chǎn)被追蹤;二是通過正常的交易將透明資產(chǎn)轉(zhuǎn)換為匿名資產(chǎn)。那么,當(dāng)隱秘交易花費匿名資產(chǎn)時,如何讓區(qū)塊鏈節(jié)點相信該匿名資產(chǎn)的存在?零幣系統(tǒng)給鑄造的每一個匿名資產(chǎn)打上一個數(shù)字承諾的烙印,并將這些數(shù)字承諾組織成一棵Merkle樹,用來標(biāo)識系統(tǒng)中已出現(xiàn)過的所有匿名資產(chǎn)(包括花費和未花費的)。隱秘交易包含匿名資產(chǎn)所在的Merkle樹的根散列值以及證明該匿名資產(chǎn)確實存在于Merkle樹中的零知識證據(jù),區(qū)塊鏈節(jié)點通過公開的驗證密鑰可驗證隱秘交易所花費的資產(chǎn)確實在區(qū)塊鏈的系統(tǒng)中出現(xiàn)過,但是不知道具體是哪一個匿名資產(chǎn),也不能證明該匿名資產(chǎn)是否已經(jīng)被花費,因此會存在雙花問題,接下來將會探討如何解決匿名資產(chǎn)雙花的問題。綜上所述,區(qū)塊鏈交易隱私保護(hù)方案需要設(shè)計一套匿名資產(chǎn)發(fā)行機制及存在性證明機制(Merkle樹),確保其公開可驗證特性。
區(qū)塊鏈要解決的一個最核心的問題就是資金雙花,在UTXO模型的區(qū)塊鏈中,區(qū)塊鏈節(jié)點都要維護(hù)UTXO集合,當(dāng)驗證一筆交易時,將該交易引用的輸出從UTXO集合中移除,這樣當(dāng)驗證另一筆花費同樣輸出的交易時,會因為在UTXO集合中無法查找到該輸出而變得無效。在賬戶模型中,區(qū)塊鏈節(jié)點皆維護(hù)賬戶狀態(tài),其中包括余額,當(dāng)驗證交易時,首先會判斷賬戶余額是否足夠,因此也可有效阻止雙花。為了實現(xiàn)區(qū)塊鏈交易隱私保護(hù),需要使用匿名資產(chǎn),然而會存在雙花問題,所以需進(jìn)一步加強匿名資產(chǎn)在區(qū)塊鏈中的屬性。零幣系統(tǒng)賦予每一個匿名資產(chǎn)唯一的序列號,區(qū)塊鏈節(jié)點將出現(xiàn)過的所有序列號保存起來,當(dāng)發(fā)起一筆隱秘交易時,需要披露序列號,節(jié)點檢查該序列號是否已經(jīng)出現(xiàn)過,這樣能夠有效地阻止匿名資產(chǎn)的雙花問題。注意,應(yīng)選擇合適的散列函數(shù)以及隨機數(shù),編碼匿名資產(chǎn)數(shù)字承諾與序列號,確保它們相互關(guān)聯(lián),并且一一對應(yīng)。
在不使用零知識證明的區(qū)塊鏈系統(tǒng)中,資產(chǎn)花費是通過公鑰私鑰對進(jìn)行的,資產(chǎn)轉(zhuǎn)移是通過在交易中指定接收方地址完成的。為了實現(xiàn)隱私保護(hù),隱秘交易需要隱藏發(fā)送者以及接收者,那么區(qū)塊鏈節(jié)點如何驗證匿名資產(chǎn)被擁有的人花費,并且轉(zhuǎn)移到了合適的接收方?隱秘交易花費的是匿名資產(chǎn),匿名資產(chǎn)應(yīng)至少包括金額、所屬公鑰地址等屬性,因此,在生成匿名資產(chǎn)時,需要將金額、所屬公鑰地址編碼進(jìn)數(shù)字承諾。當(dāng)花費一筆匿名資產(chǎn)時,將私鑰、公鑰與數(shù)字承諾之間的生成關(guān)系編碼進(jìn)零知識證據(jù)中,結(jié)合匿名資產(chǎn)存在性證明,區(qū)塊鏈節(jié)點可使用零知識證明的公開驗證密鑰來驗證數(shù)字承諾確實存在,而且是通過相應(yīng)的公鑰地址、金額生成,并且發(fā)送交易的人擁有公鑰地址對應(yīng)的私鑰,確保只有匿名資產(chǎn)所屬者才擁有花費的權(quán)利。
匿名資產(chǎn)所有權(quán)的轉(zhuǎn)移是如何發(fā)生的?由于隱秘交易中不含接收方,并且每一個匿名資產(chǎn)都與所屬者公鑰相關(guān)聯(lián),因此采用銷毀舊匿名資產(chǎn)、生成新匿名資產(chǎn)的策略保證匿名資產(chǎn)的轉(zhuǎn)移。匿名資產(chǎn)數(shù)字承諾的生成需要所屬公鑰地址、金額等信息,并且這些原始信息也要發(fā)送給接收方,因此接收方需要提供兩個公鑰,一個是支付公鑰,一個是加密公鑰。支付公鑰供發(fā)送者生成數(shù)字承諾,加密公鑰供發(fā)送者加密生成數(shù)字承諾過程中用到的信息。當(dāng)然,支付公鑰與加密公鑰可以是同一個,但是為了安全著想,建議使用不同的公鑰。接收方需要監(jiān)聽區(qū)塊鏈上的交易,嘗試用自己的私鑰解密隱秘交易中包含的加密信息,如果解密成功,則代表該隱秘交易的接收方是自己,將該匿名資產(chǎn)歸入自己的支付密鑰對賬戶下,便于以后花費。
除匿名資產(chǎn)花費以及轉(zhuǎn)移外,還應(yīng)將花費的資產(chǎn)總額與轉(zhuǎn)移產(chǎn)生的資產(chǎn)總額之間的關(guān)系編碼進(jìn)零知識證據(jù),即花費的資產(chǎn)總額應(yīng)該大于或等于轉(zhuǎn)移產(chǎn)生的資產(chǎn)總額,以保證隱秘交易的有效性。
綜上所述,零知識證明應(yīng)用到區(qū)塊鏈中需要設(shè)計一套合理的匿名資產(chǎn)所有權(quán)驗證規(guī)則及轉(zhuǎn)移規(guī)則,將這些規(guī)則使用零知識證明技術(shù)編碼進(jìn)零知識證據(jù),從而達(dá)到區(qū)塊鏈公開可驗證的特性。
為達(dá)到交易隱私保護(hù)的目的,區(qū)塊鏈中的隱秘交易理應(yīng)是不可區(qū)分的,即無法通過對比、分析隱秘交易對其進(jìn)行聚類。另外,由于零知識證明需要電路(驗證規(guī)則轉(zhuǎn)換而來)是固定的,因此,在使用零知識證明的區(qū)塊鏈中,隱秘交易應(yīng)該具有固定的輸入與輸出數(shù)量,當(dāng)輸入與輸出數(shù)量無法滿足規(guī)定數(shù)量時,應(yīng)該構(gòu)建隨機冗余的輸入與輸出,并且生成的零知識證據(jù)中應(yīng)包含判定輸入與輸出是冗余還是真實的條件,區(qū)塊鏈節(jié)點接收到隱秘交易時,會根據(jù)輸入與輸出的真實與否決定是否處理對應(yīng)的匿名資產(chǎn),隱秘交易的不可區(qū)分特性進(jìn)一步加強了交易隱私的保護(hù)。
零知識證明分交互式與非交互式兩種,而在區(qū)塊鏈的系統(tǒng)中,交互式是不適合的,因為區(qū)塊鏈中的每一個節(jié)點都要驗證交易的有效性,而交互式需要發(fā)送方與區(qū)塊鏈系統(tǒng)全網(wǎng)驗證節(jié)點進(jìn)行信息交換才能達(dá)到保護(hù)隱私的目的,所以在區(qū)塊鏈系統(tǒng)中應(yīng)該采取非交互式零知識證明。非交互式零知識證明中,z k SNAR K s最為成熟。z k SNAR K s算法需要一個中心化的初始化階段,用于創(chuàng)建生成零知識證據(jù)的證明密鑰以及驗證零知識證據(jù)的驗證密鑰。而區(qū)塊鏈本身是一個去中心化的系統(tǒng),那么zk SNARK s算法的初始化階段無疑給區(qū)塊鏈帶來了信任風(fēng)險,因此如何保證zkSNARKs算法可信地構(gòu)造初始化階段是應(yīng)用到區(qū)塊鏈中需要克服的關(guān)鍵性技術(shù)挑戰(zhàn)。零幣系統(tǒng)中設(shè)計了一種多方安全計算式的初始化階段[11],即多方在不泄露各自信息的前提下協(xié)同計算出證明密鑰與驗證密鑰,但是證明密鑰與驗證密鑰只需生成一次,后續(xù)可以反復(fù)使用。但是零幣系統(tǒng)使用的多方安全計算局限于少數(shù)人,無法讓更多人參與進(jìn)來,因此后續(xù)需要進(jìn)一步改進(jìn)多方安全計算的性能,使zkSNARKs算法初始化的構(gòu)建方案更加去中心化。
zkSNARKs算法目前的性能較差,計算復(fù)雜度主要來自于底層依賴的橢圓曲線配對運算,目前零幣系統(tǒng)使用的是BN254橢圓曲線[12],生成一筆隱秘交易對應(yīng)的零知識證據(jù)需要40 s左右,并占用約4 GB內(nèi)存⑤https://z.cash/blog/cultivatingsapling-fasterzksnarks.html,這導(dǎo)致無法在現(xiàn)有的移動設(shè)備上使用 zkSNARKs算法,并且40 s的時間在高并發(fā)場景下也顯得很慢。因此需要精心設(shè)計對配對操作友好的橢圓曲線,目前已有相關(guān)研究進(jìn)展,例如零幣系統(tǒng)開發(fā)者已設(shè)計出BLS12-381[13]橢圓曲線,初步測試,可以將生成零知識證據(jù)的時間縮短到7 s,內(nèi)存占用縮減到40 MB左右,大大提高了zkSNARKs算法的可用性。
zkSNARKs算法安全性依賴于底層選取的橢圓曲線,BN254橢圓曲線實現(xiàn)的安全性約為128 bit,最近有研究[14]表明,BN類橢圓曲線的安全性實際為 110 bit左右。因此設(shè)計橢圓曲線時,應(yīng)考慮該曲線對應(yīng)的安全性。
綜上所述,當(dāng)零知識證明算法應(yīng)用于區(qū)塊鏈隱私保護(hù)時,需要滿足區(qū)塊鏈的核心功能特性,即資產(chǎn)確權(quán)及轉(zhuǎn)移和防止雙花。本文基于零知識證明算法,給出了一套匿名資產(chǎn)發(fā)行、轉(zhuǎn)移機制,在保護(hù)用戶隱私的同時有效地實現(xiàn)了資產(chǎn)確權(quán)和轉(zhuǎn)移以及防止雙花的功能特性。在零知識證明與區(qū)塊鏈實際結(jié)合中,建議使用成熟、高效、安全的zkSNARKs算法,并給出了zkSNARKs算法進(jìn)一步優(yōu)化的方向。
在數(shù)字經(jīng)濟(jì)全球化背景下,區(qū)塊鏈技術(shù)的出現(xiàn)使得通過互聯(lián)網(wǎng)進(jìn)行價值轉(zhuǎn)移成為可能,然而區(qū)塊鏈的公開透明特性也給人們的隱私保護(hù)帶來了巨大的挑戰(zhàn),因此如何實現(xiàn)隱私保護(hù)成為了阻礙區(qū)塊鏈進(jìn)一步發(fā)展的難題。
本文詳細(xì)講解了當(dāng)下區(qū)塊鏈平臺實現(xiàn)隱私保護(hù)采取的方法,重點圍繞零知識證明技術(shù)展開,闡述了零知識證明與區(qū)塊鏈結(jié)合需要考慮的幾個常見問題,并且對零知識證明在區(qū)塊鏈中的技術(shù)挑戰(zhàn)做了說明。未來區(qū)塊鏈的隱私保護(hù)仍然任重而道遠(yuǎn),如何實現(xiàn)快速高效、可信的零知識證明算法以及如何實現(xiàn)能夠抵抗量子計算的零知識證明算法,都是需要進(jìn)一步解決的問題。
[1] M E I K L E J O H N S, P O M A R O L E M,JORDAN G, et al. A fistful of bitcoins:characterizing payments among men with no names[C]//The 2013 Conference on Internet Measurement Conference,O c to b e r 23-25, 2013, B arce l o na,Spain. New York: ACM Press, 2013:127-140.
[2] SASSON E B, CHIESA A, GARMAN C,et al. Zerocash: decentralized anonymous payments from Bitcoin[C]//The 2014 IEEE Symposium on Securit y and Privacy, May 18-21, 2014, San Jose,USA. Washington, DC: IEEE Computer Society, 2014: 459-474.
[3] J E N S G. S h o r t p a i r i n g-b a s e d non-interac tive zero-k nowle dge arguments[C]//The 16th International Conference on the Theory and Application of Cryptology and Information Security,D e ce m b e r 5-9, 2010, Si n g a p o r e.Heidelberg: Springer, 2010: 321-340.
[4] LIPMAA H. Progression-free sets and sublinear pairing-based non-interactive zero-knowledge arguments[C]//The 9th International Conference on Theory of Cryptography, March 18-21, 2012, Sicily,Italy. Heidelberg: Springer-Verlag, 2012:169-189.
[5] N I R B, A L E S S A N D R O C, Y U VA L I.Succinct non-interactive arguments via linear interactive proofs[C]// The 10th Theory of Cryptography Conference on Theory of Cryptography, March 3-6, 2013,Tokyo, Japan. Heidelberg: Springer-Verlag, 2013: 315-333.
[6] GENNARO R, GENTRY C, PARNO B, et al.Quadratic span programs and succinct NIZKs without PCPs [C]//The 32nd Annual International Conference on the Theory & Applications of Cryptographic Techniques, May 26-30, 2013, Athens,Greece. [S.l.:s.n.], 2013: 626-645.
[7] PA R N O B, H O W E L L J, G E N T R Y C,et al. Pinocchio: nearly prac tical verifiable computation[C]//The 2013 IEEE Symposium on Security & Privacy,May 19-22, 2013, San Francisco, USA.Washington, DC: IEEE Computer Society,2013: 103-112.
[8] BEN-SASSON E, CHIESA A, GENKIN D,et al. Verifying program executions succinctly and in zero knowledge[C]//The 33rd International Cryptology Conference(CRYPTO 2013), August 18-22,2013, Santa Barbara, USA. Heidelberg:Springer-Verlag, 2013: 90-108.
[9] LIPMAA H. Succinct non-interactive zero knowledge arguments from span programs and linear eror-correcting codes[C]//The 19th International Conference on Advances in Cryptology,December 1-5, 2013, Bangalore, India.New York: Springer-Verlag New York,Inc., 2013: 41-60.
[10] BEN-SASSON E, CHIESA A, TROMER E,e t a l. S u c c i n c t n o n-i n t e r a c t i v e zero knowledge for a von neumann architecture[C]//The 23rd USENIX Conference on Security Symposium,August 20-22, 2014, San Diego, USA.Berkeley: USENIX Association, 2014:781-796.
[11] BEN-SASSON E, CHIESA A, GREEN M,et al. Se cure s ampling of public parameters for succinct zero knowledge proofs[C]// 2015 IEEE Symposium on Security and Privacy (SP), May 18-21,2015, San Jose, USA. Piscataway: IEEE Press, 2015: 287-304.
[12] PEREIRA G C C F, JR M A S, NAEHRIG M,et al. A family of implementationfriendly BN elliptic curves[J]. Journal of Systems and Software, 2011, 84(8):1319-1326.
[13] ARANHA D F, FUENTES-CASTA?EDA L,KNAPP E, et al. Implementing pairings at the 192-bit security level[C]//The 5th International Conference on Pairing-Based Cryptography, May 16-18, 2012,Cologne, Germany. Heidelberg: Springer-Verlag, 2012: 177-195.
[14] M EN E ZE S A, SAR K AR P, SIN G H S.Challenges with assessing the impact of nfs advances on the security of pairing-based cryptography[C]// International Conference on Cryptology, December 1-2, 2016, Kuala Lumpur, Malaysia. Heidelberg: Springer-Verlag, 2016: 83-108.