当前位置 - 股票行情交易網 - 股票交易 - 智能合約隱私保護論文:NIZK隱私保護方案

智能合約隱私保護論文:NIZK隱私保護方案

該論文為矩陣元聯合中科院、武漢大學密碼學專家合作發表的在賬戶體系下引入保護余額與轉賬資產的分布式智能合約系統。論文中用到了同態加密和零知識證明來保護用戶隱私,其中方案與之前的隱私保護方案相比在性能上有較大的提升,能較好地運用在供應鏈金融等場景中。

論文提出了:

1、壹種智能合約下保護用戶余額和交易金額的方案,該方案在隨機預言模型下是可證明安全的。

2、壹種高效零知識證明方案NIZK(non-interactive zero knowledge),該方案以產生的proof size更大為代價來提高生成proof的時間效率。

比較:zk-SNARK (Zerocash) & NIZK (DSC)

同態加密 HE(homomorphic encryption):允許用戶直接以密文形式來更新賬戶余額。

零知識證明 ZK(zero knowledge):證明交易的正確性。保障equivalence 和 enough ,發送方減少 V 的情況下接收方應該接收 V,證明發送方有多於 V 的賬戶余額來發送給接收方。

相關區塊鏈隱私保護工作:Monero(門羅幣)、RingCT(環簽名)、Zerocoin、Zerocash

1、雙線性映射

2、同態加密

可以保證在密文狀態下進行余額的更新操作。E(1)+E(2)=E(3)

這是壹種 ElGamal 方案的變型,但是不懂為什麽引入h,可能是為了更好的安全性吧,而且余額都為數值型的,相比之下明文空間是比較小的,所以可以解出明文m。

3、基於的困難問題

也是離散對數問題的變型使用。

4、Boneh-Boyen簽名方案

6、零知識證明 NIZK

本文中使用的是壹種非交互式的零知識證明,且使用了由可信第三方產生 CRS(common reference string) 的模型, 而沒用使用到證明密鑰 PK 和驗證密鑰 VK。

CRS 可以只產生壹次而用來生成多個 proof

7、A 發送 t 個幣給 B 的交易形式:

驗證程序直接以智能合約形式部署在區塊鏈上,可以自動驗證並進行資產轉移操作。

1、Setup

輸入安全參數 n ,生成系統公***參數 PP,其中用到了Boneh-Boyen 簽名方案,且PP中已經包含零知識證明中的 CRS

各參與方的初始化:使用上述同態加密方案對自己的余額進行加密,在賬戶模型中只存儲余額的密文。

此處考慮的明文空間大小為[0,20^30)

,對於擁有私鑰的人來說可以很容易的解密出明文,即賬戶余額值。

3、Transfer

A 發送 t 個幣給 B:

x 表示傳輸語句,其中包含 A、B 的公鑰,A 的賬戶余額由同態加密生成的密文,以及對 t 分別用 A、B 的公鑰用同態加密生成的密文。

w 表示 witness ,其中包含 A 的私鑰,生成密文時使用的隨機數,A 的賬戶余額及傳輸金額

π 為生成的 proof

(x , PP , π)上傳到區塊鏈上由驗證程序驗證其有效性。

4、Redeem

驗證程序部署在區塊鏈上,收到相應輸入後驗證其有效性:若無效則忽視;若有效,則公開此次交易(交易金額是加密過的),並對發送方和接收方的賬戶余額進行更新。

5、安全性