官术网_书友最值得收藏!

6.2 區(qū)塊鏈中的零知識證明應(yīng)用

在區(qū)塊鏈上的交易中,如比特幣和以太坊網(wǎng)絡(luò),除了使用地址來替換交易雙方的真實身份,使得交易具有部分匿名性以外,發(fā)送、接收地址和金額都是已知的,別人有可能通過網(wǎng)絡(luò)上的各種信息和現(xiàn)實世界發(fā)生的交互記錄等,將比特幣地址和真實身份對應(yīng)起來,也因此具有隱私暴露的隱患。Zerocoin設(shè)計了一種全新的思路,無法通過交易歷史分析來獲得用戶真實身份。Zerocoin里需要消耗一定價值的要交易的貨幣,以生成具有獨特序列號的一枚零幣。零知識證明可以在不透露花費了具體哪個貨幣的基礎(chǔ)上,驗證出你的確花了這筆錢。為了將這筆錢轉(zhuǎn)給他人,邏輯上需要使這枚零幣不能再被別人花費,零幣的辦法是大家共同維護一個作廢列表,存著所有已經(jīng)花費的零幣的序列號。礦工在驗證這筆花費交易時,運用零知識證明的方法,不需要知道具體花掉哪一個零幣,也可以驗證零幣的序列號是否在作廢列表里。由于花費交易并沒有輸入地址和簽名的信息,在整個交易過程中,礦工也并不知道這個零幣的來源,因此也就難以對交易歷史進(jìn)行分析而獲取用戶身份。

在零幣里,交易的金額是可以知道的,而采用zkSNARKs技術(shù)的Zerocash連交易金額都可以隱匿,賬本唯一公開記錄的內(nèi)容就是交易的存在性。可以證明對于NP中的所有問題存在zkSNARKs。它引入了多項創(chuàng)新技術(shù),使它們可以在區(qū)塊鏈中使用。最重要的是,zkSNARKs減少了證明的大小和驗證它們所需的計算量。它的過程可以簡述如下。

(1)將要驗證的程序拆解成一個個邏輯上的驗證步驟,將這些邏輯上的步驟拆解成由加減乘除構(gòu)成的算數(shù)電路。

(2)通過一系列的變換,將需要驗證的程序轉(zhuǎn)換成驗證多項式乘積是相等的,如證明txhx)=wxvx)。

(3)為了使得證明更加簡潔,驗證者預(yù)先隨機選擇幾個檢查點 s,檢查在這幾個點上的等式是否成立。

(4)通過同態(tài)編碼/加密的方式使得驗證者在計算等式時,不知道實際的輸入數(shù)值,但是仍能進(jìn)行驗證。

(5)在等式左右兩邊可以同時乘上一個不為0的保密的數(shù)值 k,則在驗證tshsk等于wsvsk時,就無法知道具體的ts)、hs)、ws)和vs),因此可以保護信息安全。

不同于Zerocoin的密碼學(xué)原語RSA累加器,zkSNARKs技術(shù)較新,未經(jīng)廣泛驗證,存在風(fēng)險,同時由于更強的匿名性,Zerocash的漏洞更難發(fā)現(xiàn),和Zerocoin相比,Zerocash由于交易金額信息也是未知的,所以如果有攻擊者無限制地發(fā)行零鈔,這樣的情況是無法檢測的。

除此以外,Zerocoin和Zerocash均需要提前內(nèi)置生成參數(shù),用戶在使用這些網(wǎng)絡(luò)的時候,必須信任這些參數(shù)沒有被泄露,但是一旦這些參數(shù)被泄露,整個網(wǎng)絡(luò)將面臨毀滅性打擊。復(fù)雜的信任設(shè)置使得Zerocash存在爭議,即使他們設(shè)計了一套“儀式”(例如錄下砸壞存有密鑰計算機的過程)來證明自己的安全性。

可能的解決辦法包括利用像英特爾SGX和ARM TrustZone這樣的現(xiàn)代“可信執(zhí)行環(huán)境”。就英特爾的SGX技術(shù)而言,即使應(yīng)用程序、操作系統(tǒng)、BIOS或VMM遭到了破壞,私鑰也是安全的。除此以外,最新提出的zkSTARKs技術(shù)不需要進(jìn)行信任設(shè)置。

根據(jù)zkSTARKs白皮書中所述,zkSTARKs是首次實現(xiàn)可以不依賴任何信任設(shè)置來完成區(qū)塊鏈驗證,同時計算速度隨著計算數(shù)據(jù)量的增加,而指數(shù)級加速的系統(tǒng)。它不依賴公鑰密碼系統(tǒng),更簡單的假設(shè)使得它理論上更安全,因為它唯一的加密假設(shè)是散列函數(shù)(如SHA2)是不可預(yù)測的(這一假設(shè)也是比特幣挖掘穩(wěn)定性的基礎(chǔ)),因此也使其具有抗量子性。作為一種新穎的技術(shù),和zkSTARKs一樣,它也需要經(jīng)過時間的檢驗。

主站蜘蛛池模板: 双桥区| 奉贤区| 吴堡县| 轮台县| 师宗县| 嫩江县| 太白县| 泌阳县| 英吉沙县| 四会市| 玉田县| 中西区| 陕西省| 浦东新区| 横山县| 宁国市| 东乡族自治县| 堆龙德庆县| 舒城县| 浪卡子县| 邵东县| 乾安县| 罗定市| 开江县| 兴安盟| 得荣县| 南皮县| 武冈市| 珠海市| 娱乐| 武乡县| 阿巴嘎旗| 兖州市| 墨脱县| 浦北县| 宜黄县| 遂平县| 沂水县| 玛多县| 华宁县| 洪泽县|